diff --git a/Airwindopedia.txt b/Airwindopedia.txt index 7b0e9940b..3caa4b488 100644 --- a/Airwindopedia.txt +++ b/Airwindopedia.txt @@ -47,7 +47,7 @@ Tape: TapeHack, ToTape8, ToTape7, ToTape6, FromTape, Tape, IronOxideClassic2, Ir Tone Color: BussColors4, Channel9, Apicolypse, Neverland, Elation, Calibre, Cider, Crystal, Precious, Luxor, Channel8, Channel7, Channel6, Channel5, Channel4 -Utility: SoftClock, DubPlate2, DubPlate, CansAW, Cans, Monitoring3, Monitoring2, Monitoring, BitShiftPan, BitShiftGain, PurestGain, PurestFade, EveryTrim, HermeTrim, SlewOnly, SubsOnly, PeaksOnly, Golem, DCVoltage, LRConvolve2, LRConvolve, EdIsDim, MidSide, uLawEncode, uLawDecode, RightoMono, LeftoMono, Balanced, Flipity, MoNoam, VoiceTrick, DeCrackle, ContentHideD +Utility: SoftClock2, SoftClock, DubPlate2, DubPlate, CansAW, Cans, Monitoring3, Monitoring2, Monitoring, BitShiftPan, BitShiftGain, PurestGain, PurestFade, EveryTrim, HermeTrim, SlewOnly, SubsOnly, PeaksOnly, Golem, DCVoltage, LRConvolve2, LRConvolve, EdIsDim, MidSide, uLawEncode, uLawDecode, RightoMono, LeftoMono, Balanced, Flipity, MoNoam, VoiceTrick, DeCrackle, ContentHideD XYZ Filters: ZBandpass2, ZHighpass2, ZLowpass2, ZNotch2, ZRegion2, ZBandpass, ZHighpass, ZLowpass, ZNotch, ZRegion, YBandpass, YNotBandpass, YHighpass, YNotHighpass, YLowpass, YNotLowpass, YNotch, YNotNotch, XBandpass. XHighpass, XLowpass, XNotch, XRegion @@ -4923,6 +4923,34 @@ This is in line with a music arrangement game I've been developing that's more l Dive as deep as you like, or keep it more simple: SoftClock has you covered. You may be surprised at how much easier it is to hear, entrain, and orient yourself when using a click track that refuses to click. Remember, lay it down as a track, don't try to match it to a normal click, don't grid anything! SoftClock is for gridless grooves, and music that sounds human because it moves like humans. See how it feels. +############ SoftClock2 is a groove-oriented time reference. + +SoftClock2, entrainment boogaloo! + +You might or might not have heard of the first SoftClock. It came out shortly after I'd developed it because people desperately wanted to play with it, and before I was able to use it much. (still can't, too busy with plugins.) It's the metronome made of waving, wobbling tones where the beat is always a swoop of a (mostly) sine wave that goes up to a high point. Inspired by a joke metronome of dog woofs that proved strangely inspiring to play along to, SoftClock is the machine tempo with perfect regularity but no actual beat, where you have to place the 'click' of your notes wherever it SEEMS to be. + +Turns out there are some refinements to be made with SoftClock2. None of them involve ever specifying exactly where a click really is, or letting it sync with a DAW grid. The click is ONLY where you think it to be, and at its best the click is a shape in time defined by your riffs, a terrific way to swing along with really grooving time or dramatic flourishes. It's the anti-machine rhythm. + +This is because SoftClock2 swings along with the 'entrainment' of your limbs and musical gestures. Generally you don't play music in sudden microsecond-long bursts of your arms or fingers. You have to swing your arm or lean into a kick or, if you're Les Claypool, stomp your foot along to the beat to get yourself moving to the music. The weight of your motion helps you to keep things steady. + +SoftClock2 gives an audio picture of that motion, not of any specific point where the note hits. That makes it a lot more friendly and encouraging to play along to than a traditional click. + +And this, you'll need, if you take advantage of SoftClock2's capacity for strange grooves and polyrhythms. Here's where one of the updates is found: on at least the generic VST version of the plugin, the 'Count' control tells you not only which beat it's doing, but after that, the time signature. Many times that's predictable, like a 5 or a 7 or a 4/4. But then you have many variations on 11, 13, 17, 19, 23… just a wide gamut of freaky proggy things to count. The count always works like this: the nonaccented notes start high with the One, swing down to halfway, and then ramp up again to the One. The accents follow patterns: if you want to interpret the count differently (or just have a steady pulse) that's fine, but it's meant to give you subdivisions, typically repeated long subdivisions ending with a short one. For instance, all the 19s are counted that way, like going 5-5-5-4 because the idea is a good weird groove sets up patterns you can track, and a departure at the end. So, SoftClock2 was always designed to do that. + +There's a change, though. The original had a 'BigBeat' control and a Swing control. Swing hesitated alternate beats up to and beyond doing a triplet shuffle feel, and BigBeat always took the 'valley' and treated it as the snare hit, which you could hesitate to make a weightier backbeat or a pocket backbeat. Doesn't take much. + +The trouble is, people kept hearing the peak as the snare backbeat. + +So, SoftClock2 simply lets you decide. This is most relevant to simpler beats, and the weird crazy time signatures may still sound best with the beats ramping up to the One. But if you're just doing a 4 or an 8, or need to reverse the feel of something, or you're doing a reggae where the One is the valley but you need it to hit well behind the beat to groove properly… increase the Valley control instead, and now that accent is slowed. Or, if you're using a simple beat but you hear it ramping up to the snare hit, increase the Peak control and it gets more weight and swing behind it. You can sync it with settings of Swing too, or even construct perfectly steady but wonky grooves this way. + +If you're using an AU version, or a DAW where it's not constantly redrawing the plugin labelling, or if you're using Consolidated and it doesn't update what's next to Count quickly enough, I found that closing and opening the plugin interface does seem to update what's shown to the current setting. It's just that some DAWs live-draw this label constantly, and others cache it and stop recalculating it. I can't control that part, but you can get a reference to what you did with a little extra trouble. Count it, it should be doing spaced accents with a departure right at the end to give you the funny time. You, too, can do 17s and 19s that are actually catchy, if you make 'em out of sub-riffs in this way. + +And then if you want to be really annoying you can lay down SoftClock with whatever you're doing, and what if you'd like to overdub a complete departure? Like you're in 4/4 but you'd like to put down part of the riff where it's 7 notes in the space of 4? + +Cheat. Start with Tuple in 4 to lay down the main riff, and then elsewhere in the arrange window, do a separate pass with Tuple set to 7. It'll be quite a bit faster. Groove whatever you want to that, get a good snippet, and then fly that over to the middle of your 4 groove… and it will line up perfectly with the notes you did in 4, because Tuple is just as accurate in 7 as it is in 4. It'll do the math for you, so you can construct all sorts of peculiar things but make them groove like anything. + +Play with it, have fun. There's no wrong way to use this, and you don't have to make it over-fancy. It's just able to scale up to the most unreasonable things and make them seem like you have amazing powers of odd-time-having. The best part is, you do it all playing live to the wobbling tone in SoftClock, so it won't seem artificial. Just kind of alien :) + ############ SoftGate is a gate that can mute hiss and smooth sample tails. Hi! Today’s Airwindows tool is for sample makers (though you could use in in a mix if you really wanted to, or abuse it for special effects). It’s called SoftGate. diff --git a/plugins/LinuxVST/CMakeLists.txt b/plugins/LinuxVST/CMakeLists.txt index 51b50b9d1..4b0019f97 100755 --- a/plugins/LinuxVST/CMakeLists.txt +++ b/plugins/LinuxVST/CMakeLists.txt @@ -271,6 +271,7 @@ add_airwindows_plugin(kPlateB) add_airwindows_plugin(kPlateC) add_airwindows_plugin(kPlateD) add_airwindows_plugin(kStation) +add_airwindows_plugin(kWoodRoom) add_airwindows_plugin(LeadAmp) add_airwindows_plugin(LeftoMono) add_airwindows_plugin(LilAmp) @@ -466,6 +467,7 @@ add_airwindows_plugin(VoiceTrick) add_airwindows_plugin(Weight) add_airwindows_plugin(Wider) add_airwindows_plugin(Wolfbot) +add_airwindows_plugin(X2Buss) add_airwindows_plugin(XBandpass) add_airwindows_plugin(XHighpass) add_airwindows_plugin(XLowpass) diff --git a/plugins/LinuxVST/src/ConsoleX2Buss/ConsoleX2Buss.cpp b/plugins/LinuxVST/src/ConsoleX2Buss/ConsoleX2Buss.cpp index 2d91e6d4e..d27cd2cec 100755 --- a/plugins/LinuxVST/src/ConsoleX2Buss/ConsoleX2Buss.cpp +++ b/plugins/LinuxVST/src/ConsoleX2Buss/ConsoleX2Buss.cpp @@ -23,12 +23,6 @@ ConsoleX2Buss::ConsoleX2Buss(audioMasterCallback audioMaster) : I = 1.0; J = 0.5; K = 0.5; - L = 0.0; - M = 1.0; - N = 0.0; - O = 0.0; - P = 0.5; - Q = 0.5; for (int x = 0; x < biq_total; x++) { highA[x] = 0.0; @@ -51,38 +45,19 @@ ConsoleX2Buss::ConsoleX2Buss(audioMasterCallback audioMaster) : 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; + bezCompS[bez_cycle] = 1.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 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 - 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 - - lFreqA = 1.0; lFreqB = 1.0; - hFreqA = 0.0; hFreqB = 0.0; panA = 0.5; panB = 0.5; inTrimA = 0.5; inTrimB = 0.5; @@ -130,12 +105,6 @@ VstInt32 ConsoleX2Buss::getChunk (void** data, bool isPreset) chunkData[8] = I; chunkData[9] = J; chunkData[10] = K; - chunkData[11] = L; - chunkData[12] = M; - chunkData[13] = N; - chunkData[14] = O; - chunkData[15] = P; - chunkData[16] = Q; /* 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. */ @@ -158,12 +127,6 @@ VstInt32 ConsoleX2Buss::setChunk (void* data, VstInt32 byteSize, bool isPreset) I = pinParameter(chunkData[8]); J = pinParameter(chunkData[9]); K = pinParameter(chunkData[10]); - L = pinParameter(chunkData[11]); - M = pinParameter(chunkData[12]); - N = pinParameter(chunkData[13]); - O = pinParameter(chunkData[14]); - P = pinParameter(chunkData[15]); - Q = pinParameter(chunkData[16]); /* We're ignoring byteSize as we found it to be a filthy liar */ /* calculate any other fields you need here - you could copy in @@ -184,12 +147,6 @@ void ConsoleX2Buss::setParameter(VstInt32 index, float value) { case kParamI: I = value; break; case kParamJ: J = value; break; case kParamK: K = value; break; - case kParamL: L = value; break; - case kParamM: M = value; break; - case kParamN: N = value; break; - case kParamO: O = value; break; - case kParamP: P = value; break; - case kParamQ: Q = value; break; default: throw; // unknown parameter, shouldn't happen! } } @@ -207,12 +164,6 @@ float ConsoleX2Buss::getParameter(VstInt32 index) { case kParamI: return I; break; case kParamJ: return J; break; case kParamK: return K; break; - case kParamL: return L; break; - case kParamM: return M; break; - case kParamN: return N; break; - case kParamO: return O; break; - case kParamP: return P; break; - case kParamQ: return Q; break; default: break; // unknown parameter, shouldn't happen! } return 0.0; //we only need to update the relevant name, this is simple to manage } @@ -228,14 +179,8 @@ void ConsoleX2Buss::getParameterName(VstInt32 index, char *text) { case kParamG: vst_strncpy (text, "LMidF", kVstMaxParamStrLen); break; case kParamH: vst_strncpy (text, "BassF", kVstMaxParamStrLen); break; case kParamI: vst_strncpy (text, "Thresh", kVstMaxParamStrLen); break; - case kParamJ: vst_strncpy (text, "Attack", kVstMaxParamStrLen); break; - case kParamK: vst_strncpy (text, "Release", kVstMaxParamStrLen); break; - case kParamL: vst_strncpy (text, "Gate", kVstMaxParamStrLen); break; - case kParamM: vst_strncpy (text, "Lowpass", kVstMaxParamStrLen); break; - case kParamN: vst_strncpy (text, "Hipass", kVstMaxParamStrLen); break; - case kParamO: vst_strncpy (text, "More", kVstMaxParamStrLen); break; - case kParamP: vst_strncpy (text, "Pan", kVstMaxParamStrLen); break; - case kParamQ: vst_strncpy (text, "Fader", kVstMaxParamStrLen); break; + case kParamJ: vst_strncpy (text, "Pan", kVstMaxParamStrLen); break; + case kParamK: vst_strncpy (text, "Fader", kVstMaxParamStrLen); break; default: break; // unknown parameter, shouldn't happen! } //this is our labels for displaying in the VST host } @@ -253,12 +198,6 @@ void ConsoleX2Buss::getParameterDisplay(VstInt32 index, char *text) { case kParamI: float2string (I, text, kVstMaxParamStrLen); break; case kParamJ: float2string (J, text, kVstMaxParamStrLen); break; case kParamK: float2string (K, text, kVstMaxParamStrLen); break; - case kParamL: float2string (L, text, kVstMaxParamStrLen); break; - case kParamM: float2string (M, text, kVstMaxParamStrLen); break; - case kParamN: float2string (N, text, kVstMaxParamStrLen); break; - case kParamO: float2string (O, text, kVstMaxParamStrLen); break; - case kParamP: float2string (P, text, kVstMaxParamStrLen); break; - case kParamQ: float2string (Q, text, kVstMaxParamStrLen); break; default: break; // unknown parameter, shouldn't happen! } //this displays the values and handles 'popups' where it's discrete choices } @@ -276,12 +215,6 @@ void ConsoleX2Buss::getParameterLabel(VstInt32 index, char *text) { case kParamI: vst_strncpy (text, "dyn", kVstMaxParamStrLen); break; case kParamJ: vst_strncpy (text, "", kVstMaxParamStrLen); break; case kParamK: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamL: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamM: vst_strncpy (text, "fltr", kVstMaxParamStrLen); break; - case kParamN: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamO: vst_strncpy (text, "+", kVstMaxParamStrLen); break; - case kParamP: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamQ: vst_strncpy (text, "", kVstMaxParamStrLen); break; default: break; // unknown parameter, shouldn't happen! } } diff --git a/plugins/LinuxVST/src/ConsoleX2Buss/ConsoleX2Buss.h b/plugins/LinuxVST/src/ConsoleX2Buss/ConsoleX2Buss.h index f63ec0053..f13fa39c5 100755 --- a/plugins/LinuxVST/src/ConsoleX2Buss/ConsoleX2Buss.h +++ b/plugins/LinuxVST/src/ConsoleX2Buss/ConsoleX2Buss.h @@ -27,15 +27,8 @@ enum { kParamI =8, kParamJ =9, kParamK =10, - kParamL =11, - kParamM =12, - kParamN =13, - kParamO =14, - kParamP =15, - kParamQ =16, - kNumParameters = 17 + kNumParameters = 11 }; // -const int dscBuf = 256; const int kNumPrograms = 0; const int kNumInputs = 2; @@ -80,12 +73,6 @@ private: float I; float J; float K; - float L; - float M; - float N; - float O; - float P; - float Q; enum { biq_freq, @@ -139,33 +126,25 @@ private: 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; diff --git a/plugins/LinuxVST/src/ConsoleX2Buss/ConsoleX2BussProc.cpp b/plugins/LinuxVST/src/ConsoleX2Buss/ConsoleX2BussProc.cpp index 158b71aa1..ccc0d1399 100755 --- a/plugins/LinuxVST/src/ConsoleX2Buss/ConsoleX2BussProc.cpp +++ b/plugins/LinuxVST/src/ConsoleX2Buss/ConsoleX2BussProc.cpp @@ -18,6 +18,8 @@ void ConsoleX2Buss::processReplacing(float **inputs, float **outputs, VstInt32 s 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 = (A-0.5)*2.0; trebleGain = 1.0+(trebleGain*fabs(trebleGain)*fabs(trebleGain)); @@ -44,8 +46,8 @@ void ConsoleX2Buss::processReplacing(float **inputs, float **outputs, VstInt32 s highC[biq_freq] = highB[biq_freq] = highA[biq_freq] = fmax(fmin(highA[biq_freq],0.4999),0.00025); double highFreq = pow(highF,3)*20000.0; double omega = 2.0*M_PI*(highFreq/getSampleRate()); - double K = 2.0-cos(omega); - double highCoef = -sqrt((K*K)-1.0)+K; + double biqK = 2.0-cos(omega); + double highCoef = -sqrt((biqK*biqK)-1.0)+biqK; highA[biq_reso] = 2.24697960 * highQ; highB[biq_reso] = 0.80193774 * highQ; highC[biq_reso] = 0.55495813 * highQ; @@ -54,8 +56,8 @@ void ConsoleX2Buss::processReplacing(float **inputs, float **outputs, VstInt32 s midC[biq_freq] = midB[biq_freq] = midA[biq_freq] = fmax(fmin(midA[biq_freq],0.4999),0.00025); double midFreq = pow(midF,3)*20000.0; omega = 2.0*M_PI*(midFreq/getSampleRate()); - K = 2.0-cos(omega); - double midCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double midCoef = -sqrt((biqK*biqK)-1.0)+biqK; midA[biq_reso] = 2.24697960 * midQ; midB[biq_reso] = 0.80193774 * midQ; midC[biq_reso] = 0.55495813 * midQ; @@ -64,97 +66,88 @@ void ConsoleX2Buss::processReplacing(float **inputs, float **outputs, VstInt32 s lowC[biq_freq] = lowB[biq_freq] = lowA[biq_freq] = fmax(fmin(lowA[biq_freq],0.4999),0.00025); double lowFreq = pow(bassF,3)*20000.0; omega = 2.0*M_PI*(lowFreq/getSampleRate()); - K = 2.0-cos(omega); - double lowCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double lowCoef = -sqrt((biqK*biqK)-1.0)+biqK; lowA[biq_reso] = 2.24697960 * lowQ; lowB[biq_reso] = 0.80193774 * lowQ; lowC[biq_reso] = 0.55495813 * lowQ; - K = tan(M_PI * highA[biq_freq]); - double norm = 1.0 / (1.0 + K / highA[biq_reso] + K * K); - highA[biq_a0] = K * K * norm; + biqK = tan(M_PI * highA[biq_freq]); + double norm = 1.0 / (1.0 + biqK / highA[biq_reso] + biqK * biqK); + highA[biq_a0] = biqK * biqK * norm; highA[biq_a1] = 2.0 * highA[biq_a0]; highA[biq_a2] = highA[biq_a0]; - highA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highA[biq_b2] = (1.0 - K / highA[biq_reso] + K * K) * norm; - K = tan(M_PI * highB[biq_freq]); - norm = 1.0 / (1.0 + K / highB[biq_reso] + K * K); - highB[biq_a0] = K * K * norm; + highA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highA[biq_b2] = (1.0 - biqK / highA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highB[biq_freq]); + norm = 1.0 / (1.0 + biqK / highB[biq_reso] + biqK * biqK); + highB[biq_a0] = biqK * biqK * norm; highB[biq_a1] = 2.0 * highB[biq_a0]; highB[biq_a2] = highB[biq_a0]; - highB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highB[biq_b2] = (1.0 - K / highB[biq_reso] + K * K) * norm; - K = tan(M_PI * highC[biq_freq]); - norm = 1.0 / (1.0 + K / highC[biq_reso] + K * K); - highC[biq_a0] = K * K * norm; + highB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highB[biq_b2] = (1.0 - biqK / highB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highC[biq_freq]); + norm = 1.0 / (1.0 + biqK / highC[biq_reso] + biqK * biqK); + highC[biq_a0] = biqK * biqK * norm; highC[biq_a1] = 2.0 * highC[biq_a0]; highC[biq_a2] = highC[biq_a0]; - highC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highC[biq_b2] = (1.0 - K / highC[biq_reso] + K * K) * norm; + highC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highC[biq_b2] = (1.0 - biqK / highC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * midA[biq_freq]); - norm = 1.0 / (1.0 + K / midA[biq_reso] + K * K); - midA[biq_a0] = K * K * norm; + biqK = tan(M_PI * midA[biq_freq]); + norm = 1.0 / (1.0 + biqK / midA[biq_reso] + biqK * biqK); + midA[biq_a0] = biqK * biqK * norm; midA[biq_a1] = 2.0 * midA[biq_a0]; midA[biq_a2] = midA[biq_a0]; - midA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midA[biq_b2] = (1.0 - K / midA[biq_reso] + K * K) * norm; - K = tan(M_PI * midB[biq_freq]); - norm = 1.0 / (1.0 + K / midB[biq_reso] + K * K); - midB[biq_a0] = K * K * norm; + midA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midA[biq_b2] = (1.0 - biqK / midA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midB[biq_freq]); + norm = 1.0 / (1.0 + biqK / midB[biq_reso] + biqK * biqK); + midB[biq_a0] = biqK * biqK * norm; midB[biq_a1] = 2.0 * midB[biq_a0]; midB[biq_a2] = midB[biq_a0]; - midB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midB[biq_b2] = (1.0 - K / midB[biq_reso] + K * K) * norm; - K = tan(M_PI * midC[biq_freq]); - norm = 1.0 / (1.0 + K / midC[biq_reso] + K * K); - midC[biq_a0] = K * K * norm; + midB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midB[biq_b2] = (1.0 - biqK / midB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midC[biq_freq]); + norm = 1.0 / (1.0 + biqK / midC[biq_reso] + biqK * biqK); + midC[biq_a0] = biqK * biqK * norm; midC[biq_a1] = 2.0 * midC[biq_a0]; midC[biq_a2] = midC[biq_a0]; - midC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midC[biq_b2] = (1.0 - K / midC[biq_reso] + K * K) * norm; + midC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midC[biq_b2] = (1.0 - biqK / midC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * lowA[biq_freq]); - norm = 1.0 / (1.0 + K / lowA[biq_reso] + K * K); - lowA[biq_a0] = K * K * norm; + biqK = tan(M_PI * lowA[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowA[biq_reso] + biqK * biqK); + lowA[biq_a0] = biqK * biqK * norm; lowA[biq_a1] = 2.0 * lowA[biq_a0]; lowA[biq_a2] = lowA[biq_a0]; - lowA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowA[biq_b2] = (1.0 - K / lowA[biq_reso] + K * K) * norm; - K = tan(M_PI * lowB[biq_freq]); - norm = 1.0 / (1.0 + K / lowB[biq_reso] + K * K); - lowB[biq_a0] = K * K * norm; + lowA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowA[biq_b2] = (1.0 - biqK / lowA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowB[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowB[biq_reso] + biqK * biqK); + lowB[biq_a0] = biqK * biqK * norm; lowB[biq_a1] = 2.0 * lowB[biq_a0]; lowB[biq_a2] = lowB[biq_a0]; - lowB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowB[biq_b2] = (1.0 - K / lowB[biq_reso] + K * K) * norm; - K = tan(M_PI * lowC[biq_freq]); - norm = 1.0 / (1.0 + K / lowC[biq_reso] + K * K); - lowC[biq_a0] = K * K * norm; + lowB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowB[biq_b2] = (1.0 - biqK / lowB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowC[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowC[biq_reso] + biqK * biqK); + lowC[biq_a0] = biqK * biqK * norm; lowC[biq_a1] = 2.0 * lowC[biq_a0]; lowC[biq_a2] = lowC[biq_a0]; - lowC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowC[biq_b2] = (1.0 - K / lowC[biq_reso] + K * K) * norm; + lowC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowC[biq_b2] = (1.0 - biqK / lowC[biq_reso] + biqK * biqK) * norm; //SmoothEQ2 double bezCThresh = pow(1.0-I, 6.0) * 8.0; - double bezRez = pow(1.0-J, 8.0) / overallscale; - double sloRez = pow(1.0-K,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(L,4.0),sqrt(bezCThresh+1.0)); + double bezRez = pow(1.0-I, 12.360679774997898) / overallscale; + double sloRez = pow(1.0-I,10.0) / overallscale; + sloRez = fmin(fmax(sloRez,0.00001),1.0); + bezRez = fmin(fmax(bezRez,0.00001),1.0); //Dynamics2 - lFreqA = lFreqB; lFreqB = pow(fmax(M,0.002),overallscale); //the lowpass - hFreqA = hFreqB; hFreqB = pow(N,overallscale+2.0); //the highpass - //Cabs2 - - double moreDiscontinuity = fmax(pow(O*0.42,3.0)*overallscale,0.00001); - double moreTapeHack = (O*1.4152481)+1.2; - //Discontapeity - - panA = panB; panB = P*1.57079633; - inTrimA = inTrimB; inTrimB = Q*2.0; + panA = panB; panB = J*1.57079633; + inTrimA = inTrimB; inTrimB = K*2.0; //Console while (--sampleFrames >= 0) @@ -310,9 +303,6 @@ void ConsoleX2Buss::processReplacing(float **inputs, float **outputs, VstInt32 s //fourth stage of three crossovers is the exponential filters //SmoothEQ2 - if (fmax(fabs(inputSampleL),fabs(inputSampleR)) > gate+(sloRez*bezGate)) bezGate = ((bezGate*overallscale*3.0)+3.0)*(0.25/overallscale); - else bezGate = fmax(0.0, bezGate-(sloRez*sloRez)); - if (bezCThresh > 0.0) { inputSampleL *= ((bezCThresh*0.5)+1.0); inputSampleR *= ((bezCThresh*0.5)+1.0); @@ -325,21 +315,14 @@ void ConsoleX2Buss::processReplacing(float **inputs, float **outputs, VstInt32 s if (bezCompF[bez_cycle] > 1.0) { bezCompF[bez_cycle] -= 1.0; - - if (bezMaxF < gate) bezCompF[bez_SampL] = bezMaxF/gate; //note: SampL is a control voltage, - if (bezCompF[bez_SampL] 1.0) { bezCompS[bez_cycle] -= 1.0; - - if (bezCompS[bez_SampL] 0.0) CBAMax = 1.0/CBAMax; CBAFade = ((CBASR*-CBAMax)+(CBAFR*CBAMax)+1.0)*0.5; if (bezCThresh > 0.0) inputSampleR *= 1.0-(fmin(((CBASR*(1.0-CBAFade))+(CBAFR*CBAFade))*bezCThresh,1.0)); - - if (bezGate < 1.0 && gate > 0.0) {inputSampleL *= bezGate; inputSampleR *= bezGate;} //Dynamics2 const double temp = (double)sampleFrames/inFramesToProcess; - const double hFreq = (hFreqA*temp)+(hFreqB*(1.0-temp)); - if (hFreq > 0.0) { - double lowSampleL = inputSampleL; - double lowSampleR = inputSampleR; - for(int count = 0; count < 21; count++) { - iirHAngleL[count] = (iirHAngleL[count]*(1.0-hFreq))+((lowSampleL-iirHPositionL[count])*hFreq); - lowSampleL = ((iirHPositionL[count]+(iirHAngleL[count]*hFreq))*(1.0-hFreq))+(lowSampleL*hFreq); - iirHPositionL[count] = ((iirHPositionL[count]+(iirHAngleL[count]*hFreq))*(1.0-hFreq))+(lowSampleL*hFreq); - inputSampleL -= (lowSampleL * (1.0/21.0));//left - iirHAngleR[count] = (iirHAngleR[count]*(1.0-hFreq))+((lowSampleR-iirHPositionR[count])*hFreq); - lowSampleR = ((iirHPositionR[count]+(iirHAngleR[count]*hFreq))*(1.0-hFreq))+(lowSampleR*hFreq); - iirHPositionR[count] = ((iirHPositionR[count]+(iirHAngleR[count]*hFreq))*(1.0-hFreq))+(lowSampleR*hFreq); - inputSampleR -= (lowSampleR * (1.0/21.0));//right - } //the highpass - hBypass = false; - } else { - if (!hBypass) { - hBypass = true; - for(int count = 0; count < 22; count++) { - iirHPositionL[count] = 0.0; - iirHAngleL[count] = 0.0; - iirHPositionR[count] = 0.0; - iirHAngleR[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++) { - iirLAngleL[count] = (iirLAngleL[count]*(1.0-lFreq))+((inputSampleL-iirLPositionL[count])*lFreq); - inputSampleL = ((iirLPositionL[count]+(iirLAngleL[count]*lFreq))*(1.0-lFreq))+(inputSampleL*lFreq); - iirLPositionL[count] = ((iirLPositionL[count]+(iirLAngleL[count]*lFreq))*(1.0-lFreq))+(inputSampleL*lFreq);//left - iirLAngleR[count] = (iirLAngleR[count]*(1.0-lFreq))+((inputSampleR-iirLPositionR[count])*lFreq); - inputSampleR = ((iirLPositionR[count]+(iirLAngleR[count]*lFreq))*(1.0-lFreq))+(inputSampleR*lFreq); - iirLPositionR[count] = ((iirLPositionR[count]+(iirLAngleR[count]*lFreq))*(1.0-lFreq))+(inputSampleR*lFreq);//right - } //the lowpass - lBypass = false; - } else { - if (!lBypass) { - lBypass = true; - for(int count = 0; count < 14; count++) { - iirLPositionL[count] = 0.0; - iirLAngleL[count] = 0.0; - iirLPositionR[count] = 0.0; - iirLAngleR[count] = 0.0; - } - } //blank out lowpass if just switched off - } - //Cabs2 + 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; - //begin Discontinuity section - inputSampleL *= moreDiscontinuity; - dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5); - dBaPosL = fmin(dBaPosL,1.0); - int dBdly = floor(dBaPosL*dscBuf); - double dBi = (dBaPosL*dscBuf)-dBdly; - inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi; - dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0; - inputSampleL /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleL = fmax(fmin(inputSampleL*moreTapeHack,2.305929007734908),-2.305929007734908); + 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); @@ -458,21 +425,11 @@ void ConsoleX2Buss::processReplacing(float **inputs, float **outputs, VstInt32 s empower *= addtwo; //eleventh inputSampleL -= (empower / 9979200.0f); //this is a degenerate form of a Taylor Series to approximate sin() - inputSampleL *= 0.9239; + inputSampleL *= 0.92; //end TapeHack section - //begin Discontinuity section - inputSampleR *= moreDiscontinuity; - dBaR[dBaXR] = inputSampleR; dBaPosR *= 0.5; dBaPosR += fabs((inputSampleR*((inputSampleR*0.25)-0.5))*0.5); - dBaPosR = fmin(dBaPosR,1.0); - dBdly = floor(dBaPosR*dscBuf); - dBi = (dBaPosR*dscBuf)-dBdly; - inputSampleR = dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleR += dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*dBi; - dBaXR++; if (dBaXR < 0 || dBaXR >= dscBuf) dBaXR = 0; - inputSampleR /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleR = fmax(fmin(inputSampleR*moreTapeHack,2.305929007734908),-2.305929007734908); + //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); @@ -485,22 +442,8 @@ void ConsoleX2Buss::processReplacing(float **inputs, float **outputs, VstInt32 s empower *= addtwo; //eleventh inputSampleR -= (empower / 9979200.0f); //this is a degenerate form of a Taylor Series to approximate sin() - inputSampleR *= 0.9239; + inputSampleR *= 0.92; //end TapeHack section - //Discontapeity - - 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 //begin 32 bit stereo floating point dither int expon; frexpf((float)inputSampleL, &expon); @@ -532,6 +475,8 @@ void ConsoleX2Buss::processDoubleReplacing(double **inputs, double **outputs, Vs 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 = (A-0.5)*2.0; trebleGain = 1.0+(trebleGain*fabs(trebleGain)*fabs(trebleGain)); @@ -558,8 +503,8 @@ void ConsoleX2Buss::processDoubleReplacing(double **inputs, double **outputs, Vs highC[biq_freq] = highB[biq_freq] = highA[biq_freq] = fmax(fmin(highA[biq_freq],0.4999),0.00025); double highFreq = pow(highF,3)*20000.0; double omega = 2.0*M_PI*(highFreq/getSampleRate()); - double K = 2.0-cos(omega); - double highCoef = -sqrt((K*K)-1.0)+K; + double biqK = 2.0-cos(omega); + double highCoef = -sqrt((biqK*biqK)-1.0)+biqK; highA[biq_reso] = 2.24697960 * highQ; highB[biq_reso] = 0.80193774 * highQ; highC[biq_reso] = 0.55495813 * highQ; @@ -568,8 +513,8 @@ void ConsoleX2Buss::processDoubleReplacing(double **inputs, double **outputs, Vs midC[biq_freq] = midB[biq_freq] = midA[biq_freq] = fmax(fmin(midA[biq_freq],0.4999),0.00025); double midFreq = pow(midF,3)*20000.0; omega = 2.0*M_PI*(midFreq/getSampleRate()); - K = 2.0-cos(omega); - double midCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double midCoef = -sqrt((biqK*biqK)-1.0)+biqK; midA[biq_reso] = 2.24697960 * midQ; midB[biq_reso] = 0.80193774 * midQ; midC[biq_reso] = 0.55495813 * midQ; @@ -578,97 +523,88 @@ void ConsoleX2Buss::processDoubleReplacing(double **inputs, double **outputs, Vs lowC[biq_freq] = lowB[biq_freq] = lowA[biq_freq] = fmax(fmin(lowA[biq_freq],0.4999),0.00025); double lowFreq = pow(bassF,3)*20000.0; omega = 2.0*M_PI*(lowFreq/getSampleRate()); - K = 2.0-cos(omega); - double lowCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double lowCoef = -sqrt((biqK*biqK)-1.0)+biqK; lowA[biq_reso] = 2.24697960 * lowQ; lowB[biq_reso] = 0.80193774 * lowQ; lowC[biq_reso] = 0.55495813 * lowQ; - K = tan(M_PI * highA[biq_freq]); - double norm = 1.0 / (1.0 + K / highA[biq_reso] + K * K); - highA[biq_a0] = K * K * norm; + biqK = tan(M_PI * highA[biq_freq]); + double norm = 1.0 / (1.0 + biqK / highA[biq_reso] + biqK * biqK); + highA[biq_a0] = biqK * biqK * norm; highA[biq_a1] = 2.0 * highA[biq_a0]; highA[biq_a2] = highA[biq_a0]; - highA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highA[biq_b2] = (1.0 - K / highA[biq_reso] + K * K) * norm; - K = tan(M_PI * highB[biq_freq]); - norm = 1.0 / (1.0 + K / highB[biq_reso] + K * K); - highB[biq_a0] = K * K * norm; + highA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highA[biq_b2] = (1.0 - biqK / highA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highB[biq_freq]); + norm = 1.0 / (1.0 + biqK / highB[biq_reso] + biqK * biqK); + highB[biq_a0] = biqK * biqK * norm; highB[biq_a1] = 2.0 * highB[biq_a0]; highB[biq_a2] = highB[biq_a0]; - highB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highB[biq_b2] = (1.0 - K / highB[biq_reso] + K * K) * norm; - K = tan(M_PI * highC[biq_freq]); - norm = 1.0 / (1.0 + K / highC[biq_reso] + K * K); - highC[biq_a0] = K * K * norm; + highB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highB[biq_b2] = (1.0 - biqK / highB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highC[biq_freq]); + norm = 1.0 / (1.0 + biqK / highC[biq_reso] + biqK * biqK); + highC[biq_a0] = biqK * biqK * norm; highC[biq_a1] = 2.0 * highC[biq_a0]; highC[biq_a2] = highC[biq_a0]; - highC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highC[biq_b2] = (1.0 - K / highC[biq_reso] + K * K) * norm; + highC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highC[biq_b2] = (1.0 - biqK / highC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * midA[biq_freq]); - norm = 1.0 / (1.0 + K / midA[biq_reso] + K * K); - midA[biq_a0] = K * K * norm; + biqK = tan(M_PI * midA[biq_freq]); + norm = 1.0 / (1.0 + biqK / midA[biq_reso] + biqK * biqK); + midA[biq_a0] = biqK * biqK * norm; midA[biq_a1] = 2.0 * midA[biq_a0]; midA[biq_a2] = midA[biq_a0]; - midA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midA[biq_b2] = (1.0 - K / midA[biq_reso] + K * K) * norm; - K = tan(M_PI * midB[biq_freq]); - norm = 1.0 / (1.0 + K / midB[biq_reso] + K * K); - midB[biq_a0] = K * K * norm; + midA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midA[biq_b2] = (1.0 - biqK / midA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midB[biq_freq]); + norm = 1.0 / (1.0 + biqK / midB[biq_reso] + biqK * biqK); + midB[biq_a0] = biqK * biqK * norm; midB[biq_a1] = 2.0 * midB[biq_a0]; midB[biq_a2] = midB[biq_a0]; - midB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midB[biq_b2] = (1.0 - K / midB[biq_reso] + K * K) * norm; - K = tan(M_PI * midC[biq_freq]); - norm = 1.0 / (1.0 + K / midC[biq_reso] + K * K); - midC[biq_a0] = K * K * norm; + midB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midB[biq_b2] = (1.0 - biqK / midB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midC[biq_freq]); + norm = 1.0 / (1.0 + biqK / midC[biq_reso] + biqK * biqK); + midC[biq_a0] = biqK * biqK * norm; midC[biq_a1] = 2.0 * midC[biq_a0]; midC[biq_a2] = midC[biq_a0]; - midC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midC[biq_b2] = (1.0 - K / midC[biq_reso] + K * K) * norm; + midC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midC[biq_b2] = (1.0 - biqK / midC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * lowA[biq_freq]); - norm = 1.0 / (1.0 + K / lowA[biq_reso] + K * K); - lowA[biq_a0] = K * K * norm; + biqK = tan(M_PI * lowA[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowA[biq_reso] + biqK * biqK); + lowA[biq_a0] = biqK * biqK * norm; lowA[biq_a1] = 2.0 * lowA[biq_a0]; lowA[biq_a2] = lowA[biq_a0]; - lowA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowA[biq_b2] = (1.0 - K / lowA[biq_reso] + K * K) * norm; - K = tan(M_PI * lowB[biq_freq]); - norm = 1.0 / (1.0 + K / lowB[biq_reso] + K * K); - lowB[biq_a0] = K * K * norm; + lowA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowA[biq_b2] = (1.0 - biqK / lowA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowB[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowB[biq_reso] + biqK * biqK); + lowB[biq_a0] = biqK * biqK * norm; lowB[biq_a1] = 2.0 * lowB[biq_a0]; lowB[biq_a2] = lowB[biq_a0]; - lowB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowB[biq_b2] = (1.0 - K / lowB[biq_reso] + K * K) * norm; - K = tan(M_PI * lowC[biq_freq]); - norm = 1.0 / (1.0 + K / lowC[biq_reso] + K * K); - lowC[biq_a0] = K * K * norm; + lowB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowB[biq_b2] = (1.0 - biqK / lowB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowC[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowC[biq_reso] + biqK * biqK); + lowC[biq_a0] = biqK * biqK * norm; lowC[biq_a1] = 2.0 * lowC[biq_a0]; lowC[biq_a2] = lowC[biq_a0]; - lowC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowC[biq_b2] = (1.0 - K / lowC[biq_reso] + K * K) * norm; + lowC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowC[biq_b2] = (1.0 - biqK / lowC[biq_reso] + biqK * biqK) * norm; //SmoothEQ2 double bezCThresh = pow(1.0-I, 6.0) * 8.0; - double bezRez = pow(1.0-J, 8.0) / overallscale; - double sloRez = pow(1.0-K,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(L,4.0),sqrt(bezCThresh+1.0)); + double bezRez = pow(1.0-I, 12.360679774997898) / overallscale; + double sloRez = pow(1.0-I,10.0) / overallscale; + sloRez = fmin(fmax(sloRez,0.00001),1.0); + bezRez = fmin(fmax(bezRez,0.00001),1.0); //Dynamics2 - lFreqA = lFreqB; lFreqB = pow(fmax(M,0.002),overallscale); //the lowpass - hFreqA = hFreqB; hFreqB = pow(N,overallscale+2.0); //the highpass - //Cabs2 - - double moreDiscontinuity = fmax(pow(O*0.42,3.0)*overallscale,0.00001); - double moreTapeHack = (O*1.4152481)+1.2; - //Discontapeity - - panA = panB; panB = P*1.57079633; - inTrimA = inTrimB; inTrimB = Q*2.0; + panA = panB; panB = J*1.57079633; + inTrimA = inTrimB; inTrimB = K*2.0; //Console while (--sampleFrames >= 0) @@ -824,9 +760,6 @@ void ConsoleX2Buss::processDoubleReplacing(double **inputs, double **outputs, Vs //fourth stage of three crossovers is the exponential filters //SmoothEQ2 - if (fmax(fabs(inputSampleL),fabs(inputSampleR)) > gate+(sloRez*bezGate)) bezGate = ((bezGate*overallscale*3.0)+3.0)*(0.25/overallscale); - else bezGate = fmax(0.0, bezGate-(sloRez*sloRez)); - if (bezCThresh > 0.0) { inputSampleL *= ((bezCThresh*0.5)+1.0); inputSampleR *= ((bezCThresh*0.5)+1.0); @@ -839,21 +772,14 @@ void ConsoleX2Buss::processDoubleReplacing(double **inputs, double **outputs, Vs if (bezCompF[bez_cycle] > 1.0) { bezCompF[bez_cycle] -= 1.0; - - if (bezMaxF < gate) bezCompF[bez_SampL] = bezMaxF/gate; //note: SampL is a control voltage, - if (bezCompF[bez_SampL] 1.0) { bezCompS[bez_cycle] -= 1.0; - - if (bezCompS[bez_SampL] 0.0) CBAMax = 1.0/CBAMax; CBAFade = ((CBASR*-CBAMax)+(CBAFR*CBAMax)+1.0)*0.5; if (bezCThresh > 0.0) inputSampleR *= 1.0-(fmin(((CBASR*(1.0-CBAFade))+(CBAFR*CBAFade))*bezCThresh,1.0)); - - if (bezGate < 1.0 && gate > 0.0) {inputSampleL *= bezGate; inputSampleR *= bezGate;} //Dynamics2 const double temp = (double)sampleFrames/inFramesToProcess; - const double hFreq = (hFreqA*temp)+(hFreqB*(1.0-temp)); - if (hFreq > 0.0) { - double lowSampleL = inputSampleL; - double lowSampleR = inputSampleR; - for(int count = 0; count < 21; count++) { - iirHAngleL[count] = (iirHAngleL[count]*(1.0-hFreq))+((lowSampleL-iirHPositionL[count])*hFreq); - lowSampleL = ((iirHPositionL[count]+(iirHAngleL[count]*hFreq))*(1.0-hFreq))+(lowSampleL*hFreq); - iirHPositionL[count] = ((iirHPositionL[count]+(iirHAngleL[count]*hFreq))*(1.0-hFreq))+(lowSampleL*hFreq); - inputSampleL -= (lowSampleL * (1.0/21.0));//left - iirHAngleR[count] = (iirHAngleR[count]*(1.0-hFreq))+((lowSampleR-iirHPositionR[count])*hFreq); - lowSampleR = ((iirHPositionR[count]+(iirHAngleR[count]*hFreq))*(1.0-hFreq))+(lowSampleR*hFreq); - iirHPositionR[count] = ((iirHPositionR[count]+(iirHAngleR[count]*hFreq))*(1.0-hFreq))+(lowSampleR*hFreq); - inputSampleR -= (lowSampleR * (1.0/21.0));//right - } //the highpass - hBypass = false; - } else { - if (!hBypass) { - hBypass = true; - for(int count = 0; count < 22; count++) { - iirHPositionL[count] = 0.0; - iirHAngleL[count] = 0.0; - iirHPositionR[count] = 0.0; - iirHAngleR[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++) { - iirLAngleL[count] = (iirLAngleL[count]*(1.0-lFreq))+((inputSampleL-iirLPositionL[count])*lFreq); - inputSampleL = ((iirLPositionL[count]+(iirLAngleL[count]*lFreq))*(1.0-lFreq))+(inputSampleL*lFreq); - iirLPositionL[count] = ((iirLPositionL[count]+(iirLAngleL[count]*lFreq))*(1.0-lFreq))+(inputSampleL*lFreq);//left - iirLAngleR[count] = (iirLAngleR[count]*(1.0-lFreq))+((inputSampleR-iirLPositionR[count])*lFreq); - inputSampleR = ((iirLPositionR[count]+(iirLAngleR[count]*lFreq))*(1.0-lFreq))+(inputSampleR*lFreq); - iirLPositionR[count] = ((iirLPositionR[count]+(iirLAngleR[count]*lFreq))*(1.0-lFreq))+(inputSampleR*lFreq);//right - } //the lowpass - lBypass = false; - } else { - if (!lBypass) { - lBypass = true; - for(int count = 0; count < 14; count++) { - iirLPositionL[count] = 0.0; - iirLAngleL[count] = 0.0; - iirLPositionR[count] = 0.0; - iirLAngleR[count] = 0.0; - } - } //blank out lowpass if just switched off - } - //Cabs2 + 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; - //begin Discontinuity section - inputSampleL *= moreDiscontinuity; - dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5); - dBaPosL = fmin(dBaPosL,1.0); - int dBdly = floor(dBaPosL*dscBuf); - double dBi = (dBaPosL*dscBuf)-dBdly; - inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi; - dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0; - inputSampleL /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleL = fmax(fmin(inputSampleL*moreTapeHack,2.305929007734908),-2.305929007734908); + 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); @@ -972,21 +882,11 @@ void ConsoleX2Buss::processDoubleReplacing(double **inputs, double **outputs, Vs empower *= addtwo; //eleventh inputSampleL -= (empower / 9979200.0f); //this is a degenerate form of a Taylor Series to approximate sin() - inputSampleL *= 0.9239; + inputSampleL *= 0.92; //end TapeHack section - //begin Discontinuity section - inputSampleR *= moreDiscontinuity; - dBaR[dBaXR] = inputSampleR; dBaPosR *= 0.5; dBaPosR += fabs((inputSampleR*((inputSampleR*0.25)-0.5))*0.5); - dBaPosR = fmin(dBaPosR,1.0); - dBdly = floor(dBaPosR*dscBuf); - dBi = (dBaPosR*dscBuf)-dBdly; - inputSampleR = dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleR += dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*dBi; - dBaXR++; if (dBaXR < 0 || dBaXR >= dscBuf) dBaXR = 0; - inputSampleR /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleR = fmax(fmin(inputSampleR*moreTapeHack,2.305929007734908),-2.305929007734908); + //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); @@ -999,23 +899,10 @@ void ConsoleX2Buss::processDoubleReplacing(double **inputs, double **outputs, Vs empower *= addtwo; //eleventh inputSampleR -= (empower / 9979200.0f); //this is a degenerate form of a Taylor Series to approximate sin() - inputSampleR *= 0.9239; + inputSampleR *= 0.92; //end TapeHack section //Discontapeity - 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 - //begin 64 bit stereo floating point dither //int expon; frexp((double)inputSampleL, &expon); fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5; diff --git a/plugins/LinuxVST/src/ConsoleX2Channel/ConsoleX2Channel.cpp b/plugins/LinuxVST/src/ConsoleX2Channel/ConsoleX2Channel.cpp index 3f8c92558..1d253c15a 100755 --- a/plugins/LinuxVST/src/ConsoleX2Channel/ConsoleX2Channel.cpp +++ b/plugins/LinuxVST/src/ConsoleX2Channel/ConsoleX2Channel.cpp @@ -12,23 +12,24 @@ AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new C ConsoleX2Channel::ConsoleX2Channel(audioMasterCallback audioMaster) : AudioEffectX(audioMaster, kNumPrograms, kNumParameters) { - A = 0.5; - B = 0.5; + A = 0.25; + B = 0.0; C = 0.5; D = 0.5; E = 0.5; F = 0.5; G = 0.5; H = 0.5; - I = 1.0; + I = 0.5; J = 0.5; - K = 0.5; - L = 0.0; - M = 1.0; + K = 1.0; + L = 0.5; + M = 0.5; N = 0.0; - O = 0.0; - P = 0.5; + O = 1.0; + P = 0.0; Q = 0.5; + R = 0.5; for (int x = 0; x < biq_total; x++) { highA[x] = 0.0; @@ -81,6 +82,16 @@ ConsoleX2Channel::ConsoleX2Channel(audioMasterCallback audioMaster) : 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; @@ -136,6 +147,7 @@ VstInt32 ConsoleX2Channel::getChunk (void** data, bool isPreset) chunkData[14] = O; chunkData[15] = P; chunkData[16] = Q; + chunkData[17] = R; /* 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. */ @@ -164,6 +176,7 @@ VstInt32 ConsoleX2Channel::setChunk (void* data, VstInt32 byteSize, bool isPrese O = pinParameter(chunkData[14]); P = pinParameter(chunkData[15]); Q = pinParameter(chunkData[16]); + R = pinParameter(chunkData[17]); /* We're ignoring byteSize as we found it to be a filthy liar */ /* calculate any other fields you need here - you could copy in @@ -190,6 +203,7 @@ void ConsoleX2Channel::setParameter(VstInt32 index, float value) { case kParamO: O = value; break; case kParamP: P = value; break; case kParamQ: Q = value; break; + case kParamR: R = value; break; default: throw; // unknown parameter, shouldn't happen! } } @@ -213,36 +227,38 @@ float ConsoleX2Channel::getParameter(VstInt32 index) { case kParamO: return O; break; case kParamP: return P; break; case kParamQ: return Q; break; + case kParamR: return R; 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 ConsoleX2Channel::getParameterName(VstInt32 index, char *text) { switch (index) { - case kParamA: vst_strncpy (text, "High", kVstMaxParamStrLen); break; - case kParamB: vst_strncpy (text, "HMid", kVstMaxParamStrLen); break; - case kParamC: vst_strncpy (text, "LMid", kVstMaxParamStrLen); break; - case kParamD: vst_strncpy (text, "Bass", kVstMaxParamStrLen); break; - case kParamE: vst_strncpy (text, "HighF", kVstMaxParamStrLen); break; - case kParamF: vst_strncpy (text, "HMidF", kVstMaxParamStrLen); break; - case kParamG: vst_strncpy (text, "LMidF", kVstMaxParamStrLen); break; - case kParamH: vst_strncpy (text, "BassF", kVstMaxParamStrLen); break; - case kParamI: vst_strncpy (text, "Thresh", kVstMaxParamStrLen); break; - case kParamJ: vst_strncpy (text, "Attack", kVstMaxParamStrLen); break; - case kParamK: vst_strncpy (text, "Release", kVstMaxParamStrLen); break; - case kParamL: vst_strncpy (text, "Gate", kVstMaxParamStrLen); break; - case kParamM: vst_strncpy (text, "Lowpass", kVstMaxParamStrLen); break; - case kParamN: vst_strncpy (text, "Hipass", kVstMaxParamStrLen); break; - case kParamO: vst_strncpy (text, "More", kVstMaxParamStrLen); break; - case kParamP: vst_strncpy (text, "Pan", kVstMaxParamStrLen); break; - case kParamQ: vst_strncpy (text, "Fader", kVstMaxParamStrLen); break; + case kParamA: vst_strncpy (text, "Trim", kVstMaxParamStrLen); break; + case kParamB: vst_strncpy (text, "More", kVstMaxParamStrLen); break; + case kParamC: vst_strncpy (text, "High", kVstMaxParamStrLen); break; + case kParamD: vst_strncpy (text, "HMid", kVstMaxParamStrLen); break; + case kParamE: vst_strncpy (text, "LMid", kVstMaxParamStrLen); break; + case kParamF: vst_strncpy (text, "Bass", kVstMaxParamStrLen); break; + case kParamG: vst_strncpy (text, "HighF", kVstMaxParamStrLen); break; + case kParamH: vst_strncpy (text, "HMidF", kVstMaxParamStrLen); break; + case kParamI: vst_strncpy (text, "LMidF", kVstMaxParamStrLen); break; + case kParamJ: vst_strncpy (text, "BassF", kVstMaxParamStrLen); break; + case kParamK: vst_strncpy (text, "Thresh", kVstMaxParamStrLen); break; + case kParamL: vst_strncpy (text, "Attack", kVstMaxParamStrLen); break; + case kParamM: vst_strncpy (text, "Release", kVstMaxParamStrLen); break; + case kParamN: vst_strncpy (text, "Gate", kVstMaxParamStrLen); break; + case kParamO: vst_strncpy (text, "Lowpass", kVstMaxParamStrLen); break; + case kParamP: vst_strncpy (text, "Hipass", kVstMaxParamStrLen); break; + case kParamQ: vst_strncpy (text, "Pan", kVstMaxParamStrLen); break; + case kParamR: vst_strncpy (text, "Fader", kVstMaxParamStrLen); break; default: break; // unknown parameter, shouldn't happen! } //this is our labels for displaying in the VST host } void ConsoleX2Channel::getParameterDisplay(VstInt32 index, char *text) { switch (index) { - case kParamA: float2string (A, text, kVstMaxParamStrLen); break; + case kParamA: int2string ((int)(A*4.0), text, kVstMaxParamStrLen); break; case kParamB: float2string (B, text, kVstMaxParamStrLen); break; case kParamC: float2string (C, text, kVstMaxParamStrLen); break; case kParamD: float2string (D, text, kVstMaxParamStrLen); break; @@ -259,29 +275,31 @@ void ConsoleX2Channel::getParameterDisplay(VstInt32 index, char *text) { case kParamO: float2string (O, text, kVstMaxParamStrLen); break; case kParamP: float2string (P, text, kVstMaxParamStrLen); break; case kParamQ: float2string (Q, text, kVstMaxParamStrLen); break; + case kParamR: float2string (R, text, kVstMaxParamStrLen); break; default: break; // unknown parameter, shouldn't happen! } //this displays the values and handles 'popups' where it's discrete choices } void ConsoleX2Channel::getParameterLabel(VstInt32 index, char *text) { switch (index) { - case kParamA: vst_strncpy (text, "eq", kVstMaxParamStrLen); break; + case kParamA: vst_strncpy (text, "", kVstMaxParamStrLen); break; case kParamB: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamC: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamC: vst_strncpy (text, "eq", kVstMaxParamStrLen); break; case kParamD: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamE: vst_strncpy (text, "freq", kVstMaxParamStrLen); break; + case kParamE: vst_strncpy (text, "", kVstMaxParamStrLen); break; case kParamF: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamG: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamG: vst_strncpy (text, "freq", kVstMaxParamStrLen); break; case kParamH: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamI: vst_strncpy (text, "dyn", kVstMaxParamStrLen); break; + case kParamI: vst_strncpy (text, "", kVstMaxParamStrLen); break; case kParamJ: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamK: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamK: vst_strncpy (text, "dyn", kVstMaxParamStrLen); break; case kParamL: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamM: vst_strncpy (text, "fltr", kVstMaxParamStrLen); break; + case kParamM: vst_strncpy (text, "", kVstMaxParamStrLen); break; case kParamN: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamO: vst_strncpy (text, "+", kVstMaxParamStrLen); break; + case kParamO: vst_strncpy (text, "fltr", kVstMaxParamStrLen); break; case kParamP: vst_strncpy (text, "", kVstMaxParamStrLen); break; case kParamQ: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamR: vst_strncpy (text, "", kVstMaxParamStrLen); break; default: break; // unknown parameter, shouldn't happen! } } diff --git a/plugins/LinuxVST/src/ConsoleX2Channel/ConsoleX2Channel.h b/plugins/LinuxVST/src/ConsoleX2Channel/ConsoleX2Channel.h index aac04efbb..7862eafbc 100755 --- a/plugins/LinuxVST/src/ConsoleX2Channel/ConsoleX2Channel.h +++ b/plugins/LinuxVST/src/ConsoleX2Channel/ConsoleX2Channel.h @@ -33,7 +33,8 @@ enum { kParamO =14, kParamP =15, kParamQ =16, - kNumParameters = 17 + kParamR =17, + kNumParameters = 18 }; // const int dscBuf = 256; @@ -86,6 +87,7 @@ private: float O; float P; float Q; + float R; enum { biq_freq, @@ -166,6 +168,23 @@ private: 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; diff --git a/plugins/LinuxVST/src/ConsoleX2Channel/ConsoleX2ChannelProc.cpp b/plugins/LinuxVST/src/ConsoleX2Channel/ConsoleX2ChannelProc.cpp index 69a9b1b55..906bc23a4 100755 --- a/plugins/LinuxVST/src/ConsoleX2Channel/ConsoleX2ChannelProc.cpp +++ b/plugins/LinuxVST/src/ConsoleX2Channel/ConsoleX2ChannelProc.cpp @@ -18,20 +18,33 @@ void ConsoleX2Channel::processReplacing(float **inputs, float **outputs, VstInt3 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 = (A-0.5)*2.0; + double moreTapeHack = (B*2.0)+1.0; + switch ((int)(A*4.0)){ + 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(B*0.42,3.0)*overallscale,0.00001); + //Discontapeity + + double trebleGain = (C-0.5)*2.0; trebleGain = 1.0+(trebleGain*fabs(trebleGain)*fabs(trebleGain)); - double highmidGain = (B-0.5)*2.0; + double highmidGain = (D-0.5)*2.0; highmidGain = 1.0+(highmidGain*fabs(highmidGain)*fabs(highmidGain)); - double lowmidGain = (C-0.5)*2.0; + double lowmidGain = (E-0.5)*2.0; lowmidGain = 1.0+(lowmidGain*fabs(lowmidGain)*fabs(lowmidGain)); - double bassGain = (D-0.5)*2.0; + double bassGain = (F-0.5)*2.0; bassGain = 1.0+(bassGain*fabs(bassGain)*fabs(bassGain)); - double trebleRef = E-0.5; - double highmidRef = F-0.5; - double lowmidRef = G-0.5; - double bassRef = H-0.5; + double trebleRef = G-0.5; + double highmidRef = H-0.5; + double lowmidRef = I-0.5; + double bassRef = J-0.5; double highF = 0.75 + ((trebleRef+trebleRef+trebleRef+highmidRef)*0.125); double bassF = 0.25 + ((lowmidRef+bassRef+bassRef+bassRef)*0.125); double midF = (highF*0.5) + (bassF*0.5) + ((highmidRef+lowmidRef)*0.125); @@ -44,8 +57,8 @@ void ConsoleX2Channel::processReplacing(float **inputs, float **outputs, VstInt3 highC[biq_freq] = highB[biq_freq] = highA[biq_freq] = fmax(fmin(highA[biq_freq],0.4999),0.00025); double highFreq = pow(highF,3)*20000.0; double omega = 2.0*M_PI*(highFreq/getSampleRate()); - double K = 2.0-cos(omega); - double highCoef = -sqrt((K*K)-1.0)+K; + double biqK = 2.0-cos(omega); + double highCoef = -sqrt((biqK*biqK)-1.0)+biqK; highA[biq_reso] = 2.24697960 * highQ; highB[biq_reso] = 0.80193774 * highQ; highC[biq_reso] = 0.55495813 * highQ; @@ -54,8 +67,8 @@ void ConsoleX2Channel::processReplacing(float **inputs, float **outputs, VstInt3 midC[biq_freq] = midB[biq_freq] = midA[biq_freq] = fmax(fmin(midA[biq_freq],0.4999),0.00025); double midFreq = pow(midF,3)*20000.0; omega = 2.0*M_PI*(midFreq/getSampleRate()); - K = 2.0-cos(omega); - double midCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double midCoef = -sqrt((biqK*biqK)-1.0)+biqK; midA[biq_reso] = 2.24697960 * midQ; midB[biq_reso] = 0.80193774 * midQ; midC[biq_reso] = 0.55495813 * midQ; @@ -64,97 +77,93 @@ void ConsoleX2Channel::processReplacing(float **inputs, float **outputs, VstInt3 lowC[biq_freq] = lowB[biq_freq] = lowA[biq_freq] = fmax(fmin(lowA[biq_freq],0.4999),0.00025); double lowFreq = pow(bassF,3)*20000.0; omega = 2.0*M_PI*(lowFreq/getSampleRate()); - K = 2.0-cos(omega); - double lowCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double lowCoef = -sqrt((biqK*biqK)-1.0)+biqK; lowA[biq_reso] = 2.24697960 * lowQ; lowB[biq_reso] = 0.80193774 * lowQ; lowC[biq_reso] = 0.55495813 * lowQ; - K = tan(M_PI * highA[biq_freq]); - double norm = 1.0 / (1.0 + K / highA[biq_reso] + K * K); - highA[biq_a0] = K * K * norm; + biqK = tan(M_PI * highA[biq_freq]); + double norm = 1.0 / (1.0 + biqK / highA[biq_reso] + biqK * biqK); + highA[biq_a0] = biqK * biqK * norm; highA[biq_a1] = 2.0 * highA[biq_a0]; highA[biq_a2] = highA[biq_a0]; - highA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highA[biq_b2] = (1.0 - K / highA[biq_reso] + K * K) * norm; - K = tan(M_PI * highB[biq_freq]); - norm = 1.0 / (1.0 + K / highB[biq_reso] + K * K); - highB[biq_a0] = K * K * norm; + highA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highA[biq_b2] = (1.0 - biqK / highA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highB[biq_freq]); + norm = 1.0 / (1.0 + biqK / highB[biq_reso] + biqK * biqK); + highB[biq_a0] = biqK * biqK * norm; highB[biq_a1] = 2.0 * highB[biq_a0]; highB[biq_a2] = highB[biq_a0]; - highB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highB[biq_b2] = (1.0 - K / highB[biq_reso] + K * K) * norm; - K = tan(M_PI * highC[biq_freq]); - norm = 1.0 / (1.0 + K / highC[biq_reso] + K * K); - highC[biq_a0] = K * K * norm; + highB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highB[biq_b2] = (1.0 - biqK / highB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highC[biq_freq]); + norm = 1.0 / (1.0 + biqK / highC[biq_reso] + biqK * biqK); + highC[biq_a0] = biqK * biqK * norm; highC[biq_a1] = 2.0 * highC[biq_a0]; highC[biq_a2] = highC[biq_a0]; - highC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highC[biq_b2] = (1.0 - K / highC[biq_reso] + K * K) * norm; + highC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highC[biq_b2] = (1.0 - biqK / highC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * midA[biq_freq]); - norm = 1.0 / (1.0 + K / midA[biq_reso] + K * K); - midA[biq_a0] = K * K * norm; + biqK = tan(M_PI * midA[biq_freq]); + norm = 1.0 / (1.0 + biqK / midA[biq_reso] + biqK * biqK); + midA[biq_a0] = biqK * biqK * norm; midA[biq_a1] = 2.0 * midA[biq_a0]; midA[biq_a2] = midA[biq_a0]; - midA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midA[biq_b2] = (1.0 - K / midA[biq_reso] + K * K) * norm; - K = tan(M_PI * midB[biq_freq]); - norm = 1.0 / (1.0 + K / midB[biq_reso] + K * K); - midB[biq_a0] = K * K * norm; + midA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midA[biq_b2] = (1.0 - biqK / midA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midB[biq_freq]); + norm = 1.0 / (1.0 + biqK / midB[biq_reso] + biqK * biqK); + midB[biq_a0] = biqK * biqK * norm; midB[biq_a1] = 2.0 * midB[biq_a0]; midB[biq_a2] = midB[biq_a0]; - midB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midB[biq_b2] = (1.0 - K / midB[biq_reso] + K * K) * norm; - K = tan(M_PI * midC[biq_freq]); - norm = 1.0 / (1.0 + K / midC[biq_reso] + K * K); - midC[biq_a0] = K * K * norm; + midB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midB[biq_b2] = (1.0 - biqK / midB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midC[biq_freq]); + norm = 1.0 / (1.0 + biqK / midC[biq_reso] + biqK * biqK); + midC[biq_a0] = biqK * biqK * norm; midC[biq_a1] = 2.0 * midC[biq_a0]; midC[biq_a2] = midC[biq_a0]; - midC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midC[biq_b2] = (1.0 - K / midC[biq_reso] + K * K) * norm; + midC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midC[biq_b2] = (1.0 - biqK / midC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * lowA[biq_freq]); - norm = 1.0 / (1.0 + K / lowA[biq_reso] + K * K); - lowA[biq_a0] = K * K * norm; + biqK = tan(M_PI * lowA[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowA[biq_reso] + biqK * biqK); + lowA[biq_a0] = biqK * biqK * norm; lowA[biq_a1] = 2.0 * lowA[biq_a0]; lowA[biq_a2] = lowA[biq_a0]; - lowA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowA[biq_b2] = (1.0 - K / lowA[biq_reso] + K * K) * norm; - K = tan(M_PI * lowB[biq_freq]); - norm = 1.0 / (1.0 + K / lowB[biq_reso] + K * K); - lowB[biq_a0] = K * K * norm; + lowA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowA[biq_b2] = (1.0 - biqK / lowA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowB[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowB[biq_reso] + biqK * biqK); + lowB[biq_a0] = biqK * biqK * norm; lowB[biq_a1] = 2.0 * lowB[biq_a0]; lowB[biq_a2] = lowB[biq_a0]; - lowB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowB[biq_b2] = (1.0 - K / lowB[biq_reso] + K * K) * norm; - K = tan(M_PI * lowC[biq_freq]); - norm = 1.0 / (1.0 + K / lowC[biq_reso] + K * K); - lowC[biq_a0] = K * K * norm; + lowB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowB[biq_b2] = (1.0 - biqK / lowB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowC[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowC[biq_reso] + biqK * biqK); + lowC[biq_a0] = biqK * biqK * norm; lowC[biq_a1] = 2.0 * lowC[biq_a0]; lowC[biq_a2] = lowC[biq_a0]; - lowC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowC[biq_b2] = (1.0 - K / lowC[biq_reso] + K * K) * norm; + lowC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowC[biq_b2] = (1.0 - biqK / lowC[biq_reso] + biqK * biqK) * norm; //SmoothEQ2 - double bezCThresh = pow(1.0-I, 6.0) * 8.0; - double bezRez = pow(1.0-J, 8.0) / overallscale; - double sloRez = pow(1.0-K,12.0) / overallscale; + double bezCThresh = pow(1.0-K, 6.0) * 8.0; + double bezRez = pow(1.0-L, 8.0) / overallscale; + double sloRez = pow(1.0-M,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(L,4.0),sqrt(bezCThresh+1.0)); + double gate = pow(pow(N,4.0),sqrt(bezCThresh+1.0)); //Dynamics2 - lFreqA = lFreqB; lFreqB = pow(fmax(M,0.002),overallscale); //the lowpass - hFreqA = hFreqB; hFreqB = pow(N,overallscale+2.0); //the highpass + lFreqA = lFreqB; lFreqB = pow(fmax(O,0.002),overallscale); //the lowpass + hFreqA = hFreqB; hFreqB = pow(P,overallscale+2.0); //the highpass //Cabs2 - double moreDiscontinuity = fmax(pow(O*0.42,3.0)*overallscale,0.00001); - double moreTapeHack = (O*1.4152481)+1.2; - //Discontapeity - - panA = panB; panB = P*1.57079633; - inTrimA = inTrimB; inTrimB = Q*2.0; + panA = panB; panB = Q*1.57079633; + inTrimA = inTrimB; inTrimB = R*2.0; //Console while (--sampleFrames >= 0) @@ -164,6 +173,99 @@ void ConsoleX2Channel::processReplacing(float **inputs, float **outputs, VstInt3 if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17; if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17; + double darkSampleL = inputSampleL; + double darkSampleR = inputSampleR; + if (avgPos > 31) avgPos = 0; + if (spacing > 31) { + avg32L[avgPos] = darkSampleL; avg32R[avgPos] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 32; x++) {darkSampleL += avg32L[x]; darkSampleR += avg32R[x];} + darkSampleL /= 32.0; darkSampleR /= 32.0; + } if (spacing > 15) { + avg16L[avgPos%16] = darkSampleL; avg16R[avgPos%16] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 16; x++) {darkSampleL += avg16L[x]; darkSampleR += avg16R[x];} + darkSampleL /= 16.0; darkSampleR /= 16.0; + } if (spacing > 7) { + avg8L[avgPos%8] = darkSampleL; avg8R[avgPos%8] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 8; x++) {darkSampleL += avg8L[x]; darkSampleR += avg8R[x];} + darkSampleL /= 8.0; darkSampleR /= 8.0; + } if (spacing > 3) { + avg4L[avgPos%4] = darkSampleL; avg4R[avgPos%4] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 4; x++) {darkSampleL += avg4L[x]; darkSampleR += avg4R[x];} + darkSampleL /= 4.0; darkSampleR /= 4.0; + } if (spacing > 1) { + avg2L[avgPos%2] = darkSampleL; avg2R[avgPos%2] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 2; x++) {darkSampleL += avg2L[x]; darkSampleR += avg2R[x];} + darkSampleL /= 2.0; darkSampleR /= 2.0; + } avgPos++; + lastSlewL += fabs(lastSlewpleL-inputSampleL); lastSlewpleL = inputSampleL; + double avgSlewL = fmin(lastSlewL,1.0); + lastSlewL = fmax(lastSlewL*0.78,2.39996322972865332223); + lastSlewR += fabs(lastSlewpleR-inputSampleR); lastSlewpleR = inputSampleR; + double avgSlewR = fmin(lastSlewR,1.0); + lastSlewR = fmax(lastSlewR*0.78,2.39996322972865332223); //look up Golden Angle, it's cool + inputSampleL = (inputSampleL*(1.0-avgSlewL)) + (darkSampleL*avgSlewL); + inputSampleR = (inputSampleR*(1.0-avgSlewR)) + (darkSampleR*avgSlewR); + + //begin Discontinuity section + inputSampleL *= moreTapeHack; + inputSampleL *= moreDiscontinuity; + dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5); + dBaPosL = fmin(dBaPosL,1.0); + int dBdly = floor(dBaPosL*dscBuf); + double dBi = (dBaPosL*dscBuf)-dBdly; + inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi); + dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi; + dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0; + inputSampleL /= moreDiscontinuity; + //end Discontinuity section, begin TapeHack section + inputSampleL = fmax(fmin(inputSampleL,2.305929007734908),-2.305929007734908); + double addtwo = inputSampleL * inputSampleL; + double empower = inputSampleL * addtwo; // inputSampleL to the third power + inputSampleL -= (empower / 6.0); + empower *= addtwo; // to the fifth power + inputSampleL += (empower / 69.0); + empower *= addtwo; //seventh + inputSampleL -= (empower / 2530.08); + empower *= addtwo; //ninth + inputSampleL += (empower / 224985.6); + empower *= addtwo; //eleventh + inputSampleL -= (empower / 9979200.0f); + //this is a degenerate form of a Taylor Series to approximate sin() + //end TapeHack section + + //begin Discontinuity section + inputSampleR *= moreTapeHack; + inputSampleR *= moreDiscontinuity; + dBaR[dBaXR] = inputSampleR; dBaPosR *= 0.5; dBaPosR += fabs((inputSampleR*((inputSampleR*0.25)-0.5))*0.5); + dBaPosR = fmin(dBaPosR,1.0); + dBdly = floor(dBaPosR*dscBuf); + dBi = (dBaPosR*dscBuf)-dBdly; + inputSampleR = dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*(1.0-dBi); + dBdly++; inputSampleR += dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*dBi; + dBaXR++; if (dBaXR < 0 || dBaXR >= dscBuf) dBaXR = 0; + inputSampleR /= moreDiscontinuity; + //end Discontinuity section, begin TapeHack section + inputSampleR = fmax(fmin(inputSampleR,2.305929007734908),-2.305929007734908); + addtwo = inputSampleR * inputSampleR; + empower = inputSampleR * addtwo; // inputSampleR to the third power + inputSampleR -= (empower / 6.0); + empower *= addtwo; // to the fifth power + inputSampleR += (empower / 69.0); + empower *= addtwo; //seventh + inputSampleR -= (empower / 2530.08); + empower *= addtwo; //ninth + inputSampleR += (empower / 224985.6); + empower *= addtwo; //eleventh + inputSampleR -= (empower / 9979200.0f); + //this is a degenerate form of a Taylor Series to approximate sin() + //end TapeHack section + //Discontapeity + double trebleL = inputSampleL; double outSample = (trebleL * highA[biq_a0]) + highA[biq_sL1]; highA[biq_sL1] = (trebleL * highA[biq_a1]) - (outSample * highA[biq_b1]) + highA[biq_sL2]; @@ -423,62 +525,7 @@ void ConsoleX2Channel::processReplacing(float **inputs, float **outputs, VstInt3 } //blank out lowpass if just switched off } //Cabs2 - - //begin Discontinuity section - inputSampleL *= moreDiscontinuity; - dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5); - dBaPosL = fmin(dBaPosL,1.0); - int dBdly = floor(dBaPosL*dscBuf); - double dBi = (dBaPosL*dscBuf)-dBdly; - inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi; - dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0; - inputSampleL /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleL = fmax(fmin(inputSampleL*moreTapeHack,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.9239; - //end TapeHack section - - //begin Discontinuity section - inputSampleR *= moreDiscontinuity; - dBaR[dBaXR] = inputSampleR; dBaPosR *= 0.5; dBaPosR += fabs((inputSampleR*((inputSampleR*0.25)-0.5))*0.5); - dBaPosR = fmin(dBaPosR,1.0); - dBdly = floor(dBaPosR*dscBuf); - dBi = (dBaPosR*dscBuf)-dBdly; - inputSampleR = dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleR += dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*dBi; - dBaXR++; if (dBaXR < 0 || dBaXR >= dscBuf) dBaXR = 0; - inputSampleR /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleR = fmax(fmin(inputSampleR*moreTapeHack,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.9239; - //end TapeHack section - //Discontapeity - + double gainR = (panA*temp)+(panB*(1.0-temp)); double gainL = 1.57079633-gainR; gainR = sin(gainR); gainL = sin(gainL); @@ -486,19 +533,16 @@ void ConsoleX2Channel::processReplacing(float **inputs, float **outputs, VstInt3 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 *= 0.763932022500211; inputSampleL = inputSampleL * gainL * gain; inputSampleR = inputSampleR * gainR * gain; //applies pan section, and smoothed fader gain - inputSampleL *= 0.618033988749895; if (inputSampleL > 1.0) inputSampleL = 1.0; else if (inputSampleL > 0.0) inputSampleL = -expm1((log1p(-inputSampleL) * 1.618033988749895)); if (inputSampleL < -1.0) inputSampleL = -1.0; else if (inputSampleL < 0.0) inputSampleL = expm1((log1p(inputSampleL) * 1.618033988749895)); - inputSampleR *= 0.618033988749895; if (inputSampleR > 1.0) inputSampleR = 1.0; else if (inputSampleR > 0.0) inputSampleR = -expm1((log1p(-inputSampleR) * 1.618033988749895)); if (inputSampleR < -1.0) inputSampleR = -1.0; @@ -534,20 +578,33 @@ void ConsoleX2Channel::processDoubleReplacing(double **inputs, double **outputs, 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 = (A-0.5)*2.0; + double moreTapeHack = (B*2.0)+1.0; + switch ((int)(A*4.0)){ + 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(B*0.42,3.0)*overallscale,0.00001); + //Discontapeity + + double trebleGain = (C-0.5)*2.0; trebleGain = 1.0+(trebleGain*fabs(trebleGain)*fabs(trebleGain)); - double highmidGain = (B-0.5)*2.0; + double highmidGain = (D-0.5)*2.0; highmidGain = 1.0+(highmidGain*fabs(highmidGain)*fabs(highmidGain)); - double lowmidGain = (C-0.5)*2.0; + double lowmidGain = (E-0.5)*2.0; lowmidGain = 1.0+(lowmidGain*fabs(lowmidGain)*fabs(lowmidGain)); - double bassGain = (D-0.5)*2.0; + double bassGain = (F-0.5)*2.0; bassGain = 1.0+(bassGain*fabs(bassGain)*fabs(bassGain)); - double trebleRef = E-0.5; - double highmidRef = F-0.5; - double lowmidRef = G-0.5; - double bassRef = H-0.5; + double trebleRef = G-0.5; + double highmidRef = H-0.5; + double lowmidRef = I-0.5; + double bassRef = J-0.5; double highF = 0.75 + ((trebleRef+trebleRef+trebleRef+highmidRef)*0.125); double bassF = 0.25 + ((lowmidRef+bassRef+bassRef+bassRef)*0.125); double midF = (highF*0.5) + (bassF*0.5) + ((highmidRef+lowmidRef)*0.125); @@ -560,8 +617,8 @@ void ConsoleX2Channel::processDoubleReplacing(double **inputs, double **outputs, highC[biq_freq] = highB[biq_freq] = highA[biq_freq] = fmax(fmin(highA[biq_freq],0.4999),0.00025); double highFreq = pow(highF,3)*20000.0; double omega = 2.0*M_PI*(highFreq/getSampleRate()); - double K = 2.0-cos(omega); - double highCoef = -sqrt((K*K)-1.0)+K; + double biqK = 2.0-cos(omega); + double highCoef = -sqrt((biqK*biqK)-1.0)+biqK; highA[biq_reso] = 2.24697960 * highQ; highB[biq_reso] = 0.80193774 * highQ; highC[biq_reso] = 0.55495813 * highQ; @@ -570,8 +627,8 @@ void ConsoleX2Channel::processDoubleReplacing(double **inputs, double **outputs, midC[biq_freq] = midB[biq_freq] = midA[biq_freq] = fmax(fmin(midA[biq_freq],0.4999),0.00025); double midFreq = pow(midF,3)*20000.0; omega = 2.0*M_PI*(midFreq/getSampleRate()); - K = 2.0-cos(omega); - double midCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double midCoef = -sqrt((biqK*biqK)-1.0)+biqK; midA[biq_reso] = 2.24697960 * midQ; midB[biq_reso] = 0.80193774 * midQ; midC[biq_reso] = 0.55495813 * midQ; @@ -580,97 +637,93 @@ void ConsoleX2Channel::processDoubleReplacing(double **inputs, double **outputs, lowC[biq_freq] = lowB[biq_freq] = lowA[biq_freq] = fmax(fmin(lowA[biq_freq],0.4999),0.00025); double lowFreq = pow(bassF,3)*20000.0; omega = 2.0*M_PI*(lowFreq/getSampleRate()); - K = 2.0-cos(omega); - double lowCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double lowCoef = -sqrt((biqK*biqK)-1.0)+biqK; lowA[biq_reso] = 2.24697960 * lowQ; lowB[biq_reso] = 0.80193774 * lowQ; lowC[biq_reso] = 0.55495813 * lowQ; - K = tan(M_PI * highA[biq_freq]); - double norm = 1.0 / (1.0 + K / highA[biq_reso] + K * K); - highA[biq_a0] = K * K * norm; + biqK = tan(M_PI * highA[biq_freq]); + double norm = 1.0 / (1.0 + biqK / highA[biq_reso] + biqK * biqK); + highA[biq_a0] = biqK * biqK * norm; highA[biq_a1] = 2.0 * highA[biq_a0]; highA[biq_a2] = highA[biq_a0]; - highA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highA[biq_b2] = (1.0 - K / highA[biq_reso] + K * K) * norm; - K = tan(M_PI * highB[biq_freq]); - norm = 1.0 / (1.0 + K / highB[biq_reso] + K * K); - highB[biq_a0] = K * K * norm; + highA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highA[biq_b2] = (1.0 - biqK / highA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highB[biq_freq]); + norm = 1.0 / (1.0 + biqK / highB[biq_reso] + biqK * biqK); + highB[biq_a0] = biqK * biqK * norm; highB[biq_a1] = 2.0 * highB[biq_a0]; highB[biq_a2] = highB[biq_a0]; - highB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highB[biq_b2] = (1.0 - K / highB[biq_reso] + K * K) * norm; - K = tan(M_PI * highC[biq_freq]); - norm = 1.0 / (1.0 + K / highC[biq_reso] + K * K); - highC[biq_a0] = K * K * norm; + highB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highB[biq_b2] = (1.0 - biqK / highB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highC[biq_freq]); + norm = 1.0 / (1.0 + biqK / highC[biq_reso] + biqK * biqK); + highC[biq_a0] = biqK * biqK * norm; highC[biq_a1] = 2.0 * highC[biq_a0]; highC[biq_a2] = highC[biq_a0]; - highC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highC[biq_b2] = (1.0 - K / highC[biq_reso] + K * K) * norm; + highC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highC[biq_b2] = (1.0 - biqK / highC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * midA[biq_freq]); - norm = 1.0 / (1.0 + K / midA[biq_reso] + K * K); - midA[biq_a0] = K * K * norm; + biqK = tan(M_PI * midA[biq_freq]); + norm = 1.0 / (1.0 + biqK / midA[biq_reso] + biqK * biqK); + midA[biq_a0] = biqK * biqK * norm; midA[biq_a1] = 2.0 * midA[biq_a0]; midA[biq_a2] = midA[biq_a0]; - midA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midA[biq_b2] = (1.0 - K / midA[biq_reso] + K * K) * norm; - K = tan(M_PI * midB[biq_freq]); - norm = 1.0 / (1.0 + K / midB[biq_reso] + K * K); - midB[biq_a0] = K * K * norm; + midA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midA[biq_b2] = (1.0 - biqK / midA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midB[biq_freq]); + norm = 1.0 / (1.0 + biqK / midB[biq_reso] + biqK * biqK); + midB[biq_a0] = biqK * biqK * norm; midB[biq_a1] = 2.0 * midB[biq_a0]; midB[biq_a2] = midB[biq_a0]; - midB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midB[biq_b2] = (1.0 - K / midB[biq_reso] + K * K) * norm; - K = tan(M_PI * midC[biq_freq]); - norm = 1.0 / (1.0 + K / midC[biq_reso] + K * K); - midC[biq_a0] = K * K * norm; + midB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midB[biq_b2] = (1.0 - biqK / midB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midC[biq_freq]); + norm = 1.0 / (1.0 + biqK / midC[biq_reso] + biqK * biqK); + midC[biq_a0] = biqK * biqK * norm; midC[biq_a1] = 2.0 * midC[biq_a0]; midC[biq_a2] = midC[biq_a0]; - midC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midC[biq_b2] = (1.0 - K / midC[biq_reso] + K * K) * norm; + midC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midC[biq_b2] = (1.0 - biqK / midC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * lowA[biq_freq]); - norm = 1.0 / (1.0 + K / lowA[biq_reso] + K * K); - lowA[biq_a0] = K * K * norm; + biqK = tan(M_PI * lowA[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowA[biq_reso] + biqK * biqK); + lowA[biq_a0] = biqK * biqK * norm; lowA[biq_a1] = 2.0 * lowA[biq_a0]; lowA[biq_a2] = lowA[biq_a0]; - lowA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowA[biq_b2] = (1.0 - K / lowA[biq_reso] + K * K) * norm; - K = tan(M_PI * lowB[biq_freq]); - norm = 1.0 / (1.0 + K / lowB[biq_reso] + K * K); - lowB[biq_a0] = K * K * norm; + lowA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowA[biq_b2] = (1.0 - biqK / lowA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowB[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowB[biq_reso] + biqK * biqK); + lowB[biq_a0] = biqK * biqK * norm; lowB[biq_a1] = 2.0 * lowB[biq_a0]; lowB[biq_a2] = lowB[biq_a0]; - lowB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowB[biq_b2] = (1.0 - K / lowB[biq_reso] + K * K) * norm; - K = tan(M_PI * lowC[biq_freq]); - norm = 1.0 / (1.0 + K / lowC[biq_reso] + K * K); - lowC[biq_a0] = K * K * norm; + lowB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowB[biq_b2] = (1.0 - biqK / lowB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowC[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowC[biq_reso] + biqK * biqK); + lowC[biq_a0] = biqK * biqK * norm; lowC[biq_a1] = 2.0 * lowC[biq_a0]; lowC[biq_a2] = lowC[biq_a0]; - lowC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowC[biq_b2] = (1.0 - K / lowC[biq_reso] + K * K) * norm; + lowC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowC[biq_b2] = (1.0 - biqK / lowC[biq_reso] + biqK * biqK) * norm; //SmoothEQ2 - double bezCThresh = pow(1.0-I, 6.0) * 8.0; - double bezRez = pow(1.0-J, 8.0) / overallscale; - double sloRez = pow(1.0-K,12.0) / overallscale; + double bezCThresh = pow(1.0-K, 6.0) * 8.0; + double bezRez = pow(1.0-L, 8.0) / overallscale; + double sloRez = pow(1.0-M,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(L,4.0),sqrt(bezCThresh+1.0)); + double gate = pow(pow(N,4.0),sqrt(bezCThresh+1.0)); //Dynamics2 - lFreqA = lFreqB; lFreqB = pow(fmax(M,0.002),overallscale); //the lowpass - hFreqA = hFreqB; hFreqB = pow(N,overallscale+2.0); //the highpass + lFreqA = lFreqB; lFreqB = pow(fmax(O,0.002),overallscale); //the lowpass + hFreqA = hFreqB; hFreqB = pow(P,overallscale+2.0); //the highpass //Cabs2 - double moreDiscontinuity = fmax(pow(O*0.42,3.0)*overallscale,0.00001); - double moreTapeHack = (O*1.4152481)+1.2; - //Discontapeity - - panA = panB; panB = P*1.57079633; - inTrimA = inTrimB; inTrimB = Q*2.0; + panA = panB; panB = Q*1.57079633; + inTrimA = inTrimB; inTrimB = R*2.0; //Console while (--sampleFrames >= 0) @@ -680,6 +733,99 @@ void ConsoleX2Channel::processDoubleReplacing(double **inputs, double **outputs, if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17; if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17; + double darkSampleL = inputSampleL; + double darkSampleR = inputSampleR; + if (avgPos > 31) avgPos = 0; + if (spacing > 31) { + avg32L[avgPos] = darkSampleL; avg32R[avgPos] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 32; x++) {darkSampleL += avg32L[x]; darkSampleR += avg32R[x];} + darkSampleL /= 32.0; darkSampleR /= 32.0; + } if (spacing > 15) { + avg16L[avgPos%16] = darkSampleL; avg16R[avgPos%16] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 16; x++) {darkSampleL += avg16L[x]; darkSampleR += avg16R[x];} + darkSampleL /= 16.0; darkSampleR /= 16.0; + } if (spacing > 7) { + avg8L[avgPos%8] = darkSampleL; avg8R[avgPos%8] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 8; x++) {darkSampleL += avg8L[x]; darkSampleR += avg8R[x];} + darkSampleL /= 8.0; darkSampleR /= 8.0; + } if (spacing > 3) { + avg4L[avgPos%4] = darkSampleL; avg4R[avgPos%4] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 4; x++) {darkSampleL += avg4L[x]; darkSampleR += avg4R[x];} + darkSampleL /= 4.0; darkSampleR /= 4.0; + } if (spacing > 1) { + avg2L[avgPos%2] = darkSampleL; avg2R[avgPos%2] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 2; x++) {darkSampleL += avg2L[x]; darkSampleR += avg2R[x];} + darkSampleL /= 2.0; darkSampleR /= 2.0; + } avgPos++; + lastSlewL += fabs(lastSlewpleL-inputSampleL); lastSlewpleL = inputSampleL; + double avgSlewL = fmin(lastSlewL,1.0); + lastSlewL = fmax(lastSlewL*0.78,2.39996322972865332223); + lastSlewR += fabs(lastSlewpleR-inputSampleR); lastSlewpleR = inputSampleR; + double avgSlewR = fmin(lastSlewR,1.0); + lastSlewR = fmax(lastSlewR*0.78,2.39996322972865332223); //look up Golden Angle, it's cool + inputSampleL = (inputSampleL*(1.0-avgSlewL)) + (darkSampleL*avgSlewL); + inputSampleR = (inputSampleR*(1.0-avgSlewR)) + (darkSampleR*avgSlewR); + + //begin Discontinuity section + inputSampleL *= moreTapeHack; + inputSampleL *= moreDiscontinuity; + dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5); + dBaPosL = fmin(dBaPosL,1.0); + int dBdly = floor(dBaPosL*dscBuf); + double dBi = (dBaPosL*dscBuf)-dBdly; + inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi); + dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi; + dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0; + inputSampleL /= moreDiscontinuity; + //end Discontinuity section, begin TapeHack section + inputSampleL = fmax(fmin(inputSampleL,2.305929007734908),-2.305929007734908); + double addtwo = inputSampleL * inputSampleL; + double empower = inputSampleL * addtwo; // inputSampleL to the third power + inputSampleL -= (empower / 6.0); + empower *= addtwo; // to the fifth power + inputSampleL += (empower / 69.0); + empower *= addtwo; //seventh + inputSampleL -= (empower / 2530.08); + empower *= addtwo; //ninth + inputSampleL += (empower / 224985.6); + empower *= addtwo; //eleventh + inputSampleL -= (empower / 9979200.0f); + //this is a degenerate form of a Taylor Series to approximate sin() + //end TapeHack section + + //begin Discontinuity section + inputSampleR *= moreTapeHack; + inputSampleR *= moreDiscontinuity; + dBaR[dBaXR] = inputSampleR; dBaPosR *= 0.5; dBaPosR += fabs((inputSampleR*((inputSampleR*0.25)-0.5))*0.5); + dBaPosR = fmin(dBaPosR,1.0); + dBdly = floor(dBaPosR*dscBuf); + dBi = (dBaPosR*dscBuf)-dBdly; + inputSampleR = dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*(1.0-dBi); + dBdly++; inputSampleR += dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*dBi; + dBaXR++; if (dBaXR < 0 || dBaXR >= dscBuf) dBaXR = 0; + inputSampleR /= moreDiscontinuity; + //end Discontinuity section, begin TapeHack section + inputSampleR = fmax(fmin(inputSampleR,2.305929007734908),-2.305929007734908); + addtwo = inputSampleR * inputSampleR; + empower = inputSampleR * addtwo; // inputSampleR to the third power + inputSampleR -= (empower / 6.0); + empower *= addtwo; // to the fifth power + inputSampleR += (empower / 69.0); + empower *= addtwo; //seventh + inputSampleR -= (empower / 2530.08); + empower *= addtwo; //ninth + inputSampleR += (empower / 224985.6); + empower *= addtwo; //eleventh + inputSampleR -= (empower / 9979200.0f); + //this is a degenerate form of a Taylor Series to approximate sin() + //end TapeHack section + //Discontapeity + double trebleL = inputSampleL; double outSample = (trebleL * highA[biq_a0]) + highA[biq_sL1]; highA[biq_sL1] = (trebleL * highA[biq_a1]) - (outSample * highA[biq_b1]) + highA[biq_sL2]; @@ -940,61 +1086,6 @@ void ConsoleX2Channel::processDoubleReplacing(double **inputs, double **outputs, } //Cabs2 - //begin Discontinuity section - inputSampleL *= moreDiscontinuity; - dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5); - dBaPosL = fmin(dBaPosL,1.0); - int dBdly = floor(dBaPosL*dscBuf); - double dBi = (dBaPosL*dscBuf)-dBdly; - inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi; - dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0; - inputSampleL /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleL = fmax(fmin(inputSampleL*moreTapeHack,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.9239; - //end TapeHack section - - //begin Discontinuity section - inputSampleR *= moreDiscontinuity; - dBaR[dBaXR] = inputSampleR; dBaPosR *= 0.5; dBaPosR += fabs((inputSampleR*((inputSampleR*0.25)-0.5))*0.5); - dBaPosR = fmin(dBaPosR,1.0); - dBdly = floor(dBaPosR*dscBuf); - dBi = (dBaPosR*dscBuf)-dBdly; - inputSampleR = dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleR += dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*dBi; - dBaXR++; if (dBaXR < 0 || dBaXR >= dscBuf) dBaXR = 0; - inputSampleR /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleR = fmax(fmin(inputSampleR*moreTapeHack,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.9239; - //end TapeHack section - //Discontapeity - double gainR = (panA*temp)+(panB*(1.0-temp)); double gainL = 1.57079633-gainR; gainR = sin(gainR); gainL = sin(gainL); @@ -1002,19 +1093,16 @@ void ConsoleX2Channel::processDoubleReplacing(double **inputs, double **outputs, 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 *= 0.763932022500211; inputSampleL = inputSampleL * gainL * gain; inputSampleR = inputSampleR * gainR * gain; //applies pan section, and smoothed fader gain - inputSampleL *= 0.618033988749895; if (inputSampleL > 1.0) inputSampleL = 1.0; else if (inputSampleL > 0.0) inputSampleL = -expm1((log1p(-inputSampleL) * 1.618033988749895)); if (inputSampleL < -1.0) inputSampleL = -1.0; else if (inputSampleL < 0.0) inputSampleL = expm1((log1p(inputSampleL) * 1.618033988749895)); - inputSampleR *= 0.618033988749895; if (inputSampleR > 1.0) inputSampleR = 1.0; else if (inputSampleR > 0.0) inputSampleR = -expm1((log1p(-inputSampleR) * 1.618033988749895)); if (inputSampleR < -1.0) inputSampleR = -1.0; diff --git a/plugins/LinuxVST/src/ConsoleX2Pre/ConsoleX2Pre.cpp b/plugins/LinuxVST/src/ConsoleX2Pre/ConsoleX2Pre.cpp index 7f5bee3dc..1d6244eab 100755 --- a/plugins/LinuxVST/src/ConsoleX2Pre/ConsoleX2Pre.cpp +++ b/plugins/LinuxVST/src/ConsoleX2Pre/ConsoleX2Pre.cpp @@ -12,22 +12,22 @@ AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new C ConsoleX2Pre::ConsoleX2Pre(audioMasterCallback audioMaster) : AudioEffectX(audioMaster, kNumPrograms, kNumParameters) { - A = 0.5; - B = 0.5; + A = 0.25; + B = 0.0; C = 0.5; D = 0.5; E = 0.5; F = 0.5; G = 0.5; H = 0.5; - I = 1.0; + I = 0.5; J = 0.5; - K = 0.5; - L = 0.0; - M = 1.0; + K = 1.0; + L = 0.5; + M = 0.5; N = 0.0; - O = 0.0; - P = 0.5; + O = 1.0; + P = 0.0; Q = 0.5; for (int x = 0; x < biq_total; x++) { @@ -81,9 +81,18 @@ ConsoleX2Pre::ConsoleX2Pre(audioMasterCallback audioMaster) : 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; @@ -219,22 +228,22 @@ float ConsoleX2Pre::getParameter(VstInt32 index) { void ConsoleX2Pre::getParameterName(VstInt32 index, char *text) { switch (index) { - case kParamA: vst_strncpy (text, "High", kVstMaxParamStrLen); break; - case kParamB: vst_strncpy (text, "HMid", kVstMaxParamStrLen); break; - case kParamC: vst_strncpy (text, "LMid", kVstMaxParamStrLen); break; - case kParamD: vst_strncpy (text, "Bass", kVstMaxParamStrLen); break; - case kParamE: vst_strncpy (text, "HighF", kVstMaxParamStrLen); break; - case kParamF: vst_strncpy (text, "HMidF", kVstMaxParamStrLen); break; - case kParamG: vst_strncpy (text, "LMidF", kVstMaxParamStrLen); break; - case kParamH: vst_strncpy (text, "BassF", kVstMaxParamStrLen); break; - case kParamI: vst_strncpy (text, "Thresh", kVstMaxParamStrLen); break; - case kParamJ: vst_strncpy (text, "Attack", kVstMaxParamStrLen); break; - case kParamK: vst_strncpy (text, "Release", kVstMaxParamStrLen); break; - case kParamL: vst_strncpy (text, "Gate", kVstMaxParamStrLen); break; - case kParamM: vst_strncpy (text, "Lowpass", kVstMaxParamStrLen); break; - case kParamN: vst_strncpy (text, "Hipass", kVstMaxParamStrLen); break; - case kParamO: vst_strncpy (text, "More", kVstMaxParamStrLen); break; - case kParamP: vst_strncpy (text, "Pan", kVstMaxParamStrLen); break; + case kParamA: vst_strncpy (text, "Trim", kVstMaxParamStrLen); break; + case kParamB: vst_strncpy (text, "More", kVstMaxParamStrLen); break; + case kParamC: vst_strncpy (text, "High", kVstMaxParamStrLen); break; + case kParamD: vst_strncpy (text, "HMid", kVstMaxParamStrLen); break; + case kParamE: vst_strncpy (text, "LMid", kVstMaxParamStrLen); break; + case kParamF: vst_strncpy (text, "Bass", kVstMaxParamStrLen); break; + case kParamG: vst_strncpy (text, "HighF", kVstMaxParamStrLen); break; + case kParamH: vst_strncpy (text, "HMidF", kVstMaxParamStrLen); break; + case kParamI: vst_strncpy (text, "LMidF", kVstMaxParamStrLen); break; + case kParamJ: vst_strncpy (text, "BassF", kVstMaxParamStrLen); break; + case kParamK: vst_strncpy (text, "Thresh", kVstMaxParamStrLen); break; + case kParamL: vst_strncpy (text, "Attack", kVstMaxParamStrLen); break; + case kParamM: vst_strncpy (text, "Release", kVstMaxParamStrLen); break; + case kParamN: vst_strncpy (text, "Gate", kVstMaxParamStrLen); break; + case kParamO: vst_strncpy (text, "Lowpass", kVstMaxParamStrLen); break; + case kParamP: vst_strncpy (text, "Hipass", kVstMaxParamStrLen); break; case kParamQ: vst_strncpy (text, "Fader", kVstMaxParamStrLen); break; default: break; // unknown parameter, shouldn't happen! } //this is our labels for displaying in the VST host @@ -242,7 +251,7 @@ void ConsoleX2Pre::getParameterName(VstInt32 index, char *text) { void ConsoleX2Pre::getParameterDisplay(VstInt32 index, char *text) { switch (index) { - case kParamA: float2string (A, text, kVstMaxParamStrLen); break; + case kParamA: int2string ((int)(A*4.0), text, kVstMaxParamStrLen); break; case kParamB: float2string (B, text, kVstMaxParamStrLen); break; case kParamC: float2string (C, text, kVstMaxParamStrLen); break; case kParamD: float2string (D, text, kVstMaxParamStrLen); break; @@ -265,21 +274,21 @@ void ConsoleX2Pre::getParameterDisplay(VstInt32 index, char *text) { void ConsoleX2Pre::getParameterLabel(VstInt32 index, char *text) { switch (index) { - case kParamA: vst_strncpy (text, "eq", kVstMaxParamStrLen); break; + case kParamA: vst_strncpy (text, "", kVstMaxParamStrLen); break; case kParamB: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamC: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamC: vst_strncpy (text, "eq", kVstMaxParamStrLen); break; case kParamD: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamE: vst_strncpy (text, "freq", kVstMaxParamStrLen); break; + case kParamE: vst_strncpy (text, "", kVstMaxParamStrLen); break; case kParamF: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamG: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamG: vst_strncpy (text, "freq", kVstMaxParamStrLen); break; case kParamH: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamI: vst_strncpy (text, "dyn", kVstMaxParamStrLen); break; + case kParamI: vst_strncpy (text, "", kVstMaxParamStrLen); break; case kParamJ: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamK: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamK: vst_strncpy (text, "dyn", kVstMaxParamStrLen); break; case kParamL: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamM: vst_strncpy (text, "fltr", kVstMaxParamStrLen); break; + case kParamM: vst_strncpy (text, "", kVstMaxParamStrLen); break; case kParamN: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamO: vst_strncpy (text, "+", kVstMaxParamStrLen); break; + case kParamO: vst_strncpy (text, "fltr", kVstMaxParamStrLen); break; case kParamP: vst_strncpy (text, "", kVstMaxParamStrLen); break; case kParamQ: vst_strncpy (text, "", kVstMaxParamStrLen); break; default: break; // unknown parameter, shouldn't happen! diff --git a/plugins/LinuxVST/src/ConsoleX2Pre/ConsoleX2Pre.h b/plugins/LinuxVST/src/ConsoleX2Pre/ConsoleX2Pre.h index 2162a3d0c..3fa48a8f8 100755 --- a/plugins/LinuxVST/src/ConsoleX2Pre/ConsoleX2Pre.h +++ b/plugins/LinuxVST/src/ConsoleX2Pre/ConsoleX2Pre.h @@ -166,8 +166,23 @@ private: int dBaXR; //Discontapeity - double panA; - double panB; + 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; diff --git a/plugins/LinuxVST/src/ConsoleX2Pre/ConsoleX2PreProc.cpp b/plugins/LinuxVST/src/ConsoleX2Pre/ConsoleX2PreProc.cpp index 377839b00..4c8abed86 100755 --- a/plugins/LinuxVST/src/ConsoleX2Pre/ConsoleX2PreProc.cpp +++ b/plugins/LinuxVST/src/ConsoleX2Pre/ConsoleX2PreProc.cpp @@ -18,20 +18,33 @@ void ConsoleX2Pre::processReplacing(float **inputs, float **outputs, VstInt32 sa 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 = (A-0.5)*2.0; + double moreTapeHack = (B*2.0)+1.0; + switch ((int)(A*4.0)){ + 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(B*0.42,3.0)*overallscale,0.00001); + //Discontapeity + + double trebleGain = (C-0.5)*2.0; trebleGain = 1.0+(trebleGain*fabs(trebleGain)*fabs(trebleGain)); - double highmidGain = (B-0.5)*2.0; + double highmidGain = (D-0.5)*2.0; highmidGain = 1.0+(highmidGain*fabs(highmidGain)*fabs(highmidGain)); - double lowmidGain = (C-0.5)*2.0; + double lowmidGain = (E-0.5)*2.0; lowmidGain = 1.0+(lowmidGain*fabs(lowmidGain)*fabs(lowmidGain)); - double bassGain = (D-0.5)*2.0; + double bassGain = (F-0.5)*2.0; bassGain = 1.0+(bassGain*fabs(bassGain)*fabs(bassGain)); - double trebleRef = E-0.5; - double highmidRef = F-0.5; - double lowmidRef = G-0.5; - double bassRef = H-0.5; + double trebleRef = G-0.5; + double highmidRef = H-0.5; + double lowmidRef = I-0.5; + double bassRef = J-0.5; double highF = 0.75 + ((trebleRef+trebleRef+trebleRef+highmidRef)*0.125); double bassF = 0.25 + ((lowmidRef+bassRef+bassRef+bassRef)*0.125); double midF = (highF*0.5) + (bassF*0.5) + ((highmidRef+lowmidRef)*0.125); @@ -44,8 +57,8 @@ void ConsoleX2Pre::processReplacing(float **inputs, float **outputs, VstInt32 sa highC[biq_freq] = highB[biq_freq] = highA[biq_freq] = fmax(fmin(highA[biq_freq],0.4999),0.00025); double highFreq = pow(highF,3)*20000.0; double omega = 2.0*M_PI*(highFreq/getSampleRate()); - double K = 2.0-cos(omega); - double highCoef = -sqrt((K*K)-1.0)+K; + double biqK = 2.0-cos(omega); + double highCoef = -sqrt((biqK*biqK)-1.0)+biqK; highA[biq_reso] = 2.24697960 * highQ; highB[biq_reso] = 0.80193774 * highQ; highC[biq_reso] = 0.55495813 * highQ; @@ -54,8 +67,8 @@ void ConsoleX2Pre::processReplacing(float **inputs, float **outputs, VstInt32 sa midC[biq_freq] = midB[biq_freq] = midA[biq_freq] = fmax(fmin(midA[biq_freq],0.4999),0.00025); double midFreq = pow(midF,3)*20000.0; omega = 2.0*M_PI*(midFreq/getSampleRate()); - K = 2.0-cos(omega); - double midCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double midCoef = -sqrt((biqK*biqK)-1.0)+biqK; midA[biq_reso] = 2.24697960 * midQ; midB[biq_reso] = 0.80193774 * midQ; midC[biq_reso] = 0.55495813 * midQ; @@ -64,96 +77,91 @@ void ConsoleX2Pre::processReplacing(float **inputs, float **outputs, VstInt32 sa lowC[biq_freq] = lowB[biq_freq] = lowA[biq_freq] = fmax(fmin(lowA[biq_freq],0.4999),0.00025); double lowFreq = pow(bassF,3)*20000.0; omega = 2.0*M_PI*(lowFreq/getSampleRate()); - K = 2.0-cos(omega); - double lowCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double lowCoef = -sqrt((biqK*biqK)-1.0)+biqK; lowA[biq_reso] = 2.24697960 * lowQ; lowB[biq_reso] = 0.80193774 * lowQ; lowC[biq_reso] = 0.55495813 * lowQ; - K = tan(M_PI * highA[biq_freq]); - double norm = 1.0 / (1.0 + K / highA[biq_reso] + K * K); - highA[biq_a0] = K * K * norm; + biqK = tan(M_PI * highA[biq_freq]); + double norm = 1.0 / (1.0 + biqK / highA[biq_reso] + biqK * biqK); + highA[biq_a0] = biqK * biqK * norm; highA[biq_a1] = 2.0 * highA[biq_a0]; highA[biq_a2] = highA[biq_a0]; - highA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highA[biq_b2] = (1.0 - K / highA[biq_reso] + K * K) * norm; - K = tan(M_PI * highB[biq_freq]); - norm = 1.0 / (1.0 + K / highB[biq_reso] + K * K); - highB[biq_a0] = K * K * norm; + highA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highA[biq_b2] = (1.0 - biqK / highA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highB[biq_freq]); + norm = 1.0 / (1.0 + biqK / highB[biq_reso] + biqK * biqK); + highB[biq_a0] = biqK * biqK * norm; highB[biq_a1] = 2.0 * highB[biq_a0]; highB[biq_a2] = highB[biq_a0]; - highB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highB[biq_b2] = (1.0 - K / highB[biq_reso] + K * K) * norm; - K = tan(M_PI * highC[biq_freq]); - norm = 1.0 / (1.0 + K / highC[biq_reso] + K * K); - highC[biq_a0] = K * K * norm; + highB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highB[biq_b2] = (1.0 - biqK / highB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highC[biq_freq]); + norm = 1.0 / (1.0 + biqK / highC[biq_reso] + biqK * biqK); + highC[biq_a0] = biqK * biqK * norm; highC[biq_a1] = 2.0 * highC[biq_a0]; highC[biq_a2] = highC[biq_a0]; - highC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highC[biq_b2] = (1.0 - K / highC[biq_reso] + K * K) * norm; + highC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highC[biq_b2] = (1.0 - biqK / highC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * midA[biq_freq]); - norm = 1.0 / (1.0 + K / midA[biq_reso] + K * K); - midA[biq_a0] = K * K * norm; + biqK = tan(M_PI * midA[biq_freq]); + norm = 1.0 / (1.0 + biqK / midA[biq_reso] + biqK * biqK); + midA[biq_a0] = biqK * biqK * norm; midA[biq_a1] = 2.0 * midA[biq_a0]; midA[biq_a2] = midA[biq_a0]; - midA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midA[biq_b2] = (1.0 - K / midA[biq_reso] + K * K) * norm; - K = tan(M_PI * midB[biq_freq]); - norm = 1.0 / (1.0 + K / midB[biq_reso] + K * K); - midB[biq_a0] = K * K * norm; + midA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midA[biq_b2] = (1.0 - biqK / midA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midB[biq_freq]); + norm = 1.0 / (1.0 + biqK / midB[biq_reso] + biqK * biqK); + midB[biq_a0] = biqK * biqK * norm; midB[biq_a1] = 2.0 * midB[biq_a0]; midB[biq_a2] = midB[biq_a0]; - midB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midB[biq_b2] = (1.0 - K / midB[biq_reso] + K * K) * norm; - K = tan(M_PI * midC[biq_freq]); - norm = 1.0 / (1.0 + K / midC[biq_reso] + K * K); - midC[biq_a0] = K * K * norm; + midB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midB[biq_b2] = (1.0 - biqK / midB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midC[biq_freq]); + norm = 1.0 / (1.0 + biqK / midC[biq_reso] + biqK * biqK); + midC[biq_a0] = biqK * biqK * norm; midC[biq_a1] = 2.0 * midC[biq_a0]; midC[biq_a2] = midC[biq_a0]; - midC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midC[biq_b2] = (1.0 - K / midC[biq_reso] + K * K) * norm; + midC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midC[biq_b2] = (1.0 - biqK / midC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * lowA[biq_freq]); - norm = 1.0 / (1.0 + K / lowA[biq_reso] + K * K); - lowA[biq_a0] = K * K * norm; + biqK = tan(M_PI * lowA[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowA[biq_reso] + biqK * biqK); + lowA[biq_a0] = biqK * biqK * norm; lowA[biq_a1] = 2.0 * lowA[biq_a0]; lowA[biq_a2] = lowA[biq_a0]; - lowA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowA[biq_b2] = (1.0 - K / lowA[biq_reso] + K * K) * norm; - K = tan(M_PI * lowB[biq_freq]); - norm = 1.0 / (1.0 + K / lowB[biq_reso] + K * K); - lowB[biq_a0] = K * K * norm; + lowA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowA[biq_b2] = (1.0 - biqK / lowA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowB[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowB[biq_reso] + biqK * biqK); + lowB[biq_a0] = biqK * biqK * norm; lowB[biq_a1] = 2.0 * lowB[biq_a0]; lowB[biq_a2] = lowB[biq_a0]; - lowB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowB[biq_b2] = (1.0 - K / lowB[biq_reso] + K * K) * norm; - K = tan(M_PI * lowC[biq_freq]); - norm = 1.0 / (1.0 + K / lowC[biq_reso] + K * K); - lowC[biq_a0] = K * K * norm; + lowB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowB[biq_b2] = (1.0 - biqK / lowB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowC[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowC[biq_reso] + biqK * biqK); + lowC[biq_a0] = biqK * biqK * norm; lowC[biq_a1] = 2.0 * lowC[biq_a0]; lowC[biq_a2] = lowC[biq_a0]; - lowC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowC[biq_b2] = (1.0 - K / lowC[biq_reso] + K * K) * norm; + lowC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowC[biq_b2] = (1.0 - biqK / lowC[biq_reso] + biqK * biqK) * norm; //SmoothEQ2 - double bezCThresh = pow(1.0-I, 6.0) * 8.0; - double bezRez = pow(1.0-J, 8.0) / overallscale; - double sloRez = pow(1.0-K,12.0) / overallscale; + double bezCThresh = pow(1.0-K, 6.0) * 8.0; + double bezRez = pow(1.0-L, 8.0) / overallscale; + double sloRez = pow(1.0-M,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(L,4.0),sqrt(bezCThresh+1.0)); + double gate = pow(pow(N,4.0),sqrt(bezCThresh+1.0)); //Dynamics2 - lFreqA = lFreqB; lFreqB = pow(fmax(M,0.002),overallscale); //the lowpass - hFreqA = hFreqB; hFreqB = pow(N,overallscale+2.0); //the highpass + lFreqA = lFreqB; lFreqB = pow(fmax(O,0.002),overallscale); //the lowpass + hFreqA = hFreqB; hFreqB = pow(P,overallscale+2.0); //the highpass //Cabs2 - - double moreDiscontinuity = fmax(pow(O*0.42,3.0)*overallscale,0.00001); - double moreTapeHack = (O*1.4152481)+1.2; - //Discontapeity - - panA = panB; panB = P*1.57079633; + inTrimA = inTrimB; inTrimB = Q*2.0; //Console @@ -164,6 +172,101 @@ void ConsoleX2Pre::processReplacing(float **inputs, float **outputs, VstInt32 sa if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17; if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17; + double darkSampleL = inputSampleL; + double darkSampleR = inputSampleR; + if (avgPos > 31) avgPos = 0; + if (spacing > 31) { + avg32L[avgPos] = darkSampleL; avg32R[avgPos] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 32; x++) {darkSampleL += avg32L[x]; darkSampleR += avg32R[x];} + darkSampleL /= 32.0; darkSampleR /= 32.0; + } if (spacing > 15) { + avg16L[avgPos%16] = darkSampleL; avg16R[avgPos%16] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 16; x++) {darkSampleL += avg16L[x]; darkSampleR += avg16R[x];} + darkSampleL /= 16.0; darkSampleR /= 16.0; + } if (spacing > 7) { + avg8L[avgPos%8] = darkSampleL; avg8R[avgPos%8] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 8; x++) {darkSampleL += avg8L[x]; darkSampleR += avg8R[x];} + darkSampleL /= 8.0; darkSampleR /= 8.0; + } if (spacing > 3) { + avg4L[avgPos%4] = darkSampleL; avg4R[avgPos%4] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 4; x++) {darkSampleL += avg4L[x]; darkSampleR += avg4R[x];} + darkSampleL /= 4.0; darkSampleR /= 4.0; + } if (spacing > 1) { + avg2L[avgPos%2] = darkSampleL; avg2R[avgPos%2] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 2; x++) {darkSampleL += avg2L[x]; darkSampleR += avg2R[x];} + darkSampleL /= 2.0; darkSampleR /= 2.0; + } avgPos++; + lastSlewL += fabs(lastSlewpleL-inputSampleL); lastSlewpleL = inputSampleL; + double avgSlewL = fmin(lastSlewL,1.0); + lastSlewL = fmax(lastSlewL*0.78,2.39996322972865332223); + lastSlewR += fabs(lastSlewpleR-inputSampleR); lastSlewpleR = inputSampleR; + double avgSlewR = fmin(lastSlewR,1.0); + lastSlewR = fmax(lastSlewR*0.78,2.39996322972865332223); //look up Golden Angle, it's cool + inputSampleL = (inputSampleL*(1.0-avgSlewL)) + (darkSampleL*avgSlewL); + inputSampleR = (inputSampleR*(1.0-avgSlewR)) + (darkSampleR*avgSlewR); + + //begin Discontinuity section + inputSampleL *= moreTapeHack; + inputSampleL *= moreDiscontinuity; + dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5); + dBaPosL = fmin(dBaPosL,1.0); + int dBdly = floor(dBaPosL*dscBuf); + double dBi = (dBaPosL*dscBuf)-dBdly; + inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi); + dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi; + dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0; + inputSampleL /= moreDiscontinuity; + //end Discontinuity section, begin TapeHack section + inputSampleL = fmax(fmin(inputSampleL*moreTapeHack,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.9239; + //end TapeHack section + + //begin Discontinuity section + inputSampleR *= moreTapeHack; + inputSampleR *= moreDiscontinuity; + dBaR[dBaXR] = inputSampleR; dBaPosR *= 0.5; dBaPosR += fabs((inputSampleR*((inputSampleR*0.25)-0.5))*0.5); + dBaPosR = fmin(dBaPosR,1.0); + dBdly = floor(dBaPosR*dscBuf); + dBi = (dBaPosR*dscBuf)-dBdly; + inputSampleR = dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*(1.0-dBi); + dBdly++; inputSampleR += dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*dBi; + dBaXR++; if (dBaXR < 0 || dBaXR >= dscBuf) dBaXR = 0; + inputSampleR /= moreDiscontinuity; + //end Discontinuity section, begin TapeHack section + inputSampleR = fmax(fmin(inputSampleR*moreTapeHack,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.9239; + //end TapeHack section + //Discontapeity + double trebleL = inputSampleL; double outSample = (trebleL * highA[biq_a0]) + highA[biq_sL1]; highA[biq_sL1] = (trebleL * highA[biq_a1]) - (outSample * highA[biq_b1]) + highA[biq_sL2]; @@ -423,72 +526,13 @@ void ConsoleX2Pre::processReplacing(float **inputs, float **outputs, VstInt32 sa } //blank out lowpass if just switched off } //Cabs2 - - //begin Discontinuity section - inputSampleL *= moreDiscontinuity; - dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5); - dBaPosL = fmin(dBaPosL,1.0); - int dBdly = floor(dBaPosL*dscBuf); - double dBi = (dBaPosL*dscBuf)-dBdly; - inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi; - dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0; - inputSampleL /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleL = fmax(fmin(inputSampleL*moreTapeHack,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.9239; - //end TapeHack section - - //begin Discontinuity section - inputSampleR *= moreDiscontinuity; - dBaR[dBaXR] = inputSampleR; dBaPosR *= 0.5; dBaPosR += fabs((inputSampleR*((inputSampleR*0.25)-0.5))*0.5); - dBaPosR = fmin(dBaPosR,1.0); - dBdly = floor(dBaPosR*dscBuf); - dBi = (dBaPosR*dscBuf)-dBdly; - inputSampleR = dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleR += dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*dBi; - dBaXR++; if (dBaXR < 0 || dBaXR >= dscBuf) dBaXR = 0; - inputSampleR /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleR = fmax(fmin(inputSampleR*moreTapeHack,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.9239; - //end TapeHack section - //Discontapeity - - 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); - inputSampleL = inputSampleL * gainL * gain; - inputSampleR = inputSampleR * gainR * gain; + inputSampleL = inputSampleL * gain; + inputSampleR = inputSampleR * gain; //applies pan section, and smoothed fader gain //begin 32 bit stereo floating point dither @@ -521,20 +565,33 @@ void ConsoleX2Pre::processDoubleReplacing(double **inputs, double **outputs, Vst 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 = (B*2.0)+1.0; + switch ((int)(A*4.0)){ + 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(B*0.42,3.0)*overallscale,0.00001); + //Discontapeity - double trebleGain = (A-0.5)*2.0; + double trebleGain = (C-0.5)*2.0; trebleGain = 1.0+(trebleGain*fabs(trebleGain)*fabs(trebleGain)); - double highmidGain = (B-0.5)*2.0; + double highmidGain = (D-0.5)*2.0; highmidGain = 1.0+(highmidGain*fabs(highmidGain)*fabs(highmidGain)); - double lowmidGain = (C-0.5)*2.0; + double lowmidGain = (E-0.5)*2.0; lowmidGain = 1.0+(lowmidGain*fabs(lowmidGain)*fabs(lowmidGain)); - double bassGain = (D-0.5)*2.0; + double bassGain = (F-0.5)*2.0; bassGain = 1.0+(bassGain*fabs(bassGain)*fabs(bassGain)); - double trebleRef = E-0.5; - double highmidRef = F-0.5; - double lowmidRef = G-0.5; - double bassRef = H-0.5; + double trebleRef = G-0.5; + double highmidRef = H-0.5; + double lowmidRef = I-0.5; + double bassRef = J-0.5; double highF = 0.75 + ((trebleRef+trebleRef+trebleRef+highmidRef)*0.125); double bassF = 0.25 + ((lowmidRef+bassRef+bassRef+bassRef)*0.125); double midF = (highF*0.5) + (bassF*0.5) + ((highmidRef+lowmidRef)*0.125); @@ -547,8 +604,8 @@ void ConsoleX2Pre::processDoubleReplacing(double **inputs, double **outputs, Vst highC[biq_freq] = highB[biq_freq] = highA[biq_freq] = fmax(fmin(highA[biq_freq],0.4999),0.00025); double highFreq = pow(highF,3)*20000.0; double omega = 2.0*M_PI*(highFreq/getSampleRate()); - double K = 2.0-cos(omega); - double highCoef = -sqrt((K*K)-1.0)+K; + double biqK = 2.0-cos(omega); + double highCoef = -sqrt((biqK*biqK)-1.0)+biqK; highA[biq_reso] = 2.24697960 * highQ; highB[biq_reso] = 0.80193774 * highQ; highC[biq_reso] = 0.55495813 * highQ; @@ -557,8 +614,8 @@ void ConsoleX2Pre::processDoubleReplacing(double **inputs, double **outputs, Vst midC[biq_freq] = midB[biq_freq] = midA[biq_freq] = fmax(fmin(midA[biq_freq],0.4999),0.00025); double midFreq = pow(midF,3)*20000.0; omega = 2.0*M_PI*(midFreq/getSampleRate()); - K = 2.0-cos(omega); - double midCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double midCoef = -sqrt((biqK*biqK)-1.0)+biqK; midA[biq_reso] = 2.24697960 * midQ; midB[biq_reso] = 0.80193774 * midQ; midC[biq_reso] = 0.55495813 * midQ; @@ -567,96 +624,91 @@ void ConsoleX2Pre::processDoubleReplacing(double **inputs, double **outputs, Vst lowC[biq_freq] = lowB[biq_freq] = lowA[biq_freq] = fmax(fmin(lowA[biq_freq],0.4999),0.00025); double lowFreq = pow(bassF,3)*20000.0; omega = 2.0*M_PI*(lowFreq/getSampleRate()); - K = 2.0-cos(omega); - double lowCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double lowCoef = -sqrt((biqK*biqK)-1.0)+biqK; lowA[biq_reso] = 2.24697960 * lowQ; lowB[biq_reso] = 0.80193774 * lowQ; lowC[biq_reso] = 0.55495813 * lowQ; - K = tan(M_PI * highA[biq_freq]); - double norm = 1.0 / (1.0 + K / highA[biq_reso] + K * K); - highA[biq_a0] = K * K * norm; + biqK = tan(M_PI * highA[biq_freq]); + double norm = 1.0 / (1.0 + biqK / highA[biq_reso] + biqK * biqK); + highA[biq_a0] = biqK * biqK * norm; highA[biq_a1] = 2.0 * highA[biq_a0]; highA[biq_a2] = highA[biq_a0]; - highA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highA[biq_b2] = (1.0 - K / highA[biq_reso] + K * K) * norm; - K = tan(M_PI * highB[biq_freq]); - norm = 1.0 / (1.0 + K / highB[biq_reso] + K * K); - highB[biq_a0] = K * K * norm; + highA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highA[biq_b2] = (1.0 - biqK / highA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highB[biq_freq]); + norm = 1.0 / (1.0 + biqK / highB[biq_reso] + biqK * biqK); + highB[biq_a0] = biqK * biqK * norm; highB[biq_a1] = 2.0 * highB[biq_a0]; highB[biq_a2] = highB[biq_a0]; - highB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highB[biq_b2] = (1.0 - K / highB[biq_reso] + K * K) * norm; - K = tan(M_PI * highC[biq_freq]); - norm = 1.0 / (1.0 + K / highC[biq_reso] + K * K); - highC[biq_a0] = K * K * norm; + highB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highB[biq_b2] = (1.0 - biqK / highB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highC[biq_freq]); + norm = 1.0 / (1.0 + biqK / highC[biq_reso] + biqK * biqK); + highC[biq_a0] = biqK * biqK * norm; highC[biq_a1] = 2.0 * highC[biq_a0]; highC[biq_a2] = highC[biq_a0]; - highC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highC[biq_b2] = (1.0 - K / highC[biq_reso] + K * K) * norm; + highC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highC[biq_b2] = (1.0 - biqK / highC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * midA[biq_freq]); - norm = 1.0 / (1.0 + K / midA[biq_reso] + K * K); - midA[biq_a0] = K * K * norm; + biqK = tan(M_PI * midA[biq_freq]); + norm = 1.0 / (1.0 + biqK / midA[biq_reso] + biqK * biqK); + midA[biq_a0] = biqK * biqK * norm; midA[biq_a1] = 2.0 * midA[biq_a0]; midA[biq_a2] = midA[biq_a0]; - midA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midA[biq_b2] = (1.0 - K / midA[biq_reso] + K * K) * norm; - K = tan(M_PI * midB[biq_freq]); - norm = 1.0 / (1.0 + K / midB[biq_reso] + K * K); - midB[biq_a0] = K * K * norm; + midA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midA[biq_b2] = (1.0 - biqK / midA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midB[biq_freq]); + norm = 1.0 / (1.0 + biqK / midB[biq_reso] + biqK * biqK); + midB[biq_a0] = biqK * biqK * norm; midB[biq_a1] = 2.0 * midB[biq_a0]; midB[biq_a2] = midB[biq_a0]; - midB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midB[biq_b2] = (1.0 - K / midB[biq_reso] + K * K) * norm; - K = tan(M_PI * midC[biq_freq]); - norm = 1.0 / (1.0 + K / midC[biq_reso] + K * K); - midC[biq_a0] = K * K * norm; + midB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midB[biq_b2] = (1.0 - biqK / midB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midC[biq_freq]); + norm = 1.0 / (1.0 + biqK / midC[biq_reso] + biqK * biqK); + midC[biq_a0] = biqK * biqK * norm; midC[biq_a1] = 2.0 * midC[biq_a0]; midC[biq_a2] = midC[biq_a0]; - midC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midC[biq_b2] = (1.0 - K / midC[biq_reso] + K * K) * norm; + midC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midC[biq_b2] = (1.0 - biqK / midC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * lowA[biq_freq]); - norm = 1.0 / (1.0 + K / lowA[biq_reso] + K * K); - lowA[biq_a0] = K * K * norm; + biqK = tan(M_PI * lowA[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowA[biq_reso] + biqK * biqK); + lowA[biq_a0] = biqK * biqK * norm; lowA[biq_a1] = 2.0 * lowA[biq_a0]; lowA[biq_a2] = lowA[biq_a0]; - lowA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowA[biq_b2] = (1.0 - K / lowA[biq_reso] + K * K) * norm; - K = tan(M_PI * lowB[biq_freq]); - norm = 1.0 / (1.0 + K / lowB[biq_reso] + K * K); - lowB[biq_a0] = K * K * norm; + lowA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowA[biq_b2] = (1.0 - biqK / lowA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowB[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowB[biq_reso] + biqK * biqK); + lowB[biq_a0] = biqK * biqK * norm; lowB[biq_a1] = 2.0 * lowB[biq_a0]; lowB[biq_a2] = lowB[biq_a0]; - lowB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowB[biq_b2] = (1.0 - K / lowB[biq_reso] + K * K) * norm; - K = tan(M_PI * lowC[biq_freq]); - norm = 1.0 / (1.0 + K / lowC[biq_reso] + K * K); - lowC[biq_a0] = K * K * norm; + lowB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowB[biq_b2] = (1.0 - biqK / lowB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowC[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowC[biq_reso] + biqK * biqK); + lowC[biq_a0] = biqK * biqK * norm; lowC[biq_a1] = 2.0 * lowC[biq_a0]; lowC[biq_a2] = lowC[biq_a0]; - lowC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowC[biq_b2] = (1.0 - K / lowC[biq_reso] + K * K) * norm; + lowC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowC[biq_b2] = (1.0 - biqK / lowC[biq_reso] + biqK * biqK) * norm; //SmoothEQ2 - double bezCThresh = pow(1.0-I, 6.0) * 8.0; - double bezRez = pow(1.0-J, 8.0) / overallscale; - double sloRez = pow(1.0-K,12.0) / overallscale; + double bezCThresh = pow(1.0-K, 6.0) * 8.0; + double bezRez = pow(1.0-L, 8.0) / overallscale; + double sloRez = pow(1.0-M,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(L,4.0),sqrt(bezCThresh+1.0)); + double gate = pow(pow(N,4.0),sqrt(bezCThresh+1.0)); //Dynamics2 - lFreqA = lFreqB; lFreqB = pow(fmax(M,0.002),overallscale); //the lowpass - hFreqA = hFreqB; hFreqB = pow(N,overallscale+2.0); //the highpass + lFreqA = lFreqB; lFreqB = pow(fmax(O,0.002),overallscale); //the lowpass + hFreqA = hFreqB; hFreqB = pow(P,overallscale+2.0); //the highpass //Cabs2 - double moreDiscontinuity = fmax(pow(O*0.42,3.0)*overallscale,0.00001); - double moreTapeHack = (O*1.4152481)+1.2; - //Discontapeity - - panA = panB; panB = P*1.57079633; inTrimA = inTrimB; inTrimB = Q*2.0; //Console @@ -666,6 +718,101 @@ void ConsoleX2Pre::processDoubleReplacing(double **inputs, double **outputs, Vst double inputSampleR = *in2; if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17; if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17; + + double darkSampleL = inputSampleL; + double darkSampleR = inputSampleR; + if (avgPos > 31) avgPos = 0; + if (spacing > 31) { + avg32L[avgPos] = darkSampleL; avg32R[avgPos] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 32; x++) {darkSampleL += avg32L[x]; darkSampleR += avg32R[x];} + darkSampleL /= 32.0; darkSampleR /= 32.0; + } if (spacing > 15) { + avg16L[avgPos%16] = darkSampleL; avg16R[avgPos%16] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 16; x++) {darkSampleL += avg16L[x]; darkSampleR += avg16R[x];} + darkSampleL /= 16.0; darkSampleR /= 16.0; + } if (spacing > 7) { + avg8L[avgPos%8] = darkSampleL; avg8R[avgPos%8] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 8; x++) {darkSampleL += avg8L[x]; darkSampleR += avg8R[x];} + darkSampleL /= 8.0; darkSampleR /= 8.0; + } if (spacing > 3) { + avg4L[avgPos%4] = darkSampleL; avg4R[avgPos%4] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 4; x++) {darkSampleL += avg4L[x]; darkSampleR += avg4R[x];} + darkSampleL /= 4.0; darkSampleR /= 4.0; + } if (spacing > 1) { + avg2L[avgPos%2] = darkSampleL; avg2R[avgPos%2] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 2; x++) {darkSampleL += avg2L[x]; darkSampleR += avg2R[x];} + darkSampleL /= 2.0; darkSampleR /= 2.0; + } avgPos++; + lastSlewL += fabs(lastSlewpleL-inputSampleL); lastSlewpleL = inputSampleL; + double avgSlewL = fmin(lastSlewL,1.0); + lastSlewL = fmax(lastSlewL*0.78,2.39996322972865332223); + lastSlewR += fabs(lastSlewpleR-inputSampleR); lastSlewpleR = inputSampleR; + double avgSlewR = fmin(lastSlewR,1.0); + lastSlewR = fmax(lastSlewR*0.78,2.39996322972865332223); //look up Golden Angle, it's cool + inputSampleL = (inputSampleL*(1.0-avgSlewL)) + (darkSampleL*avgSlewL); + inputSampleR = (inputSampleR*(1.0-avgSlewR)) + (darkSampleR*avgSlewR); + + //begin Discontinuity section + inputSampleL *= moreTapeHack; + inputSampleL *= moreDiscontinuity; + dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5); + dBaPosL = fmin(dBaPosL,1.0); + int dBdly = floor(dBaPosL*dscBuf); + double dBi = (dBaPosL*dscBuf)-dBdly; + inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi); + dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi; + dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0; + inputSampleL /= moreDiscontinuity; + //end Discontinuity section, begin TapeHack section + inputSampleL = fmax(fmin(inputSampleL*moreTapeHack,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.9239; + //end TapeHack section + + //begin Discontinuity section + inputSampleR *= moreTapeHack; + inputSampleR *= moreDiscontinuity; + dBaR[dBaXR] = inputSampleR; dBaPosR *= 0.5; dBaPosR += fabs((inputSampleR*((inputSampleR*0.25)-0.5))*0.5); + dBaPosR = fmin(dBaPosR,1.0); + dBdly = floor(dBaPosR*dscBuf); + dBi = (dBaPosR*dscBuf)-dBdly; + inputSampleR = dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*(1.0-dBi); + dBdly++; inputSampleR += dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*dBi; + dBaXR++; if (dBaXR < 0 || dBaXR >= dscBuf) dBaXR = 0; + inputSampleR /= moreDiscontinuity; + //end Discontinuity section, begin TapeHack section + inputSampleR = fmax(fmin(inputSampleR*moreTapeHack,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.9239; + //end TapeHack section + //Discontapeity double trebleL = inputSampleL; double outSample = (trebleL * highA[biq_a0]) + highA[biq_sL1]; @@ -927,73 +1074,14 @@ void ConsoleX2Pre::processDoubleReplacing(double **inputs, double **outputs, Vst } //Cabs2 - //begin Discontinuity section - inputSampleL *= moreDiscontinuity; - dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5); - dBaPosL = fmin(dBaPosL,1.0); - int dBdly = floor(dBaPosL*dscBuf); - double dBi = (dBaPosL*dscBuf)-dBdly; - inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi; - dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0; - inputSampleL /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleL = fmax(fmin(inputSampleL*moreTapeHack,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.9239; - //end TapeHack section - - //begin Discontinuity section - inputSampleR *= moreDiscontinuity; - dBaR[dBaXR] = inputSampleR; dBaPosR *= 0.5; dBaPosR += fabs((inputSampleR*((inputSampleR*0.25)-0.5))*0.5); - dBaPosR = fmin(dBaPosR,1.0); - dBdly = floor(dBaPosR*dscBuf); - dBi = (dBaPosR*dscBuf)-dBdly; - inputSampleR = dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleR += dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*dBi; - dBaXR++; if (dBaXR < 0 || dBaXR >= dscBuf) dBaXR = 0; - inputSampleR /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleR = fmax(fmin(inputSampleR*moreTapeHack,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.9239; - //end TapeHack section - //Discontapeity - - 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); - inputSampleL = inputSampleL * gainL * gain; - inputSampleR = inputSampleR * gainR * gain; + inputSampleL = inputSampleL * gain; + inputSampleR = inputSampleR * gain; //applies pan section, and smoothed fader gain - + //begin 64 bit stereo floating point dither //int expon; frexp((double)inputSampleL, &expon); fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5; diff --git a/plugins/LinuxVST/src/X2Buss/X2Buss.cpp b/plugins/LinuxVST/src/X2Buss/X2Buss.cpp new file mode 100755 index 000000000..59b50e4ab --- /dev/null +++ b/plugins/LinuxVST/src/X2Buss/X2Buss.cpp @@ -0,0 +1,228 @@ +/* ======================================== + * X2Buss - X2Buss.h + * Copyright (c) airwindows, Airwindows uses the MIT license + * ======================================== */ + +#ifndef __X2Buss_H +#include "X2Buss.h" +#endif + +AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new X2Buss(audioMaster);} + +X2Buss::X2Buss(audioMasterCallback audioMaster) : + AudioEffectX(audioMaster, kNumPrograms, kNumParameters) +{ + A = 0.5; + B = 0.5; + C = 0.5; + D = 0.5; + E = 0.5; + F = 0.5; + G = 0.5; + H = 0.5; + I = 1.0; + J = 0.5; + + for (int x = 0; x < biq_total; x++) { + highA[x] = 0.0; + highB[x] = 0.0; + highC[x] = 0.0; + midA[x] = 0.0; + midB[x] = 0.0; + midC[x] = 0.0; + lowA[x] = 0.0; + lowB[x] = 0.0; + lowC[x] = 0.0; + } + highLIIR = 0.0; + highRIIR = 0.0; + midLIIR = 0.0; + midRIIR = 0.0; + lowLIIR = 0.0; + lowRIIR = 0.0; + //SmoothEQ2 + + for (int x = 0; x < bez_total; x++) {bezCompF[x] = 0.0;bezCompS[x] = 0.0;} + bezCompF[bez_cycle] = 1.0; bezMaxF = 0.0; + bezCompS[bez_cycle] = 1.0; + //Dynamics2 + + 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 + + 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 +} + +X2Buss::~X2Buss() {} +VstInt32 X2Buss::getVendorVersion () {return 1000;} +void X2Buss::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);} +void X2Buss::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 X2Buss::getChunk (void** data, bool isPreset) +{ + float *chunkData = (float *)calloc(kNumParameters, sizeof(float)); + chunkData[0] = A; + chunkData[1] = B; + chunkData[2] = C; + chunkData[3] = D; + chunkData[4] = E; + chunkData[5] = F; + chunkData[6] = G; + chunkData[7] = H; + chunkData[8] = I; + chunkData[9] = J; + /* 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 X2Buss::setChunk (void* data, VstInt32 byteSize, bool isPreset) +{ + float *chunkData = (float *)data; + A = pinParameter(chunkData[0]); + B = pinParameter(chunkData[1]); + C = pinParameter(chunkData[2]); + D = pinParameter(chunkData[3]); + E = pinParameter(chunkData[4]); + F = pinParameter(chunkData[5]); + G = pinParameter(chunkData[6]); + H = pinParameter(chunkData[7]); + I = pinParameter(chunkData[8]); + J = pinParameter(chunkData[9]); + /* 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 X2Buss::setParameter(VstInt32 index, float value) { + switch (index) { + case kParamA: A = value; break; + case kParamB: B = value; break; + case kParamC: C = value; break; + case kParamD: D = value; break; + case kParamE: E = value; break; + case kParamF: F = value; break; + case kParamG: G = value; break; + case kParamH: H = value; break; + case kParamI: I = value; break; + case kParamJ: J = value; break; + default: throw; // unknown parameter, shouldn't happen! + } +} + +float X2Buss::getParameter(VstInt32 index) { + switch (index) { + case kParamA: return A; break; + case kParamB: return B; break; + case kParamC: return C; break; + case kParamD: return D; break; + case kParamE: return E; break; + case kParamF: return F; break; + case kParamG: return G; break; + case kParamH: return H; break; + case kParamI: return I; break; + case kParamJ: return J; 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 X2Buss::getParameterName(VstInt32 index, char *text) { + switch (index) { + case kParamA: vst_strncpy (text, "High", kVstMaxParamStrLen); break; + case kParamB: vst_strncpy (text, "HMid", kVstMaxParamStrLen); break; + case kParamC: vst_strncpy (text, "LMid", kVstMaxParamStrLen); break; + case kParamD: vst_strncpy (text, "Bass", kVstMaxParamStrLen); break; + case kParamE: vst_strncpy (text, "HighF", kVstMaxParamStrLen); break; + case kParamF: vst_strncpy (text, "HMidF", kVstMaxParamStrLen); break; + case kParamG: vst_strncpy (text, "LMidF", kVstMaxParamStrLen); break; + case kParamH: vst_strncpy (text, "BassF", kVstMaxParamStrLen); break; + case kParamI: vst_strncpy (text, "Thresh", kVstMaxParamStrLen); break; + case kParamJ: vst_strncpy (text, "Fader", kVstMaxParamStrLen); break; + default: break; // unknown parameter, shouldn't happen! + } //this is our labels for displaying in the VST host +} + +void X2Buss::getParameterDisplay(VstInt32 index, char *text) { + switch (index) { + case kParamA: float2string (A, text, kVstMaxParamStrLen); break; + case kParamB: float2string (B, text, kVstMaxParamStrLen); break; + case kParamC: float2string (C, text, kVstMaxParamStrLen); break; + case kParamD: float2string (D, text, kVstMaxParamStrLen); break; + case kParamE: float2string (E, text, kVstMaxParamStrLen); break; + case kParamF: float2string (F, text, kVstMaxParamStrLen); break; + case kParamG: float2string (G, text, kVstMaxParamStrLen); break; + case kParamH: float2string (H, text, kVstMaxParamStrLen); break; + case kParamI: float2string (I, text, kVstMaxParamStrLen); break; + case kParamJ: float2string (J, text, kVstMaxParamStrLen); break; + default: break; // unknown parameter, shouldn't happen! + } //this displays the values and handles 'popups' where it's discrete choices +} + +void X2Buss::getParameterLabel(VstInt32 index, char *text) { + switch (index) { + case kParamA: vst_strncpy (text, "eq", kVstMaxParamStrLen); break; + case kParamB: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamC: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamD: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamE: vst_strncpy (text, "freq", kVstMaxParamStrLen); break; + case kParamF: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamG: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamH: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamI: vst_strncpy (text, "dyn", kVstMaxParamStrLen); break; + case kParamJ: vst_strncpy (text, "", kVstMaxParamStrLen); break; + default: break; // unknown parameter, shouldn't happen! + } +} + +VstInt32 X2Buss::canDo(char *text) +{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know + +bool X2Buss::getEffectName(char* name) { + vst_strncpy(name, "X2Buss", kVstMaxProductStrLen); return true; +} + +VstPlugCategory X2Buss::getPlugCategory() {return kPlugCategEffect;} + +bool X2Buss::getProductString(char* text) { + vst_strncpy (text, "airwindows X2Buss", kVstMaxProductStrLen); return true; +} + +bool X2Buss::getVendorString(char* text) { + vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true; +} diff --git a/plugins/LinuxVST/src/X2Buss/X2Buss.h b/plugins/LinuxVST/src/X2Buss/X2Buss.h new file mode 100755 index 000000000..2a192358b --- /dev/null +++ b/plugins/LinuxVST/src/X2Buss/X2Buss.h @@ -0,0 +1,154 @@ +/* ======================================== + * X2Buss - X2Buss.h + * Created 8/12/11 by SPIAdmin + * Copyright (c) Airwindows, Airwindows uses the MIT license + * ======================================== */ + +#ifndef __X2Buss_H +#define __X2Buss_H + +#ifndef __audioeffect__ +#include "audioeffectx.h" +#endif + +#include +#include +#include + +enum { + kParamA =0, + kParamB =1, + kParamC =2, + kParamD =3, + kParamE =4, + kParamF =5, + kParamG =6, + kParamH =7, + kParamI =8, + kParamJ =9, + kNumParameters = 10 +}; // + +const int kNumPrograms = 0; +const int kNumInputs = 2; +const int kNumOutputs = 2; +const unsigned long kUniqueId = 'x2bs'; //Change this to what the AU identity is! + +class X2Buss : + public AudioEffectX +{ +public: + X2Buss(audioMasterCallback audioMaster); + ~X2Buss(); + virtual bool getEffectName(char* name); // The plug-in name + virtual VstPlugCategory getPlugCategory(); // The general category for the plug-in + virtual bool getProductString(char* text); // This is a unique plug-in string provided by Steinberg + virtual bool getVendorString(char* text); // Vendor info + virtual VstInt32 getVendorVersion(); // Version number + virtual void processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames); + virtual void processDoubleReplacing (double** inputs, double** outputs, VstInt32 sampleFrames); + virtual void getProgramName(char *name); // read the name from the host + virtual void setProgramName(char *name); // changes the name of the preset displayed in the host + virtual VstInt32 getChunk (void** data, bool isPreset); + virtual VstInt32 setChunk (void* data, VstInt32 byteSize, bool isPreset); + virtual float getParameter(VstInt32 index); // get the parameter value at the specified index + virtual void setParameter(VstInt32 index, float value); // set the parameter at index to value + virtual void getParameterLabel(VstInt32 index, char *text); // label for the parameter (eg dB) + virtual void getParameterName(VstInt32 index, char *text); // name of the parameter + virtual void getParameterDisplay(VstInt32 index, char *text); // text description of the current value + virtual VstInt32 canDo(char *text); +private: + char _programName[kVstMaxProgNameLen + 1]; + std::set< std::string > _canDo; + + float A; + float B; + float C; + float D; + float E; + float F; + float G; + float H; + float I; + float J; + + 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 highA[biq_total]; + double highB[biq_total]; + double highC[biq_total]; + double highLIIR; + double highRIIR; + + double midA[biq_total]; + double midB[biq_total]; + double midC[biq_total]; + double midLIIR; + double midRIIR; + + double lowA[biq_total]; + double lowB[biq_total]; + double lowC[biq_total]; + double lowLIIR; + double lowRIIR; + //SmoothEQ2 + + enum { + bez_AL, + bez_BL, + bez_CL, + bez_InL, + bez_UnInL, + bez_SampL, + bez_AR, + bez_BR, + bez_CR, + bez_InR, + bez_UnInR, + bez_SampR, + bez_cycle, + bez_total + }; //the new undersampling. bez signifies the bezier curve reconstruction + double bezCompF[bez_total]; + double bezMaxF; + double bezCompS[bez_total]; + //Dynamics2 + + 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 diff --git a/plugins/LinuxVST/src/X2Buss/X2BussProc.cpp b/plugins/LinuxVST/src/X2Buss/X2BussProc.cpp new file mode 100755 index 000000000..d203aadb5 --- /dev/null +++ b/plugins/LinuxVST/src/X2Buss/X2BussProc.cpp @@ -0,0 +1,915 @@ +/* ======================================== + * X2Buss - X2Buss.h + * Copyright (c) airwindows, Airwindows uses the MIT license + * ======================================== */ + +#ifndef __X2Buss_H +#include "X2Buss.h" +#endif + +void X2Buss::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 = (A-0.5)*2.0; + trebleGain = 1.0+(trebleGain*fabs(trebleGain)*fabs(trebleGain)); + double highmidGain = (B-0.5)*2.0; + highmidGain = 1.0+(highmidGain*fabs(highmidGain)*fabs(highmidGain)); + double lowmidGain = (C-0.5)*2.0; + lowmidGain = 1.0+(lowmidGain*fabs(lowmidGain)*fabs(lowmidGain)); + double bassGain = (D-0.5)*2.0; + bassGain = 1.0+(bassGain*fabs(bassGain)*fabs(bassGain)); + + double trebleRef = E-0.5; + double highmidRef = F-0.5; + double lowmidRef = G-0.5; + double bassRef = H-0.5; + double highF = 0.75 + ((trebleRef+trebleRef+trebleRef+highmidRef)*0.125); + double bassF = 0.25 + ((lowmidRef+bassRef+bassRef+bassRef)*0.125); + double midF = (highF*0.5) + (bassF*0.5) + ((highmidRef+lowmidRef)*0.125); + + double highQ = fmax(fmin(1.0+(highmidRef-trebleRef),4.0),0.125); + double midQ = fmax(fmin(1.0+(lowmidRef-highmidRef),4.0),0.125); + double lowQ = fmax(fmin(1.0+(bassRef-lowmidRef),4.0),0.125); + + highA[biq_freq] = ((pow(highF,3)*20000.0)/getSampleRate()); + highC[biq_freq] = highB[biq_freq] = highA[biq_freq] = fmax(fmin(highA[biq_freq],0.4999),0.00025); + double highFreq = pow(highF,3)*20000.0; + double omega = 2.0*M_PI*(highFreq/getSampleRate()); + double biqK = 2.0-cos(omega); + double highCoef = -sqrt((biqK*biqK)-1.0)+biqK; + highA[biq_reso] = 2.24697960 * highQ; + highB[biq_reso] = 0.80193774 * highQ; + highC[biq_reso] = 0.55495813 * highQ; + + midA[biq_freq] = ((pow(midF,3)*20000.0)/getSampleRate()); + midC[biq_freq] = midB[biq_freq] = midA[biq_freq] = fmax(fmin(midA[biq_freq],0.4999),0.00025); + double midFreq = pow(midF,3)*20000.0; + omega = 2.0*M_PI*(midFreq/getSampleRate()); + biqK = 2.0-cos(omega); + double midCoef = -sqrt((biqK*biqK)-1.0)+biqK; + midA[biq_reso] = 2.24697960 * midQ; + midB[biq_reso] = 0.80193774 * midQ; + midC[biq_reso] = 0.55495813 * midQ; + + lowA[biq_freq] = ((pow(bassF,3)*20000.0)/getSampleRate()); + lowC[biq_freq] = lowB[biq_freq] = lowA[biq_freq] = fmax(fmin(lowA[biq_freq],0.4999),0.00025); + double lowFreq = pow(bassF,3)*20000.0; + omega = 2.0*M_PI*(lowFreq/getSampleRate()); + biqK = 2.0-cos(omega); + double lowCoef = -sqrt((biqK*biqK)-1.0)+biqK; + lowA[biq_reso] = 2.24697960 * lowQ; + lowB[biq_reso] = 0.80193774 * lowQ; + lowC[biq_reso] = 0.55495813 * lowQ; + + biqK = tan(M_PI * highA[biq_freq]); + double norm = 1.0 / (1.0 + biqK / highA[biq_reso] + biqK * biqK); + highA[biq_a0] = biqK * biqK * norm; + highA[biq_a1] = 2.0 * highA[biq_a0]; + highA[biq_a2] = highA[biq_a0]; + highA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highA[biq_b2] = (1.0 - biqK / highA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highB[biq_freq]); + norm = 1.0 / (1.0 + biqK / highB[biq_reso] + biqK * biqK); + highB[biq_a0] = biqK * biqK * norm; + highB[biq_a1] = 2.0 * highB[biq_a0]; + highB[biq_a2] = highB[biq_a0]; + highB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highB[biq_b2] = (1.0 - biqK / highB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highC[biq_freq]); + norm = 1.0 / (1.0 + biqK / highC[biq_reso] + biqK * biqK); + highC[biq_a0] = biqK * biqK * norm; + highC[biq_a1] = 2.0 * highC[biq_a0]; + highC[biq_a2] = highC[biq_a0]; + highC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highC[biq_b2] = (1.0 - biqK / highC[biq_reso] + biqK * biqK) * norm; + + biqK = tan(M_PI * midA[biq_freq]); + norm = 1.0 / (1.0 + biqK / midA[biq_reso] + biqK * biqK); + midA[biq_a0] = biqK * biqK * norm; + midA[biq_a1] = 2.0 * midA[biq_a0]; + midA[biq_a2] = midA[biq_a0]; + midA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midA[biq_b2] = (1.0 - biqK / midA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midB[biq_freq]); + norm = 1.0 / (1.0 + biqK / midB[biq_reso] + biqK * biqK); + midB[biq_a0] = biqK * biqK * norm; + midB[biq_a1] = 2.0 * midB[biq_a0]; + midB[biq_a2] = midB[biq_a0]; + midB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midB[biq_b2] = (1.0 - biqK / midB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midC[biq_freq]); + norm = 1.0 / (1.0 + biqK / midC[biq_reso] + biqK * biqK); + midC[biq_a0] = biqK * biqK * norm; + midC[biq_a1] = 2.0 * midC[biq_a0]; + midC[biq_a2] = midC[biq_a0]; + midC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midC[biq_b2] = (1.0 - biqK / midC[biq_reso] + biqK * biqK) * norm; + + biqK = tan(M_PI * lowA[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowA[biq_reso] + biqK * biqK); + lowA[biq_a0] = biqK * biqK * norm; + lowA[biq_a1] = 2.0 * lowA[biq_a0]; + lowA[biq_a2] = lowA[biq_a0]; + lowA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowA[biq_b2] = (1.0 - biqK / lowA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowB[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowB[biq_reso] + biqK * biqK); + lowB[biq_a0] = biqK * biqK * norm; + lowB[biq_a1] = 2.0 * lowB[biq_a0]; + lowB[biq_a2] = lowB[biq_a0]; + lowB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowB[biq_b2] = (1.0 - biqK / lowB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowC[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowC[biq_reso] + biqK * biqK); + lowC[biq_a0] = biqK * biqK * norm; + lowC[biq_a1] = 2.0 * lowC[biq_a0]; + lowC[biq_a2] = lowC[biq_a0]; + lowC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowC[biq_b2] = (1.0 - biqK / lowC[biq_reso] + biqK * biqK) * norm; + //SmoothEQ2 + + double bezCThresh = pow(1.0-I, 6.0) * 8.0; + double bezRez = pow(1.0-I, 12.360679774997898) / overallscale; + double sloRez = pow(1.0-I,10.0) / overallscale; + sloRez = fmin(fmax(sloRez,0.00001),1.0); + bezRez = fmin(fmax(bezRez,0.00001),1.0); + //Dynamics2 + + inTrimA = inTrimB; inTrimB = J*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; + + 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)); + + double trebleL = inputSampleL; + double outSample = (trebleL * highA[biq_a0]) + highA[biq_sL1]; + highA[biq_sL1] = (trebleL * highA[biq_a1]) - (outSample * highA[biq_b1]) + highA[biq_sL2]; + highA[biq_sL2] = (trebleL * highA[biq_a2]) - (outSample * highA[biq_b2]); + double highmidL = outSample; trebleL -= highmidL; + + outSample = (highmidL * midA[biq_a0]) + midA[biq_sL1]; + midA[biq_sL1] = (highmidL * midA[biq_a1]) - (outSample * midA[biq_b1]) + midA[biq_sL2]; + midA[biq_sL2] = (highmidL * midA[biq_a2]) - (outSample * midA[biq_b2]); + double lowmidL = outSample; highmidL -= lowmidL; + + outSample = (lowmidL * lowA[biq_a0]) + lowA[biq_sL1]; + lowA[biq_sL1] = (lowmidL * lowA[biq_a1]) - (outSample * lowA[biq_b1]) + lowA[biq_sL2]; + lowA[biq_sL2] = (lowmidL * lowA[biq_a2]) - (outSample * lowA[biq_b2]); + double bassL = outSample; lowmidL -= bassL; + + trebleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain); + //first stage of three crossovers + + outSample = (trebleL * highB[biq_a0]) + highB[biq_sL1]; + highB[biq_sL1] = (trebleL * highB[biq_a1]) - (outSample * highB[biq_b1]) + highB[biq_sL2]; + highB[biq_sL2] = (trebleL * highB[biq_a2]) - (outSample * highB[biq_b2]); + highmidL = outSample; trebleL -= highmidL; + + outSample = (highmidL * midB[biq_a0]) + midB[biq_sL1]; + midB[biq_sL1] = (highmidL * midB[biq_a1]) - (outSample * midB[biq_b1]) + midB[biq_sL2]; + midB[biq_sL2] = (highmidL * midB[biq_a2]) - (outSample * midB[biq_b2]); + lowmidL = outSample; highmidL -= lowmidL; + + outSample = (lowmidL * lowB[biq_a0]) + lowB[biq_sL1]; + lowB[biq_sL1] = (lowmidL * lowB[biq_a1]) - (outSample * lowB[biq_b1]) + lowB[biq_sL2]; + lowB[biq_sL2] = (lowmidL * lowB[biq_a2]) - (outSample * lowB[biq_b2]); + bassL = outSample; lowmidL -= bassL; + + trebleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain); + //second stage of three crossovers + + outSample = (trebleL * highC[biq_a0]) + highC[biq_sL1]; + highC[biq_sL1] = (trebleL * highC[biq_a1]) - (outSample * highC[biq_b1]) + highC[biq_sL2]; + highC[biq_sL2] = (trebleL * highC[biq_a2]) - (outSample * highC[biq_b2]); + highmidL = outSample; trebleL -= highmidL; + + outSample = (highmidL * midC[biq_a0]) + midC[biq_sL1]; + midC[biq_sL1] = (highmidL * midC[biq_a1]) - (outSample * midC[biq_b1]) + midC[biq_sL2]; + midC[biq_sL2] = (highmidL * midC[biq_a2]) - (outSample * midC[biq_b2]); + lowmidL = outSample; highmidL -= lowmidL; + + outSample = (lowmidL * lowC[biq_a0]) + lowC[biq_sL1]; + lowC[biq_sL1] = (lowmidL * lowC[biq_a1]) - (outSample * lowC[biq_b1]) + lowC[biq_sL2]; + lowC[biq_sL2] = (lowmidL * lowC[biq_a2]) - (outSample * lowC[biq_b2]); + bassL = outSample; lowmidL -= bassL; + + trebleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain); + //third stage of three crossovers + + highLIIR = (highLIIR*highCoef) + (trebleL*(1.0-highCoef)); + highmidL = highLIIR; trebleL -= highmidL; + + midLIIR = (midLIIR*midCoef) + (highmidL*(1.0-midCoef)); + lowmidL = midLIIR; highmidL -= lowmidL; + + lowLIIR = (lowLIIR*lowCoef) + (lowmidL*(1.0-lowCoef)); + bassL = lowLIIR; lowmidL -= bassL; + + inputSampleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain); + //fourth stage of three crossovers is the exponential filters + + + double trebleR = inputSampleR; + outSample = (trebleR * highA[biq_a0]) + highA[biq_sR1]; + highA[biq_sR1] = (trebleR * highA[biq_a1]) - (outSample * highA[biq_b1]) + highA[biq_sR2]; + highA[biq_sR2] = (trebleR * highA[biq_a2]) - (outSample * highA[biq_b2]); + double highmidR = outSample; trebleR -= highmidR; + + outSample = (highmidR * midA[biq_a0]) + midA[biq_sR1]; + midA[biq_sR1] = (highmidR * midA[biq_a1]) - (outSample * midA[biq_b1]) + midA[biq_sR2]; + midA[biq_sR2] = (highmidR * midA[biq_a2]) - (outSample * midA[biq_b2]); + double lowmidR = outSample; highmidR -= lowmidR; + + outSample = (lowmidR * lowA[biq_a0]) + lowA[biq_sR1]; + lowA[biq_sR1] = (lowmidR * lowA[biq_a1]) - (outSample * lowA[biq_b1]) + lowA[biq_sR2]; + lowA[biq_sR2] = (lowmidR * lowA[biq_a2]) - (outSample * lowA[biq_b2]); + double bassR = outSample; lowmidR -= bassR; + + trebleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain); + //first stage of three crossovers + + outSample = (trebleR * highB[biq_a0]) + highB[biq_sR1]; + highB[biq_sR1] = (trebleR * highB[biq_a1]) - (outSample * highB[biq_b1]) + highB[biq_sR2]; + highB[biq_sR2] = (trebleR * highB[biq_a2]) - (outSample * highB[biq_b2]); + highmidR = outSample; trebleR -= highmidR; + + outSample = (highmidR * midB[biq_a0]) + midB[biq_sR1]; + midB[biq_sR1] = (highmidR * midB[biq_a1]) - (outSample * midB[biq_b1]) + midB[biq_sR2]; + midB[biq_sR2] = (highmidR * midB[biq_a2]) - (outSample * midB[biq_b2]); + lowmidR = outSample; highmidR -= lowmidR; + + outSample = (lowmidR * lowB[biq_a0]) + lowB[biq_sR1]; + lowB[biq_sR1] = (lowmidR * lowB[biq_a1]) - (outSample * lowB[biq_b1]) + lowB[biq_sR2]; + lowB[biq_sR2] = (lowmidR * lowB[biq_a2]) - (outSample * lowB[biq_b2]); + bassR = outSample; lowmidR -= bassR; + + trebleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain); + //second stage of three crossovers + + outSample = (trebleR * highC[biq_a0]) + highC[biq_sR1]; + highC[biq_sR1] = (trebleR * highC[biq_a1]) - (outSample * highC[biq_b1]) + highC[biq_sR2]; + highC[biq_sR2] = (trebleR * highC[biq_a2]) - (outSample * highC[biq_b2]); + highmidR = outSample; trebleR -= highmidR; + + outSample = (highmidR * midC[biq_a0]) + midC[biq_sR1]; + midC[biq_sR1] = (highmidR * midC[biq_a1]) - (outSample * midC[biq_b1]) + midC[biq_sR2]; + midC[biq_sR2] = (highmidR * midC[biq_a2]) - (outSample * midC[biq_b2]); + lowmidR = outSample; highmidR -= lowmidR; + + outSample = (lowmidR * lowC[biq_a0]) + lowC[biq_sR1]; + lowC[biq_sR1] = (lowmidR * lowC[biq_a1]) - (outSample * lowC[biq_b1]) + lowC[biq_sR2]; + lowC[biq_sR2] = (lowmidR * lowC[biq_a2]) - (outSample * lowC[biq_b2]); + bassR = outSample; lowmidR -= bassR; + + trebleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain); + //third stage of three crossovers + + highRIIR = (highRIIR*highCoef) + (trebleR*(1.0-highCoef)); + highmidR = highRIIR; trebleR -= highmidR; + + midRIIR = (midRIIR*midCoef) + (highmidR*(1.0-midCoef)); + lowmidR = midRIIR; highmidR -= lowmidR; + + lowRIIR = (lowRIIR*lowCoef) + (lowmidR*(1.0-lowCoef)); + bassR = lowRIIR; lowmidR -= bassR; + + inputSampleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain); + //fourth stage of three crossovers is the exponential filters + //SmoothEQ2 + + if (bezCThresh > 0.0) { + inputSampleL *= ((bezCThresh*0.5)+1.0); + inputSampleR *= ((bezCThresh*0.5)+1.0); + } + + bezCompF[bez_cycle] += bezRez; + bezCompF[bez_SampL] += (fabs(inputSampleL) * bezRez); + bezCompF[bez_SampR] += (fabs(inputSampleR) * bezRez); + bezMaxF = fmax(bezMaxF,fmax(fabs(inputSampleL),fabs(inputSampleR))); + + if (bezCompF[bez_cycle] > 1.0) { + bezCompF[bez_cycle] -= 1.0; + bezCompF[bez_CL] = bezCompF[bez_BL]; + bezCompF[bez_BL] = bezCompF[bez_AL]; + bezCompF[bez_AL] = bezCompF[bez_SampL]; + bezCompF[bez_SampL] = 0.0; + bezCompF[bez_CR] = bezCompF[bez_BR]; + bezCompF[bez_BR] = bezCompF[bez_AR]; + bezCompF[bez_AR] = bezCompF[bez_SampR]; + bezCompF[bez_SampR] = 0.0; + bezMaxF = 0.0; + } + bezCompS[bez_cycle] += sloRez; + bezCompS[bez_SampL] += (fabs(inputSampleL) * sloRez); //note: SampL is a control voltage + bezCompS[bez_SampR] += (fabs(inputSampleR) * sloRez); //note: SampR is a control voltage + if (bezCompS[bez_cycle] > 1.0) { + bezCompS[bez_cycle] -= 1.0; + bezCompS[bez_CL] = bezCompS[bez_BL]; + bezCompS[bez_BL] = bezCompS[bez_AL]; + bezCompS[bez_AL] = bezCompS[bez_SampL]; + bezCompS[bez_SampL] = 0.0; + bezCompS[bez_CR] = bezCompS[bez_BR]; + bezCompS[bez_BR] = bezCompS[bez_AR]; + bezCompS[bez_AR] = bezCompS[bez_SampR]; + bezCompS[bez_SampR] = 0.0; + } + double CBFL = (bezCompF[bez_CL]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_BL]*bezCompF[bez_cycle]); + double BAFL = (bezCompF[bez_BL]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_AL]*bezCompF[bez_cycle]); + double CBAFL = (bezCompF[bez_BL]+(CBFL*(1.0-bezCompF[bez_cycle]))+(BAFL*bezCompF[bez_cycle]))*0.5; + double CBSL = (bezCompS[bez_CL]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_BL]*bezCompS[bez_cycle]); + double BASL = (bezCompS[bez_BL]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_AL]*bezCompS[bez_cycle]); + double CBASL = (bezCompS[bez_BL]+(CBSL*(1.0-bezCompS[bez_cycle]))+(BASL*bezCompS[bez_cycle]))*0.5; + double CBAMax = fmax(CBASL,CBAFL); if (CBAMax > 0.0) CBAMax = 1.0/CBAMax; + double CBAFade = ((CBASL*-CBAMax)+(CBAFL*CBAMax)+1.0)*0.5; + if (bezCThresh > 0.0) inputSampleL *= 1.0-(fmin(((CBASL*(1.0-CBAFade))+(CBAFL*CBAFade))*bezCThresh,1.0)); + + double CBFR = (bezCompF[bez_CR]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_BR]*bezCompF[bez_cycle]); + double BAFR = (bezCompF[bez_BR]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_AR]*bezCompF[bez_cycle]); + double CBAFR = (bezCompF[bez_BR]+(CBFR*(1.0-bezCompF[bez_cycle]))+(BAFR*bezCompF[bez_cycle]))*0.5; + double CBSR = (bezCompS[bez_CR]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_BR]*bezCompS[bez_cycle]); + double BASR = (bezCompS[bez_BR]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_AR]*bezCompS[bez_cycle]); + double CBASR = (bezCompS[bez_BR]+(CBSR*(1.0-bezCompS[bez_cycle]))+(BASR*bezCompS[bez_cycle]))*0.5; + CBAMax = fmax(CBASR,CBAFR); if (CBAMax > 0.0) CBAMax = 1.0/CBAMax; + CBAFade = ((CBASR*-CBAMax)+(CBAFR*CBAMax)+1.0)*0.5; + if (bezCThresh > 0.0) inputSampleR *= 1.0-(fmin(((CBASR*(1.0-CBAFade))+(CBAFR*CBAFade))*bezCThresh,1.0)); + //Dynamics2 + + const double temp = (double)sampleFrames/inFramesToProcess; + 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 * gain; + inputSampleR = inputSampleR * 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 X2Buss::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 = (A-0.5)*2.0; + trebleGain = 1.0+(trebleGain*fabs(trebleGain)*fabs(trebleGain)); + double highmidGain = (B-0.5)*2.0; + highmidGain = 1.0+(highmidGain*fabs(highmidGain)*fabs(highmidGain)); + double lowmidGain = (C-0.5)*2.0; + lowmidGain = 1.0+(lowmidGain*fabs(lowmidGain)*fabs(lowmidGain)); + double bassGain = (D-0.5)*2.0; + bassGain = 1.0+(bassGain*fabs(bassGain)*fabs(bassGain)); + + double trebleRef = E-0.5; + double highmidRef = F-0.5; + double lowmidRef = G-0.5; + double bassRef = H-0.5; + double highF = 0.75 + ((trebleRef+trebleRef+trebleRef+highmidRef)*0.125); + double bassF = 0.25 + ((lowmidRef+bassRef+bassRef+bassRef)*0.125); + double midF = (highF*0.5) + (bassF*0.5) + ((highmidRef+lowmidRef)*0.125); + + double highQ = fmax(fmin(1.0+(highmidRef-trebleRef),4.0),0.125); + double midQ = fmax(fmin(1.0+(lowmidRef-highmidRef),4.0),0.125); + double lowQ = fmax(fmin(1.0+(bassRef-lowmidRef),4.0),0.125); + + highA[biq_freq] = ((pow(highF,3)*20000.0)/getSampleRate()); + highC[biq_freq] = highB[biq_freq] = highA[biq_freq] = fmax(fmin(highA[biq_freq],0.4999),0.00025); + double highFreq = pow(highF,3)*20000.0; + double omega = 2.0*M_PI*(highFreq/getSampleRate()); + double biqK = 2.0-cos(omega); + double highCoef = -sqrt((biqK*biqK)-1.0)+biqK; + highA[biq_reso] = 2.24697960 * highQ; + highB[biq_reso] = 0.80193774 * highQ; + highC[biq_reso] = 0.55495813 * highQ; + + midA[biq_freq] = ((pow(midF,3)*20000.0)/getSampleRate()); + midC[biq_freq] = midB[biq_freq] = midA[biq_freq] = fmax(fmin(midA[biq_freq],0.4999),0.00025); + double midFreq = pow(midF,3)*20000.0; + omega = 2.0*M_PI*(midFreq/getSampleRate()); + biqK = 2.0-cos(omega); + double midCoef = -sqrt((biqK*biqK)-1.0)+biqK; + midA[biq_reso] = 2.24697960 * midQ; + midB[biq_reso] = 0.80193774 * midQ; + midC[biq_reso] = 0.55495813 * midQ; + + lowA[biq_freq] = ((pow(bassF,3)*20000.0)/getSampleRate()); + lowC[biq_freq] = lowB[biq_freq] = lowA[biq_freq] = fmax(fmin(lowA[biq_freq],0.4999),0.00025); + double lowFreq = pow(bassF,3)*20000.0; + omega = 2.0*M_PI*(lowFreq/getSampleRate()); + biqK = 2.0-cos(omega); + double lowCoef = -sqrt((biqK*biqK)-1.0)+biqK; + lowA[biq_reso] = 2.24697960 * lowQ; + lowB[biq_reso] = 0.80193774 * lowQ; + lowC[biq_reso] = 0.55495813 * lowQ; + + biqK = tan(M_PI * highA[biq_freq]); + double norm = 1.0 / (1.0 + biqK / highA[biq_reso] + biqK * biqK); + highA[biq_a0] = biqK * biqK * norm; + highA[biq_a1] = 2.0 * highA[biq_a0]; + highA[biq_a2] = highA[biq_a0]; + highA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highA[biq_b2] = (1.0 - biqK / highA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highB[biq_freq]); + norm = 1.0 / (1.0 + biqK / highB[biq_reso] + biqK * biqK); + highB[biq_a0] = biqK * biqK * norm; + highB[biq_a1] = 2.0 * highB[biq_a0]; + highB[biq_a2] = highB[biq_a0]; + highB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highB[biq_b2] = (1.0 - biqK / highB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highC[biq_freq]); + norm = 1.0 / (1.0 + biqK / highC[biq_reso] + biqK * biqK); + highC[biq_a0] = biqK * biqK * norm; + highC[biq_a1] = 2.0 * highC[biq_a0]; + highC[biq_a2] = highC[biq_a0]; + highC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highC[biq_b2] = (1.0 - biqK / highC[biq_reso] + biqK * biqK) * norm; + + biqK = tan(M_PI * midA[biq_freq]); + norm = 1.0 / (1.0 + biqK / midA[biq_reso] + biqK * biqK); + midA[biq_a0] = biqK * biqK * norm; + midA[biq_a1] = 2.0 * midA[biq_a0]; + midA[biq_a2] = midA[biq_a0]; + midA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midA[biq_b2] = (1.0 - biqK / midA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midB[biq_freq]); + norm = 1.0 / (1.0 + biqK / midB[biq_reso] + biqK * biqK); + midB[biq_a0] = biqK * biqK * norm; + midB[biq_a1] = 2.0 * midB[biq_a0]; + midB[biq_a2] = midB[biq_a0]; + midB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midB[biq_b2] = (1.0 - biqK / midB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midC[biq_freq]); + norm = 1.0 / (1.0 + biqK / midC[biq_reso] + biqK * biqK); + midC[biq_a0] = biqK * biqK * norm; + midC[biq_a1] = 2.0 * midC[biq_a0]; + midC[biq_a2] = midC[biq_a0]; + midC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midC[biq_b2] = (1.0 - biqK / midC[biq_reso] + biqK * biqK) * norm; + + biqK = tan(M_PI * lowA[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowA[biq_reso] + biqK * biqK); + lowA[biq_a0] = biqK * biqK * norm; + lowA[biq_a1] = 2.0 * lowA[biq_a0]; + lowA[biq_a2] = lowA[biq_a0]; + lowA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowA[biq_b2] = (1.0 - biqK / lowA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowB[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowB[biq_reso] + biqK * biqK); + lowB[biq_a0] = biqK * biqK * norm; + lowB[biq_a1] = 2.0 * lowB[biq_a0]; + lowB[biq_a2] = lowB[biq_a0]; + lowB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowB[biq_b2] = (1.0 - biqK / lowB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowC[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowC[biq_reso] + biqK * biqK); + lowC[biq_a0] = biqK * biqK * norm; + lowC[biq_a1] = 2.0 * lowC[biq_a0]; + lowC[biq_a2] = lowC[biq_a0]; + lowC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowC[biq_b2] = (1.0 - biqK / lowC[biq_reso] + biqK * biqK) * norm; + //SmoothEQ2 + + double bezCThresh = pow(1.0-I, 6.0) * 8.0; + double bezRez = pow(1.0-I, 12.360679774997898) / overallscale; + double sloRez = pow(1.0-I,10.0) / overallscale; + sloRez = fmin(fmax(sloRez,0.00001),1.0); + bezRez = fmin(fmax(bezRez,0.00001),1.0); + //Dynamics2 + + inTrimA = inTrimB; inTrimB = J*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; + + 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)); + + double trebleL = inputSampleL; + double outSample = (trebleL * highA[biq_a0]) + highA[biq_sL1]; + highA[biq_sL1] = (trebleL * highA[biq_a1]) - (outSample * highA[biq_b1]) + highA[biq_sL2]; + highA[biq_sL2] = (trebleL * highA[biq_a2]) - (outSample * highA[biq_b2]); + double highmidL = outSample; trebleL -= highmidL; + + outSample = (highmidL * midA[biq_a0]) + midA[biq_sL1]; + midA[biq_sL1] = (highmidL * midA[biq_a1]) - (outSample * midA[biq_b1]) + midA[biq_sL2]; + midA[biq_sL2] = (highmidL * midA[biq_a2]) - (outSample * midA[biq_b2]); + double lowmidL = outSample; highmidL -= lowmidL; + + outSample = (lowmidL * lowA[biq_a0]) + lowA[biq_sL1]; + lowA[biq_sL1] = (lowmidL * lowA[biq_a1]) - (outSample * lowA[biq_b1]) + lowA[biq_sL2]; + lowA[biq_sL2] = (lowmidL * lowA[biq_a2]) - (outSample * lowA[biq_b2]); + double bassL = outSample; lowmidL -= bassL; + + trebleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain); + //first stage of three crossovers + + outSample = (trebleL * highB[biq_a0]) + highB[biq_sL1]; + highB[biq_sL1] = (trebleL * highB[biq_a1]) - (outSample * highB[biq_b1]) + highB[biq_sL2]; + highB[biq_sL2] = (trebleL * highB[biq_a2]) - (outSample * highB[biq_b2]); + highmidL = outSample; trebleL -= highmidL; + + outSample = (highmidL * midB[biq_a0]) + midB[biq_sL1]; + midB[biq_sL1] = (highmidL * midB[biq_a1]) - (outSample * midB[biq_b1]) + midB[biq_sL2]; + midB[biq_sL2] = (highmidL * midB[biq_a2]) - (outSample * midB[biq_b2]); + lowmidL = outSample; highmidL -= lowmidL; + + outSample = (lowmidL * lowB[biq_a0]) + lowB[biq_sL1]; + lowB[biq_sL1] = (lowmidL * lowB[biq_a1]) - (outSample * lowB[biq_b1]) + lowB[biq_sL2]; + lowB[biq_sL2] = (lowmidL * lowB[biq_a2]) - (outSample * lowB[biq_b2]); + bassL = outSample; lowmidL -= bassL; + + trebleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain); + //second stage of three crossovers + + outSample = (trebleL * highC[biq_a0]) + highC[biq_sL1]; + highC[biq_sL1] = (trebleL * highC[biq_a1]) - (outSample * highC[biq_b1]) + highC[biq_sL2]; + highC[biq_sL2] = (trebleL * highC[biq_a2]) - (outSample * highC[biq_b2]); + highmidL = outSample; trebleL -= highmidL; + + outSample = (highmidL * midC[biq_a0]) + midC[biq_sL1]; + midC[biq_sL1] = (highmidL * midC[biq_a1]) - (outSample * midC[biq_b1]) + midC[biq_sL2]; + midC[biq_sL2] = (highmidL * midC[biq_a2]) - (outSample * midC[biq_b2]); + lowmidL = outSample; highmidL -= lowmidL; + + outSample = (lowmidL * lowC[biq_a0]) + lowC[biq_sL1]; + lowC[biq_sL1] = (lowmidL * lowC[biq_a1]) - (outSample * lowC[biq_b1]) + lowC[biq_sL2]; + lowC[biq_sL2] = (lowmidL * lowC[biq_a2]) - (outSample * lowC[biq_b2]); + bassL = outSample; lowmidL -= bassL; + + trebleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain); + //third stage of three crossovers + + highLIIR = (highLIIR*highCoef) + (trebleL*(1.0-highCoef)); + highmidL = highLIIR; trebleL -= highmidL; + + midLIIR = (midLIIR*midCoef) + (highmidL*(1.0-midCoef)); + lowmidL = midLIIR; highmidL -= lowmidL; + + lowLIIR = (lowLIIR*lowCoef) + (lowmidL*(1.0-lowCoef)); + bassL = lowLIIR; lowmidL -= bassL; + + inputSampleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain); + //fourth stage of three crossovers is the exponential filters + + + double trebleR = inputSampleR; + outSample = (trebleR * highA[biq_a0]) + highA[biq_sR1]; + highA[biq_sR1] = (trebleR * highA[biq_a1]) - (outSample * highA[biq_b1]) + highA[biq_sR2]; + highA[biq_sR2] = (trebleR * highA[biq_a2]) - (outSample * highA[biq_b2]); + double highmidR = outSample; trebleR -= highmidR; + + outSample = (highmidR * midA[biq_a0]) + midA[biq_sR1]; + midA[biq_sR1] = (highmidR * midA[biq_a1]) - (outSample * midA[biq_b1]) + midA[biq_sR2]; + midA[biq_sR2] = (highmidR * midA[biq_a2]) - (outSample * midA[biq_b2]); + double lowmidR = outSample; highmidR -= lowmidR; + + outSample = (lowmidR * lowA[biq_a0]) + lowA[biq_sR1]; + lowA[biq_sR1] = (lowmidR * lowA[biq_a1]) - (outSample * lowA[biq_b1]) + lowA[biq_sR2]; + lowA[biq_sR2] = (lowmidR * lowA[biq_a2]) - (outSample * lowA[biq_b2]); + double bassR = outSample; lowmidR -= bassR; + + trebleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain); + //first stage of three crossovers + + outSample = (trebleR * highB[biq_a0]) + highB[biq_sR1]; + highB[biq_sR1] = (trebleR * highB[biq_a1]) - (outSample * highB[biq_b1]) + highB[biq_sR2]; + highB[biq_sR2] = (trebleR * highB[biq_a2]) - (outSample * highB[biq_b2]); + highmidR = outSample; trebleR -= highmidR; + + outSample = (highmidR * midB[biq_a0]) + midB[biq_sR1]; + midB[biq_sR1] = (highmidR * midB[biq_a1]) - (outSample * midB[biq_b1]) + midB[biq_sR2]; + midB[biq_sR2] = (highmidR * midB[biq_a2]) - (outSample * midB[biq_b2]); + lowmidR = outSample; highmidR -= lowmidR; + + outSample = (lowmidR * lowB[biq_a0]) + lowB[biq_sR1]; + lowB[biq_sR1] = (lowmidR * lowB[biq_a1]) - (outSample * lowB[biq_b1]) + lowB[biq_sR2]; + lowB[biq_sR2] = (lowmidR * lowB[biq_a2]) - (outSample * lowB[biq_b2]); + bassR = outSample; lowmidR -= bassR; + + trebleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain); + //second stage of three crossovers + + outSample = (trebleR * highC[biq_a0]) + highC[biq_sR1]; + highC[biq_sR1] = (trebleR * highC[biq_a1]) - (outSample * highC[biq_b1]) + highC[biq_sR2]; + highC[biq_sR2] = (trebleR * highC[biq_a2]) - (outSample * highC[biq_b2]); + highmidR = outSample; trebleR -= highmidR; + + outSample = (highmidR * midC[biq_a0]) + midC[biq_sR1]; + midC[biq_sR1] = (highmidR * midC[biq_a1]) - (outSample * midC[biq_b1]) + midC[biq_sR2]; + midC[biq_sR2] = (highmidR * midC[biq_a2]) - (outSample * midC[biq_b2]); + lowmidR = outSample; highmidR -= lowmidR; + + outSample = (lowmidR * lowC[biq_a0]) + lowC[biq_sR1]; + lowC[biq_sR1] = (lowmidR * lowC[biq_a1]) - (outSample * lowC[biq_b1]) + lowC[biq_sR2]; + lowC[biq_sR2] = (lowmidR * lowC[biq_a2]) - (outSample * lowC[biq_b2]); + bassR = outSample; lowmidR -= bassR; + + trebleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain); + //third stage of three crossovers + + highRIIR = (highRIIR*highCoef) + (trebleR*(1.0-highCoef)); + highmidR = highRIIR; trebleR -= highmidR; + + midRIIR = (midRIIR*midCoef) + (highmidR*(1.0-midCoef)); + lowmidR = midRIIR; highmidR -= lowmidR; + + lowRIIR = (lowRIIR*lowCoef) + (lowmidR*(1.0-lowCoef)); + bassR = lowRIIR; lowmidR -= bassR; + + inputSampleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain); + //fourth stage of three crossovers is the exponential filters + //SmoothEQ2 + + if (bezCThresh > 0.0) { + inputSampleL *= ((bezCThresh*0.5)+1.0); + inputSampleR *= ((bezCThresh*0.5)+1.0); + } + + bezCompF[bez_cycle] += bezRez; + bezCompF[bez_SampL] += (fabs(inputSampleL) * bezRez); + bezCompF[bez_SampR] += (fabs(inputSampleR) * bezRez); + bezMaxF = fmax(bezMaxF,fmax(fabs(inputSampleL),fabs(inputSampleR))); + + if (bezCompF[bez_cycle] > 1.0) { + bezCompF[bez_cycle] -= 1.0; + bezCompF[bez_CL] = bezCompF[bez_BL]; + bezCompF[bez_BL] = bezCompF[bez_AL]; + bezCompF[bez_AL] = bezCompF[bez_SampL]; + bezCompF[bez_SampL] = 0.0; + bezCompF[bez_CR] = bezCompF[bez_BR]; + bezCompF[bez_BR] = bezCompF[bez_AR]; + bezCompF[bez_AR] = bezCompF[bez_SampR]; + bezCompF[bez_SampR] = 0.0; + bezMaxF = 0.0; + } + bezCompS[bez_cycle] += sloRez; + bezCompS[bez_SampL] += (fabs(inputSampleL) * sloRez); //note: SampL is a control voltage + bezCompS[bez_SampR] += (fabs(inputSampleR) * sloRez); //note: SampR is a control voltage + if (bezCompS[bez_cycle] > 1.0) { + bezCompS[bez_cycle] -= 1.0; + bezCompS[bez_CL] = bezCompS[bez_BL]; + bezCompS[bez_BL] = bezCompS[bez_AL]; + bezCompS[bez_AL] = bezCompS[bez_SampL]; + bezCompS[bez_SampL] = 0.0; + bezCompS[bez_CR] = bezCompS[bez_BR]; + bezCompS[bez_BR] = bezCompS[bez_AR]; + bezCompS[bez_AR] = bezCompS[bez_SampR]; + bezCompS[bez_SampR] = 0.0; + } + double CBFL = (bezCompF[bez_CL]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_BL]*bezCompF[bez_cycle]); + double BAFL = (bezCompF[bez_BL]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_AL]*bezCompF[bez_cycle]); + double CBAFL = (bezCompF[bez_BL]+(CBFL*(1.0-bezCompF[bez_cycle]))+(BAFL*bezCompF[bez_cycle]))*0.5; + double CBSL = (bezCompS[bez_CL]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_BL]*bezCompS[bez_cycle]); + double BASL = (bezCompS[bez_BL]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_AL]*bezCompS[bez_cycle]); + double CBASL = (bezCompS[bez_BL]+(CBSL*(1.0-bezCompS[bez_cycle]))+(BASL*bezCompS[bez_cycle]))*0.5; + double CBAMax = fmax(CBASL,CBAFL); if (CBAMax > 0.0) CBAMax = 1.0/CBAMax; + double CBAFade = ((CBASL*-CBAMax)+(CBAFL*CBAMax)+1.0)*0.5; + if (bezCThresh > 0.0) inputSampleL *= 1.0-(fmin(((CBASL*(1.0-CBAFade))+(CBAFL*CBAFade))*bezCThresh,1.0)); + + double CBFR = (bezCompF[bez_CR]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_BR]*bezCompF[bez_cycle]); + double BAFR = (bezCompF[bez_BR]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_AR]*bezCompF[bez_cycle]); + double CBAFR = (bezCompF[bez_BR]+(CBFR*(1.0-bezCompF[bez_cycle]))+(BAFR*bezCompF[bez_cycle]))*0.5; + double CBSR = (bezCompS[bez_CR]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_BR]*bezCompS[bez_cycle]); + double BASR = (bezCompS[bez_BR]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_AR]*bezCompS[bez_cycle]); + double CBASR = (bezCompS[bez_BR]+(CBSR*(1.0-bezCompS[bez_cycle]))+(BASR*bezCompS[bez_cycle]))*0.5; + CBAMax = fmax(CBASR,CBAFR); if (CBAMax > 0.0) CBAMax = 1.0/CBAMax; + CBAFade = ((CBASR*-CBAMax)+(CBAFR*CBAMax)+1.0)*0.5; + if (bezCThresh > 0.0) inputSampleR *= 1.0-(fmin(((CBASR*(1.0-CBAFade))+(CBAFR*CBAFade))*bezCThresh,1.0)); + //Dynamics2 + + const double temp = (double)sampleFrames/inFramesToProcess; + 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 * gain; + inputSampleR = inputSampleR * 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 + //Discontapeity + + //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++; + } +} diff --git a/plugins/LinuxVST/src/kWoodRoom/kWoodRoom.cpp b/plugins/LinuxVST/src/kWoodRoom/kWoodRoom.cpp new file mode 100755 index 000000000..07ea37b23 --- /dev/null +++ b/plugins/LinuxVST/src/kWoodRoom/kWoodRoom.cpp @@ -0,0 +1,227 @@ +/* ======================================== + * kWoodRoom - kWoodRoom.h + * Copyright (c) airwindows, Airwindows uses the MIT license + * ======================================== */ + +#ifndef __kWoodRoom_H +#include "kWoodRoom.h" +#endif + +AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new kWoodRoom(audioMaster);} + +kWoodRoom::kWoodRoom(audioMasterCallback audioMaster) : + AudioEffectX(audioMaster, kNumPrograms, kNumParameters) +{ + A = 0.5; + B = 0.5; + C = 0.25; + D = 0.5; + E = 0.5; + F = 0.5; + + for(int x = 0; x < d3A+2; x++) {a3AL[x] = 0.0; a3AR[x] = 0.0;} + for(int x = 0; x < d3B+2; x++) {a3BL[x] = 0.0; a3BR[x] = 0.0;} + for(int x = 0; x < d3C+2; x++) {a3CL[x] = 0.0; a3CR[x] = 0.0;} + for(int x = 0; x < d3D+2; x++) {a3DL[x] = 0.0; a3DR[x] = 0.0;} + for(int x = 0; x < d3E+2; x++) {a3EL[x] = 0.0; a3ER[x] = 0.0;} + for(int x = 0; x < d3F+2; x++) {a3FL[x] = 0.0; a3FR[x] = 0.0;} + for(int x = 0; x < d3G+2; x++) {a3GL[x] = 0.0; a3GR[x] = 0.0;} + for(int x = 0; x < d3H+2; x++) {a3HL[x] = 0.0; a3HR[x] = 0.0;} + for(int x = 0; x < d3I+2; x++) {a3IL[x] = 0.0; a3IR[x] = 0.0;} + c3AL = c3BL = c3CL = c3DL = c3EL = c3FL = c3GL = c3HL = c3IL = 1; + c3AR = c3BR = c3CR = c3DR = c3ER = c3FR = c3GR = c3HR = c3IR = 1; + + for(int x = 0; x < d6A+2; x++) {a6AL[x] = 0.0; a6AR[x] = 0.0;} + for(int x = 0; x < d6B+2; x++) {a6BL[x] = 0.0; a6BR[x] = 0.0;} + for(int x = 0; x < d6C+2; x++) {a6CL[x] = 0.0; a6CR[x] = 0.0;} + for(int x = 0; x < d6D+2; x++) {a6DL[x] = 0.0; a6DR[x] = 0.0;} + for(int x = 0; x < d6E+2; x++) {a6EL[x] = 0.0; a6ER[x] = 0.0;} + for(int x = 0; x < d6F+2; x++) {a6FL[x] = 0.0; a6FR[x] = 0.0;} + for(int x = 0; x < d6G+2; x++) {a6GL[x] = 0.0; a6GR[x] = 0.0;} + for(int x = 0; x < d6H+2; x++) {a6HL[x] = 0.0; a6HR[x] = 0.0;} + for(int x = 0; x < d6I+2; x++) {a6IL[x] = 0.0; a6IR[x] = 0.0;} + for(int x = 0; x < d6J+2; x++) {a6JL[x] = 0.0; a6JR[x] = 0.0;} + for(int x = 0; x < d6K+2; x++) {a6KL[x] = 0.0; a6KR[x] = 0.0;} + for(int x = 0; x < d6L+2; x++) {a6LL[x] = 0.0; a6LR[x] = 0.0;} + for(int x = 0; x < d6M+2; x++) {a6ML[x] = 0.0; a6MR[x] = 0.0;} + for(int x = 0; x < d6N+2; x++) {a6NL[x] = 0.0; a6NR[x] = 0.0;} + for(int x = 0; x < d6O+2; x++) {a6OL[x] = 0.0; a6OR[x] = 0.0;} + for(int x = 0; x < d6P+2; x++) {a6PL[x] = 0.0; a6PR[x] = 0.0;} + for(int x = 0; x < d6Q+2; x++) {a6QL[x] = 0.0; a6QR[x] = 0.0;} + for(int x = 0; x < d6R+2; x++) {a6RL[x] = 0.0; a6RR[x] = 0.0;} + for(int x = 0; x < d6S+2; x++) {a6SL[x] = 0.0; a6SR[x] = 0.0;} + for(int x = 0; x < d6T+2; x++) {a6TL[x] = 0.0; a6TR[x] = 0.0;} + for(int x = 0; x < d6U+2; x++) {a6UL[x] = 0.0; a6UR[x] = 0.0;} + for(int x = 0; x < d6V+2; x++) {a6VL[x] = 0.0; a6VR[x] = 0.0;} + for(int x = 0; x < d6W+2; x++) {a6WL[x] = 0.0; a6WR[x] = 0.0;} + for(int x = 0; x < d6X+2; x++) {a6XL[x] = 0.0; a6XR[x] = 0.0;} + for(int x = 0; x < d6Y+2; x++) {a6YL[x] = 0.0; a6YR[x] = 0.0;} + for(int x = 0; x < d6ZA+2; x++) {a6ZAL[x] = 0.0; a6ZAR[x] = 0.0;} + for(int x = 0; x < d6ZB+2; x++) {a6ZBL[x] = 0.0; a6ZBR[x] = 0.0;} + for(int x = 0; x < d6ZC+2; x++) {a6ZCL[x] = 0.0; a6ZCR[x] = 0.0;} + for(int x = 0; x < d6ZD+2; x++) {a6ZDL[x] = 0.0; a6ZDR[x] = 0.0;} + for(int x = 0; x < d6ZE+2; x++) {a6ZEL[x] = 0.0; a6ZER[x] = 0.0;} + for(int x = 0; x < d6ZF+2; x++) {a6ZFL[x] = 0.0; a6ZFR[x] = 0.0;} + for(int x = 0; x < d6ZG+2; x++) {a6ZGL[x] = 0.0; a6ZGR[x] = 0.0;} + for(int x = 0; x < d6ZH+2; x++) {a6ZHL[x] = 0.0; a6ZHR[x] = 0.0;} + for(int x = 0; x < d6ZI+2; x++) {a6ZIL[x] = 0.0; a6ZIR[x] = 0.0;} + for(int x = 0; x < d6ZJ+2; x++) {a6ZJL[x] = 0.0; a6ZJR[x] = 0.0;} + for(int x = 0; x < d6ZK+2; x++) {a6ZKL[x] = 0.0; a6ZKR[x] = 0.0;} + c6AL = c6BL = c6CL = c6DL = c6EL = c6FL = c6GL = c6HL = c6IL = 1; + c6JL = c6KL = c6LL = c6ML = c6NL = c6OL = c6PL = c6QL = c6RL = 1; + c6SL = c6TL = c6UL = c6VL = c6WL = c6XL = c6YL = c6ZAL = c6ZBL = 1; + c6ZCL = c6ZDL = c6ZEL = c6ZFL = c6ZGL = c6ZHL = c6ZIL = c6ZJL = c6ZKL = 1; + c6AR = c6BR = c6CR = c6DR = c6ER = c6FR = c6GR = c6HR = c6IR = 1; + c6JR = c6KR = c6LR = c6MR = c6NR = c6OR = c6PR = c6QR = c6RR = 1; + c6SR = c6TR = c6UR = c6VR = c6WR = c6XR = c6YR = c6ZAR = c6ZBR = 1; + c6ZCR = c6ZDR = c6ZER = c6ZFR = c6ZGR = c6ZHR = c6ZIR = c6ZJR = c6ZKR = 1; + f6AL = f6BL = f6CL = f6DL = f6EL = f6FL = 0.0; + f6FR = f6LR = f6RR = f6XR = f6ZER = f6ZKR = 0.0; + avg6L = avg6R = 0.0; + + for (int x = 0; x < bez_total; x++) { + bez[x] = 0.0; + bezF[x] = 0.0; + } + bez[bez_cycle] = 1.0; + bezF[bez_cycle] = 1.0; + + fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX; + fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX; + //this is reset: values being initialized only once. Startup values, whatever they are. + + _canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect. + _canDo.insert("plugAsSend"); // plug-in can be used as a send effect. + _canDo.insert("x2in2out"); + setNumInputs(kNumInputs); + setNumOutputs(kNumOutputs); + setUniqueID(kUniqueId); + canProcessReplacing(); // supports output replacing + canDoubleReplacing(); // supports double precision processing + programsAreChunks(true); + vst_strncpy (_programName, "Default", kVstMaxProgNameLen); // default program name +} + +kWoodRoom::~kWoodRoom() {} +VstInt32 kWoodRoom::getVendorVersion () {return 1000;} +void kWoodRoom::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);} +void kWoodRoom::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 kWoodRoom::getChunk (void** data, bool isPreset) +{ + float *chunkData = (float *)calloc(kNumParameters, sizeof(float)); + chunkData[0] = A; + chunkData[1] = B; + chunkData[2] = C; + chunkData[3] = D; + chunkData[4] = E; + chunkData[5] = F; + /* Note: The way this is set up, it will break if you manage to save settings on an Intel + machine and load them on a PPC Mac. However, it's fine if you stick to the machine you + started with. */ + + *data = chunkData; + return kNumParameters * sizeof(float); +} + +VstInt32 kWoodRoom::setChunk (void* data, VstInt32 byteSize, bool isPreset) +{ + float *chunkData = (float *)data; + A = pinParameter(chunkData[0]); + B = pinParameter(chunkData[1]); + C = pinParameter(chunkData[2]); + D = pinParameter(chunkData[3]); + E = pinParameter(chunkData[4]); + F = pinParameter(chunkData[5]); + /* We're ignoring byteSize as we found it to be a filthy liar */ + + /* calculate any other fields you need here - you could copy in + code from setParameter() here. */ + return 0; +} + +void kWoodRoom::setParameter(VstInt32 index, float value) { + switch (index) { + case kParamA: A = value; break; + case kParamB: B = value; break; + case kParamC: C = value; break; + case kParamD: D = value; break; + case kParamE: E = value; break; + case kParamF: F = value; break; + default: throw; // unknown parameter, shouldn't happen! + } +} + +float kWoodRoom::getParameter(VstInt32 index) { + switch (index) { + case kParamA: return A; break; + case kParamB: return B; break; + case kParamC: return C; break; + case kParamD: return D; break; + case kParamE: return E; break; + case kParamF: return F; break; + default: break; // unknown parameter, shouldn't happen! + } return 0.0; //we only need to update the relevant name, this is simple to manage +} + +void kWoodRoom::getParameterName(VstInt32 index, char *text) { + switch (index) { + case kParamA: vst_strncpy (text, "Regen", kVstMaxParamStrLen); break; + case kParamB: vst_strncpy (text, "Derez", kVstMaxParamStrLen); break; + case kParamC: vst_strncpy (text, "Filter", kVstMaxParamStrLen); break; + case kParamD: vst_strncpy (text, "EarlyRF", kVstMaxParamStrLen); break; + case kParamE: vst_strncpy (text, "Positin", kVstMaxParamStrLen); break; + case kParamF: vst_strncpy (text, "Dry/Wet", kVstMaxParamStrLen); break; + default: break; // unknown parameter, shouldn't happen! + } //this is our labels for displaying in the VST host +} + +void kWoodRoom::getParameterDisplay(VstInt32 index, char *text) { + switch (index) { + case kParamA: float2string (A, text, kVstMaxParamStrLen); break; + case kParamB: float2string (B, text, kVstMaxParamStrLen); break; + case kParamC: float2string (C, text, kVstMaxParamStrLen); break; + case kParamD: float2string (D, text, kVstMaxParamStrLen); break; + case kParamE: float2string (E, text, kVstMaxParamStrLen); break; + case kParamF: float2string (F, text, kVstMaxParamStrLen); break; + default: break; // unknown parameter, shouldn't happen! + } //this displays the values and handles 'popups' where it's discrete choices +} + +void kWoodRoom::getParameterLabel(VstInt32 index, char *text) { + switch (index) { + case kParamA: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamB: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamC: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamD: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamE: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamF: vst_strncpy (text, "", kVstMaxParamStrLen); break; + default: break; // unknown parameter, shouldn't happen! + } +} + +VstInt32 kWoodRoom::canDo(char *text) +{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know + +bool kWoodRoom::getEffectName(char* name) { + vst_strncpy(name, "kWoodRoom", kVstMaxProductStrLen); return true; +} + +VstPlugCategory kWoodRoom::getPlugCategory() {return kPlugCategEffect;} + +bool kWoodRoom::getProductString(char* text) { + vst_strncpy (text, "airwindows kWoodRoom", kVstMaxProductStrLen); return true; +} + +bool kWoodRoom::getVendorString(char* text) { + vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true; +} diff --git a/plugins/LinuxVST/src/kWoodRoom/kWoodRoom.h b/plugins/LinuxVST/src/kWoodRoom/kWoodRoom.h new file mode 100755 index 000000000..184ae2e48 --- /dev/null +++ b/plugins/LinuxVST/src/kWoodRoom/kWoodRoom.h @@ -0,0 +1,209 @@ +/* ======================================== + * kWoodRoom - kWoodRoom.h + * Created 8/12/11 by SPIAdmin + * Copyright (c) Airwindows, Airwindows uses the MIT license + * ======================================== */ + +#ifndef __kWoodRoom_H +#define __kWoodRoom_H + +#ifndef __audioeffect__ +#include "audioeffectx.h" +#endif + +#include +#include +#include + +enum { + kParamA =0, + kParamB =1, + kParamC =2, + kParamD =3, + kParamE =4, + kParamF =5, + kNumParameters = 6 +}; // + +const int d3A = 581; const int d3B = 831; const int d3C = 832; +const int d3D = 574; const int d3E = 598; const int d3F = 685; +const int d3G = 499; const int d3H = 573; const int d3I = 655; +#define THREEBYTHREE true +const int d6A = 154; const int d6B = 832; const int d6C = 109; const int d6D = 685; const int d6E = 33; const int d6F = 12; const int d6G = 27; const int d6H = 30; const int d6I = 339; const int d6J = 499; const int d6K = 296; const int d6L = 169; const int d6M = 169; const int d6N = 831; const int d6O = 15; const int d6P = 411; const int d6Q = 238; const int d6R = 68; const int d6S = 0; const int d6T = 8; const int d6U = 655; const int d6V = 581; const int d6W = 465; const int d6X = 173; const int d6Y = 3; const int d6ZA = 96; const int d6ZB = 573; const int d6ZC = 243; const int d6ZD = 30; const int d6ZE = 188; const int d6ZF = 291; const int d6ZG = 11; const int d6ZH = 372; const int d6ZI = 574; const int d6ZJ = 100; const int d6ZK = 598; //1 to 90 ms, 249 seat club +#define SIXBYSIX true // 249seat154832109x6 on 2025-10-31 kWoodRoom +const int early[] = {0, 3, 8, 11, 12, 15, 27, 30, 30, 33, 68, 96, 100, 109, 154, 169, 169, 173, 188, 238, 243, 291, 296, 339, 372, 411, 465, 499, 573, 574, 581, 598, 655, 685, 831, 832}; + +const int kNumPrograms = 0; +const int kNumInputs = 2; +const int kNumOutputs = 2; +const unsigned long kUniqueId = 'ksta'; //Change this to what the AU identity is! + +class kWoodRoom : + public AudioEffectX +{ +public: + kWoodRoom(audioMasterCallback audioMaster); + ~kWoodRoom(); + virtual bool getEffectName(char* name); // The plug-in name + virtual VstPlugCategory getPlugCategory(); // The general category for the plug-in + virtual bool getProductString(char* text); // This is a unique plug-in string provided by Steinberg + virtual bool getVendorString(char* text); // Vendor info + virtual VstInt32 getVendorVersion(); // Version number + virtual void processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames); + virtual void processDoubleReplacing (double** inputs, double** outputs, VstInt32 sampleFrames); + virtual void getProgramName(char *name); // read the name from the host + virtual void setProgramName(char *name); // changes the name of the preset displayed in the host + virtual VstInt32 getChunk (void** data, bool isPreset); + virtual VstInt32 setChunk (void* data, VstInt32 byteSize, bool isPreset); + virtual float getParameter(VstInt32 index); // get the parameter value at the specified index + virtual void setParameter(VstInt32 index, float value); // set the parameter at index to value + virtual void getParameterLabel(VstInt32 index, char *text); // label for the parameter (eg dB) + virtual void getParameterName(VstInt32 index, char *text); // name of the parameter + virtual void getParameterDisplay(VstInt32 index, char *text); // text description of the current value + virtual VstInt32 canDo(char *text); +private: + char _programName[kVstMaxProgNameLen + 1]; + std::set< std::string > _canDo; + + float A; + float B; + float C; + float D; + float E; + float F; + + double a3AL[d3A+5]; + double a3BL[d3B+5]; + double a3CL[d3C+5]; + double a3DL[d3D+5]; + double a3EL[d3E+5]; + double a3FL[d3F+5]; + double a3GL[d3G+5]; + double a3HL[d3H+5]; + double a3IL[d3I+5]; + double a3AR[d3A+5]; + double a3BR[d3B+5]; + double a3CR[d3C+5]; + double a3DR[d3D+5]; + double a3ER[d3E+5]; + double a3FR[d3F+5]; + double a3GR[d3G+5]; + double a3HR[d3H+5]; + double a3IR[d3I+5]; + int c3AL,c3AR,c3BL,c3BR,c3CL,c3CR,c3DL,c3DR,c3EL,c3ER; + int c3FL,c3FR,c3GL,c3GR,c3HL,c3HR,c3IL,c3IR; + + double a6AL[d6A+5]; + double a6BL[d6B+5]; + double a6CL[d6C+5]; + double a6DL[d6D+5]; + double a6EL[d6E+5]; + double a6FL[d6F+5]; + double a6GL[d6G+5]; + double a6HL[d6H+5]; + double a6IL[d6I+5]; + double a6JL[d6J+5]; + double a6KL[d6K+5]; + double a6LL[d6L+5]; + double a6ML[d6M+5]; + double a6NL[d6N+5]; + double a6OL[d6O+5]; + double a6PL[d6P+5]; + double a6QL[d6Q+5]; + double a6RL[d6R+5]; + double a6SL[d6S+5]; + double a6TL[d6T+5]; + double a6UL[d6U+5]; + double a6VL[d6V+5]; + double a6WL[d6W+5]; + double a6XL[d6X+5]; + double a6YL[d6Y+5]; + double a6ZAL[d6ZA+5]; + double a6ZBL[d6ZB+5]; + double a6ZCL[d6ZC+5]; + double a6ZDL[d6ZD+5]; + double a6ZEL[d6ZE+5]; + double a6ZFL[d6ZF+5]; + double a6ZGL[d6ZG+5]; + double a6ZHL[d6ZH+5]; + double a6ZIL[d6ZI+5]; + double a6ZJL[d6ZJ+5]; + double a6ZKL[d6ZK+5]; + double a6AR[d6A+5]; + double a6BR[d6B+5]; + double a6CR[d6C+5]; + double a6DR[d6D+5]; + double a6ER[d6E+5]; + double a6FR[d6F+5]; + double a6GR[d6G+5]; + double a6HR[d6H+5]; + double a6IR[d6I+5]; + double a6JR[d6J+5]; + double a6KR[d6K+5]; + double a6LR[d6L+5]; + double a6MR[d6M+5]; + double a6NR[d6N+5]; + double a6OR[d6O+5]; + double a6PR[d6P+5]; + double a6QR[d6Q+5]; + double a6RR[d6R+5]; + double a6SR[d6S+5]; + double a6TR[d6T+5]; + double a6UR[d6U+5]; + double a6VR[d6V+5]; + double a6WR[d6W+5]; + double a6XR[d6X+5]; + double a6YR[d6Y+5]; + double a6ZAR[d6ZA+5]; + double a6ZBR[d6ZB+5]; + double a6ZCR[d6ZC+5]; + double a6ZDR[d6ZD+5]; + double a6ZER[d6ZE+5]; + double a6ZFR[d6ZF+5]; + double a6ZGR[d6ZG+5]; + double a6ZHR[d6ZH+5]; + double a6ZIR[d6ZI+5]; + double a6ZJR[d6ZJ+5]; + double a6ZKR[d6ZK+5]; + int c6AL,c6BL,c6CL,c6DL,c6EL,c6FL,c6GL,c6HL,c6IL; + int c6JL,c6KL,c6LL,c6ML,c6NL,c6OL,c6PL,c6QL,c6RL; + int c6SL,c6TL,c6UL,c6VL,c6WL,c6XL,c6YL,c6ZAL,c6ZBL; + int c6ZCL,c6ZDL,c6ZEL,c6ZFL,c6ZGL,c6ZHL,c6ZIL,c6ZJL,c6ZKL; + int c6AR,c6BR,c6CR,c6DR,c6ER,c6FR,c6GR,c6HR,c6IR; + int c6JR,c6KR,c6LR,c6MR,c6NR,c6OR,c6PR,c6QR,c6RR; + int c6SR,c6TR,c6UR,c6VR,c6WR,c6XR,c6YR,c6ZAR,c6ZBR; + int c6ZCR,c6ZDR,c6ZER,c6ZFR,c6ZGR,c6ZHR,c6ZIR,c6ZJR,c6ZKR; + double f6AL,f6BL,f6CL,f6DL,f6EL,f6FL; + double f6FR,f6LR,f6RR,f6XR,f6ZER,f6ZKR; + double avg6L,avg6R; + + enum { + bez_AL, + bez_AR, + bez_BL, + bez_BR, + bez_CL, + bez_CR, + bez_InL, + bez_InR, + bez_UnInL, + bez_UnInR, + bez_SampL, + bez_SampR, + bez_AvgInSampL, + bez_AvgInSampR, + bez_AvgOutSampL, + bez_AvgOutSampR, + bez_cycle, + bez_total + }; //the new undersampling. bez signifies the bezier curve reconstruction + double bez[bez_total]; + + double bezF[bez_total]; + + uint32_t fpdL; + uint32_t fpdR; + //default stuff +}; + +#endif diff --git a/plugins/LinuxVST/src/kWoodRoom/kWoodRoomProc.cpp b/plugins/LinuxVST/src/kWoodRoom/kWoodRoomProc.cpp new file mode 100755 index 000000000..0dc8087f4 --- /dev/null +++ b/plugins/LinuxVST/src/kWoodRoom/kWoodRoomProc.cpp @@ -0,0 +1,1032 @@ +/* ======================================== + * kWoodRoom - kWoodRoom.h + * Copyright (c) airwindows, Airwindows uses the MIT license + * ======================================== */ + +#ifndef __kWoodRoom_H +#include "kWoodRoom.h" +#endif + +void kWoodRoom::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(); + + double fdb6ck = (0.0009765625+0.0009765625+0.001953125)*0.3333333; + double reg6n = (1.0-pow(1.0-A,1.618033988749894))*fdb6ck; + //start this but pad it in the loop by volume of output? + + double derez = B*2.0; + bool stepped = true; // Revised Bezier Undersampling + if (derez > 1.0) { // has full rez at center, stepped + stepped = false; // to left, continuous to right + derez = 1.0-(derez-1.0); + } //if it's set up like that it's the revised algorithm + derez = fmin(fmax(derez/overallscale,0.0005),1.0); + int bezFraction = (int)(1.0/derez); + double bezTrim = (double)bezFraction/(bezFraction+1.0); + if (stepped) { //this hard-locks derez to exact subdivisions of 1.0 + derez = 1.0 / bezFraction; + bezTrim = 1.0-(derez*bezTrim); + } else { //this makes it match the 1.0 case using stepped + derez /= (2.0/pow(overallscale,0.5-((overallscale-1.0)*0.0375))); + bezTrim = 1.0-pow(derez*0.5,1.0/(derez*0.5)); + } //the revision more accurately connects the bezier curves + + double derezFreq = C*2.0; + bool steppedFreq = true; // Revised Bezier Undersampling + if (derezFreq > 1.0) { // has full rez at center, stepped + steppedFreq = false; // to left, continuous to right + derezFreq = 1.0-(derezFreq-1.0); + } //if it's set up like that it's the revised algorithm + derezFreq = fmin(fmax(derezFreq,0.0005),1.0); //note: no overallscale, already inside undersampling + int bezFreqFraction = (int)(1.0/derezFreq); + double bezFreqTrim = (double)bezFreqFraction/(bezFreqFraction+1.0); + if (steppedFreq) { //this hard-locks derez to exact subdivisions of 1.0 + derezFreq = 1.0 / bezFreqFraction; + bezFreqTrim = 1.0-(derezFreq*bezFreqTrim); + } else { //this makes it match the 1.0 case using stepped + bezFreqTrim = 1.0-pow(derezFreq*0.5,1.0/(derezFreq*0.5)); + } //the revision more accurately connects the bezier curves + + double earlyLoudness = D*2.0; + int start = (int)(E * 27.0); + int ld3G = early[start]; + int ld3H = early[start+1]; + int ld3D = early[start+2]; + int ld3A = early[start+3]; + int ld3E = early[start+4]; + int ld3I = early[start+5]; + int ld3F = early[start+6]; + int ld3B = early[start+7]; + int ld3C = early[start+8]; + double wet = F; + + while (--sampleFrames >= 0) + { + double inputSampleL = *in1; + double inputSampleR = *in2; + if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17; + if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17; + double drySampleL = inputSampleL; + double drySampleR = inputSampleR; + + bez[bez_cycle] += derez; + bez[bez_SampL] += ((inputSampleL+bez[bez_InL]) * derez); + bez[bez_SampR] += ((inputSampleR+bez[bez_InR]) * derez); + bez[bez_InL] = inputSampleL; bez[bez_InR] = inputSampleR; + if (bez[bez_cycle] > 1.0) { //hit the end point and we do a reverb sample + if (stepped) bez[bez_cycle] = 0.0; + else bez[bez_cycle] -= 1.0; + + inputSampleL = (bez[bez_SampL]+bez[bez_AvgInSampL])*0.5; + bez[bez_AvgInSampL] = bez[bez_SampL]; + inputSampleR = (bez[bez_SampR]+bez[bez_AvgInSampR])*0.5; + bez[bez_AvgInSampR] = bez[bez_SampR]; + + a3AL[c3AL] = inputSampleL;// + (f3AL * reg3n); + a3BL[c3BL] = inputSampleL;// + (f3BL * reg3n); + a3CL[c3CL] = inputSampleL;// + (f3CL * reg3n); + + a3CR[c3CR] = inputSampleR;// + (f3CR * reg3n); + a3FR[c3FR] = inputSampleR;// + (f3FR * reg3n); + a3IR[c3IR] = inputSampleR;// + (f3IR * reg3n); + + c3AL++; if (c3AL < 0 || c3AL > ld3A) c3AL = 0; + c3BL++; if (c3BL < 0 || c3BL > ld3B) c3BL = 0; + c3CL++; if (c3CL < 0 || c3CL > ld3C) c3CL = 0; + c3CR++; if (c3CR < 0 || c3CR > ld3C) c3CR = 0; + c3FR++; if (c3FR < 0 || c3FR > ld3F) c3FR = 0; + c3IR++; if (c3IR < 0 || c3IR > ld3I) c3IR = 0; + + double o3AL = a3AL[c3AL-((c3AL > ld3A)?c3AL+1:0)]; + double o3BL = a3BL[c3BL-((c3BL > ld3B)?c3BL+1:0)]; + double o3CL = a3CL[c3CL-((c3CL > ld3C)?c3CL+1:0)]; + double o3CR = a3CR[c3CR-((c3CR > ld3C)?c3CR+1:0)]; + double o3FR = a3FR[c3FR-((c3FR > ld3F)?c3FR+1:0)]; + double o3IR = a3IR[c3IR-((c3IR > ld3I)?c3IR+1:0)]; + + a3DL[c3DL] = (((o3BL + o3CL) * -2.0) + o3AL); + a3EL[c3EL] = (((o3AL + o3CL) * -2.0) + o3BL); + a3FL[c3FL] = (((o3AL + o3BL) * -2.0) + o3CL); + a3BR[c3BR] = (((o3FR + o3IR) * -2.0) + o3CR); + a3ER[c3ER] = (((o3CR + o3IR) * -2.0) + o3FR); + a3HR[c3HR] = (((o3CR + o3FR) * -2.0) + o3IR); + + c3DL++; if (c3DL < 0 || c3DL > ld3D) c3DL = 0; + c3EL++; if (c3EL < 0 || c3EL > ld3E) c3EL = 0; + c3FL++; if (c3FL < 0 || c3FL > ld3F) c3FL = 0; + c3BR++; if (c3BR < 0 || c3BR > ld3B) c3BR = 0; + c3ER++; if (c3ER < 0 || c3ER > ld3E) c3ER = 0; + c3HR++; if (c3HR < 0 || c3HR > ld3H) c3HR = 0; + + double o3DL = a3DL[c3DL-((c3DL > ld3D)?c3DL+1:0)]; + double o3EL = a3EL[c3EL-((c3EL > ld3E)?c3EL+1:0)]; + double o3FL = a3FL[c3FL-((c3FL > ld3F)?c3FL+1:0)]; + double o3BR = a3BR[c3BR-((c3BR > ld3B)?c3BR+1:0)]; + double o3ER = a3ER[c3ER-((c3ER > ld3E)?c3ER+1:0)]; + double o3HR = a3HR[c3HR-((c3HR > ld3H)?c3HR+1:0)]; + + a3GL[c3GL] = (((o3EL + o3FL) * -2.0) + o3DL); + a3HL[c3HL] = (((o3DL + o3FL) * -2.0) + o3EL); + a3IL[c3IL] = (((o3DL + o3EL) * -2.0) + o3FL); + a3AR[c3AR] = (((o3ER + o3HR) * -2.0) + o3BR); + a3DR[c3DR] = (((o3BR + o3HR) * -2.0) + o3ER); + a3GR[c3GR] = (((o3BR + o3ER) * -2.0) + o3HR); + + c3GL++; if (c3GL < 0 || c3GL > ld3G) c3GL = 0; + c3HL++; if (c3HL < 0 || c3HL > ld3H) c3HL = 0; + c3IL++; if (c3IL < 0 || c3IL > ld3I) c3IL = 0; + c3AR++; if (c3AR < 0 || c3AR > ld3A) c3AR = 0; + c3DR++; if (c3DR < 0 || c3DR > ld3D) c3DR = 0; + c3GR++; if (c3GR < 0 || c3GR > ld3G) c3GR = 0; + + double o3GL = a3GL[c3GL-((c3GL > ld3G)?c3GL+1:0)]; + double o3HL = a3HL[c3HL-((c3HL > ld3H)?c3HL+1:0)]; + double o3IL = a3IL[c3IL-((c3IL > ld3I)?c3IL+1:0)]; + double o3AR = a3AR[c3AR-((c3AR > ld3A)?c3AR+1:0)]; + double o3DR = a3DR[c3DR-((c3DR > ld3D)?c3DR+1:0)]; + double o3GR = a3GR[c3GR-((c3GR > ld3G)?c3GR+1:0)]; + + double inputSampleL = (o3GL + o3HL + o3IL)*0.03125; + double inputSampleR = (o3AR + o3DR + o3GR)*0.03125; + + bezF[bez_cycle] += derezFreq; + bezF[bez_SampL] += ((inputSampleL+bezF[bez_InL]) * derezFreq); + bezF[bez_SampR] += ((inputSampleL+bezF[bez_InR]) * derezFreq); + bezF[bez_InL] = inputSampleL; bezF[bez_InR] = inputSampleR; + if (bezF[bez_cycle] > 1.0) { //hit the end point and we do a filter sample + if (steppedFreq) bezF[bez_cycle] = 0.0; + else bezF[bez_cycle] -= 1.0; + bezF[bez_CL] = bezF[bez_BL]; + bezF[bez_BL] = bezF[bez_AL]; + bezF[bez_AL] = (bezF[bez_SampL]+bezF[bez_AvgInSampL])*0.5; + bezF[bez_AvgInSampL] = bezF[bez_SampL]; bezF[bez_SampL] = 0.0; + bezF[bez_CR] = bezF[bez_BR]; + bezF[bez_BR] = bezF[bez_AR]; + bezF[bez_AR] = (bezF[bez_SampR]+bezF[bez_AvgInSampR])*0.5; + bezF[bez_AvgInSampR] = bezF[bez_SampR]; bezF[bez_SampR] = 0.0; + } + double X = bezF[bez_cycle]*bezFreqTrim; + double CBLfreq = (bezF[bez_CL]*(1.0-X))+(bezF[bez_BL]*X); + double BALfreq = (bezF[bez_BL]*(1.0-X))+(bezF[bez_AL]*X); + double CBALfreq = (bezF[bez_BL]+(CBLfreq*(1.0-X))+(BALfreq*X))*0.125; + double CBRfreq = (bezF[bez_CR]*(1.0-X))+(bezF[bez_BR]*X); + double BARfreq = (bezF[bez_BR]*(1.0-X))+(bezF[bez_AR]*X); + double CBARfreq = (bezF[bez_BR]+(CBRfreq*(1.0-X))+(BARfreq*X))*0.125; + inputSampleL = CBALfreq+bezF[bez_AvgOutSampL]; + bezF[bez_AvgOutSampL] = CBALfreq; + inputSampleR = CBARfreq+bezF[bez_AvgOutSampR]; + bezF[bez_AvgOutSampR] = CBARfreq; + + double earlyReflectionL = inputSampleL; + double earlyReflectionR = inputSampleR; //kWoodRoom has filtered early reflections + + a6AL[c6AL] = inputSampleL + (f6BL * reg6n); + a6BL[c6BL] = inputSampleL + (f6CL * reg6n); + a6CL[c6CL] = inputSampleL + (f6DL * reg6n); + a6DL[c6DL] = inputSampleL + (f6EL * reg6n); + a6EL[c6EL] = inputSampleL + (f6FL * reg6n); + a6FL[c6FL] = inputSampleL + (f6AL * reg6n); + + c6AL++; if (c6AL < 0 || c6AL > d6A) c6AL = 0; + c6BL++; if (c6BL < 0 || c6BL > d6B) c6BL = 0; + c6CL++; if (c6CL < 0 || c6CL > d6C) c6CL = 0; + c6DL++; if (c6DL < 0 || c6DL > d6D) c6DL = 0; + c6EL++; if (c6EL < 0 || c6EL > d6E) c6EL = 0; + c6FL++; if (c6FL < 0 || c6FL > d6F) c6FL = 0; + + double o6AL = a6AL[c6AL-((c6AL > d6A)?d6A+1:0)]; + double o6BL = a6BL[c6BL-((c6BL > d6B)?d6B+1:0)]; + double o6CL = a6CL[c6CL-((c6CL > d6C)?d6C+1:0)]; + double o6DL = a6DL[c6DL-((c6DL > d6D)?d6D+1:0)]; + double o6EL = a6EL[c6EL-((c6EL > d6E)?d6E+1:0)]; + double o6FL = a6FL[c6FL-((c6FL > d6F)?d6F+1:0)]; + + a6FR[c6FR] = inputSampleR + (f6LR * reg6n); + a6LR[c6LR] = inputSampleR + (f6RR * reg6n); + a6RR[c6RR] = inputSampleR + (f6XR * reg6n); + a6XR[c6XR] = inputSampleR + (f6ZER * reg6n); + a6ZER[c6ZER] = inputSampleR + (f6ZKR * reg6n); + a6ZKR[c6ZKR] = inputSampleR + (f6FR * reg6n); + + c6FR++; if (c6FR < 0 || c6FR > d6F) c6FR = 0; + c6LR++; if (c6LR < 0 || c6LR > d6L) c6LR = 0; + c6RR++; if (c6RR < 0 || c6RR > d6R) c6RR = 0; + c6XR++; if (c6XR < 0 || c6XR > d6X) c6XR = 0; + c6ZER++; if (c6ZER < 0 || c6ZER > d6ZE) c6ZER = 0; + c6ZKR++; if (c6ZKR < 0 || c6ZKR > d6ZK) c6ZKR = 0; + + double o6FR = a6FR[c6FR-((c6FR > d6F)?d6F+1:0)]; + double o6LR = a6LR[c6LR-((c6LR > d6L)?d6L+1:0)]; + double o6RR = a6RR[c6RR-((c6RR > d6R)?d6R+1:0)]; + double o6XR = a6XR[c6XR-((c6XR > d6X)?d6X+1:0)]; + double o6ZER = a6ZER[c6ZER-((c6ZER > d6ZE)?d6ZE+1:0)]; + double o6ZKR = a6ZKR[c6ZKR-((c6ZKR > d6ZK)?d6ZK+1:0)]; + + //-------- one + + a6GL[c6GL] = ((o6AL*2.0) - (o6BL + o6CL + o6DL + o6EL + o6FL)); + a6HL[c6HL] = ((o6BL*2.0) - (o6AL + o6CL + o6DL + o6EL + o6FL)); + a6IL[c6IL] = ((o6CL*2.0) - (o6AL + o6BL + o6DL + o6EL + o6FL)); + a6JL[c6JL] = ((o6DL*2.0) - (o6AL + o6BL + o6CL + o6EL + o6FL)); + a6KL[c6KL] = ((o6EL*2.0) - (o6AL + o6BL + o6CL + o6DL + o6FL)); + a6LL[c6LL] = ((o6FL*2.0) - (o6AL + o6BL + o6CL + o6DL + o6EL)); + + c6GL++; if (c6GL < 0 || c6GL > d6G) c6GL = 0; + c6HL++; if (c6HL < 0 || c6HL > d6H) c6HL = 0; + c6IL++; if (c6IL < 0 || c6IL > d6I) c6IL = 0; + c6JL++; if (c6JL < 0 || c6JL > d6J) c6JL = 0; + c6KL++; if (c6KL < 0 || c6KL > d6K) c6KL = 0; + c6LL++; if (c6LL < 0 || c6LL > d6L) c6LL = 0; + + double o6GL = a6GL[c6GL-((c6GL > d6G)?d6G+1:0)]; + double o6HL = a6HL[c6HL-((c6HL > d6H)?d6H+1:0)]; + double o6IL = a6IL[c6IL-((c6IL > d6I)?d6I+1:0)]; + double o6JL = a6JL[c6JL-((c6JL > d6J)?d6J+1:0)]; + double o6KL = a6KL[c6KL-((c6KL > d6K)?d6K+1:0)]; + double o6LL = a6LL[c6LL-((c6LL > d6L)?d6L+1:0)]; + + a6ER[c6ER] = ((o6FR*2.0) - (o6LR + o6RR + o6XR + o6ZER + o6ZKR)); + a6KR[c6KR] = ((o6LR*2.0) - (o6FR + o6RR + o6XR + o6ZER + o6ZKR)); + a6QR[c6QR] = ((o6RR*2.0) - (o6FR + o6LR + o6XR + o6ZER + o6ZKR)); + a6WR[c6WR] = ((o6XR*2.0) - (o6FR + o6LR + o6RR + o6ZER + o6ZKR)); + a6ZDR[c6ZDR] = ((o6ZER*2.0) - (o6FR + o6LR + o6RR + o6XR + o6ZKR)); + a6ZJR[c6ZJR] = ((o6ZKR*2.0) - (o6FR + o6LR + o6RR + o6XR + o6ZER)); + + c6ER++; if (c6ER < 0 || c6ER > d6E) c6ER = 0; + c6KR++; if (c6KR < 0 || c6KR > d6K) c6KR = 0; + c6QR++; if (c6QR < 0 || c6QR > d6Q) c6QR = 0; + c6WR++; if (c6WR < 0 || c6WR > d6W) c6WR = 0; + c6ZDR++; if (c6ZDR < 0 || c6ZDR > d6ZD) c6ZDR = 0; + c6ZJR++; if (c6ZJR < 0 || c6ZJR > d6ZJ) c6ZJR = 0; + + double o6ER = a6ER[c6ER-((c6ER > d6E)?d6E+1:0)]; + double o6KR = a6KR[c6KR-((c6KR > d6K)?d6K+1:0)]; + double o6QR = a6QR[c6QR-((c6QR > d6Q)?d6Q+1:0)]; + double o6WR = a6WR[c6WR-((c6WR > d6W)?d6W+1:0)]; + double o6ZDR = a6ZDR[c6ZDR-((c6ZDR > d6ZD)?d6ZD+1:0)]; + double o6ZJR = a6ZJR[c6ZJR-((c6ZJR > d6ZJ)?d6ZJ+1:0)]; + + //-------- two + + a6ML[c6ML] = ((o6GL*2.0) - (o6HL + o6IL + o6JL + o6KL + o6LL)); + a6NL[c6NL] = ((o6HL*2.0) - (o6GL + o6IL + o6JL + o6KL + o6LL)); + a6OL[c6OL] = ((o6IL*2.0) - (o6GL + o6HL + o6JL + o6KL + o6LL)); + a6PL[c6PL] = ((o6JL*2.0) - (o6GL + o6HL + o6IL + o6KL + o6LL)); + a6QL[c6QL] = ((o6KL*2.0) - (o6GL + o6HL + o6IL + o6JL + o6LL)); + a6RL[c6RL] = ((o6LL*2.0) - (o6GL + o6HL + o6IL + o6JL + o6KL)); + + c6ML++; if (c6ML < 0 || c6ML > d6M) c6ML = 0; + c6NL++; if (c6NL < 0 || c6NL > d6N) c6NL = 0; + c6OL++; if (c6OL < 0 || c6OL > d6O) c6OL = 0; + c6PL++; if (c6PL < 0 || c6PL > d6P) c6PL = 0; + c6QL++; if (c6QL < 0 || c6QL > d6Q) c6QL = 0; + c6RL++; if (c6RL < 0 || c6RL > d6R) c6RL = 0; + + double o6ML = a6ML[c6ML-((c6ML > d6M)?d6M+1:0)]; + double o6NL = a6NL[c6NL-((c6NL > d6N)?d6N+1:0)]; + double o6OL = a6OL[c6OL-((c6OL > d6O)?d6O+1:0)]; + double o6PL = a6PL[c6PL-((c6PL > d6P)?d6P+1:0)]; + double o6QL = a6QL[c6QL-((c6QL > d6Q)?d6Q+1:0)]; + double o6RL = a6RL[c6RL-((c6RL > d6R)?d6R+1:0)]; + + a6DR[c6DR] = ((o6ER*2.0) - (o6KR + o6QR + o6WR + o6ZDR + o6ZJR)); + a6JR[c6JR] = ((o6KR*2.0) - (o6ER + o6QR + o6WR + o6ZDR + o6ZJR)); + a6PR[c6PR] = ((o6QR*2.0) - (o6ER + o6KR + o6WR + o6ZDR + o6ZJR)); + a6VR[c6VR] = ((o6WR*2.0) - (o6ER + o6KR + o6QR + o6ZDR + o6ZJR)); + a6ZCR[c6ZCR] = ((o6ZDR*2.0) - (o6ER + o6KR + o6QR + o6WR + o6ZJR)); + a6ZIR[c6ZIR] = ((o6ZJR*2.0) - (o6ER + o6KR + o6QR + o6WR + o6ZDR)); + + c6DR++; if (c6DR < 0 || c6DR > d6D) c6DR = 0; + c6JR++; if (c6JR < 0 || c6JR > d6J) c6JR = 0; + c6PR++; if (c6PR < 0 || c6PR > d6P) c6PR = 0; + c6VR++; if (c6VR < 0 || c6VR > d6V) c6VR = 0; + c6ZCR++; if (c6ZCR < 0 || c6ZCR > d6ZC) c6ZCR = 0; + c6ZIR++; if (c6ZIR < 0 || c6ZIR > d6ZI) c6ZIR = 0; + + double o6DR = a6DR[c6DR-((c6DR > d6D)?d6D+1:0)]; + double o6JR = a6JR[c6JR-((c6JR > d6J)?d6J+1:0)]; + double o6PR = a6PR[c6PR-((c6PR > d6P)?d6P+1:0)]; + double o6VR = a6VR[c6VR-((c6VR > d6V)?d6V+1:0)]; + double o6ZCR = a6ZCR[c6ZCR-((c6ZCR > d6ZC)?d6ZC+1:0)]; + double o6ZIR = a6ZIR[c6ZIR-((c6ZIR > d6ZI)?d6ZI+1:0)]; + + //-------- three + + a6SL[c6SL] = ((o6ML*2.0) - (o6NL + o6OL + o6PL + o6QL + o6RL)); + a6TL[c6TL] = ((o6NL*2.0) - (o6ML + o6OL + o6PL + o6QL + o6RL)); + a6UL[c6UL] = ((o6OL*2.0) - (o6ML + o6NL + o6PL + o6QL + o6RL)); + a6VL[c6VL] = ((o6PL*2.0) - (o6ML + o6NL + o6OL + o6QL + o6RL)); + a6WL[c6WL] = ((o6QL*2.0) - (o6ML + o6NL + o6OL + o6PL + o6RL)); + a6XL[c6XL] = ((o6RL*2.0) - (o6ML + o6NL + o6OL + o6PL + o6QL)); + + c6SL++; if (c6SL < 0 || c6SL > d6S) c6SL = 0; + c6TL++; if (c6TL < 0 || c6TL > d6T) c6TL = 0; + c6UL++; if (c6UL < 0 || c6UL > d6U) c6UL = 0; + c6VL++; if (c6VL < 0 || c6VL > d6V) c6VL = 0; + c6WL++; if (c6WL < 0 || c6WL > d6W) c6WL = 0; + c6XL++; if (c6XL < 0 || c6XL > d6X) c6XL = 0; + + double o6SL = a6SL[c6SL-((c6SL > d6S)?d6S+1:0)]; + double o6TL = a6TL[c6TL-((c6TL > d6T)?d6T+1:0)]; + double o6UL = a6UL[c6UL-((c6UL > d6U)?d6U+1:0)]; + double o6VL = a6VL[c6VL-((c6VL > d6V)?d6V+1:0)]; + double o6WL = a6WL[c6WL-((c6WL > d6W)?d6W+1:0)]; + double o6XL = a6XL[c6XL-((c6XL > d6X)?d6X+1:0)]; + + a6CR[c6CR] = ((o6DR*2.0) - (o6JR + o6PR + o6VR + o6ZCR + o6ZIR)); + a6IR[c6IR] = ((o6JR*2.0) - (o6DR + o6PR + o6VR + o6ZCR + o6ZIR)); + a6OR[c6OR] = ((o6PR*2.0) - (o6DR + o6JR + o6VR + o6ZCR + o6ZIR)); + a6UR[c6UR] = ((o6VR*2.0) - (o6DR + o6JR + o6PR + o6ZCR + o6ZIR)); + a6ZBR[c6ZBR] = ((o6ZCR*2.0) - (o6DR + o6JR + o6PR + o6VR + o6ZIR)); + a6ZHR[c6ZHR] = ((o6ZIR*2.0) - (o6DR + o6JR + o6PR + o6VR + o6ZCR)); + + c6CR++; if (c6CR < 0 || c6CR > d6C) c6CR = 0; + c6IR++; if (c6IR < 0 || c6IR > d6I) c6IR = 0; + c6OR++; if (c6OR < 0 || c6OR > d6O) c6OR = 0; + c6UR++; if (c6UR < 0 || c6UR > d6U) c6UR = 0; + c6ZBR++; if (c6ZBR < 0 || c6ZBR > d6ZB) c6ZBR = 0; + c6ZHR++; if (c6ZHR < 0 || c6ZHR > d6ZH) c6ZHR = 0; + + double o6CR = a6CR[c6CR-((c6CR > d6C)?d6C+1:0)]; + double o6IR = a6IR[c6IR-((c6IR > d6I)?d6I+1:0)]; + double o6OR = a6OR[c6OR-((c6OR > d6O)?d6O+1:0)]; + double o6UR = a6UR[c6UR-((c6UR > d6U)?d6U+1:0)]; + double o6ZBR = a6ZBR[c6ZBR-((c6ZBR > d6ZB)?d6ZB+1:0)]; + double o6ZHR = a6ZHR[c6ZHR-((c6ZHR > d6ZH)?d6ZH+1:0)]; + + //-------- four + + a6YL[c6YL] = ((o6SL*2.0) - (o6TL + o6UL + o6VL + o6WL + o6XL)); + a6ZAL[c6ZAL] = ((o6TL*2.0) - (o6SL + o6UL + o6VL + o6WL + o6XL)); + a6ZBL[c6ZBL] = ((o6UL*2.0) - (o6SL + o6TL + o6VL + o6WL + o6XL)); + a6ZCL[c6ZCL] = ((o6VL*2.0) - (o6SL + o6TL + o6UL + o6WL + o6XL)); + a6ZDL[c6ZDL] = ((o6WL*2.0) - (o6SL + o6TL + o6UL + o6VL + o6XL)); + a6ZEL[c6ZEL] = ((o6XL*2.0) - (o6SL + o6TL + o6UL + o6VL + o6WL)); + + c6YL++; if (c6YL < 0 || c6YL > d6Y) c6YL = 0; + c6ZAL++; if (c6ZAL < 0 || c6ZAL > d6ZA) c6ZAL = 0; + c6ZBL++; if (c6ZBL < 0 || c6ZBL > d6ZB) c6ZBL = 0; + c6ZCL++; if (c6ZCL < 0 || c6ZCL > d6ZC) c6ZCL = 0; + c6ZDL++; if (c6ZDL < 0 || c6ZDL > d6ZD) c6ZDL = 0; + c6ZEL++; if (c6ZEL < 0 || c6ZEL > d6ZE) c6ZEL = 0; + + double o6YL = a6YL[c6YL-((c6YL > d6Y)?d6Y+1:0)]; + double o6ZAL = a6ZAL[c6ZAL-((c6ZAL > d6ZA)?d6ZA+1:0)]; + double o6ZBL = a6ZBL[c6ZBL-((c6ZBL > d6ZB)?d6ZB+1:0)]; + double o6ZCL = a6ZCL[c6ZCL-((c6ZCL > d6ZC)?d6ZC+1:0)]; + double o6ZDL = a6ZDL[c6ZDL-((c6ZDL > d6ZD)?d6ZD+1:0)]; + double o6ZEL = a6ZEL[c6ZEL-((c6ZEL > d6ZE)?d6ZE+1:0)]; + + a6BR[c6BR] = ((o6CR*2.0) - (o6IR + o6OR + o6UR + o6ZBR + o6ZHR)); + a6HR[c6HR] = ((o6IR*2.0) - (o6CR + o6OR + o6UR + o6ZBR + o6ZHR)); + a6NR[c6NR] = ((o6OR*2.0) - (o6CR + o6IR + o6UR + o6ZBR + o6ZHR)); + a6TR[c6TR] = ((o6UR*2.0) - (o6CR + o6IR + o6OR + o6ZBR + o6ZHR)); + a6ZAR[c6ZAR] = ((o6ZBR*2.0) - (o6CR + o6IR + o6OR + o6UR + o6ZHR)); + a6ZGR[c6ZGR] = ((o6ZHR*2.0) - (o6CR + o6IR + o6OR + o6UR + o6ZBR)); + + c6BR++; if (c6BR < 0 || c6BR > d6B) c6BR = 0; + c6HR++; if (c6HR < 0 || c6HR > d6H) c6HR = 0; + c6NR++; if (c6NR < 0 || c6NR > d6N) c6NR = 0; + c6TR++; if (c6TR < 0 || c6TR > d6T) c6TR = 0; + c6ZBR++; if (c6ZBR < 0 || c6ZBR > d6ZB) c6ZBR = 0; + c6ZGR++; if (c6ZGR < 0 || c6ZGR > d6ZG) c6ZGR = 0; + + double o6BR = a6BR[c6BR-((c6BR > d6B)?d6B+1:0)]; + double o6HR = a6HR[c6HR-((c6HR > d6H)?d6H+1:0)]; + double o6NR = a6NR[c6NR-((c6NR > d6N)?d6N+1:0)]; + double o6TR = a6TR[c6TR-((c6TR > d6T)?d6T+1:0)]; + double o6ZAR = a6ZAR[c6ZAR-((c6ZAR > d6ZA)?d6ZA+1:0)]; + double o6ZGR = a6ZGR[c6ZGR-((c6ZGR > d6ZG)?d6ZG+1:0)]; + + //-------- five + + a6ZFL[c6ZFL] = ((o6YL*2.0) - (o6ZAL + o6ZBL + o6ZCL + o6ZDL + o6ZEL)); + a6ZGL[c6ZGL] = ((o6ZAL*2.0) - (o6YL + o6ZBL + o6ZCL + o6ZDL + o6ZEL)); + a6ZHL[c6ZHL] = ((o6ZBL*2.0) - (o6YL + o6ZAL + o6ZCL + o6ZDL + o6ZEL)); + a6ZIL[c6ZIL] = ((o6ZCL*2.0) - (o6YL + o6ZAL + o6ZBL + o6ZDL + o6ZEL)); + a6ZJL[c6ZJL] = ((o6ZDL*2.0) - (o6YL + o6ZAL + o6ZBL + o6ZCL + o6ZEL)); + a6ZKL[c6ZKL] = ((o6ZEL*2.0) - (o6YL + o6ZAL + o6ZBL + o6ZCL + o6ZDL)); + + c6ZFL++; if (c6ZFL < 0 || c6ZFL > d6ZF) c6ZFL = 0; + c6ZGL++; if (c6ZGL < 0 || c6ZGL > d6ZG) c6ZGL = 0; + c6ZHL++; if (c6ZHL < 0 || c6ZHL > d6ZH) c6ZHL = 0; + c6ZIL++; if (c6ZIL < 0 || c6ZIL > d6ZI) c6ZIL = 0; + c6ZJL++; if (c6ZJL < 0 || c6ZJL > d6ZJ) c6ZJL = 0; + c6ZKL++; if (c6ZKL < 0 || c6ZKL > d6ZK) c6ZKL = 0; + + double o6ZFL = a6ZFL[c6ZFL-((c6ZFL > d6ZF)?d6ZF+1:0)]; + double o6ZGL = a6ZGL[c6ZGL-((c6ZGL > d6ZG)?d6ZG+1:0)]; + double o6ZHL = a6ZHL[c6ZHL-((c6ZHL > d6ZH)?d6ZH+1:0)]; + double o6ZIL = a6ZIL[c6ZIL-((c6ZIL > d6ZI)?d6ZI+1:0)]; + double o6ZJL = a6ZJL[c6ZJL-((c6ZJL > d6ZJ)?d6ZJ+1:0)]; + double o6ZKL = a6ZKL[c6ZKL-((c6ZKL > d6ZK)?d6ZK+1:0)]; + + a6AR[c6AR] = ((o6BR*2.0) - (o6HR + o6NR + o6TR + o6ZAR + o6ZGR)); + a6GR[c6GR] = ((o6HR*2.0) - (o6BR + o6NR + o6TR + o6ZAR + o6ZGR)); + a6MR[c6MR] = ((o6NR*2.0) - (o6BR + o6HR + o6TR + o6ZAR + o6ZGR)); + a6SR[c6SR] = ((o6TR*2.0) - (o6BR + o6HR + o6NR + o6ZAR + o6ZGR)); + a6YR[c6YR] = ((o6ZAR*2.0) - (o6BR + o6HR + o6NR + o6TR + o6ZGR)); + a6ZFR[c6ZFR] = ((o6ZGR*2.0) - (o6BR + o6HR + o6NR + o6TR + o6ZAR)); + + c6AR++; if (c6AR < 0 || c6AR > d6A) c6AR = 0; + c6GR++; if (c6GR < 0 || c6GR > d6G) c6GR = 0; + c6MR++; if (c6MR < 0 || c6MR > d6M) c6MR = 0; + c6SR++; if (c6SR < 0 || c6SR > d6S) c6SR = 0; + c6YR++; if (c6YR < 0 || c6YR > d6Y) c6YR = 0; + c6ZFR++; if (c6ZFR < 0 || c6ZFR > d6ZF) c6ZFR = 0; + + double o6AR = a6AR[c6AR-((c6AR > d6A)?d6A+1:0)]; + double o6GR = a6GR[c6GR-((c6GR > d6G)?d6G+1:0)]; + double o6MR = a6MR[c6MR-((c6MR > d6M)?d6M+1:0)]; + double o6SR = a6SR[c6SR-((c6SR > d6S)?d6S+1:0)]; + double o6YR = a6YR[c6YR-((c6YR > d6Y)?d6Y+1:0)]; + double o6ZFR = a6ZFR[c6ZFR-((c6ZFR > d6ZF)?d6ZF+1:0)]; + + //-------- six + + f6AL = ((o6AR*2.0) - (o6GR + o6MR + o6SR + o6YR + o6ZFR)); + f6BL = ((o6GR*2.0) - (o6AR + o6MR + o6SR + o6YR + o6ZFR)); + f6CL = ((o6MR*2.0) - (o6AR + o6GR + o6SR + o6YR + o6ZFR)); + f6DL = ((o6SR*2.0) - (o6AR + o6GR + o6MR + o6YR + o6ZFR)); + f6EL = ((o6YR*2.0) - (o6AR + o6GR + o6MR + o6SR + o6ZFR)); + f6FL = ((o6ZFR*2.0) - (o6AR + o6GR + o6MR + o6SR + o6YR)); + + f6FR = ((o6ZFL*2.0) - (o6ZGL + o6ZHL + o6ZIL + o6ZJL + o6ZKL)); + f6LR = ((o6ZGL*2.0) - (o6ZFL + o6ZHL + o6ZIL + o6ZJL + o6ZKL)); + f6RR = ((o6ZHL*2.0) - (o6ZFL + o6ZGL + o6ZIL + o6ZJL + o6ZKL)); + f6XR = ((o6ZIL*2.0) - (o6ZFL + o6ZGL + o6ZHL + o6ZJL + o6ZKL)); + f6ZER = ((o6ZJL*2.0) - (o6ZFL + o6ZGL + o6ZHL + o6ZIL + o6ZKL)); + f6ZKR = ((o6ZKL*2.0) - (o6ZFL + o6ZGL + o6ZHL + o6ZIL + o6ZJL)); + + inputSampleL = (o6ZFL + o6ZGL + o6ZHL + o6ZIL + o6ZJL + o6ZKL)*0.001953125; + inputSampleR = (o6AR + o6GR + o6MR + o6SR + o6YR + o6ZFR)*0.001953125; + + f6AL = (f6AL+avg6L)*0.5; avg6L = f6AL; + f6FR = (f6FR+avg6R)*0.5; avg6R = f6FR; + //manipulating deep reverb tail for realism + + inputSampleL += (earlyReflectionL * earlyLoudness); + inputSampleR += (earlyReflectionR * earlyLoudness); + + bez[bez_CL] = bez[bez_BL]; + bez[bez_BL] = bez[bez_AL]; + bez[bez_AL] = inputSampleL; + bez[bez_SampL] = 0.0; + + bez[bez_CR] = bez[bez_BR]; + bez[bez_BR] = bez[bez_AR]; + bez[bez_AR] = inputSampleR; + bez[bez_SampR] = 0.0; + } + double X = bez[bez_cycle]*bezTrim; + double CBL = (bez[bez_CL]*(1.0-X))+(bez[bez_BL]*X); + double CBR = (bez[bez_CR]*(1.0-X))+(bez[bez_BR]*X); + double BAL = (bez[bez_BL]*(1.0-X))+(bez[bez_AL]*X); + double BAR = (bez[bez_BR]*(1.0-X))+(bez[bez_AR]*X); + double CBAL = (bez[bez_BL]+(CBL*(1.0-X))+(BAL*X))*-0.0625; + double CBAR = (bez[bez_BR]+(CBR*(1.0-X))+(BAR*X))*-0.0625; + inputSampleL = CBAL+bez[bez_AvgOutSampL]; bez[bez_AvgOutSampL] = CBAL; + inputSampleR = CBAR+bez[bez_AvgOutSampR]; bez[bez_AvgOutSampR] = CBAR; + + inputSampleL = (inputSampleL * wet)+(drySampleL * (1.0-wet)); + inputSampleR = (inputSampleR * wet)+(drySampleR * (1.0-wet)); + + //begin 32 bit stereo floating point dither + int expon; frexpf((float)inputSampleL, &expon); + fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5; + inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62)); + frexpf((float)inputSampleR, &expon); + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5; + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62)); + //end 32 bit stereo floating point dither + + *out1 = inputSampleL; + *out2 = inputSampleR; + + in1++; + in2++; + out1++; + out2++; + } +} + +void kWoodRoom::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(); + + double fdb6ck = (0.0009765625+0.0009765625+0.001953125)*0.3333333; + double reg6n = (1.0-pow(1.0-A,1.618033988749894))*fdb6ck; + //start this but pad it in the loop by volume of output? + + double derez = B*2.0; + bool stepped = true; // Revised Bezier Undersampling + if (derez > 1.0) { // has full rez at center, stepped + stepped = false; // to left, continuous to right + derez = 1.0-(derez-1.0); + } //if it's set up like that it's the revised algorithm + derez = fmin(fmax(derez/overallscale,0.0005),1.0); + int bezFraction = (int)(1.0/derez); + double bezTrim = (double)bezFraction/(bezFraction+1.0); + if (stepped) { //this hard-locks derez to exact subdivisions of 1.0 + derez = 1.0 / bezFraction; + bezTrim = 1.0-(derez*bezTrim); + } else { //this makes it match the 1.0 case using stepped + derez /= (2.0/pow(overallscale,0.5-((overallscale-1.0)*0.0375))); + bezTrim = 1.0-pow(derez*0.5,1.0/(derez*0.5)); + } //the revision more accurately connects the bezier curves + + double derezFreq = C*2.0; + bool steppedFreq = true; // Revised Bezier Undersampling + if (derezFreq > 1.0) { // has full rez at center, stepped + steppedFreq = false; // to left, continuous to right + derezFreq = 1.0-(derezFreq-1.0); + } //if it's set up like that it's the revised algorithm + derezFreq = fmin(fmax(derezFreq,0.0005),1.0); //note: no overallscale, already inside undersampling + int bezFreqFraction = (int)(1.0/derezFreq); + double bezFreqTrim = (double)bezFreqFraction/(bezFreqFraction+1.0); + if (steppedFreq) { //this hard-locks derez to exact subdivisions of 1.0 + derezFreq = 1.0 / bezFreqFraction; + bezFreqTrim = 1.0-(derezFreq*bezFreqTrim); + } else { //this makes it match the 1.0 case using stepped + bezFreqTrim = 1.0-pow(derezFreq*0.5,1.0/(derezFreq*0.5)); + } //the revision more accurately connects the bezier curves + + double earlyLoudness = D*2.0; + int start = (int)(E * 27.0); + int ld3G = early[start]; + int ld3H = early[start+1]; + int ld3D = early[start+2]; + int ld3A = early[start+3]; + int ld3E = early[start+4]; + int ld3I = early[start+5]; + int ld3F = early[start+6]; + int ld3B = early[start+7]; + int ld3C = early[start+8]; + double wet = F; + + while (--sampleFrames >= 0) + { + double inputSampleL = *in1; + double inputSampleR = *in2; + if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17; + if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17; + double drySampleL = inputSampleL; + double drySampleR = inputSampleR; + + bez[bez_cycle] += derez; + bez[bez_SampL] += ((inputSampleL+bez[bez_InL]) * derez); + bez[bez_SampR] += ((inputSampleR+bez[bez_InR]) * derez); + bez[bez_InL] = inputSampleL; bez[bez_InR] = inputSampleR; + if (bez[bez_cycle] > 1.0) { //hit the end point and we do a reverb sample + if (stepped) bez[bez_cycle] = 0.0; + else bez[bez_cycle] -= 1.0; + + inputSampleL = (bez[bez_SampL]+bez[bez_AvgInSampL])*0.5; + bez[bez_AvgInSampL] = bez[bez_SampL]; + inputSampleR = (bez[bez_SampR]+bez[bez_AvgInSampR])*0.5; + bez[bez_AvgInSampR] = bez[bez_SampR]; + + a3AL[c3AL] = inputSampleL;// + (f3AL * reg3n); + a3BL[c3BL] = inputSampleL;// + (f3BL * reg3n); + a3CL[c3CL] = inputSampleL;// + (f3CL * reg3n); + + a3CR[c3CR] = inputSampleR;// + (f3CR * reg3n); + a3FR[c3FR] = inputSampleR;// + (f3FR * reg3n); + a3IR[c3IR] = inputSampleR;// + (f3IR * reg3n); + + c3AL++; if (c3AL < 0 || c3AL > ld3A) c3AL = 0; + c3BL++; if (c3BL < 0 || c3BL > ld3B) c3BL = 0; + c3CL++; if (c3CL < 0 || c3CL > ld3C) c3CL = 0; + c3CR++; if (c3CR < 0 || c3CR > ld3C) c3CR = 0; + c3FR++; if (c3FR < 0 || c3FR > ld3F) c3FR = 0; + c3IR++; if (c3IR < 0 || c3IR > ld3I) c3IR = 0; + + double o3AL = a3AL[c3AL-((c3AL > ld3A)?c3AL+1:0)]; + double o3BL = a3BL[c3BL-((c3BL > ld3B)?c3BL+1:0)]; + double o3CL = a3CL[c3CL-((c3CL > ld3C)?c3CL+1:0)]; + double o3CR = a3CR[c3CR-((c3CR > ld3C)?c3CR+1:0)]; + double o3FR = a3FR[c3FR-((c3FR > ld3F)?c3FR+1:0)]; + double o3IR = a3IR[c3IR-((c3IR > ld3I)?c3IR+1:0)]; + + a3DL[c3DL] = (((o3BL + o3CL) * -2.0) + o3AL); + a3EL[c3EL] = (((o3AL + o3CL) * -2.0) + o3BL); + a3FL[c3FL] = (((o3AL + o3BL) * -2.0) + o3CL); + a3BR[c3BR] = (((o3FR + o3IR) * -2.0) + o3CR); + a3ER[c3ER] = (((o3CR + o3IR) * -2.0) + o3FR); + a3HR[c3HR] = (((o3CR + o3FR) * -2.0) + o3IR); + + c3DL++; if (c3DL < 0 || c3DL > ld3D) c3DL = 0; + c3EL++; if (c3EL < 0 || c3EL > ld3E) c3EL = 0; + c3FL++; if (c3FL < 0 || c3FL > ld3F) c3FL = 0; + c3BR++; if (c3BR < 0 || c3BR > ld3B) c3BR = 0; + c3ER++; if (c3ER < 0 || c3ER > ld3E) c3ER = 0; + c3HR++; if (c3HR < 0 || c3HR > ld3H) c3HR = 0; + + double o3DL = a3DL[c3DL-((c3DL > ld3D)?c3DL+1:0)]; + double o3EL = a3EL[c3EL-((c3EL > ld3E)?c3EL+1:0)]; + double o3FL = a3FL[c3FL-((c3FL > ld3F)?c3FL+1:0)]; + double o3BR = a3BR[c3BR-((c3BR > ld3B)?c3BR+1:0)]; + double o3ER = a3ER[c3ER-((c3ER > ld3E)?c3ER+1:0)]; + double o3HR = a3HR[c3HR-((c3HR > ld3H)?c3HR+1:0)]; + + a3GL[c3GL] = (((o3EL + o3FL) * -2.0) + o3DL); + a3HL[c3HL] = (((o3DL + o3FL) * -2.0) + o3EL); + a3IL[c3IL] = (((o3DL + o3EL) * -2.0) + o3FL); + a3AR[c3AR] = (((o3ER + o3HR) * -2.0) + o3BR); + a3DR[c3DR] = (((o3BR + o3HR) * -2.0) + o3ER); + a3GR[c3GR] = (((o3BR + o3ER) * -2.0) + o3HR); + + c3GL++; if (c3GL < 0 || c3GL > ld3G) c3GL = 0; + c3HL++; if (c3HL < 0 || c3HL > ld3H) c3HL = 0; + c3IL++; if (c3IL < 0 || c3IL > ld3I) c3IL = 0; + c3AR++; if (c3AR < 0 || c3AR > ld3A) c3AR = 0; + c3DR++; if (c3DR < 0 || c3DR > ld3D) c3DR = 0; + c3GR++; if (c3GR < 0 || c3GR > ld3G) c3GR = 0; + + double o3GL = a3GL[c3GL-((c3GL > ld3G)?c3GL+1:0)]; + double o3HL = a3HL[c3HL-((c3HL > ld3H)?c3HL+1:0)]; + double o3IL = a3IL[c3IL-((c3IL > ld3I)?c3IL+1:0)]; + double o3AR = a3AR[c3AR-((c3AR > ld3A)?c3AR+1:0)]; + double o3DR = a3DR[c3DR-((c3DR > ld3D)?c3DR+1:0)]; + double o3GR = a3GR[c3GR-((c3GR > ld3G)?c3GR+1:0)]; + + double inputSampleL = (o3GL + o3HL + o3IL)*0.03125; + double inputSampleR = (o3AR + o3DR + o3GR)*0.03125; + + bezF[bez_cycle] += derezFreq; + bezF[bez_SampL] += ((inputSampleL+bezF[bez_InL]) * derezFreq); + bezF[bez_SampR] += ((inputSampleL+bezF[bez_InR]) * derezFreq); + bezF[bez_InL] = inputSampleL; bezF[bez_InR] = inputSampleR; + if (bezF[bez_cycle] > 1.0) { //hit the end point and we do a filter sample + if (steppedFreq) bezF[bez_cycle] = 0.0; + else bezF[bez_cycle] -= 1.0; + bezF[bez_CL] = bezF[bez_BL]; + bezF[bez_BL] = bezF[bez_AL]; + bezF[bez_AL] = (bezF[bez_SampL]+bezF[bez_AvgInSampL])*0.5; + bezF[bez_AvgInSampL] = bezF[bez_SampL]; bezF[bez_SampL] = 0.0; + bezF[bez_CR] = bezF[bez_BR]; + bezF[bez_BR] = bezF[bez_AR]; + bezF[bez_AR] = (bezF[bez_SampR]+bezF[bez_AvgInSampR])*0.5; + bezF[bez_AvgInSampR] = bezF[bez_SampR]; bezF[bez_SampR] = 0.0; + } + double X = bezF[bez_cycle]*bezFreqTrim; + double CBLfreq = (bezF[bez_CL]*(1.0-X))+(bezF[bez_BL]*X); + double BALfreq = (bezF[bez_BL]*(1.0-X))+(bezF[bez_AL]*X); + double CBALfreq = (bezF[bez_BL]+(CBLfreq*(1.0-X))+(BALfreq*X))*0.125; + double CBRfreq = (bezF[bez_CR]*(1.0-X))+(bezF[bez_BR]*X); + double BARfreq = (bezF[bez_BR]*(1.0-X))+(bezF[bez_AR]*X); + double CBARfreq = (bezF[bez_BR]+(CBRfreq*(1.0-X))+(BARfreq*X))*0.125; + inputSampleL = CBALfreq+bezF[bez_AvgOutSampL]; + bezF[bez_AvgOutSampL] = CBALfreq; + inputSampleR = CBARfreq+bezF[bez_AvgOutSampR]; + bezF[bez_AvgOutSampR] = CBARfreq; + + double earlyReflectionL = inputSampleL; + double earlyReflectionR = inputSampleR; //kWoodRoom has filtered early reflections + + a6AL[c6AL] = inputSampleL + (f6BL * reg6n); + a6BL[c6BL] = inputSampleL + (f6CL * reg6n); + a6CL[c6CL] = inputSampleL + (f6DL * reg6n); + a6DL[c6DL] = inputSampleL + (f6EL * reg6n); + a6EL[c6EL] = inputSampleL + (f6FL * reg6n); + a6FL[c6FL] = inputSampleL + (f6AL * reg6n); + + c6AL++; if (c6AL < 0 || c6AL > d6A) c6AL = 0; + c6BL++; if (c6BL < 0 || c6BL > d6B) c6BL = 0; + c6CL++; if (c6CL < 0 || c6CL > d6C) c6CL = 0; + c6DL++; if (c6DL < 0 || c6DL > d6D) c6DL = 0; + c6EL++; if (c6EL < 0 || c6EL > d6E) c6EL = 0; + c6FL++; if (c6FL < 0 || c6FL > d6F) c6FL = 0; + + double o6AL = a6AL[c6AL-((c6AL > d6A)?d6A+1:0)]; + double o6BL = a6BL[c6BL-((c6BL > d6B)?d6B+1:0)]; + double o6CL = a6CL[c6CL-((c6CL > d6C)?d6C+1:0)]; + double o6DL = a6DL[c6DL-((c6DL > d6D)?d6D+1:0)]; + double o6EL = a6EL[c6EL-((c6EL > d6E)?d6E+1:0)]; + double o6FL = a6FL[c6FL-((c6FL > d6F)?d6F+1:0)]; + + a6FR[c6FR] = inputSampleR + (f6LR * reg6n); + a6LR[c6LR] = inputSampleR + (f6RR * reg6n); + a6RR[c6RR] = inputSampleR + (f6XR * reg6n); + a6XR[c6XR] = inputSampleR + (f6ZER * reg6n); + a6ZER[c6ZER] = inputSampleR + (f6ZKR * reg6n); + a6ZKR[c6ZKR] = inputSampleR + (f6FR * reg6n); + + c6FR++; if (c6FR < 0 || c6FR > d6F) c6FR = 0; + c6LR++; if (c6LR < 0 || c6LR > d6L) c6LR = 0; + c6RR++; if (c6RR < 0 || c6RR > d6R) c6RR = 0; + c6XR++; if (c6XR < 0 || c6XR > d6X) c6XR = 0; + c6ZER++; if (c6ZER < 0 || c6ZER > d6ZE) c6ZER = 0; + c6ZKR++; if (c6ZKR < 0 || c6ZKR > d6ZK) c6ZKR = 0; + + double o6FR = a6FR[c6FR-((c6FR > d6F)?d6F+1:0)]; + double o6LR = a6LR[c6LR-((c6LR > d6L)?d6L+1:0)]; + double o6RR = a6RR[c6RR-((c6RR > d6R)?d6R+1:0)]; + double o6XR = a6XR[c6XR-((c6XR > d6X)?d6X+1:0)]; + double o6ZER = a6ZER[c6ZER-((c6ZER > d6ZE)?d6ZE+1:0)]; + double o6ZKR = a6ZKR[c6ZKR-((c6ZKR > d6ZK)?d6ZK+1:0)]; + + //-------- one + + a6GL[c6GL] = ((o6AL*2.0) - (o6BL + o6CL + o6DL + o6EL + o6FL)); + a6HL[c6HL] = ((o6BL*2.0) - (o6AL + o6CL + o6DL + o6EL + o6FL)); + a6IL[c6IL] = ((o6CL*2.0) - (o6AL + o6BL + o6DL + o6EL + o6FL)); + a6JL[c6JL] = ((o6DL*2.0) - (o6AL + o6BL + o6CL + o6EL + o6FL)); + a6KL[c6KL] = ((o6EL*2.0) - (o6AL + o6BL + o6CL + o6DL + o6FL)); + a6LL[c6LL] = ((o6FL*2.0) - (o6AL + o6BL + o6CL + o6DL + o6EL)); + + c6GL++; if (c6GL < 0 || c6GL > d6G) c6GL = 0; + c6HL++; if (c6HL < 0 || c6HL > d6H) c6HL = 0; + c6IL++; if (c6IL < 0 || c6IL > d6I) c6IL = 0; + c6JL++; if (c6JL < 0 || c6JL > d6J) c6JL = 0; + c6KL++; if (c6KL < 0 || c6KL > d6K) c6KL = 0; + c6LL++; if (c6LL < 0 || c6LL > d6L) c6LL = 0; + + double o6GL = a6GL[c6GL-((c6GL > d6G)?d6G+1:0)]; + double o6HL = a6HL[c6HL-((c6HL > d6H)?d6H+1:0)]; + double o6IL = a6IL[c6IL-((c6IL > d6I)?d6I+1:0)]; + double o6JL = a6JL[c6JL-((c6JL > d6J)?d6J+1:0)]; + double o6KL = a6KL[c6KL-((c6KL > d6K)?d6K+1:0)]; + double o6LL = a6LL[c6LL-((c6LL > d6L)?d6L+1:0)]; + + a6ER[c6ER] = ((o6FR*2.0) - (o6LR + o6RR + o6XR + o6ZER + o6ZKR)); + a6KR[c6KR] = ((o6LR*2.0) - (o6FR + o6RR + o6XR + o6ZER + o6ZKR)); + a6QR[c6QR] = ((o6RR*2.0) - (o6FR + o6LR + o6XR + o6ZER + o6ZKR)); + a6WR[c6WR] = ((o6XR*2.0) - (o6FR + o6LR + o6RR + o6ZER + o6ZKR)); + a6ZDR[c6ZDR] = ((o6ZER*2.0) - (o6FR + o6LR + o6RR + o6XR + o6ZKR)); + a6ZJR[c6ZJR] = ((o6ZKR*2.0) - (o6FR + o6LR + o6RR + o6XR + o6ZER)); + + c6ER++; if (c6ER < 0 || c6ER > d6E) c6ER = 0; + c6KR++; if (c6KR < 0 || c6KR > d6K) c6KR = 0; + c6QR++; if (c6QR < 0 || c6QR > d6Q) c6QR = 0; + c6WR++; if (c6WR < 0 || c6WR > d6W) c6WR = 0; + c6ZDR++; if (c6ZDR < 0 || c6ZDR > d6ZD) c6ZDR = 0; + c6ZJR++; if (c6ZJR < 0 || c6ZJR > d6ZJ) c6ZJR = 0; + + double o6ER = a6ER[c6ER-((c6ER > d6E)?d6E+1:0)]; + double o6KR = a6KR[c6KR-((c6KR > d6K)?d6K+1:0)]; + double o6QR = a6QR[c6QR-((c6QR > d6Q)?d6Q+1:0)]; + double o6WR = a6WR[c6WR-((c6WR > d6W)?d6W+1:0)]; + double o6ZDR = a6ZDR[c6ZDR-((c6ZDR > d6ZD)?d6ZD+1:0)]; + double o6ZJR = a6ZJR[c6ZJR-((c6ZJR > d6ZJ)?d6ZJ+1:0)]; + + //-------- two + + a6ML[c6ML] = ((o6GL*2.0) - (o6HL + o6IL + o6JL + o6KL + o6LL)); + a6NL[c6NL] = ((o6HL*2.0) - (o6GL + o6IL + o6JL + o6KL + o6LL)); + a6OL[c6OL] = ((o6IL*2.0) - (o6GL + o6HL + o6JL + o6KL + o6LL)); + a6PL[c6PL] = ((o6JL*2.0) - (o6GL + o6HL + o6IL + o6KL + o6LL)); + a6QL[c6QL] = ((o6KL*2.0) - (o6GL + o6HL + o6IL + o6JL + o6LL)); + a6RL[c6RL] = ((o6LL*2.0) - (o6GL + o6HL + o6IL + o6JL + o6KL)); + + c6ML++; if (c6ML < 0 || c6ML > d6M) c6ML = 0; + c6NL++; if (c6NL < 0 || c6NL > d6N) c6NL = 0; + c6OL++; if (c6OL < 0 || c6OL > d6O) c6OL = 0; + c6PL++; if (c6PL < 0 || c6PL > d6P) c6PL = 0; + c6QL++; if (c6QL < 0 || c6QL > d6Q) c6QL = 0; + c6RL++; if (c6RL < 0 || c6RL > d6R) c6RL = 0; + + double o6ML = a6ML[c6ML-((c6ML > d6M)?d6M+1:0)]; + double o6NL = a6NL[c6NL-((c6NL > d6N)?d6N+1:0)]; + double o6OL = a6OL[c6OL-((c6OL > d6O)?d6O+1:0)]; + double o6PL = a6PL[c6PL-((c6PL > d6P)?d6P+1:0)]; + double o6QL = a6QL[c6QL-((c6QL > d6Q)?d6Q+1:0)]; + double o6RL = a6RL[c6RL-((c6RL > d6R)?d6R+1:0)]; + + a6DR[c6DR] = ((o6ER*2.0) - (o6KR + o6QR + o6WR + o6ZDR + o6ZJR)); + a6JR[c6JR] = ((o6KR*2.0) - (o6ER + o6QR + o6WR + o6ZDR + o6ZJR)); + a6PR[c6PR] = ((o6QR*2.0) - (o6ER + o6KR + o6WR + o6ZDR + o6ZJR)); + a6VR[c6VR] = ((o6WR*2.0) - (o6ER + o6KR + o6QR + o6ZDR + o6ZJR)); + a6ZCR[c6ZCR] = ((o6ZDR*2.0) - (o6ER + o6KR + o6QR + o6WR + o6ZJR)); + a6ZIR[c6ZIR] = ((o6ZJR*2.0) - (o6ER + o6KR + o6QR + o6WR + o6ZDR)); + + c6DR++; if (c6DR < 0 || c6DR > d6D) c6DR = 0; + c6JR++; if (c6JR < 0 || c6JR > d6J) c6JR = 0; + c6PR++; if (c6PR < 0 || c6PR > d6P) c6PR = 0; + c6VR++; if (c6VR < 0 || c6VR > d6V) c6VR = 0; + c6ZCR++; if (c6ZCR < 0 || c6ZCR > d6ZC) c6ZCR = 0; + c6ZIR++; if (c6ZIR < 0 || c6ZIR > d6ZI) c6ZIR = 0; + + double o6DR = a6DR[c6DR-((c6DR > d6D)?d6D+1:0)]; + double o6JR = a6JR[c6JR-((c6JR > d6J)?d6J+1:0)]; + double o6PR = a6PR[c6PR-((c6PR > d6P)?d6P+1:0)]; + double o6VR = a6VR[c6VR-((c6VR > d6V)?d6V+1:0)]; + double o6ZCR = a6ZCR[c6ZCR-((c6ZCR > d6ZC)?d6ZC+1:0)]; + double o6ZIR = a6ZIR[c6ZIR-((c6ZIR > d6ZI)?d6ZI+1:0)]; + + //-------- three + + a6SL[c6SL] = ((o6ML*2.0) - (o6NL + o6OL + o6PL + o6QL + o6RL)); + a6TL[c6TL] = ((o6NL*2.0) - (o6ML + o6OL + o6PL + o6QL + o6RL)); + a6UL[c6UL] = ((o6OL*2.0) - (o6ML + o6NL + o6PL + o6QL + o6RL)); + a6VL[c6VL] = ((o6PL*2.0) - (o6ML + o6NL + o6OL + o6QL + o6RL)); + a6WL[c6WL] = ((o6QL*2.0) - (o6ML + o6NL + o6OL + o6PL + o6RL)); + a6XL[c6XL] = ((o6RL*2.0) - (o6ML + o6NL + o6OL + o6PL + o6QL)); + + c6SL++; if (c6SL < 0 || c6SL > d6S) c6SL = 0; + c6TL++; if (c6TL < 0 || c6TL > d6T) c6TL = 0; + c6UL++; if (c6UL < 0 || c6UL > d6U) c6UL = 0; + c6VL++; if (c6VL < 0 || c6VL > d6V) c6VL = 0; + c6WL++; if (c6WL < 0 || c6WL > d6W) c6WL = 0; + c6XL++; if (c6XL < 0 || c6XL > d6X) c6XL = 0; + + double o6SL = a6SL[c6SL-((c6SL > d6S)?d6S+1:0)]; + double o6TL = a6TL[c6TL-((c6TL > d6T)?d6T+1:0)]; + double o6UL = a6UL[c6UL-((c6UL > d6U)?d6U+1:0)]; + double o6VL = a6VL[c6VL-((c6VL > d6V)?d6V+1:0)]; + double o6WL = a6WL[c6WL-((c6WL > d6W)?d6W+1:0)]; + double o6XL = a6XL[c6XL-((c6XL > d6X)?d6X+1:0)]; + + a6CR[c6CR] = ((o6DR*2.0) - (o6JR + o6PR + o6VR + o6ZCR + o6ZIR)); + a6IR[c6IR] = ((o6JR*2.0) - (o6DR + o6PR + o6VR + o6ZCR + o6ZIR)); + a6OR[c6OR] = ((o6PR*2.0) - (o6DR + o6JR + o6VR + o6ZCR + o6ZIR)); + a6UR[c6UR] = ((o6VR*2.0) - (o6DR + o6JR + o6PR + o6ZCR + o6ZIR)); + a6ZBR[c6ZBR] = ((o6ZCR*2.0) - (o6DR + o6JR + o6PR + o6VR + o6ZIR)); + a6ZHR[c6ZHR] = ((o6ZIR*2.0) - (o6DR + o6JR + o6PR + o6VR + o6ZCR)); + + c6CR++; if (c6CR < 0 || c6CR > d6C) c6CR = 0; + c6IR++; if (c6IR < 0 || c6IR > d6I) c6IR = 0; + c6OR++; if (c6OR < 0 || c6OR > d6O) c6OR = 0; + c6UR++; if (c6UR < 0 || c6UR > d6U) c6UR = 0; + c6ZBR++; if (c6ZBR < 0 || c6ZBR > d6ZB) c6ZBR = 0; + c6ZHR++; if (c6ZHR < 0 || c6ZHR > d6ZH) c6ZHR = 0; + + double o6CR = a6CR[c6CR-((c6CR > d6C)?d6C+1:0)]; + double o6IR = a6IR[c6IR-((c6IR > d6I)?d6I+1:0)]; + double o6OR = a6OR[c6OR-((c6OR > d6O)?d6O+1:0)]; + double o6UR = a6UR[c6UR-((c6UR > d6U)?d6U+1:0)]; + double o6ZBR = a6ZBR[c6ZBR-((c6ZBR > d6ZB)?d6ZB+1:0)]; + double o6ZHR = a6ZHR[c6ZHR-((c6ZHR > d6ZH)?d6ZH+1:0)]; + + //-------- four + + a6YL[c6YL] = ((o6SL*2.0) - (o6TL + o6UL + o6VL + o6WL + o6XL)); + a6ZAL[c6ZAL] = ((o6TL*2.0) - (o6SL + o6UL + o6VL + o6WL + o6XL)); + a6ZBL[c6ZBL] = ((o6UL*2.0) - (o6SL + o6TL + o6VL + o6WL + o6XL)); + a6ZCL[c6ZCL] = ((o6VL*2.0) - (o6SL + o6TL + o6UL + o6WL + o6XL)); + a6ZDL[c6ZDL] = ((o6WL*2.0) - (o6SL + o6TL + o6UL + o6VL + o6XL)); + a6ZEL[c6ZEL] = ((o6XL*2.0) - (o6SL + o6TL + o6UL + o6VL + o6WL)); + + c6YL++; if (c6YL < 0 || c6YL > d6Y) c6YL = 0; + c6ZAL++; if (c6ZAL < 0 || c6ZAL > d6ZA) c6ZAL = 0; + c6ZBL++; if (c6ZBL < 0 || c6ZBL > d6ZB) c6ZBL = 0; + c6ZCL++; if (c6ZCL < 0 || c6ZCL > d6ZC) c6ZCL = 0; + c6ZDL++; if (c6ZDL < 0 || c6ZDL > d6ZD) c6ZDL = 0; + c6ZEL++; if (c6ZEL < 0 || c6ZEL > d6ZE) c6ZEL = 0; + + double o6YL = a6YL[c6YL-((c6YL > d6Y)?d6Y+1:0)]; + double o6ZAL = a6ZAL[c6ZAL-((c6ZAL > d6ZA)?d6ZA+1:0)]; + double o6ZBL = a6ZBL[c6ZBL-((c6ZBL > d6ZB)?d6ZB+1:0)]; + double o6ZCL = a6ZCL[c6ZCL-((c6ZCL > d6ZC)?d6ZC+1:0)]; + double o6ZDL = a6ZDL[c6ZDL-((c6ZDL > d6ZD)?d6ZD+1:0)]; + double o6ZEL = a6ZEL[c6ZEL-((c6ZEL > d6ZE)?d6ZE+1:0)]; + + a6BR[c6BR] = ((o6CR*2.0) - (o6IR + o6OR + o6UR + o6ZBR + o6ZHR)); + a6HR[c6HR] = ((o6IR*2.0) - (o6CR + o6OR + o6UR + o6ZBR + o6ZHR)); + a6NR[c6NR] = ((o6OR*2.0) - (o6CR + o6IR + o6UR + o6ZBR + o6ZHR)); + a6TR[c6TR] = ((o6UR*2.0) - (o6CR + o6IR + o6OR + o6ZBR + o6ZHR)); + a6ZAR[c6ZAR] = ((o6ZBR*2.0) - (o6CR + o6IR + o6OR + o6UR + o6ZHR)); + a6ZGR[c6ZGR] = ((o6ZHR*2.0) - (o6CR + o6IR + o6OR + o6UR + o6ZBR)); + + c6BR++; if (c6BR < 0 || c6BR > d6B) c6BR = 0; + c6HR++; if (c6HR < 0 || c6HR > d6H) c6HR = 0; + c6NR++; if (c6NR < 0 || c6NR > d6N) c6NR = 0; + c6TR++; if (c6TR < 0 || c6TR > d6T) c6TR = 0; + c6ZBR++; if (c6ZBR < 0 || c6ZBR > d6ZB) c6ZBR = 0; + c6ZGR++; if (c6ZGR < 0 || c6ZGR > d6ZG) c6ZGR = 0; + + double o6BR = a6BR[c6BR-((c6BR > d6B)?d6B+1:0)]; + double o6HR = a6HR[c6HR-((c6HR > d6H)?d6H+1:0)]; + double o6NR = a6NR[c6NR-((c6NR > d6N)?d6N+1:0)]; + double o6TR = a6TR[c6TR-((c6TR > d6T)?d6T+1:0)]; + double o6ZAR = a6ZAR[c6ZAR-((c6ZAR > d6ZA)?d6ZA+1:0)]; + double o6ZGR = a6ZGR[c6ZGR-((c6ZGR > d6ZG)?d6ZG+1:0)]; + + //-------- five + + a6ZFL[c6ZFL] = ((o6YL*2.0) - (o6ZAL + o6ZBL + o6ZCL + o6ZDL + o6ZEL)); + a6ZGL[c6ZGL] = ((o6ZAL*2.0) - (o6YL + o6ZBL + o6ZCL + o6ZDL + o6ZEL)); + a6ZHL[c6ZHL] = ((o6ZBL*2.0) - (o6YL + o6ZAL + o6ZCL + o6ZDL + o6ZEL)); + a6ZIL[c6ZIL] = ((o6ZCL*2.0) - (o6YL + o6ZAL + o6ZBL + o6ZDL + o6ZEL)); + a6ZJL[c6ZJL] = ((o6ZDL*2.0) - (o6YL + o6ZAL + o6ZBL + o6ZCL + o6ZEL)); + a6ZKL[c6ZKL] = ((o6ZEL*2.0) - (o6YL + o6ZAL + o6ZBL + o6ZCL + o6ZDL)); + + c6ZFL++; if (c6ZFL < 0 || c6ZFL > d6ZF) c6ZFL = 0; + c6ZGL++; if (c6ZGL < 0 || c6ZGL > d6ZG) c6ZGL = 0; + c6ZHL++; if (c6ZHL < 0 || c6ZHL > d6ZH) c6ZHL = 0; + c6ZIL++; if (c6ZIL < 0 || c6ZIL > d6ZI) c6ZIL = 0; + c6ZJL++; if (c6ZJL < 0 || c6ZJL > d6ZJ) c6ZJL = 0; + c6ZKL++; if (c6ZKL < 0 || c6ZKL > d6ZK) c6ZKL = 0; + + double o6ZFL = a6ZFL[c6ZFL-((c6ZFL > d6ZF)?d6ZF+1:0)]; + double o6ZGL = a6ZGL[c6ZGL-((c6ZGL > d6ZG)?d6ZG+1:0)]; + double o6ZHL = a6ZHL[c6ZHL-((c6ZHL > d6ZH)?d6ZH+1:0)]; + double o6ZIL = a6ZIL[c6ZIL-((c6ZIL > d6ZI)?d6ZI+1:0)]; + double o6ZJL = a6ZJL[c6ZJL-((c6ZJL > d6ZJ)?d6ZJ+1:0)]; + double o6ZKL = a6ZKL[c6ZKL-((c6ZKL > d6ZK)?d6ZK+1:0)]; + + a6AR[c6AR] = ((o6BR*2.0) - (o6HR + o6NR + o6TR + o6ZAR + o6ZGR)); + a6GR[c6GR] = ((o6HR*2.0) - (o6BR + o6NR + o6TR + o6ZAR + o6ZGR)); + a6MR[c6MR] = ((o6NR*2.0) - (o6BR + o6HR + o6TR + o6ZAR + o6ZGR)); + a6SR[c6SR] = ((o6TR*2.0) - (o6BR + o6HR + o6NR + o6ZAR + o6ZGR)); + a6YR[c6YR] = ((o6ZAR*2.0) - (o6BR + o6HR + o6NR + o6TR + o6ZGR)); + a6ZFR[c6ZFR] = ((o6ZGR*2.0) - (o6BR + o6HR + o6NR + o6TR + o6ZAR)); + + c6AR++; if (c6AR < 0 || c6AR > d6A) c6AR = 0; + c6GR++; if (c6GR < 0 || c6GR > d6G) c6GR = 0; + c6MR++; if (c6MR < 0 || c6MR > d6M) c6MR = 0; + c6SR++; if (c6SR < 0 || c6SR > d6S) c6SR = 0; + c6YR++; if (c6YR < 0 || c6YR > d6Y) c6YR = 0; + c6ZFR++; if (c6ZFR < 0 || c6ZFR > d6ZF) c6ZFR = 0; + + double o6AR = a6AR[c6AR-((c6AR > d6A)?d6A+1:0)]; + double o6GR = a6GR[c6GR-((c6GR > d6G)?d6G+1:0)]; + double o6MR = a6MR[c6MR-((c6MR > d6M)?d6M+1:0)]; + double o6SR = a6SR[c6SR-((c6SR > d6S)?d6S+1:0)]; + double o6YR = a6YR[c6YR-((c6YR > d6Y)?d6Y+1:0)]; + double o6ZFR = a6ZFR[c6ZFR-((c6ZFR > d6ZF)?d6ZF+1:0)]; + + //-------- six + + f6AL = ((o6AR*2.0) - (o6GR + o6MR + o6SR + o6YR + o6ZFR)); + f6BL = ((o6GR*2.0) - (o6AR + o6MR + o6SR + o6YR + o6ZFR)); + f6CL = ((o6MR*2.0) - (o6AR + o6GR + o6SR + o6YR + o6ZFR)); + f6DL = ((o6SR*2.0) - (o6AR + o6GR + o6MR + o6YR + o6ZFR)); + f6EL = ((o6YR*2.0) - (o6AR + o6GR + o6MR + o6SR + o6ZFR)); + f6FL = ((o6ZFR*2.0) - (o6AR + o6GR + o6MR + o6SR + o6YR)); + + f6FR = ((o6ZFL*2.0) - (o6ZGL + o6ZHL + o6ZIL + o6ZJL + o6ZKL)); + f6LR = ((o6ZGL*2.0) - (o6ZFL + o6ZHL + o6ZIL + o6ZJL + o6ZKL)); + f6RR = ((o6ZHL*2.0) - (o6ZFL + o6ZGL + o6ZIL + o6ZJL + o6ZKL)); + f6XR = ((o6ZIL*2.0) - (o6ZFL + o6ZGL + o6ZHL + o6ZJL + o6ZKL)); + f6ZER = ((o6ZJL*2.0) - (o6ZFL + o6ZGL + o6ZHL + o6ZIL + o6ZKL)); + f6ZKR = ((o6ZKL*2.0) - (o6ZFL + o6ZGL + o6ZHL + o6ZIL + o6ZJL)); + + inputSampleL = (o6ZFL + o6ZGL + o6ZHL + o6ZIL + o6ZJL + o6ZKL)*0.001953125; + inputSampleR = (o6AR + o6GR + o6MR + o6SR + o6YR + o6ZFR)*0.001953125; + + f6AL = (f6AL+avg6L)*0.5; avg6L = f6AL; + f6FR = (f6FR+avg6R)*0.5; avg6R = f6FR; + //manipulating deep reverb tail for realism + + inputSampleL += (earlyReflectionL * earlyLoudness); + inputSampleR += (earlyReflectionR * earlyLoudness); + + bez[bez_CL] = bez[bez_BL]; + bez[bez_BL] = bez[bez_AL]; + bez[bez_AL] = inputSampleL; + bez[bez_SampL] = 0.0; + + bez[bez_CR] = bez[bez_BR]; + bez[bez_BR] = bez[bez_AR]; + bez[bez_AR] = inputSampleR; + bez[bez_SampR] = 0.0; + } + double X = bez[bez_cycle]*bezTrim; + double CBL = (bez[bez_CL]*(1.0-X))+(bez[bez_BL]*X); + double CBR = (bez[bez_CR]*(1.0-X))+(bez[bez_BR]*X); + double BAL = (bez[bez_BL]*(1.0-X))+(bez[bez_AL]*X); + double BAR = (bez[bez_BR]*(1.0-X))+(bez[bez_AR]*X); + double CBAL = (bez[bez_BL]+(CBL*(1.0-X))+(BAL*X))*-0.0625; + double CBAR = (bez[bez_BR]+(CBR*(1.0-X))+(BAR*X))*-0.0625; + inputSampleL = CBAL+bez[bez_AvgOutSampL]; bez[bez_AvgOutSampL] = CBAL; + inputSampleR = CBAR+bez[bez_AvgOutSampR]; bez[bez_AvgOutSampR] = CBAR; + + inputSampleL = (inputSampleL * wet)+(drySampleL * (1.0-wet)); + inputSampleR = (inputSampleR * wet)+(drySampleR * (1.0-wet)); + + //begin 64 bit stereo floating point dither + //int expon; frexp((double)inputSampleL, &expon); + fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5; + //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); + //frexp((double)inputSampleR, &expon); + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5; + //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); + //end 64 bit stereo floating point dither + + *out1 = inputSampleL; + *out2 = inputSampleR; + + in1++; + in2++; + out1++; + out2++; + } +} diff --git a/plugins/MacAU/ConsoleX2Buss/ConsoleX2Buss.cpp b/plugins/MacAU/ConsoleX2Buss/ConsoleX2Buss.cpp index e78cd698e..461571bde 100755 --- a/plugins/MacAU/ConsoleX2Buss/ConsoleX2Buss.cpp +++ b/plugins/MacAU/ConsoleX2Buss/ConsoleX2Buss.cpp @@ -70,12 +70,6 @@ ConsoleX2Buss::ConsoleX2Buss(AudioUnit component) SetParameter(kParam_I, kDefaultValue_ParamI ); SetParameter(kParam_J, kDefaultValue_ParamJ ); SetParameter(kParam_K, kDefaultValue_ParamK ); - SetParameter(kParam_L, kDefaultValue_ParamL ); - SetParameter(kParam_M, kDefaultValue_ParamM ); - SetParameter(kParam_N, kDefaultValue_ParamN ); - SetParameter(kParam_O, kDefaultValue_ParamO ); - SetParameter(kParam_P, kDefaultValue_ParamP ); - SetParameter(kParam_Q, kDefaultValue_ParamQ ); #if AU_DEBUG_DISPATCHER mDebugDispatcher = new AUDebugDispatcher (this); @@ -192,50 +186,6 @@ ComponentResult ConsoleX2Buss::GetParameterInfo(AudioUnitScope inScope, outParameterInfo.maxValue = 1.0; outParameterInfo.defaultValue = kDefaultValue_ParamK; break; - case kParam_L: - AUBase::FillInParameterName (outParameterInfo, kParameterLName, false); - outParameterInfo.unit = kAudioUnitParameterUnit_Generic; - outParameterInfo.minValue = 0.0; - outParameterInfo.maxValue = 1.0; - outParameterInfo.defaultValue = kDefaultValue_ParamL; - break; - case kParam_M: - AUBase::FillInParameterName (outParameterInfo, kParameterMName, false); - outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit; - outParameterInfo.unitName = kParameterMUnit; - outParameterInfo.minValue = 0.0; - outParameterInfo.maxValue = 1.0; - outParameterInfo.defaultValue = kDefaultValue_ParamM; - break; - case kParam_N: - AUBase::FillInParameterName (outParameterInfo, kParameterNName, false); - outParameterInfo.unit = kAudioUnitParameterUnit_Generic; - outParameterInfo.minValue = 0.0; - outParameterInfo.maxValue = 1.0; - outParameterInfo.defaultValue = kDefaultValue_ParamN; - break; - case kParam_O: - AUBase::FillInParameterName (outParameterInfo, kParameterOName, false); - outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit; - outParameterInfo.unitName = kParameterOUnit; - outParameterInfo.minValue = 0.0; - outParameterInfo.maxValue = 1.0; - outParameterInfo.defaultValue = kDefaultValue_ParamO; - break; - case kParam_P: - AUBase::FillInParameterName (outParameterInfo, kParameterPName, false); - outParameterInfo.unit = kAudioUnitParameterUnit_Generic; - outParameterInfo.minValue = 0.0; - outParameterInfo.maxValue = 1.0; - outParameterInfo.defaultValue = kDefaultValue_ParamP; - break; - case kParam_Q: - AUBase::FillInParameterName (outParameterInfo, kParameterQName, false); - outParameterInfo.unit = kAudioUnitParameterUnit_Generic; - outParameterInfo.minValue = 0.0; - outParameterInfo.maxValue = 1.0; - outParameterInfo.defaultValue = kDefaultValue_ParamQ; - break; default: result = kAudioUnitErr_InvalidParameter; break; @@ -327,40 +277,22 @@ ComponentResult ConsoleX2Buss::Reset(AudioUnitScope inScope, AudioUnitElement i 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; + bezCompS[bez_cycle] = 1.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 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 - 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 - - 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; return noErr; @@ -382,6 +314,8 @@ OSStatus ConsoleX2Buss::ProcessBufferLists(AudioUnitRenderActionFlags & ioActio 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_A )-0.5)*2.0; trebleGain = 1.0+(trebleGain*fabs(trebleGain)*fabs(trebleGain)); @@ -408,8 +342,8 @@ OSStatus ConsoleX2Buss::ProcessBufferLists(AudioUnitRenderActionFlags & ioActio highC[biq_freq] = highB[biq_freq] = highA[biq_freq] = fmax(fmin(highA[biq_freq],0.4999),0.00025); double highFreq = pow(highF,3)*20000.0; double omega = 2.0*M_PI*(highFreq/GetSampleRate()); - double K = 2.0-cos(omega); - double highCoef = -sqrt((K*K)-1.0)+K; + double biqK = 2.0-cos(omega); + double highCoef = -sqrt((biqK*biqK)-1.0)+biqK; highA[biq_reso] = 2.24697960 * highQ; highB[biq_reso] = 0.80193774 * highQ; highC[biq_reso] = 0.55495813 * highQ; @@ -418,8 +352,8 @@ OSStatus ConsoleX2Buss::ProcessBufferLists(AudioUnitRenderActionFlags & ioActio midC[biq_freq] = midB[biq_freq] = midA[biq_freq] = fmax(fmin(midA[biq_freq],0.4999),0.00025); double midFreq = pow(midF,3)*20000.0; omega = 2.0*M_PI*(midFreq/GetSampleRate()); - K = 2.0-cos(omega); - double midCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double midCoef = -sqrt((biqK*biqK)-1.0)+biqK; midA[biq_reso] = 2.24697960 * midQ; midB[biq_reso] = 0.80193774 * midQ; midC[biq_reso] = 0.55495813 * midQ; @@ -428,99 +362,90 @@ OSStatus ConsoleX2Buss::ProcessBufferLists(AudioUnitRenderActionFlags & ioActio lowC[biq_freq] = lowB[biq_freq] = lowA[biq_freq] = fmax(fmin(lowA[biq_freq],0.4999),0.00025); double lowFreq = pow(bassF,3)*20000.0; omega = 2.0*M_PI*(lowFreq/GetSampleRate()); - K = 2.0-cos(omega); - double lowCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double lowCoef = -sqrt((biqK*biqK)-1.0)+biqK; lowA[biq_reso] = 2.24697960 * lowQ; lowB[biq_reso] = 0.80193774 * lowQ; lowC[biq_reso] = 0.55495813 * lowQ; - K = tan(M_PI * highA[biq_freq]); - double norm = 1.0 / (1.0 + K / highA[biq_reso] + K * K); - highA[biq_a0] = K * K * norm; + biqK = tan(M_PI * highA[biq_freq]); + double norm = 1.0 / (1.0 + biqK / highA[biq_reso] + biqK * biqK); + highA[biq_a0] = biqK * biqK * norm; highA[biq_a1] = 2.0 * highA[biq_a0]; highA[biq_a2] = highA[biq_a0]; - highA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highA[biq_b2] = (1.0 - K / highA[biq_reso] + K * K) * norm; - K = tan(M_PI * highB[biq_freq]); - norm = 1.0 / (1.0 + K / highB[biq_reso] + K * K); - highB[biq_a0] = K * K * norm; + highA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highA[biq_b2] = (1.0 - biqK / highA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highB[biq_freq]); + norm = 1.0 / (1.0 + biqK / highB[biq_reso] + biqK * biqK); + highB[biq_a0] = biqK * biqK * norm; highB[biq_a1] = 2.0 * highB[biq_a0]; highB[biq_a2] = highB[biq_a0]; - highB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highB[biq_b2] = (1.0 - K / highB[biq_reso] + K * K) * norm; - K = tan(M_PI * highC[biq_freq]); - norm = 1.0 / (1.0 + K / highC[biq_reso] + K * K); - highC[biq_a0] = K * K * norm; + highB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highB[biq_b2] = (1.0 - biqK / highB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highC[biq_freq]); + norm = 1.0 / (1.0 + biqK / highC[biq_reso] + biqK * biqK); + highC[biq_a0] = biqK * biqK * norm; highC[biq_a1] = 2.0 * highC[biq_a0]; highC[biq_a2] = highC[biq_a0]; - highC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highC[biq_b2] = (1.0 - K / highC[biq_reso] + K * K) * norm; + highC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highC[biq_b2] = (1.0 - biqK / highC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * midA[biq_freq]); - norm = 1.0 / (1.0 + K / midA[biq_reso] + K * K); - midA[biq_a0] = K * K * norm; + biqK = tan(M_PI * midA[biq_freq]); + norm = 1.0 / (1.0 + biqK / midA[biq_reso] + biqK * biqK); + midA[biq_a0] = biqK * biqK * norm; midA[biq_a1] = 2.0 * midA[biq_a0]; midA[biq_a2] = midA[biq_a0]; - midA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midA[biq_b2] = (1.0 - K / midA[biq_reso] + K * K) * norm; - K = tan(M_PI * midB[biq_freq]); - norm = 1.0 / (1.0 + K / midB[biq_reso] + K * K); - midB[biq_a0] = K * K * norm; + midA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midA[biq_b2] = (1.0 - biqK / midA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midB[biq_freq]); + norm = 1.0 / (1.0 + biqK / midB[biq_reso] + biqK * biqK); + midB[biq_a0] = biqK * biqK * norm; midB[biq_a1] = 2.0 * midB[biq_a0]; midB[biq_a2] = midB[biq_a0]; - midB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midB[biq_b2] = (1.0 - K / midB[biq_reso] + K * K) * norm; - K = tan(M_PI * midC[biq_freq]); - norm = 1.0 / (1.0 + K / midC[biq_reso] + K * K); - midC[biq_a0] = K * K * norm; + midB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midB[biq_b2] = (1.0 - biqK / midB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midC[biq_freq]); + norm = 1.0 / (1.0 + biqK / midC[biq_reso] + biqK * biqK); + midC[biq_a0] = biqK * biqK * norm; midC[biq_a1] = 2.0 * midC[biq_a0]; midC[biq_a2] = midC[biq_a0]; - midC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midC[biq_b2] = (1.0 - K / midC[biq_reso] + K * K) * norm; + midC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midC[biq_b2] = (1.0 - biqK / midC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * lowA[biq_freq]); - norm = 1.0 / (1.0 + K / lowA[biq_reso] + K * K); - lowA[biq_a0] = K * K * norm; + biqK = tan(M_PI * lowA[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowA[biq_reso] + biqK * biqK); + lowA[biq_a0] = biqK * biqK * norm; lowA[biq_a1] = 2.0 * lowA[biq_a0]; lowA[biq_a2] = lowA[biq_a0]; - lowA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowA[biq_b2] = (1.0 - K / lowA[biq_reso] + K * K) * norm; - K = tan(M_PI * lowB[biq_freq]); - norm = 1.0 / (1.0 + K / lowB[biq_reso] + K * K); - lowB[biq_a0] = K * K * norm; + lowA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowA[biq_b2] = (1.0 - biqK / lowA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowB[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowB[biq_reso] + biqK * biqK); + lowB[biq_a0] = biqK * biqK * norm; lowB[biq_a1] = 2.0 * lowB[biq_a0]; lowB[biq_a2] = lowB[biq_a0]; - lowB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowB[biq_b2] = (1.0 - K / lowB[biq_reso] + K * K) * norm; - K = tan(M_PI * lowC[biq_freq]); - norm = 1.0 / (1.0 + K / lowC[biq_reso] + K * K); - lowC[biq_a0] = K * K * norm; + lowB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowB[biq_b2] = (1.0 - biqK / lowB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowC[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowC[biq_reso] + biqK * biqK); + lowC[biq_a0] = biqK * biqK * norm; lowC[biq_a1] = 2.0 * lowC[biq_a0]; lowC[biq_a2] = lowC[biq_a0]; - lowC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowC[biq_b2] = (1.0 - K / lowC[biq_reso] + K * K) * norm; + lowC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowC[biq_b2] = (1.0 - biqK / lowC[biq_reso] + biqK * biqK) * norm; //SmoothEQ2 double bezCThresh = pow(1.0-GetParameter( kParam_I ), 6.0) * 8.0; - double bezRez = pow(1.0-GetParameter( kParam_J ), 8.0) / overallscale; - double sloRez = pow(1.0-GetParameter( kParam_K ),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_L ),4.0),sqrt(bezCThresh+1.0)); + double bezRez = pow(1.0-GetParameter( kParam_I ), 12.360679774997898) / overallscale; + double sloRez = pow(1.0-GetParameter( kParam_I ),10.0) / overallscale; + sloRez = fmin(fmax(sloRez,0.00001),1.0); + bezRez = fmin(fmax(bezRez,0.00001),1.0); //Dynamics2 - - lFreqA = lFreqB; lFreqB = pow(fmax(GetParameter( kParam_M ),0.002),overallscale); //the lowpass - hFreqA = hFreqB; hFreqB = pow(GetParameter( kParam_N ),overallscale+2.0); //the highpass - //Cabs2 - - double moreDiscontinuity = fmax(pow(GetParameter( kParam_O )*0.42,3.0)*overallscale,0.00001); - double moreTapeHack = (GetParameter( kParam_O )*1.4152481)+1.2; - //Discontapeity - - panA = panB; panB = GetParameter( kParam_P )*1.57079633; - inTrimA = inTrimB; inTrimB = GetParameter( kParam_Q )*2.0; + + panA = panB; panB = GetParameter( kParam_J )*1.57079633; + inTrimA = inTrimB; inTrimB = GetParameter( kParam_K )*2.0; //Console - + while (nSampleFrames-- > 0) { double inputSampleL = *inputL; double inputSampleR = *inputR; @@ -672,10 +597,7 @@ OSStatus ConsoleX2Buss::ProcessBufferLists(AudioUnitRenderActionFlags & ioActio inputSampleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain); //fourth stage of three crossovers is the exponential filters //SmoothEQ2 - - if (fmax(fabs(inputSampleL),fabs(inputSampleR)) > gate+(sloRez*bezGate)) bezGate = ((bezGate*overallscale*3.0)+3.0)*(0.25/overallscale); - else bezGate = fmax(0.0, bezGate-(sloRez*sloRez)); - + if (bezCThresh > 0.0) { inputSampleL *= ((bezCThresh*0.5)+1.0); inputSampleR *= ((bezCThresh*0.5)+1.0); @@ -688,21 +610,14 @@ OSStatus ConsoleX2Buss::ProcessBufferLists(AudioUnitRenderActionFlags & ioActio if (bezCompF[bez_cycle] > 1.0) { bezCompF[bez_cycle] -= 1.0; - - if (bezMaxF < gate) bezCompF[bez_SampL] = bezMaxF/gate; //note: SampL is a control voltage, - if (bezCompF[bez_SampL] 1.0) { bezCompS[bez_cycle] -= 1.0; - - if (bezCompS[bez_SampL] 0.0) CBAMax = 1.0/CBAMax; CBAFade = ((CBASR*-CBAMax)+(CBAFR*CBAMax)+1.0)*0.5; if (bezCThresh > 0.0) inputSampleR *= 1.0-(fmin(((CBASR*(1.0-CBAFade))+(CBAFR*CBAFade))*bezCThresh,1.0)); - - if (bezGate < 1.0 && gate > 0.0) {inputSampleL *= bezGate; inputSampleR *= bezGate;} //Dynamics2 const double temp = (double)nSampleFrames/inFramesToProcess; - const double hFreq = (hFreqA*temp)+(hFreqB*(1.0-temp)); - if (hFreq > 0.0) { - double lowSampleL = inputSampleL; - double lowSampleR = inputSampleR; - for(int count = 0; count < 21; count++) { - iirHAngleL[count] = (iirHAngleL[count]*(1.0-hFreq))+((lowSampleL-iirHPositionL[count])*hFreq); - lowSampleL = ((iirHPositionL[count]+(iirHAngleL[count]*hFreq))*(1.0-hFreq))+(lowSampleL*hFreq); - iirHPositionL[count] = ((iirHPositionL[count]+(iirHAngleL[count]*hFreq))*(1.0-hFreq))+(lowSampleL*hFreq); - inputSampleL -= (lowSampleL * (1.0/21.0));//left - iirHAngleR[count] = (iirHAngleR[count]*(1.0-hFreq))+((lowSampleR-iirHPositionR[count])*hFreq); - lowSampleR = ((iirHPositionR[count]+(iirHAngleR[count]*hFreq))*(1.0-hFreq))+(lowSampleR*hFreq); - iirHPositionR[count] = ((iirHPositionR[count]+(iirHAngleR[count]*hFreq))*(1.0-hFreq))+(lowSampleR*hFreq); - inputSampleR -= (lowSampleR * (1.0/21.0));//right - } //the highpass - hBypass = false; - } else { - if (!hBypass) { - hBypass = true; - for(int count = 0; count < 22; count++) { - iirHPositionL[count] = 0.0; - iirHAngleL[count] = 0.0; - iirHPositionR[count] = 0.0; - iirHAngleR[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++) { - iirLAngleL[count] = (iirLAngleL[count]*(1.0-lFreq))+((inputSampleL-iirLPositionL[count])*lFreq); - inputSampleL = ((iirLPositionL[count]+(iirLAngleL[count]*lFreq))*(1.0-lFreq))+(inputSampleL*lFreq); - iirLPositionL[count] = ((iirLPositionL[count]+(iirLAngleL[count]*lFreq))*(1.0-lFreq))+(inputSampleL*lFreq);//left - iirLAngleR[count] = (iirLAngleR[count]*(1.0-lFreq))+((inputSampleR-iirLPositionR[count])*lFreq); - inputSampleR = ((iirLPositionR[count]+(iirLAngleR[count]*lFreq))*(1.0-lFreq))+(inputSampleR*lFreq); - iirLPositionR[count] = ((iirLPositionR[count]+(iirLAngleR[count]*lFreq))*(1.0-lFreq))+(inputSampleR*lFreq);//right - } //the lowpass - lBypass = false; - } else { - if (!lBypass) { - lBypass = true; - for(int count = 0; count < 14; count++) { - iirLPositionL[count] = 0.0; - iirLAngleL[count] = 0.0; - iirLPositionR[count] = 0.0; - iirLAngleR[count] = 0.0; - } - } //blank out lowpass if just switched off - } - //Cabs2 + 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 - //begin Discontinuity section - inputSampleL *= moreDiscontinuity; - dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5); - dBaPosL = fmin(dBaPosL,1.0); - int dBdly = floor(dBaPosL*dscBuf); - double dBi = (dBaPosL*dscBuf)-dBdly; - inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi; - dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0; - inputSampleL /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleL = fmax(fmin(inputSampleL*moreTapeHack,2.305929007734908),-2.305929007734908); + 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); @@ -822,21 +720,11 @@ OSStatus ConsoleX2Buss::ProcessBufferLists(AudioUnitRenderActionFlags & ioActio empower *= addtwo; //eleventh inputSampleL -= (empower / 9979200.0f); //this is a degenerate form of a Taylor Series to approximate sin() - inputSampleL *= 0.9239; + inputSampleL *= 0.92; //end TapeHack section - //begin Discontinuity section - inputSampleR *= moreDiscontinuity; - dBaR[dBaXR] = inputSampleR; dBaPosR *= 0.5; dBaPosR += fabs((inputSampleR*((inputSampleR*0.25)-0.5))*0.5); - dBaPosR = fmin(dBaPosR,1.0); - dBdly = floor(dBaPosR*dscBuf); - dBi = (dBaPosR*dscBuf)-dBdly; - inputSampleR = dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleR += dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*dBi; - dBaXR++; if (dBaXR < 0 || dBaXR >= dscBuf) dBaXR = 0; - inputSampleR /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleR = fmax(fmin(inputSampleR*moreTapeHack,2.305929007734908),-2.305929007734908); + //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); @@ -849,21 +737,9 @@ OSStatus ConsoleX2Buss::ProcessBufferLists(AudioUnitRenderActionFlags & ioActio empower *= addtwo; //eleventh inputSampleR -= (empower / 9979200.0f); //this is a degenerate form of a Taylor Series to approximate sin() - inputSampleR *= 0.9239; + inputSampleR *= 0.92; //end TapeHack section //Discontapeity - - 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 //begin 32 bit stereo floating point dither int expon; frexpf((float)inputSampleL, &expon); diff --git a/plugins/MacAU/ConsoleX2Buss/ConsoleX2Buss.h b/plugins/MacAU/ConsoleX2Buss/ConsoleX2Buss.h index f74eeba47..daa78a49b 100755 --- a/plugins/MacAU/ConsoleX2Buss/ConsoleX2Buss.h +++ b/plugins/MacAU/ConsoleX2Buss/ConsoleX2Buss.h @@ -65,12 +65,6 @@ static const float kDefaultValue_ParamH = 0.5; static const float kDefaultValue_ParamI = 1.0; static const float kDefaultValue_ParamJ = 0.5; static const float kDefaultValue_ParamK = 0.5; -static const float kDefaultValue_ParamL = 0.0; -static const float kDefaultValue_ParamM = 1.0; -static const float kDefaultValue_ParamN = 0.0; -static const float kDefaultValue_ParamO = 0.0; -static const float kDefaultValue_ParamP = 0.5; -static const float kDefaultValue_ParamQ = 0.5; static CFStringRef kParameterAUnit = CFSTR("eq"); static CFStringRef kParameterAName = CFSTR("High"); @@ -84,16 +78,8 @@ static CFStringRef kParameterGName = CFSTR("LMidF"); static CFStringRef kParameterHName = CFSTR("BassF"); static CFStringRef kParameterIUnit = CFSTR("dyn"); static CFStringRef kParameterIName = CFSTR("Thresh"); -static CFStringRef kParameterJName = CFSTR("Attack"); -static CFStringRef kParameterKName = CFSTR("Release"); -static CFStringRef kParameterLName = CFSTR("Gate"); -static CFStringRef kParameterMUnit = CFSTR("fltr"); -static CFStringRef kParameterMName = CFSTR("Lowpass"); -static CFStringRef kParameterNName = CFSTR("Hipass"); -static CFStringRef kParameterOUnit = CFSTR("+"); -static CFStringRef kParameterOName = CFSTR("More"); -static CFStringRef kParameterPName = CFSTR("Pan"); -static CFStringRef kParameterQName = CFSTR("Fader"); +static CFStringRef kParameterJName = CFSTR("Pan"); +static CFStringRef kParameterKName = CFSTR("Fader"); enum { kParam_A =0, @@ -107,18 +93,10 @@ enum { kParam_I =8, kParam_J =9, kParam_K =10, - kParam_L =11, - kParam_M =12, - kParam_N =13, - kParam_O =14, - kParam_P =15, - kParam_Q =16, //Add your parameters here... - kNumberOfParameters=17 + kNumberOfParameters=11 }; -const int dscBuf = 256; - #pragma mark ____ConsoleX2Buss class ConsoleX2Buss : public AUEffectBase { @@ -216,32 +194,24 @@ public: 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; diff --git a/plugins/MacAU/ConsoleX2Buss/ConsoleX2Buss.xcodeproj/christopherjohnson.pbxuser b/plugins/MacAU/ConsoleX2Buss/ConsoleX2Buss.xcodeproj/christopherjohnson.pbxuser index 4c1243b6a..46c9c9a12 100755 --- a/plugins/MacAU/ConsoleX2Buss/ConsoleX2Buss.xcodeproj/christopherjohnson.pbxuser +++ b/plugins/MacAU/ConsoleX2Buss/ConsoleX2Buss.xcodeproj/christopherjohnson.pbxuser @@ -51,20 +51,19 @@ PBXFileDataSource_Warnings_ColumnID, ); }; - PBXPerProjectTemplateStateSaveDate = 781899426; - PBXWorkspaceStateSaveDate = 781899426; + PBXPerProjectTemplateStateSaveDate = 783619597; + PBXWorkspaceStateSaveDate = 783619597; }; perUserProjectItems = { - 8B962AAA2E9AD07A000EAC04 /* PBXTextBookmark */ = 8B962AAA2E9AD07A000EAC04 /* PBXTextBookmark */; - 8B962ADC2E9AD297000EAC04 /* PBXTextBookmark */ = 8B962ADC2E9AD297000EAC04 /* PBXTextBookmark */; - 8B962B2D2E9AD3DA000EAC04 /* PBXTextBookmark */ = 8B962B2D2E9AD3DA000EAC04 /* PBXTextBookmark */; - 8B962BA12E9AD778000EAC04 /* PBXTextBookmark */ = 8B962BA12E9AD778000EAC04 /* PBXTextBookmark */; + 8B5C9E332EB51644008B9860 /* PBXTextBookmark */ = 8B5C9E332EB51644008B9860 /* PBXTextBookmark */; + 8B5C9E342EB51644008B9860 /* PBXTextBookmark */ = 8B5C9E342EB51644008B9860 /* PBXTextBookmark */; + 8B5C9E352EB51644008B9860 /* PBXTextBookmark */ = 8B5C9E352EB51644008B9860 /* PBXTextBookmark */; }; sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */; userBuildSettings = { }; }; - 8B962AAA2E9AD07A000EAC04 /* PBXTextBookmark */ = { + 8B5C9E332EB51644008B9860 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 8BA05A690720730100365D66 /* ConsoleX2BussVersion.h */; name = "ConsoleX2BussVersion.h: 1"; @@ -74,42 +73,32 @@ vrLen = 258; vrLoc = 0; }; - 8B962ADC2E9AD297000EAC04 /* PBXTextBookmark */ = { + 8B5C9E342EB51644008B9860 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 8BA05A660720730100365D66 /* ConsoleX2Buss.cpp */; - name = "ConsoleX2Buss.cpp: 516"; - rLen = 0; - rLoc = 22774; + name = "ConsoleX2Buss.cpp: 317"; + rLen = 20897; + rLoc = 14098; rType = 0; - vrLen = 148; - vrLoc = 22439; + vrLen = 285; + vrLoc = 14098; }; - 8B962B2D2E9AD3DA000EAC04 /* PBXTextBookmark */ = { + 8B5C9E352EB51644008B9860 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 8BC6025B073B072D006C4272 /* ConsoleX2Buss.h */; - name = "ConsoleX2Buss.h: 97"; - rLen = 0; - rLoc = 4804; + fRef = 8BA05A660720730100365D66 /* ConsoleX2Buss.cpp */; + name = "ConsoleX2Buss.cpp: 317"; + rLen = 20897; + rLoc = 14098; rType = 0; - vrLen = 112; - vrLoc = 4700; - }; - 8B962BA12E9AD778000EAC04 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 8BC6025B073B072D006C4272 /* ConsoleX2Buss.h */; - name = "ConsoleX2Buss.h: 97"; - rLen = 0; - rLoc = 4804; - rType = 0; - vrLen = 61; - vrLoc = 4751; + vrLen = 285; + vrLoc = 14098; }; 8BA05A660720730100365D66 /* ConsoleX2Buss.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1308, 15822}}"; - sepNavSelRange = "{39367, 15}"; - sepNavVisRange = "{38789, 1325}"; - sepNavWindowFrame = "{{-6, 75}, {1066, 786}}"; + sepNavIntBoundsRect = "{{0, 0}, {1056, 13716}}"; + sepNavSelRange = "{14098, 20897}"; + sepNavVisRange = "{14098, 285}"; + sepNavWindowFrame = "{{5, 38}, {912, 826}}"; }; }; 8BA05A690720730100365D66 /* ConsoleX2BussVersion.h */ = { @@ -129,10 +118,10 @@ }; 8BC6025B073B072D006C4272 /* ConsoleX2Buss.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {554, 4608}}"; - sepNavSelRange = "{4804, 0}"; - sepNavVisRange = "{4751, 61}"; - sepNavWindowFrame = "{{374, 68}, {1066, 786}}"; + sepNavIntBoundsRect = "{{0, 0}, {1146, 4086}}"; + sepNavSelRange = "{6056, 1375}"; + sepNavVisRange = "{4948, 1224}"; + sepNavWindowFrame = "{{10, 38}, {838, 820}}"; }; }; 8BD3CCB8148830B20062E48C /* Source Control */ = { diff --git a/plugins/MacAU/ConsoleX2Buss/ConsoleX2Buss.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacAU/ConsoleX2Buss/ConsoleX2Buss.xcodeproj/christopherjohnson.perspectivev3 index df1f7f58d..9d073fd2b 100755 --- a/plugins/MacAU/ConsoleX2Buss/ConsoleX2Buss.xcodeproj/christopherjohnson.perspectivev3 +++ b/plugins/MacAU/ConsoleX2Buss/ConsoleX2Buss.xcodeproj/christopherjohnson.perspectivev3 @@ -324,7 +324,7 @@ 185 RubberWindowFrame - 13 282 810 487 0 0 1440 878 + 5 284 810 487 0 0 1440 878 Module PBXSmartGroupTreeModule @@ -340,7 +340,7 @@ PBXProjectModuleGUID 8BD95EC52E957B6B00D77499 PBXProjectModuleLabel - ConsoleX2Buss.h + ConsoleX2Buss.cpp PBXSplitModuleInNavigatorKey Split0 @@ -348,16 +348,15 @@ PBXProjectModuleGUID 8BD95EC62E957B6B00D77499 PBXProjectModuleLabel - ConsoleX2Buss.h + ConsoleX2Buss.cpp _historyCapacity 0 bookmark - 8B962BA12E9AD778000EAC04 + 8B5C9E352EB51644008B9860 history - 8B962AAA2E9AD07A000EAC04 - 8B962ADC2E9AD297000EAC04 - 8B962B2D2E9AD3DA000EAC04 + 8B5C9E332EB51644008B9860 + 8B5C9E342EB51644008B9860 SplitCount @@ -371,18 +370,18 @@ GeometryConfiguration Frame - {{0, 0}, {603, 86}} + {{0, 0}, {603, 132}} RubberWindowFrame - 13 282 810 487 0 0 1440 878 + 5 284 810 487 0 0 1440 878 Module PBXNavigatorGroup Proportion - 86pt + 132pt Proportion - 355pt + 309pt Tabs @@ -396,9 +395,9 @@ GeometryConfiguration Frame - {{10, 27}, {603, 328}} + {{10, 27}, {603, 282}} RubberWindowFrame - 13 282 810 487 0 0 1440 878 + 5 284 810 487 0 0 1440 878 Module XCDetailModule @@ -452,7 +451,7 @@ GeometryConfiguration Frame - {{10, 27}, {603, 414}} + {{10, 27}, {603, 401}} Module PBXBuildResultsModule @@ -480,11 +479,11 @@ TableOfContents - 8B962B7F2E9AD6A6000EAC04 + 8B5C9E362EB51644008B9860 1CA23ED40692098700951B8B - 8B962B802E9AD6A6000EAC04 + 8B5C9E372EB51644008B9860 8BD95EC52E957B6B00D77499 - 8B962B812E9AD6A6000EAC04 + 8B5C9E382EB51644008B9860 1CA23EDF0692099D00951B8B 1CA23EE00692099D00951B8B 1CA23EE10692099D00951B8B @@ -657,7 +656,7 @@ StatusbarIsVisible TimeStamp - 781899640.115731 + 783619652.93727398 ToolbarConfigUserDefaultsMinorVersion 2 ToolbarDisplayMode @@ -674,10 +673,11 @@ 5 WindowOrderList + 8B5C9E392EB51644008B9860 /Users/christopherjohnson/Desktop/airwindows/plugins/MacAU/ConsoleX2Buss/ConsoleX2Buss.xcodeproj WindowString - 13 282 810 487 0 0 1440 878 + 5 284 810 487 0 0 1440 878 WindowToolsV3 diff --git a/plugins/MacAU/ConsoleX2Channel/ConsoleX2Channel.cpp b/plugins/MacAU/ConsoleX2Channel/ConsoleX2Channel.cpp index 1370d54b0..16bc56f26 100755 --- a/plugins/MacAU/ConsoleX2Channel/ConsoleX2Channel.cpp +++ b/plugins/MacAU/ConsoleX2Channel/ConsoleX2Channel.cpp @@ -76,6 +76,7 @@ ConsoleX2Channel::ConsoleX2Channel(AudioUnit component) SetParameter(kParam_O, kDefaultValue_ParamO ); SetParameter(kParam_P, kDefaultValue_ParamP ); SetParameter(kParam_Q, kDefaultValue_ParamQ ); + SetParameter(kParam_R, kDefaultValue_ParamR ); #if AU_DEBUG_DISPATCHER mDebugDispatcher = new AUDebugDispatcher (this); @@ -114,10 +115,9 @@ ComponentResult ConsoleX2Channel::GetParameterInfo(AudioUnitScope inScope, { case kParam_A: AUBase::FillInParameterName (outParameterInfo, kParameterAName, false); - outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit; - outParameterInfo.unitName = kParameterAUnit; - outParameterInfo.minValue = 0.0; - outParameterInfo.maxValue = 1.0; + outParameterInfo.unit = kAudioUnitParameterUnit_Indexed; + outParameterInfo.minValue = 0; + outParameterInfo.maxValue = 4; outParameterInfo.defaultValue = kDefaultValue_ParamA; break; case kParam_B: @@ -129,7 +129,8 @@ ComponentResult ConsoleX2Channel::GetParameterInfo(AudioUnitScope inScope, break; case kParam_C: AUBase::FillInParameterName (outParameterInfo, kParameterCName, false); - outParameterInfo.unit = kAudioUnitParameterUnit_Generic; + outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit; + outParameterInfo.unitName = kParameterCUnit; outParameterInfo.minValue = 0.0; outParameterInfo.maxValue = 1.0; outParameterInfo.defaultValue = kDefaultValue_ParamC; @@ -143,8 +144,7 @@ ComponentResult ConsoleX2Channel::GetParameterInfo(AudioUnitScope inScope, break; case kParam_E: AUBase::FillInParameterName (outParameterInfo, kParameterEName, false); - outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit; - outParameterInfo.unitName = kParameterEUnit; + outParameterInfo.unit = kAudioUnitParameterUnit_Generic; outParameterInfo.minValue = 0.0; outParameterInfo.maxValue = 1.0; outParameterInfo.defaultValue = kDefaultValue_ParamE; @@ -158,7 +158,8 @@ ComponentResult ConsoleX2Channel::GetParameterInfo(AudioUnitScope inScope, break; case kParam_G: AUBase::FillInParameterName (outParameterInfo, kParameterGName, false); - outParameterInfo.unit = kAudioUnitParameterUnit_Generic; + outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit; + outParameterInfo.unitName = kParameterGUnit; outParameterInfo.minValue = 0.0; outParameterInfo.maxValue = 1.0; outParameterInfo.defaultValue = kDefaultValue_ParamG; @@ -172,8 +173,7 @@ ComponentResult ConsoleX2Channel::GetParameterInfo(AudioUnitScope inScope, break; case kParam_I: AUBase::FillInParameterName (outParameterInfo, kParameterIName, false); - outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit; - outParameterInfo.unitName = kParameterIUnit; + outParameterInfo.unit = kAudioUnitParameterUnit_Generic; outParameterInfo.minValue = 0.0; outParameterInfo.maxValue = 1.0; outParameterInfo.defaultValue = kDefaultValue_ParamI; @@ -187,7 +187,8 @@ ComponentResult ConsoleX2Channel::GetParameterInfo(AudioUnitScope inScope, break; case kParam_K: AUBase::FillInParameterName (outParameterInfo, kParameterKName, false); - outParameterInfo.unit = kAudioUnitParameterUnit_Generic; + outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit; + outParameterInfo.unitName = kParameterKUnit; outParameterInfo.minValue = 0.0; outParameterInfo.maxValue = 1.0; outParameterInfo.defaultValue = kDefaultValue_ParamK; @@ -201,9 +202,8 @@ ComponentResult ConsoleX2Channel::GetParameterInfo(AudioUnitScope inScope, break; case kParam_M: AUBase::FillInParameterName (outParameterInfo, kParameterMName, false); - outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit; - outParameterInfo.unitName = kParameterMUnit; - outParameterInfo.minValue = 0.0; + outParameterInfo.unit = kAudioUnitParameterUnit_Generic; + outParameterInfo.minValue = 0.0; outParameterInfo.maxValue = 1.0; outParameterInfo.defaultValue = kDefaultValue_ParamM; break; @@ -236,7 +236,14 @@ ComponentResult ConsoleX2Channel::GetParameterInfo(AudioUnitScope inScope, outParameterInfo.maxValue = 1.0; outParameterInfo.defaultValue = kDefaultValue_ParamQ; break; - default: + case kParam_R: + AUBase::FillInParameterName (outParameterInfo, kParameterRName, false); + outParameterInfo.unit = kAudioUnitParameterUnit_Generic; + outParameterInfo.minValue = 0.0; + outParameterInfo.maxValue = 1.0; + outParameterInfo.defaultValue = kDefaultValue_ParamR; + break; + default: result = kAudioUnitErr_InvalidParameter; break; } @@ -356,7 +363,17 @@ ComponentResult ConsoleX2Channel::Reset(AudioUnitScope inScope, AudioUnitElemen 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; @@ -383,20 +400,33 @@ OSStatus ConsoleX2Channel::ProcessBufferLists(AudioUnitRenderActionFlags & ioAc 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_B )*2.0)+1.0; + switch ((int)GetParameter( kParam_A )){ + case 0: moreTapeHack *= 0.5; break; + case 1: break; + case 2: moreTapeHack *= 2.0; break; + case 3: moreTapeHack *= 4.0; break; + case 4: moreTapeHack *= 8.0; break; + } + double moreDiscontinuity = fmax(pow(GetParameter( kParam_B )*0.42,3.0)*overallscale,0.00001); + //Discontapeity - double trebleGain = (GetParameter( kParam_A )-0.5)*2.0; + double trebleGain = (GetParameter( kParam_C )-0.5)*2.0; trebleGain = 1.0+(trebleGain*fabs(trebleGain)*fabs(trebleGain)); - double highmidGain = (GetParameter( kParam_B )-0.5)*2.0; + double highmidGain = (GetParameter( kParam_D )-0.5)*2.0; highmidGain = 1.0+(highmidGain*fabs(highmidGain)*fabs(highmidGain)); - double lowmidGain = (GetParameter( kParam_C )-0.5)*2.0; + double lowmidGain = (GetParameter( kParam_E )-0.5)*2.0; lowmidGain = 1.0+(lowmidGain*fabs(lowmidGain)*fabs(lowmidGain)); - double bassGain = (GetParameter( kParam_D )-0.5)*2.0; + double bassGain = (GetParameter( kParam_F )-0.5)*2.0; bassGain = 1.0+(bassGain*fabs(bassGain)*fabs(bassGain)); - double trebleRef = GetParameter( kParam_E )-0.5; - double highmidRef = GetParameter( kParam_F )-0.5; - double lowmidRef = GetParameter( kParam_G )-0.5; - double bassRef = GetParameter( kParam_H )-0.5; + double trebleRef = GetParameter( kParam_G )-0.5; + double highmidRef = GetParameter( kParam_H )-0.5; + double lowmidRef = GetParameter( kParam_I )-0.5; + double bassRef = GetParameter( kParam_J )-0.5; double highF = 0.75 + ((trebleRef+trebleRef+trebleRef+highmidRef)*0.125); double bassF = 0.25 + ((lowmidRef+bassRef+bassRef+bassRef)*0.125); double midF = (highF*0.5) + (bassF*0.5) + ((highmidRef+lowmidRef)*0.125); @@ -409,8 +439,8 @@ OSStatus ConsoleX2Channel::ProcessBufferLists(AudioUnitRenderActionFlags & ioAc highC[biq_freq] = highB[biq_freq] = highA[biq_freq] = fmax(fmin(highA[biq_freq],0.4999),0.00025); double highFreq = pow(highF,3)*20000.0; double omega = 2.0*M_PI*(highFreq/GetSampleRate()); - double K = 2.0-cos(omega); - double highCoef = -sqrt((K*K)-1.0)+K; + double biqK = 2.0-cos(omega); + double highCoef = -sqrt((biqK*biqK)-1.0)+biqK; highA[biq_reso] = 2.24697960 * highQ; highB[biq_reso] = 0.80193774 * highQ; highC[biq_reso] = 0.55495813 * highQ; @@ -419,8 +449,8 @@ OSStatus ConsoleX2Channel::ProcessBufferLists(AudioUnitRenderActionFlags & ioAc midC[biq_freq] = midB[biq_freq] = midA[biq_freq] = fmax(fmin(midA[biq_freq],0.4999),0.00025); double midFreq = pow(midF,3)*20000.0; omega = 2.0*M_PI*(midFreq/GetSampleRate()); - K = 2.0-cos(omega); - double midCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double midCoef = -sqrt((biqK*biqK)-1.0)+biqK; midA[biq_reso] = 2.24697960 * midQ; midB[biq_reso] = 0.80193774 * midQ; midC[biq_reso] = 0.55495813 * midQ; @@ -429,97 +459,93 @@ OSStatus ConsoleX2Channel::ProcessBufferLists(AudioUnitRenderActionFlags & ioAc lowC[biq_freq] = lowB[biq_freq] = lowA[biq_freq] = fmax(fmin(lowA[biq_freq],0.4999),0.00025); double lowFreq = pow(bassF,3)*20000.0; omega = 2.0*M_PI*(lowFreq/GetSampleRate()); - K = 2.0-cos(omega); - double lowCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double lowCoef = -sqrt((biqK*biqK)-1.0)+biqK; lowA[biq_reso] = 2.24697960 * lowQ; lowB[biq_reso] = 0.80193774 * lowQ; lowC[biq_reso] = 0.55495813 * lowQ; - K = tan(M_PI * highA[biq_freq]); - double norm = 1.0 / (1.0 + K / highA[biq_reso] + K * K); - highA[biq_a0] = K * K * norm; + biqK = tan(M_PI * highA[biq_freq]); + double norm = 1.0 / (1.0 + biqK / highA[biq_reso] + biqK * biqK); + highA[biq_a0] = biqK * biqK * norm; highA[biq_a1] = 2.0 * highA[biq_a0]; highA[biq_a2] = highA[biq_a0]; - highA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highA[biq_b2] = (1.0 - K / highA[biq_reso] + K * K) * norm; - K = tan(M_PI * highB[biq_freq]); - norm = 1.0 / (1.0 + K / highB[biq_reso] + K * K); - highB[biq_a0] = K * K * norm; + highA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highA[biq_b2] = (1.0 - biqK / highA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highB[biq_freq]); + norm = 1.0 / (1.0 + biqK / highB[biq_reso] + biqK * biqK); + highB[biq_a0] = biqK * biqK * norm; highB[biq_a1] = 2.0 * highB[biq_a0]; highB[biq_a2] = highB[biq_a0]; - highB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highB[biq_b2] = (1.0 - K / highB[biq_reso] + K * K) * norm; - K = tan(M_PI * highC[biq_freq]); - norm = 1.0 / (1.0 + K / highC[biq_reso] + K * K); - highC[biq_a0] = K * K * norm; + highB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highB[biq_b2] = (1.0 - biqK / highB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highC[biq_freq]); + norm = 1.0 / (1.0 + biqK / highC[biq_reso] + biqK * biqK); + highC[biq_a0] = biqK * biqK * norm; highC[biq_a1] = 2.0 * highC[biq_a0]; highC[biq_a2] = highC[biq_a0]; - highC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highC[biq_b2] = (1.0 - K / highC[biq_reso] + K * K) * norm; + highC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highC[biq_b2] = (1.0 - biqK / highC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * midA[biq_freq]); - norm = 1.0 / (1.0 + K / midA[biq_reso] + K * K); - midA[biq_a0] = K * K * norm; + biqK = tan(M_PI * midA[biq_freq]); + norm = 1.0 / (1.0 + biqK / midA[biq_reso] + biqK * biqK); + midA[biq_a0] = biqK * biqK * norm; midA[biq_a1] = 2.0 * midA[biq_a0]; midA[biq_a2] = midA[biq_a0]; - midA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midA[biq_b2] = (1.0 - K / midA[biq_reso] + K * K) * norm; - K = tan(M_PI * midB[biq_freq]); - norm = 1.0 / (1.0 + K / midB[biq_reso] + K * K); - midB[biq_a0] = K * K * norm; + midA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midA[biq_b2] = (1.0 - biqK / midA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midB[biq_freq]); + norm = 1.0 / (1.0 + biqK / midB[biq_reso] + biqK * biqK); + midB[biq_a0] = biqK * biqK * norm; midB[biq_a1] = 2.0 * midB[biq_a0]; midB[biq_a2] = midB[biq_a0]; - midB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midB[biq_b2] = (1.0 - K / midB[biq_reso] + K * K) * norm; - K = tan(M_PI * midC[biq_freq]); - norm = 1.0 / (1.0 + K / midC[biq_reso] + K * K); - midC[biq_a0] = K * K * norm; + midB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midB[biq_b2] = (1.0 - biqK / midB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midC[biq_freq]); + norm = 1.0 / (1.0 + biqK / midC[biq_reso] + biqK * biqK); + midC[biq_a0] = biqK * biqK * norm; midC[biq_a1] = 2.0 * midC[biq_a0]; midC[biq_a2] = midC[biq_a0]; - midC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midC[biq_b2] = (1.0 - K / midC[biq_reso] + K * K) * norm; + midC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midC[biq_b2] = (1.0 - biqK / midC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * lowA[biq_freq]); - norm = 1.0 / (1.0 + K / lowA[biq_reso] + K * K); - lowA[biq_a0] = K * K * norm; + biqK = tan(M_PI * lowA[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowA[biq_reso] + biqK * biqK); + lowA[biq_a0] = biqK * biqK * norm; lowA[biq_a1] = 2.0 * lowA[biq_a0]; lowA[biq_a2] = lowA[biq_a0]; - lowA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowA[biq_b2] = (1.0 - K / lowA[biq_reso] + K * K) * norm; - K = tan(M_PI * lowB[biq_freq]); - norm = 1.0 / (1.0 + K / lowB[biq_reso] + K * K); - lowB[biq_a0] = K * K * norm; + lowA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowA[biq_b2] = (1.0 - biqK / lowA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowB[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowB[biq_reso] + biqK * biqK); + lowB[biq_a0] = biqK * biqK * norm; lowB[biq_a1] = 2.0 * lowB[biq_a0]; lowB[biq_a2] = lowB[biq_a0]; - lowB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowB[biq_b2] = (1.0 - K / lowB[biq_reso] + K * K) * norm; - K = tan(M_PI * lowC[biq_freq]); - norm = 1.0 / (1.0 + K / lowC[biq_reso] + K * K); - lowC[biq_a0] = K * K * norm; + lowB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowB[biq_b2] = (1.0 - biqK / lowB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowC[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowC[biq_reso] + biqK * biqK); + lowC[biq_a0] = biqK * biqK * norm; lowC[biq_a1] = 2.0 * lowC[biq_a0]; lowC[biq_a2] = lowC[biq_a0]; - lowC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowC[biq_b2] = (1.0 - K / lowC[biq_reso] + K * K) * norm; + lowC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowC[biq_b2] = (1.0 - biqK / lowC[biq_reso] + biqK * biqK) * norm; //SmoothEQ2 - double bezCThresh = pow(1.0-GetParameter( kParam_I ), 6.0) * 8.0; - double bezRez = pow(1.0-GetParameter( kParam_J ), 8.0) / overallscale; - double sloRez = pow(1.0-GetParameter( kParam_K ),12.0) / overallscale; + double bezCThresh = pow(1.0-GetParameter( kParam_K ), 6.0) * 8.0; + double bezRez = pow(1.0-GetParameter( kParam_L ), 8.0) / overallscale; + double sloRez = pow(1.0-GetParameter( kParam_M ),12.0) / overallscale; sloRez = fmin(fmax(sloRez-(bezRez*0.5),0.00001),1.0); bezRez = fmin(fmax(bezRez,0.0001),1.0); - double gate = pow(pow(GetParameter( kParam_L ),4.0),sqrt(bezCThresh+1.0)); + double gate = pow(pow(GetParameter( kParam_N ),4.0),sqrt(bezCThresh+1.0)); //Dynamics2 - lFreqA = lFreqB; lFreqB = pow(fmax(GetParameter( kParam_M ),0.002),overallscale); //the lowpass - hFreqA = hFreqB; hFreqB = pow(GetParameter( kParam_N ),overallscale+2.0); //the highpass + lFreqA = lFreqB; lFreqB = pow(fmax(GetParameter( kParam_O ),0.002),overallscale); //the lowpass + hFreqA = hFreqB; hFreqB = pow(GetParameter( kParam_P ),overallscale+2.0); //the highpass //Cabs2 - - double moreDiscontinuity = fmax(pow(GetParameter( kParam_O )*0.42,3.0)*overallscale,0.00001); - double moreTapeHack = (GetParameter( kParam_O )*1.4152481)+1.2; - //Discontapeity - - panA = panB; panB = GetParameter( kParam_P )*1.57079633; - inTrimA = inTrimB; inTrimB = GetParameter( kParam_Q )*2.0; + + panA = panB; panB = GetParameter( kParam_Q )*1.57079633; + inTrimA = inTrimB; inTrimB = GetParameter( kParam_R )*2.0; //Console while (nSampleFrames-- > 0) { @@ -528,6 +554,99 @@ OSStatus ConsoleX2Channel::ProcessBufferLists(AudioUnitRenderActionFlags & ioAc if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17; if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17; + double darkSampleL = inputSampleL; + double darkSampleR = inputSampleR; + if (avgPos > 31) avgPos = 0; + if (spacing > 31) { + avg32L[avgPos] = darkSampleL; avg32R[avgPos] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 32; x++) {darkSampleL += avg32L[x]; darkSampleR += avg32R[x];} + darkSampleL /= 32.0; darkSampleR /= 32.0; + } if (spacing > 15) { + avg16L[avgPos%16] = darkSampleL; avg16R[avgPos%16] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 16; x++) {darkSampleL += avg16L[x]; darkSampleR += avg16R[x];} + darkSampleL /= 16.0; darkSampleR /= 16.0; + } if (spacing > 7) { + avg8L[avgPos%8] = darkSampleL; avg8R[avgPos%8] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 8; x++) {darkSampleL += avg8L[x]; darkSampleR += avg8R[x];} + darkSampleL /= 8.0; darkSampleR /= 8.0; + } if (spacing > 3) { + avg4L[avgPos%4] = darkSampleL; avg4R[avgPos%4] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 4; x++) {darkSampleL += avg4L[x]; darkSampleR += avg4R[x];} + darkSampleL /= 4.0; darkSampleR /= 4.0; + } if (spacing > 1) { + avg2L[avgPos%2] = darkSampleL; avg2R[avgPos%2] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 2; x++) {darkSampleL += avg2L[x]; darkSampleR += avg2R[x];} + darkSampleL /= 2.0; darkSampleR /= 2.0; + } avgPos++; + lastSlewL += fabs(lastSlewpleL-inputSampleL); lastSlewpleL = inputSampleL; + double avgSlewL = fmin(lastSlewL,1.0); + lastSlewL = fmax(lastSlewL*0.78,2.39996322972865332223); + lastSlewR += fabs(lastSlewpleR-inputSampleR); lastSlewpleR = inputSampleR; + double avgSlewR = fmin(lastSlewR,1.0); + lastSlewR = fmax(lastSlewR*0.78,2.39996322972865332223); //look up Golden Angle, it's cool + inputSampleL = (inputSampleL*(1.0-avgSlewL)) + (darkSampleL*avgSlewL); + inputSampleR = (inputSampleR*(1.0-avgSlewR)) + (darkSampleR*avgSlewR); + + //begin Discontinuity section + inputSampleL *= moreTapeHack; + inputSampleL *= moreDiscontinuity; + dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5); + dBaPosL = fmin(dBaPosL,1.0); + int dBdly = floor(dBaPosL*dscBuf); + double dBi = (dBaPosL*dscBuf)-dBdly; + inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi); + dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi; + dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0; + inputSampleL /= moreDiscontinuity; + //end Discontinuity section, begin TapeHack section + inputSampleL = fmax(fmin(inputSampleL,2.305929007734908),-2.305929007734908); + double addtwo = inputSampleL * inputSampleL; + double empower = inputSampleL * addtwo; // inputSampleL to the third power + inputSampleL -= (empower / 6.0); + empower *= addtwo; // to the fifth power + inputSampleL += (empower / 69.0); + empower *= addtwo; //seventh + inputSampleL -= (empower / 2530.08); + empower *= addtwo; //ninth + inputSampleL += (empower / 224985.6); + empower *= addtwo; //eleventh + inputSampleL -= (empower / 9979200.0f); + //this is a degenerate form of a Taylor Series to approximate sin() + //end TapeHack section + + //begin Discontinuity section + inputSampleR *= moreTapeHack; + inputSampleR *= moreDiscontinuity; + dBaR[dBaXR] = inputSampleR; dBaPosR *= 0.5; dBaPosR += fabs((inputSampleR*((inputSampleR*0.25)-0.5))*0.5); + dBaPosR = fmin(dBaPosR,1.0); + dBdly = floor(dBaPosR*dscBuf); + dBi = (dBaPosR*dscBuf)-dBdly; + inputSampleR = dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*(1.0-dBi); + dBdly++; inputSampleR += dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*dBi; + dBaXR++; if (dBaXR < 0 || dBaXR >= dscBuf) dBaXR = 0; + inputSampleR /= moreDiscontinuity; + //end Discontinuity section, begin TapeHack section + inputSampleR = fmax(fmin(inputSampleR,2.305929007734908),-2.305929007734908); + addtwo = inputSampleR * inputSampleR; + empower = inputSampleR * addtwo; // inputSampleR to the third power + inputSampleR -= (empower / 6.0); + empower *= addtwo; // to the fifth power + inputSampleR += (empower / 69.0); + empower *= addtwo; //seventh + inputSampleR -= (empower / 2530.08); + empower *= addtwo; //ninth + inputSampleR += (empower / 224985.6); + empower *= addtwo; //eleventh + inputSampleR -= (empower / 9979200.0f); + //this is a degenerate form of a Taylor Series to approximate sin() + //end TapeHack section + //Discontapeity + double trebleL = inputSampleL; double outSample = (trebleL * highA[biq_a0]) + highA[biq_sL1]; highA[biq_sL1] = (trebleL * highA[biq_a1]) - (outSample * highA[biq_b1]) + highA[biq_sL2]; @@ -787,62 +906,7 @@ OSStatus ConsoleX2Channel::ProcessBufferLists(AudioUnitRenderActionFlags & ioAc } //blank out lowpass if just switched off } //Cabs2 - - //begin Discontinuity section - inputSampleL *= moreDiscontinuity; - dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5); - dBaPosL = fmin(dBaPosL,1.0); - int dBdly = floor(dBaPosL*dscBuf); - double dBi = (dBaPosL*dscBuf)-dBdly; - inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi; - dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0; - inputSampleL /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleL = fmax(fmin(inputSampleL*moreTapeHack,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.9239; - //end TapeHack section - - //begin Discontinuity section - inputSampleR *= moreDiscontinuity; - dBaR[dBaXR] = inputSampleR; dBaPosR *= 0.5; dBaPosR += fabs((inputSampleR*((inputSampleR*0.25)-0.5))*0.5); - dBaPosR = fmin(dBaPosR,1.0); - dBdly = floor(dBaPosR*dscBuf); - dBi = (dBaPosR*dscBuf)-dBdly; - inputSampleR = dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleR += dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*dBi; - dBaXR++; if (dBaXR < 0 || dBaXR >= dscBuf) dBaXR = 0; - inputSampleR /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleR = fmax(fmin(inputSampleR*moreTapeHack,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.9239; - //end TapeHack section - //Discontapeity - + double gainR = (panA*temp)+(panB*(1.0-temp)); double gainL = 1.57079633-gainR; gainR = sin(gainR); gainL = sin(gainL); @@ -850,19 +914,16 @@ OSStatus ConsoleX2Channel::ProcessBufferLists(AudioUnitRenderActionFlags & ioAc 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 *= 0.763932022500211; inputSampleL = inputSampleL * gainL * gain; inputSampleR = inputSampleR * gainR * gain; //applies pan section, and smoothed fader gain - inputSampleL *= 0.618033988749895; if (inputSampleL > 1.0) inputSampleL = 1.0; else if (inputSampleL > 0.0) inputSampleL = -expm1((log1p(-inputSampleL) * 1.618033988749895)); if (inputSampleL < -1.0) inputSampleL = -1.0; else if (inputSampleL < 0.0) inputSampleL = expm1((log1p(inputSampleL) * 1.618033988749895)); - inputSampleR *= 0.618033988749895; if (inputSampleR > 1.0) inputSampleR = 1.0; else if (inputSampleR > 0.0) inputSampleR = -expm1((log1p(-inputSampleR) * 1.618033988749895)); if (inputSampleR < -1.0) inputSampleR = -1.0; diff --git a/plugins/MacAU/ConsoleX2Channel/ConsoleX2Channel.h b/plugins/MacAU/ConsoleX2Channel/ConsoleX2Channel.h index 51c8bbafe..7cc14906a 100755 --- a/plugins/MacAU/ConsoleX2Channel/ConsoleX2Channel.h +++ b/plugins/MacAU/ConsoleX2Channel/ConsoleX2Channel.h @@ -54,46 +54,47 @@ #pragma mark ____ConsoleX2Channel Parameters // parameters -static const float kDefaultValue_ParamA = 0.5; -static const float kDefaultValue_ParamB = 0.5; +static const int kDefaultValue_ParamA = 1; +static const float kDefaultValue_ParamB = 0.0; static const float kDefaultValue_ParamC = 0.5; static const float kDefaultValue_ParamD = 0.5; static const float kDefaultValue_ParamE = 0.5; static const float kDefaultValue_ParamF = 0.5; static const float kDefaultValue_ParamG = 0.5; static const float kDefaultValue_ParamH = 0.5; -static const float kDefaultValue_ParamI = 1.0; +static const float kDefaultValue_ParamI = 0.5; static const float kDefaultValue_ParamJ = 0.5; -static const float kDefaultValue_ParamK = 0.5; -static const float kDefaultValue_ParamL = 0.0; -static const float kDefaultValue_ParamM = 1.0; +static const float kDefaultValue_ParamK = 1.0; +static const float kDefaultValue_ParamL = 0.5; +static const float kDefaultValue_ParamM = 0.5; static const float kDefaultValue_ParamN = 0.0; -static const float kDefaultValue_ParamO = 0.0; -static const float kDefaultValue_ParamP = 0.5; +static const float kDefaultValue_ParamO = 1.0; +static const float kDefaultValue_ParamP = 0.0; static const float kDefaultValue_ParamQ = 0.5; +static const float kDefaultValue_ParamR = 0.5; -static CFStringRef kParameterAUnit = CFSTR("eq"); -static CFStringRef kParameterAName = CFSTR("High"); -static CFStringRef kParameterBName = CFSTR("HMid"); -static CFStringRef kParameterCName = CFSTR("LMid"); -static CFStringRef kParameterDName = CFSTR("Bass"); -static CFStringRef kParameterEUnit = CFSTR("freq"); -static CFStringRef kParameterEName = CFSTR("HighF"); -static CFStringRef kParameterFName = CFSTR("HMidF"); -static CFStringRef kParameterGName = CFSTR("LMidF"); -static CFStringRef kParameterHName = CFSTR("BassF"); -static CFStringRef kParameterIUnit = CFSTR("dyn"); -static CFStringRef kParameterIName = CFSTR("Thresh"); -static CFStringRef kParameterJName = CFSTR("Attack"); -static CFStringRef kParameterKName = CFSTR("Release"); -static CFStringRef kParameterLName = CFSTR("Gate"); -static CFStringRef kParameterMUnit = CFSTR("fltr"); -static CFStringRef kParameterMName = CFSTR("Lowpass"); -static CFStringRef kParameterNName = CFSTR("Hipass"); -static CFStringRef kParameterOUnit = CFSTR("+"); -static CFStringRef kParameterOName = CFSTR("More"); -static CFStringRef kParameterPName = CFSTR("Pan"); -static CFStringRef kParameterQName = CFSTR("Fader"); +static CFStringRef kParameterAName = CFSTR("Trim"); +static CFStringRef kParameterBName = CFSTR("More"); +static CFStringRef kParameterCUnit = CFSTR("eq"); +static CFStringRef kParameterCName = CFSTR("High"); +static CFStringRef kParameterDName = CFSTR("HMid"); +static CFStringRef kParameterEName = CFSTR("LMid"); +static CFStringRef kParameterFName = CFSTR("Bass"); +static CFStringRef kParameterGUnit = CFSTR("freq"); +static CFStringRef kParameterGName = CFSTR("HighF"); +static CFStringRef kParameterHName = CFSTR("HMidF"); +static CFStringRef kParameterIName = CFSTR("LMidF"); +static CFStringRef kParameterJName = CFSTR("BassF"); +static CFStringRef kParameterKUnit = CFSTR("dyn"); +static CFStringRef kParameterKName = CFSTR("Thresh"); +static CFStringRef kParameterLName = CFSTR("Attack"); +static CFStringRef kParameterMName = CFSTR("Release"); +static CFStringRef kParameterNName = CFSTR("Gate"); +static CFStringRef kParameterOUnit = CFSTR("fltr"); +static CFStringRef kParameterOName = CFSTR("Lowpass"); +static CFStringRef kParameterPName = CFSTR("Hipass"); +static CFStringRef kParameterQName = CFSTR("Pan"); +static CFStringRef kParameterRName = CFSTR("Fader"); enum { kParam_A =0, @@ -113,8 +114,9 @@ enum { kParam_O =14, kParam_P =15, kParam_Q =16, + kParam_R =17, //Add your parameters here... - kNumberOfParameters=17 + kNumberOfParameters=18 }; const int dscBuf = 256; @@ -243,6 +245,23 @@ public: 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; diff --git a/plugins/MacAU/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/christopherjohnson.pbxuser b/plugins/MacAU/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/christopherjohnson.pbxuser index 3849e4a39..97de010b9 100755 --- a/plugins/MacAU/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/christopherjohnson.pbxuser +++ b/plugins/MacAU/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/christopherjohnson.pbxuser @@ -51,19 +51,39 @@ PBXFileDataSource_Warnings_ColumnID, ); }; - PBXPerProjectTemplateStateSaveDate = 781897277; - PBXWorkspaceStateSaveDate = 781897277; + PBXPerProjectTemplateStateSaveDate = 783603960; + PBXWorkspaceStateSaveDate = 783603960; }; perUserProjectItems = { + 8B692BE12EB4E21700F51381 /* PBXTextBookmark */ = 8B692BE12EB4E21700F51381 /* PBXTextBookmark */; + 8B692BE22EB4E21700F51381 /* PBXTextBookmark */ = 8B692BE22EB4E21700F51381 /* PBXTextBookmark */; 8B9629D92E9AC7DA000EAC04 /* PBXTextBookmark */ = 8B9629D92E9AC7DA000EAC04 /* PBXTextBookmark */; - 8B9629DA2E9AC7DA000EAC04 /* PBXTextBookmark */ = 8B9629DA2E9AC7DA000EAC04 /* PBXTextBookmark */; - 8B962AF92E9AD2D8000EAC04 /* PBXTextBookmark */ = 8B962AF92E9AD2D8000EAC04 /* PBXTextBookmark */; - 8B962AFA2E9AD2D8000EAC04 /* PBXTextBookmark */ = 8B962AFA2E9AD2D8000EAC04 /* PBXTextBookmark */; + 8BAA80A32EA691D900A83054 /* PBXTextBookmark */ = 8BAA80A32EA691D900A83054 /* PBXTextBookmark */; }; sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */; userBuildSettings = { }; }; + 8B692BE12EB4E21700F51381 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 8BA05A660720730100365D66 /* ConsoleX2Channel.cpp */; + name = "ConsoleX2Channel.cpp: 377"; + rLen = 0; + rLoc = 16627; + rType = 0; + vrLen = 22; + vrLoc = 54; + }; + 8B692BE22EB4E21700F51381 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 8BA05A660720730100365D66 /* ConsoleX2Channel.cpp */; + name = "ConsoleX2Channel.cpp: 377"; + rLen = 0; + rLoc = 16627; + rType = 0; + vrLen = 22; + vrLoc = 54; + }; 8B9629D92E9AC7DA000EAC04 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 8BA05A690720730100365D66 /* ConsoleX2ChannelVersion.h */; @@ -74,42 +94,20 @@ vrLen = 258; vrLoc = 0; }; - 8B9629DA2E9AC7DA000EAC04 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 8BC6025B073B072D006C4272 /* ConsoleX2Channel.h */; - name = "ConsoleX2Channel.h: 230"; - rLen = 0; - rLoc = 8099; - rType = 0; - vrLen = 141; - vrLoc = 7736; - }; - 8B962AF92E9AD2D8000EAC04 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 8BA05A660720730100365D66 /* ConsoleX2Channel.cpp */; - name = "ConsoleX2Channel.cpp: 355"; - rLen = 0; - rLoc = 15850; - rType = 0; - vrLen = 103; - vrLoc = 15621; - }; - 8B962AFA2E9AD2D8000EAC04 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 8BC6025B073B072D006C4272 /* ConsoleX2Channel.h */; - name = "ConsoleX2Channel.h: 235"; - rLen = 0; - rLoc = 8099; - rType = 0; - vrLen = 105; - vrLoc = 7686; - }; 8BA05A660720730100365D66 /* ConsoleX2Channel.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1019, 15912}}"; - sepNavSelRange = "{10994, 0}"; - sepNavVisRange = "{10196, 2001}"; - sepNavWindowFrame = "{{22, 92}, {1066, 786}}"; + sepNavIntBoundsRect = "{{0, 0}, {696, 17226}}"; + sepNavSelRange = "{16627, 0}"; + sepNavVisRange = "{54, 22}"; + sepNavWindowFrame = "{{6, 88}, {931, 746}}"; + }; + }; + 8BA05A670720730100365D66 /* ConsoleX2Channel.exp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {609, 616}}"; + sepNavSelRange = "{0, 23}"; + sepNavVisRange = "{0, 23}"; + sepNavWindowFrame = "{{15, 129}, {656, 744}}"; }; }; 8BA05A690720730100365D66 /* ConsoleX2ChannelVersion.h */ = { @@ -127,12 +125,22 @@ sepNavVisRange = "{0, 1336}"; }; }; + 8BAA80A32EA691D900A83054 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 8BC6025B073B072D006C4272 /* ConsoleX2Channel.h */; + name = "ConsoleX2Channel.h: 235"; + rLen = 0; + rLoc = 8160; + rType = 0; + vrLen = 76; + vrLoc = 7715; + }; 8BC6025B073B072D006C4272 /* ConsoleX2Channel.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {705, 4968}}"; - sepNavSelRange = "{8099, 0}"; - sepNavVisRange = "{7686, 105}"; - sepNavWindowFrame = "{{8, 39}, {656, 839}}"; + sepNavIntBoundsRect = "{{0, 0}, {1146, 5058}}"; + sepNavSelRange = "{8317, 299}"; + sepNavVisRange = "{3331, 1640}"; + sepNavWindowFrame = "{{2, 39}, {656, 839}}"; }; }; 8BD3CCB8148830B20062E48C /* Source Control */ = { diff --git a/plugins/MacAU/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacAU/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/christopherjohnson.perspectivev3 index c1bd1a716..8aed517aa 100755 --- a/plugins/MacAU/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/christopherjohnson.perspectivev3 +++ b/plugins/MacAU/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/christopherjohnson.perspectivev3 @@ -324,7 +324,7 @@ 185 RubberWindowFrame - 37 201 810 487 0 0 1440 878 + 9 258 810 487 0 0 1440 878 Module PBXSmartGroupTreeModule @@ -340,7 +340,7 @@ PBXProjectModuleGUID 8BD95EA72E957B1200D77499 PBXProjectModuleLabel - ConsoleX2Channel.h + ConsoleX2Channel.cpp PBXSplitModuleInNavigatorKey Split0 @@ -348,16 +348,16 @@ PBXProjectModuleGUID 8BD95EA82E957B1200D77499 PBXProjectModuleLabel - ConsoleX2Channel.h + ConsoleX2Channel.cpp _historyCapacity 0 bookmark - 8B962AFA2E9AD2D8000EAC04 + 8B692BE22EB4E21700F51381 history 8B9629D92E9AC7DA000EAC04 - 8B962AF92E9AD2D8000EAC04 - 8B9629DA2E9AC7DA000EAC04 + 8BAA80A32EA691D900A83054 + 8B692BE12EB4E21700F51381 SplitCount @@ -371,18 +371,18 @@ GeometryConfiguration Frame - {{0, 0}, {603, 117}} + {{0, 0}, {603, 51}} RubberWindowFrame - 37 201 810 487 0 0 1440 878 + 9 258 810 487 0 0 1440 878 Module PBXNavigatorGroup Proportion - 117pt + 51pt Proportion - 324pt + 390pt Tabs @@ -396,9 +396,9 @@ GeometryConfiguration Frame - {{10, 27}, {603, 297}} + {{10, 27}, {603, 363}} RubberWindowFrame - 37 201 810 487 0 0 1440 878 + 9 258 810 487 0 0 1440 878 Module XCDetailModule @@ -452,7 +452,7 @@ GeometryConfiguration Frame - {{10, 27}, {603, 414}} + {{10, 27}, {603, 345}} Module PBXBuildResultsModule @@ -480,11 +480,11 @@ TableOfContents - 8B962AFB2E9AD2D8000EAC04 + 8B692BE32EB4E21700F51381 1CA23ED40692098700951B8B - 8B962AFC2E9AD2D8000EAC04 + 8B692BE42EB4E21700F51381 8BD95EA72E957B1200D77499 - 8B962AFD2E9AD2D8000EAC04 + 8B692BE52EB4E21700F51381 1CA23EDF0692099D00951B8B 1CA23EE00692099D00951B8B 1CA23EE10692099D00951B8B @@ -657,7 +657,7 @@ StatusbarIsVisible TimeStamp - 781898456.47562802 + 783606295.64856899 ToolbarConfigUserDefaultsMinorVersion 2 ToolbarDisplayMode @@ -674,11 +674,10 @@ 5 WindowOrderList - 8B962AFE2E9AD2D8000EAC04 /Users/christopherjohnson/Desktop/airwindows/plugins/MacAU/ConsoleX2Channel/ConsoleX2Channel.xcodeproj WindowString - 37 201 810 487 0 0 1440 878 + 9 258 810 487 0 0 1440 878 WindowToolsV3 diff --git a/plugins/MacAU/ConsoleX2Pre/ConsoleX2Pre.cpp b/plugins/MacAU/ConsoleX2Pre/ConsoleX2Pre.cpp index 5c5cf3ae6..9871e43f7 100755 --- a/plugins/MacAU/ConsoleX2Pre/ConsoleX2Pre.cpp +++ b/plugins/MacAU/ConsoleX2Pre/ConsoleX2Pre.cpp @@ -75,6 +75,7 @@ ConsoleX2Pre::ConsoleX2Pre(AudioUnit component) SetParameter(kParam_N, kDefaultValue_ParamN ); SetParameter(kParam_O, kDefaultValue_ParamO ); SetParameter(kParam_P, kDefaultValue_ParamP ); + SetParameter(kParam_Q, kDefaultValue_ParamQ ); #if AU_DEBUG_DISPATCHER mDebugDispatcher = new AUDebugDispatcher (this); @@ -113,10 +114,9 @@ ComponentResult ConsoleX2Pre::GetParameterInfo(AudioUnitScope inScope, { case kParam_A: AUBase::FillInParameterName (outParameterInfo, kParameterAName, false); - outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit; - outParameterInfo.unitName = kParameterAUnit; - outParameterInfo.minValue = 0.0; - outParameterInfo.maxValue = 1.0; + outParameterInfo.unit = kAudioUnitParameterUnit_Indexed; + outParameterInfo.minValue = 0; + outParameterInfo.maxValue = 4; outParameterInfo.defaultValue = kDefaultValue_ParamA; break; case kParam_B: @@ -128,7 +128,8 @@ ComponentResult ConsoleX2Pre::GetParameterInfo(AudioUnitScope inScope, break; case kParam_C: AUBase::FillInParameterName (outParameterInfo, kParameterCName, false); - outParameterInfo.unit = kAudioUnitParameterUnit_Generic; + outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit; + outParameterInfo.unitName = kParameterCUnit; outParameterInfo.minValue = 0.0; outParameterInfo.maxValue = 1.0; outParameterInfo.defaultValue = kDefaultValue_ParamC; @@ -142,8 +143,7 @@ ComponentResult ConsoleX2Pre::GetParameterInfo(AudioUnitScope inScope, break; case kParam_E: AUBase::FillInParameterName (outParameterInfo, kParameterEName, false); - outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit; - outParameterInfo.unitName = kParameterEUnit; + outParameterInfo.unit = kAudioUnitParameterUnit_Generic; outParameterInfo.minValue = 0.0; outParameterInfo.maxValue = 1.0; outParameterInfo.defaultValue = kDefaultValue_ParamE; @@ -157,7 +157,8 @@ ComponentResult ConsoleX2Pre::GetParameterInfo(AudioUnitScope inScope, break; case kParam_G: AUBase::FillInParameterName (outParameterInfo, kParameterGName, false); - outParameterInfo.unit = kAudioUnitParameterUnit_Generic; + outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit; + outParameterInfo.unitName = kParameterGUnit; outParameterInfo.minValue = 0.0; outParameterInfo.maxValue = 1.0; outParameterInfo.defaultValue = kDefaultValue_ParamG; @@ -171,8 +172,7 @@ ComponentResult ConsoleX2Pre::GetParameterInfo(AudioUnitScope inScope, break; case kParam_I: AUBase::FillInParameterName (outParameterInfo, kParameterIName, false); - outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit; - outParameterInfo.unitName = kParameterIUnit; + outParameterInfo.unit = kAudioUnitParameterUnit_Generic; outParameterInfo.minValue = 0.0; outParameterInfo.maxValue = 1.0; outParameterInfo.defaultValue = kDefaultValue_ParamI; @@ -186,7 +186,8 @@ ComponentResult ConsoleX2Pre::GetParameterInfo(AudioUnitScope inScope, break; case kParam_K: AUBase::FillInParameterName (outParameterInfo, kParameterKName, false); - outParameterInfo.unit = kAudioUnitParameterUnit_Generic; + outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit; + outParameterInfo.unitName = kParameterKUnit; outParameterInfo.minValue = 0.0; outParameterInfo.maxValue = 1.0; outParameterInfo.defaultValue = kDefaultValue_ParamK; @@ -200,9 +201,8 @@ ComponentResult ConsoleX2Pre::GetParameterInfo(AudioUnitScope inScope, break; case kParam_M: AUBase::FillInParameterName (outParameterInfo, kParameterMName, false); - outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit; - outParameterInfo.unitName = kParameterMUnit; - outParameterInfo.minValue = 0.0; + outParameterInfo.unit = kAudioUnitParameterUnit_Generic; + outParameterInfo.minValue = 0.0; outParameterInfo.maxValue = 1.0; outParameterInfo.defaultValue = kDefaultValue_ParamM; break; @@ -228,7 +228,14 @@ ComponentResult ConsoleX2Pre::GetParameterInfo(AudioUnitScope inScope, outParameterInfo.maxValue = 1.0; outParameterInfo.defaultValue = kDefaultValue_ParamP; break; - default: + case kParam_Q: + AUBase::FillInParameterName (outParameterInfo, kParameterQName, false); + outParameterInfo.unit = kAudioUnitParameterUnit_Generic; + outParameterInfo.minValue = 0.0; + outParameterInfo.maxValue = 1.0; + outParameterInfo.defaultValue = kDefaultValue_ParamQ; + break; + default: result = kAudioUnitErr_InvalidParameter; break; } @@ -324,9 +331,20 @@ void ConsoleX2Pre::ConsoleX2PreKernel::Reset() 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; + inTrimA = 0.5; inTrimB = 0.5; + fpd = 1.0; while (fpd < 16386) fpd = rand()*UINT32_MAX; } @@ -345,20 +363,33 @@ void ConsoleX2Pre::ConsoleX2PreKernel::Process( const Float32 *inSourceP, double overallscale = 1.0; overallscale /= 44100.0; overallscale *= GetSampleRate(); - - double trebleGain = (GetParameter( kParam_A )-0.5)*2.0; + int spacing = floor(overallscale*2.0); + if (spacing < 2) spacing = 2; if (spacing > 32) spacing = 32; + + double moreTapeHack = (GetParameter( kParam_B )*2.0)+1.0; + switch ((int)GetParameter( kParam_A )){ + case 0: moreTapeHack *= 0.5; break; + case 1: break; + case 2: moreTapeHack *= 2.0; break; + case 3: moreTapeHack *= 4.0; break; + case 4: moreTapeHack *= 8.0; break; + } + double moreDiscontinuity = fmax(pow(GetParameter( kParam_B )*0.42,3.0)*overallscale,0.00001); + //Discontapeity + + double trebleGain = (GetParameter( kParam_C )-0.5)*2.0; trebleGain = 1.0+(trebleGain*fabs(trebleGain)*fabs(trebleGain)); - double highmidGain = (GetParameter( kParam_B )-0.5)*2.0; + double highmidGain = (GetParameter( kParam_D )-0.5)*2.0; highmidGain = 1.0+(highmidGain*fabs(highmidGain)*fabs(highmidGain)); - double lowmidGain = (GetParameter( kParam_C )-0.5)*2.0; + double lowmidGain = (GetParameter( kParam_E )-0.5)*2.0; lowmidGain = 1.0+(lowmidGain*fabs(lowmidGain)*fabs(lowmidGain)); - double bassGain = (GetParameter( kParam_D )-0.5)*2.0; + double bassGain = (GetParameter( kParam_F )-0.5)*2.0; bassGain = 1.0+(bassGain*fabs(bassGain)*fabs(bassGain)); - double trebleRef = GetParameter( kParam_E )-0.5; - double highmidRef = GetParameter( kParam_F )-0.5; - double lowmidRef = GetParameter( kParam_G )-0.5; - double bassRef = GetParameter( kParam_H )-0.5; + double trebleRef = GetParameter( kParam_G )-0.5; + double highmidRef = GetParameter( kParam_H )-0.5; + double lowmidRef = GetParameter( kParam_I )-0.5; + double bassRef = GetParameter( kParam_J )-0.5; double highF = 0.75 + ((trebleRef+trebleRef+trebleRef+highmidRef)*0.125); double bassF = 0.25 + ((lowmidRef+bassRef+bassRef+bassRef)*0.125); double midF = (highF*0.5) + (bassF*0.5) + ((highmidRef+lowmidRef)*0.125); @@ -371,8 +402,8 @@ void ConsoleX2Pre::ConsoleX2PreKernel::Process( const Float32 *inSourceP, highC[biq_freq] = highB[biq_freq] = highA[biq_freq] = fmax(fmin(highA[biq_freq],0.4999),0.00025); double highFreq = pow(highF,3)*20000.0; double omega = 2.0*M_PI*(highFreq/GetSampleRate()); - double K = 2.0-cos(omega); - double highCoef = -sqrt((K*K)-1.0)+K; + double biqK = 2.0-cos(omega); + double highCoef = -sqrt((biqK*biqK)-1.0)+biqK; highA[biq_reso] = 2.24697960 * highQ; highB[biq_reso] = 0.80193774 * highQ; highC[biq_reso] = 0.55495813 * highQ; @@ -381,8 +412,8 @@ void ConsoleX2Pre::ConsoleX2PreKernel::Process( const Float32 *inSourceP, midC[biq_freq] = midB[biq_freq] = midA[biq_freq] = fmax(fmin(midA[biq_freq],0.4999),0.00025); double midFreq = pow(midF,3)*20000.0; omega = 2.0*M_PI*(midFreq/GetSampleRate()); - K = 2.0-cos(omega); - double midCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double midCoef = -sqrt((biqK*biqK)-1.0)+biqK; midA[biq_reso] = 2.24697960 * midQ; midB[biq_reso] = 0.80193774 * midQ; midC[biq_reso] = 0.55495813 * midQ; @@ -391,102 +422,158 @@ void ConsoleX2Pre::ConsoleX2PreKernel::Process( const Float32 *inSourceP, lowC[biq_freq] = lowB[biq_freq] = lowA[biq_freq] = fmax(fmin(lowA[biq_freq],0.4999),0.00025); double lowFreq = pow(bassF,3)*20000.0; omega = 2.0*M_PI*(lowFreq/GetSampleRate()); - K = 2.0-cos(omega); - double lowCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double lowCoef = -sqrt((biqK*biqK)-1.0)+biqK; lowA[biq_reso] = 2.24697960 * lowQ; lowB[biq_reso] = 0.80193774 * lowQ; lowC[biq_reso] = 0.55495813 * lowQ; - K = tan(M_PI * highA[biq_freq]); - double norm = 1.0 / (1.0 + K / highA[biq_reso] + K * K); - highA[biq_a0] = K * K * norm; + biqK = tan(M_PI * highA[biq_freq]); + double norm = 1.0 / (1.0 + biqK / highA[biq_reso] + biqK * biqK); + highA[biq_a0] = biqK * biqK * norm; highA[biq_a1] = 2.0 * highA[biq_a0]; highA[biq_a2] = highA[biq_a0]; - highA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highA[biq_b2] = (1.0 - K / highA[biq_reso] + K * K) * norm; - K = tan(M_PI * highB[biq_freq]); - norm = 1.0 / (1.0 + K / highB[biq_reso] + K * K); - highB[biq_a0] = K * K * norm; + highA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highA[biq_b2] = (1.0 - biqK / highA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highB[biq_freq]); + norm = 1.0 / (1.0 + biqK / highB[biq_reso] + biqK * biqK); + highB[biq_a0] = biqK * biqK * norm; highB[biq_a1] = 2.0 * highB[biq_a0]; highB[biq_a2] = highB[biq_a0]; - highB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highB[biq_b2] = (1.0 - K / highB[biq_reso] + K * K) * norm; - K = tan(M_PI * highC[biq_freq]); - norm = 1.0 / (1.0 + K / highC[biq_reso] + K * K); - highC[biq_a0] = K * K * norm; + highB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highB[biq_b2] = (1.0 - biqK / highB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highC[biq_freq]); + norm = 1.0 / (1.0 + biqK / highC[biq_reso] + biqK * biqK); + highC[biq_a0] = biqK * biqK * norm; highC[biq_a1] = 2.0 * highC[biq_a0]; highC[biq_a2] = highC[biq_a0]; - highC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highC[biq_b2] = (1.0 - K / highC[biq_reso] + K * K) * norm; + highC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highC[biq_b2] = (1.0 - biqK / highC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * midA[biq_freq]); - norm = 1.0 / (1.0 + K / midA[biq_reso] + K * K); - midA[biq_a0] = K * K * norm; + biqK = tan(M_PI * midA[biq_freq]); + norm = 1.0 / (1.0 + biqK / midA[biq_reso] + biqK * biqK); + midA[biq_a0] = biqK * biqK * norm; midA[biq_a1] = 2.0 * midA[biq_a0]; midA[biq_a2] = midA[biq_a0]; - midA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midA[biq_b2] = (1.0 - K / midA[biq_reso] + K * K) * norm; - K = tan(M_PI * midB[biq_freq]); - norm = 1.0 / (1.0 + K / midB[biq_reso] + K * K); - midB[biq_a0] = K * K * norm; + midA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midA[biq_b2] = (1.0 - biqK / midA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midB[biq_freq]); + norm = 1.0 / (1.0 + biqK / midB[biq_reso] + biqK * biqK); + midB[biq_a0] = biqK * biqK * norm; midB[biq_a1] = 2.0 * midB[biq_a0]; midB[biq_a2] = midB[biq_a0]; - midB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midB[biq_b2] = (1.0 - K / midB[biq_reso] + K * K) * norm; - K = tan(M_PI * midC[biq_freq]); - norm = 1.0 / (1.0 + K / midC[biq_reso] + K * K); - midC[biq_a0] = K * K * norm; + midB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midB[biq_b2] = (1.0 - biqK / midB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midC[biq_freq]); + norm = 1.0 / (1.0 + biqK / midC[biq_reso] + biqK * biqK); + midC[biq_a0] = biqK * biqK * norm; midC[biq_a1] = 2.0 * midC[biq_a0]; midC[biq_a2] = midC[biq_a0]; - midC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midC[biq_b2] = (1.0 - K / midC[biq_reso] + K * K) * norm; + midC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midC[biq_b2] = (1.0 - biqK / midC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * lowA[biq_freq]); - norm = 1.0 / (1.0 + K / lowA[biq_reso] + K * K); - lowA[biq_a0] = K * K * norm; + biqK = tan(M_PI * lowA[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowA[biq_reso] + biqK * biqK); + lowA[biq_a0] = biqK * biqK * norm; lowA[biq_a1] = 2.0 * lowA[biq_a0]; lowA[biq_a2] = lowA[biq_a0]; - lowA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowA[biq_b2] = (1.0 - K / lowA[biq_reso] + K * K) * norm; - K = tan(M_PI * lowB[biq_freq]); - norm = 1.0 / (1.0 + K / lowB[biq_reso] + K * K); - lowB[biq_a0] = K * K * norm; + lowA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowA[biq_b2] = (1.0 - biqK / lowA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowB[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowB[biq_reso] + biqK * biqK); + lowB[biq_a0] = biqK * biqK * norm; lowB[biq_a1] = 2.0 * lowB[biq_a0]; lowB[biq_a2] = lowB[biq_a0]; - lowB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowB[biq_b2] = (1.0 - K / lowB[biq_reso] + K * K) * norm; - K = tan(M_PI * lowC[biq_freq]); - norm = 1.0 / (1.0 + K / lowC[biq_reso] + K * K); - lowC[biq_a0] = K * K * norm; + lowB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowB[biq_b2] = (1.0 - biqK / lowB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowC[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowC[biq_reso] + biqK * biqK); + lowC[biq_a0] = biqK * biqK * norm; lowC[biq_a1] = 2.0 * lowC[biq_a0]; lowC[biq_a2] = lowC[biq_a0]; - lowC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowC[biq_b2] = (1.0 - K / lowC[biq_reso] + K * K) * norm; + lowC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowC[biq_b2] = (1.0 - biqK / lowC[biq_reso] + biqK * biqK) * norm; //SmoothEQ2 - double bezCThresh = pow(1.0-GetParameter( kParam_I ), 6.0) * 8.0; - double bezRez = pow(1.0-GetParameter( kParam_J ), 8.0) / overallscale; - double sloRez = pow(1.0-GetParameter( kParam_K ),12.0) / overallscale; + double bezCThresh = pow(1.0-GetParameter( kParam_K ), 6.0) * 8.0; + double bezRez = pow(1.0-GetParameter( kParam_L ), 8.0) / overallscale; + double sloRez = pow(1.0-GetParameter( kParam_M ),12.0) / overallscale; sloRez = fmin(fmax(sloRez-(bezRez*0.5),0.00001),1.0); bezRez = fmin(fmax(bezRez,0.0001),1.0); - double gate = pow(pow(GetParameter( kParam_L ),4.0),sqrt(bezCThresh+1.0)); + double gate = pow(pow(GetParameter( kParam_N ),4.0),sqrt(bezCThresh+1.0)); //Dynamics2 - lFreqA = lFreqB; lFreqB = pow(fmax(GetParameter( kParam_M ),0.002),overallscale); //the lowpass - hFreqA = hFreqB; hFreqB = pow(GetParameter( kParam_N ),overallscale+2.0); //the highpass + lFreqA = lFreqB; lFreqB = pow(fmax(GetParameter( kParam_O ),0.002),overallscale); //the lowpass + hFreqA = hFreqB; hFreqB = pow(GetParameter( kParam_P ),overallscale+2.0); //the highpass //Cabs2 - double moreDiscontinuity = fmax(pow(GetParameter( kParam_O )*0.42,3.0)*overallscale,0.00001); - double moreTapeHack = (GetParameter( kParam_O )*1.4152481)+1.2; - //Discontapeity - - inTrimA = inTrimB; inTrimB = GetParameter( kParam_P )*2.0; + inTrimA = inTrimB; inTrimB = GetParameter( kParam_Q )*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 + double trebleL = inputSampleL; double outSample = (trebleL * highA[biq_a0]) + highA[biq_sL1]; highA[biq_sL1] = (trebleL * highA[biq_a1]) - (outSample * highA[biq_b1]) + highA[biq_sL2]; @@ -592,7 +679,6 @@ void ConsoleX2Pre::ConsoleX2PreKernel::Process( const Float32 *inSourceP, double CBAMax = fmax(CBASL,CBAFL); if (CBAMax > 0.0) CBAMax = 1.0/CBAMax; double CBAFade = ((CBASL*-CBAMax)+(CBAFL*CBAMax)+1.0)*0.5; - if (bezCThresh > 0.0) inputSampleL *= 1.0-(fmin(((CBASL*(1.0-CBAFade))+(CBAFL*CBAFade))*bezCThresh,1.0)); if (bezGate < 1.0 && gate > 0.0) inputSampleL *= bezGate; @@ -637,40 +723,12 @@ void ConsoleX2Pre::ConsoleX2PreKernel::Process( const Float32 *inSourceP, } //Cabs2 - //begin Discontinuity section - inputSampleL *= moreDiscontinuity; - dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5); - dBaPosL = fmin(dBaPosL,1.0); - int dBdly = floor(dBaPosL*dscBuf); - double dBi = (dBaPosL*dscBuf)-dBdly; - inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi; - dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0; - inputSampleL /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleL = fmax(fmin(inputSampleL*moreTapeHack,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.9239; - //end TapeHack section - //Discontapeity - 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 pan section, and smoothed fader gain + //applies smoothed fader gain //begin 32 bit floating point dither int expon; frexpf((float)inputSampleL, &expon); diff --git a/plugins/MacAU/ConsoleX2Pre/ConsoleX2Pre.h b/plugins/MacAU/ConsoleX2Pre/ConsoleX2Pre.h index e97402628..87cb61544 100755 --- a/plugins/MacAU/ConsoleX2Pre/ConsoleX2Pre.h +++ b/plugins/MacAU/ConsoleX2Pre/ConsoleX2Pre.h @@ -54,44 +54,45 @@ #pragma mark ____ConsoleX2Pre Parameters // parameters -static const float kDefaultValue_ParamA = 0.5; -static const float kDefaultValue_ParamB = 0.5; +static const int kDefaultValue_ParamA = 1; +static const float kDefaultValue_ParamB = 0.0; static const float kDefaultValue_ParamC = 0.5; static const float kDefaultValue_ParamD = 0.5; static const float kDefaultValue_ParamE = 0.5; static const float kDefaultValue_ParamF = 0.5; static const float kDefaultValue_ParamG = 0.5; static const float kDefaultValue_ParamH = 0.5; -static const float kDefaultValue_ParamI = 1.0; +static const float kDefaultValue_ParamI = 0.5; static const float kDefaultValue_ParamJ = 0.5; -static const float kDefaultValue_ParamK = 0.5; -static const float kDefaultValue_ParamL = 0.0; -static const float kDefaultValue_ParamM = 1.0; +static const float kDefaultValue_ParamK = 1.0; +static const float kDefaultValue_ParamL = 0.5; +static const float kDefaultValue_ParamM = 0.5; static const float kDefaultValue_ParamN = 0.0; -static const float kDefaultValue_ParamO = 0.0; -static const float kDefaultValue_ParamP = 0.5; +static const float kDefaultValue_ParamO = 1.0; +static const float kDefaultValue_ParamP = 0.0; +static const float kDefaultValue_ParamQ = 0.5; -static CFStringRef kParameterAUnit = CFSTR("eq"); -static CFStringRef kParameterAName = CFSTR("High"); -static CFStringRef kParameterBName = CFSTR("HMid"); -static CFStringRef kParameterCName = CFSTR("LMid"); -static CFStringRef kParameterDName = CFSTR("Bass"); -static CFStringRef kParameterEUnit = CFSTR("freq"); -static CFStringRef kParameterEName = CFSTR("HighF"); -static CFStringRef kParameterFName = CFSTR("HMidF"); -static CFStringRef kParameterGName = CFSTR("LMidF"); -static CFStringRef kParameterHName = CFSTR("BassF"); -static CFStringRef kParameterIUnit = CFSTR("dyn"); -static CFStringRef kParameterIName = CFSTR("Thresh"); -static CFStringRef kParameterJName = CFSTR("Attack"); -static CFStringRef kParameterKName = CFSTR("Release"); -static CFStringRef kParameterLName = CFSTR("Gate"); -static CFStringRef kParameterMUnit = CFSTR("fltr"); -static CFStringRef kParameterMName = CFSTR("Lowpass"); -static CFStringRef kParameterNName = CFSTR("Hipass"); -static CFStringRef kParameterOUnit = CFSTR("+"); -static CFStringRef kParameterOName = CFSTR("More"); -static CFStringRef kParameterPName = CFSTR("Fader"); +static CFStringRef kParameterAName = CFSTR("Trim"); +static CFStringRef kParameterBName = CFSTR("More"); +static CFStringRef kParameterCUnit = CFSTR("eq"); +static CFStringRef kParameterCName = CFSTR("High"); +static CFStringRef kParameterDName = CFSTR("HMid"); +static CFStringRef kParameterEName = CFSTR("LMid"); +static CFStringRef kParameterFName = CFSTR("Bass"); +static CFStringRef kParameterGUnit = CFSTR("freq"); +static CFStringRef kParameterGName = CFSTR("HighF"); +static CFStringRef kParameterHName = CFSTR("HMidF"); +static CFStringRef kParameterIName = CFSTR("LMidF"); +static CFStringRef kParameterJName = CFSTR("BassF"); +static CFStringRef kParameterKUnit = CFSTR("dyn"); +static CFStringRef kParameterKName = CFSTR("Thresh"); +static CFStringRef kParameterLName = CFSTR("Attack"); +static CFStringRef kParameterMName = CFSTR("Release"); +static CFStringRef kParameterNName = CFSTR("Gate"); +static CFStringRef kParameterOUnit = CFSTR("fltr"); +static CFStringRef kParameterOName = CFSTR("Lowpass"); +static CFStringRef kParameterPName = CFSTR("Hipass"); +static CFStringRef kParameterQName = CFSTR("Fader"); enum { kParam_A =0, @@ -110,8 +111,9 @@ enum { kParam_N =13, kParam_O =14, kParam_P =15, + kParam_Q =16, //Add your parameters here... - kNumberOfParameters=16 + kNumberOfParameters=17 }; const int dscBuf = 256; @@ -238,6 +240,16 @@ public: 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; diff --git a/plugins/MacAU/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/christopherjohnson.pbxuser b/plugins/MacAU/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/christopherjohnson.pbxuser index 239488e18..a8111bca7 100755 --- a/plugins/MacAU/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/christopherjohnson.pbxuser +++ b/plugins/MacAU/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/christopherjohnson.pbxuser @@ -12,7 +12,7 @@ PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; PBXFileTableDataSourceColumnWidthsKey = ( 20, - 292, + 167, 20, 48, 43, @@ -51,82 +51,71 @@ PBXFileDataSource_Warnings_ColumnID, ); }; - PBXPerProjectTemplateStateSaveDate = 781916083; - PBXWorkspaceStateSaveDate = 781916083; + PBXPerProjectTemplateStateSaveDate = 783603927; + PBXWorkspaceStateSaveDate = 783603927; }; perUserProjectItems = { - 8B962AF02E9AD2C4000EAC04 /* PBXTextBookmark */ = 8B962AF02E9AD2C4000EAC04 /* PBXTextBookmark */; - 8B962B712E9AD519000EAC04 /* PBXTextBookmark */ = 8B962B712E9AD519000EAC04 /* PBXTextBookmark */; - 8B962B722E9AD519000EAC04 /* PBXTextBookmark */ = 8B962B722E9AD519000EAC04 /* PBXTextBookmark */; - 8B962BEF2E9B17D7000EAC04 /* PBXTextBookmark */ = 8B962BEF2E9B17D7000EAC04 /* PBXTextBookmark */; + 8B692B762EB4D66E00F51381 /* PBXTextBookmark */ = 8B692B762EB4D66E00F51381 /* PBXTextBookmark */; + 8B692BBF2EB4DCD400F51381 /* PBXTextBookmark */ = 8B692BBF2EB4DCD400F51381 /* PBXTextBookmark */; + 8BC5BE482EB1697700031C01 /* PBXTextBookmark */ = 8BC5BE482EB1697700031C01 /* PBXTextBookmark */; 8BD964C72E95AA0700D77499 /* PlistBookmark */ = 8BD964C72E95AA0700D77499 /* PlistBookmark */; }; sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */; userBuildSettings = { }; }; - 8B962AF02E9AD2C4000EAC04 /* PBXTextBookmark */ = { + 8B692B762EB4D66E00F51381 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 8BA05A660720730100365D66 /* ConsoleX2Pre.cpp */; + name = "ConsoleX2Pre.cpp: 698"; + rLen = 0; + rLoc = 31458; + rType = 0; + vrLen = 66; + vrLoc = 3; + }; + 8B692BBF2EB4DCD400F51381 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 8BA05A660720730100365D66 /* ConsoleX2Pre.cpp */; + name = "ConsoleX2Pre.cpp: 698"; + rLen = 0; + rLoc = 31458; + rType = 0; + vrLen = 40; + vrLoc = 29; + }; + 8BA05A660720730100365D66 /* ConsoleX2Pre.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1065, 13572}}"; + sepNavSelRange = "{31458, 0}"; + sepNavVisRange = "{29, 40}"; + sepNavWindowFrame = "{{19, 92}, {1066, 786}}"; + }; + }; + 8BA05A690720730100365D66 /* ConsoleX2PreVersion.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {426, 1116}}"; + sepNavSelRange = "{2927, 0}"; + sepNavVisRange = "{3, 306}"; + sepNavWindowFrame = "{{61, 45}, {1066, 786}}"; + }; + }; + 8BC5BE482EB1697700031C01 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 8BA05A690720730100365D66 /* ConsoleX2PreVersion.h */; name = "ConsoleX2PreVersion.h: 54"; rLen = 0; rLoc = 2927; rType = 0; - vrLen = 134; - vrLoc = 2847; - }; - 8B962B712E9AD519000EAC04 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 8BC6025B073B072D006C4272 /* ConsoleX2Pre.h */; - name = "ConsoleX2Pre.h: 94"; - rLen = 0; - rLoc = 4648; - rType = 0; - vrLen = 54; - vrLoc = 4648; - }; - 8B962B722E9AD519000EAC04 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 8BA05A660720730100365D66 /* ConsoleX2Pre.cpp */; - name = "ConsoleX2Pre.cpp: 612"; - rLen = 0; - rLoc = 27730; - rType = 0; - vrLen = 66; - vrLoc = 27634; - }; - 8B962BEF2E9B17D7000EAC04 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 8BA05A660720730100365D66 /* ConsoleX2Pre.cpp */; - name = "ConsoleX2Pre.cpp: 612"; - rLen = 0; - rLoc = 27730; - rType = 0; - vrLen = 20; - vrLoc = 27680; - }; - 8BA05A660720730100365D66 /* ConsoleX2Pre.cpp */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1065, 12510}}"; - sepNavSelRange = "{27730, 0}"; - sepNavVisRange = "{27680, 20}"; - sepNavWindowFrame = "{{374, 88}, {1066, 786}}"; - }; - }; - 8BA05A690720730100365D66 /* ConsoleX2PreVersion.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {696, 1296}}"; - sepNavSelRange = "{2927, 0}"; - sepNavVisRange = "{2847, 134}"; - sepNavWindowFrame = "{{61, 45}, {1066, 786}}"; - }; + vrLen = 306; + vrLoc = 3; }; 8BC6025B073B072D006C4272 /* ConsoleX2Pre.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {498, 4572}}"; - sepNavSelRange = "{4648, 0}"; - sepNavVisRange = "{4648, 54}"; - sepNavWindowFrame = "{{374, 63}, {1066, 786}}"; + sepNavIntBoundsRect = "{{0, 0}, {1146, 4734}}"; + sepNavSelRange = "{8318, 0}"; + sepNavVisRange = "{3264, 1603}"; + sepNavWindowFrame = "{{7, 38}, {657, 832}}"; }; }; 8BD3CCB8148830B20062E48C /* Source Control */ = { diff --git a/plugins/MacAU/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacAU/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/christopherjohnson.perspectivev3 index dc6068c70..4f1aebcde 100755 --- a/plugins/MacAU/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/christopherjohnson.perspectivev3 +++ b/plugins/MacAU/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/christopherjohnson.perspectivev3 @@ -225,8 +225,8 @@ PerspectiveWidths - 841 - 841 + 716 + 716 Perspectives @@ -302,14 +302,14 @@ PBXSmartGroupTreeModuleOutlineStateSelectionKey - 4 + 3 2 1 0 PBXSmartGroupTreeModuleOutlineStateVisibleRectKey - {{0, 0}, {288, 595}} + {{0, 0}, {288, 452}} PBXTopSmartGroupGIDs @@ -319,14 +319,14 @@ GeometryConfiguration Frame - {{0, 0}, {305, 613}} + {{0, 0}, {305, 470}} GroupTreeTableConfiguration MainColumn 288 RubberWindowFrame - 599 187 841 654 0 0 1440 878 + 25 209 716 511 0 0 1440 878 Module PBXSmartGroupTreeModule @@ -354,13 +354,12 @@ _historyCapacity 0 bookmark - 8B962BEF2E9B17D7000EAC04 + 8B692BBF2EB4DCD400F51381 history 8BD964C72E95AA0700D77499 - 8B962AF02E9AD2C4000EAC04 - 8B962B712E9AD519000EAC04 - 8B962B722E9AD519000EAC04 + 8BC5BE482EB1697700031C01 + 8B692B762EB4D66E00F51381 SplitCount @@ -374,18 +373,18 @@ GeometryConfiguration Frame - {{0, 0}, {531, 49}} + {{0, 0}, {406, 94}} RubberWindowFrame - 599 187 841 654 0 0 1440 878 + 25 209 716 511 0 0 1440 878 Module PBXNavigatorGroup Proportion - 49pt + 94pt Proportion - 559pt + 371pt Tabs @@ -399,9 +398,9 @@ GeometryConfiguration Frame - {{10, 27}, {531, 532}} + {{10, 27}, {406, 344}} RubberWindowFrame - 599 187 841 654 0 0 1440 878 + 25 209 716 511 0 0 1440 878 Module XCDetailModule @@ -455,7 +454,7 @@ GeometryConfiguration Frame - {{10, 27}, {531, 445}} + {{10, 27}, {406, 438}} Module PBXBuildResultsModule @@ -464,7 +463,7 @@ Proportion - 531pt + 406pt Name @@ -483,11 +482,11 @@ TableOfContents - 8B962BF02E9B17D7000EAC04 + 8B692B8A2EB4D8DA00F51381 1CA23ED40692098700951B8B - 8B962BF12E9B17D7000EAC04 + 8B692B8B2EB4D8DA00F51381 8BD7274A1D46E5A5000176F0 - 8B962BF22E9B17D7000EAC04 + 8B692B8C2EB4D8DA00F51381 1CA23EDF0692099D00951B8B 1CA23EE00692099D00951B8B 1CA23EE10692099D00951B8B @@ -660,7 +659,7 @@ StatusbarIsVisible TimeStamp - 781916119.01407897 + 783604948.76098895 ToolbarConfigUserDefaultsMinorVersion 2 ToolbarDisplayMode @@ -677,11 +676,10 @@ 5 WindowOrderList - 8B962BF32E9B17D7000EAC04 /Users/christopherjohnson/Desktop/airwindows/plugins/MacAU/ConsoleX2Pre/ConsoleX2Pre.xcodeproj WindowString - 599 187 841 654 0 0 1440 878 + 25 209 716 511 0 0 1440 878 WindowToolsV3 diff --git a/plugins/MacAU/X2Buss/English.lproj/InfoPlist.strings b/plugins/MacAU/X2Buss/English.lproj/InfoPlist.strings new file mode 100755 index 000000000..3dd60f70d Binary files /dev/null and b/plugins/MacAU/X2Buss/English.lproj/InfoPlist.strings differ diff --git a/plugins/MacAU/X2Buss/Info.plist b/plugins/MacAU/X2Buss/Info.plist new file mode 100755 index 000000000..12f0517b5 --- /dev/null +++ b/plugins/MacAU/X2Buss/Info.plist @@ -0,0 +1,28 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + + CFBundleIdentifier + com.airwindows.audiounit.${PRODUCT_NAME:identifier} + CFBundleName + ${PROJECTNAMEASIDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0 + CFBundleSignature + Dthr + CFBundleVersion + 1.0 + CSResourcesFileMapped + + + diff --git a/plugins/MacAU/X2Buss/StarterAU_Prefix.pch b/plugins/MacAU/X2Buss/StarterAU_Prefix.pch new file mode 100755 index 000000000..c03b5f684 --- /dev/null +++ b/plugins/MacAU/X2Buss/StarterAU_Prefix.pch @@ -0,0 +1,5 @@ +// +// Prefix header for all source files of the '«PROJECTNAMEASIDENTIFIER»' target in the '«PROJECTNAMEASIDENTIFIER»' project. +// + +#include diff --git a/plugins/MacAU/X2Buss/X2Buss.cpp b/plugins/MacAU/X2Buss/X2Buss.cpp new file mode 100755 index 000000000..3298b90da --- /dev/null +++ b/plugins/MacAU/X2Buss/X2Buss.cpp @@ -0,0 +1,751 @@ +/* +* File: X2Buss.cpp +* +* Version: 1.0 +* +* Created: 10/31/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. +* +*/ +/*============================================================================= + X2Buss.cpp + +=============================================================================*/ +#include "X2Buss.h" + + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +COMPONENT_ENTRY(X2Buss) + + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// X2Buss::X2Buss +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +X2Buss::X2Buss(AudioUnit component) + : AUEffectBase(component) +{ + CreateElements(); + Globals()->UseIndexedParameters(kNumberOfParameters); + SetParameter(kParam_A, kDefaultValue_ParamA ); + SetParameter(kParam_B, kDefaultValue_ParamB ); + SetParameter(kParam_C, kDefaultValue_ParamC ); + SetParameter(kParam_D, kDefaultValue_ParamD ); + SetParameter(kParam_E, kDefaultValue_ParamE ); + SetParameter(kParam_F, kDefaultValue_ParamF ); + SetParameter(kParam_G, kDefaultValue_ParamG ); + SetParameter(kParam_H, kDefaultValue_ParamH ); + SetParameter(kParam_I, kDefaultValue_ParamI ); + SetParameter(kParam_J, kDefaultValue_ParamJ ); + +#if AU_DEBUG_DISPATCHER + mDebugDispatcher = new AUDebugDispatcher (this); +#endif + +} + + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// X2Buss::GetParameterValueStrings +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +ComponentResult X2Buss::GetParameterValueStrings(AudioUnitScope inScope, + AudioUnitParameterID inParameterID, + CFArrayRef * outStrings) +{ + + return kAudioUnitErr_InvalidProperty; +} + + + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// X2Buss::GetParameterInfo +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +ComponentResult X2Buss::GetParameterInfo(AudioUnitScope inScope, + AudioUnitParameterID inParameterID, + AudioUnitParameterInfo &outParameterInfo ) +{ + ComponentResult result = noErr; + + outParameterInfo.flags = kAudioUnitParameterFlag_IsWritable + | kAudioUnitParameterFlag_IsReadable; + + if (inScope == kAudioUnitScope_Global) { + switch(inParameterID) + { + case kParam_A: + AUBase::FillInParameterName (outParameterInfo, kParameterAName, false); + outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit; + outParameterInfo.unitName = kParameterAUnit; + outParameterInfo.minValue = 0.0; + outParameterInfo.maxValue = 1.0; + outParameterInfo.defaultValue = kDefaultValue_ParamA; + break; + case kParam_B: + AUBase::FillInParameterName (outParameterInfo, kParameterBName, false); + outParameterInfo.unit = kAudioUnitParameterUnit_Generic; + outParameterInfo.minValue = 0.0; + outParameterInfo.maxValue = 1.0; + outParameterInfo.defaultValue = kDefaultValue_ParamB; + break; + case kParam_C: + AUBase::FillInParameterName (outParameterInfo, kParameterCName, false); + outParameterInfo.unit = kAudioUnitParameterUnit_Generic; + outParameterInfo.minValue = 0.0; + outParameterInfo.maxValue = 1.0; + outParameterInfo.defaultValue = kDefaultValue_ParamC; + break; + case kParam_D: + AUBase::FillInParameterName (outParameterInfo, kParameterDName, false); + outParameterInfo.unit = kAudioUnitParameterUnit_Generic; + outParameterInfo.minValue = 0.0; + outParameterInfo.maxValue = 1.0; + outParameterInfo.defaultValue = kDefaultValue_ParamD; + break; + case kParam_E: + AUBase::FillInParameterName (outParameterInfo, kParameterEName, false); + outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit; + outParameterInfo.unitName = kParameterEUnit; + outParameterInfo.minValue = 0.0; + outParameterInfo.maxValue = 1.0; + outParameterInfo.defaultValue = kDefaultValue_ParamE; + break; + case kParam_F: + AUBase::FillInParameterName (outParameterInfo, kParameterFName, false); + outParameterInfo.unit = kAudioUnitParameterUnit_Generic; + outParameterInfo.minValue = 0.0; + outParameterInfo.maxValue = 1.0; + outParameterInfo.defaultValue = kDefaultValue_ParamF; + break; + case kParam_G: + AUBase::FillInParameterName (outParameterInfo, kParameterGName, false); + outParameterInfo.unit = kAudioUnitParameterUnit_Generic; + outParameterInfo.minValue = 0.0; + outParameterInfo.maxValue = 1.0; + outParameterInfo.defaultValue = kDefaultValue_ParamG; + break; + case kParam_H: + AUBase::FillInParameterName (outParameterInfo, kParameterHName, false); + outParameterInfo.unit = kAudioUnitParameterUnit_Generic; + outParameterInfo.minValue = 0.0; + outParameterInfo.maxValue = 1.0; + outParameterInfo.defaultValue = kDefaultValue_ParamH; + break; + case kParam_I: + AUBase::FillInParameterName (outParameterInfo, kParameterIName, false); + outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit; + outParameterInfo.unitName = kParameterIUnit; + outParameterInfo.minValue = 0.0; + outParameterInfo.maxValue = 1.0; + outParameterInfo.defaultValue = kDefaultValue_ParamI; + break; + case kParam_J: + AUBase::FillInParameterName (outParameterInfo, kParameterJName, false); + outParameterInfo.unit = kAudioUnitParameterUnit_Generic; + outParameterInfo.minValue = 0.0; + outParameterInfo.maxValue = 1.0; + outParameterInfo.defaultValue = kDefaultValue_ParamJ; + break; + default: + result = kAudioUnitErr_InvalidParameter; + break; + } + } else { + result = kAudioUnitErr_InvalidParameter; + } + + + + return result; +} + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// X2Buss::GetPropertyInfo +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +ComponentResult X2Buss::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 X2Buss::SupportedNumChannels(const AUChannelInfo ** outInfo) +{ + if (outInfo != NULL) + { + static AUChannelInfo info; + info.inChannels = 2; + info.outChannels = 2; + *outInfo = &info; + } + + return 1; +} + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// X2Buss::GetProperty +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +ComponentResult X2Buss::GetProperty( AudioUnitPropertyID inID, + AudioUnitScope inScope, + AudioUnitElement inElement, + void * outData ) +{ + return AUEffectBase::GetProperty (inID, inScope, inElement, outData); +} + +// X2Buss::Initialize +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +ComponentResult X2Buss::Initialize() +{ + ComponentResult result = AUEffectBase::Initialize(); + if (result == noErr) + Reset(kAudioUnitScope_Global, 0); + return result; +} + +#pragma mark ____X2BussEffectKernel + + + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// X2Buss::X2BussKernel::Reset() +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +ComponentResult X2Buss::Reset(AudioUnitScope inScope, AudioUnitElement inElement) +{ + for (int x = 0; x < biq_total; x++) { + highA[x] = 0.0; + highB[x] = 0.0; + highC[x] = 0.0; + midA[x] = 0.0; + midB[x] = 0.0; + midC[x] = 0.0; + lowA[x] = 0.0; + lowB[x] = 0.0; + lowC[x] = 0.0; + } + highLIIR = 0.0; + highRIIR = 0.0; + midLIIR = 0.0; + midRIIR = 0.0; + lowLIIR = 0.0; + lowRIIR = 0.0; + //SmoothEQ2 + + for (int x = 0; x < bez_total; x++) {bezCompF[x] = 0.0;bezCompS[x] = 0.0;} + bezCompF[bez_cycle] = 1.0; bezMaxF = 0.0; + bezCompS[bez_cycle] = 1.0; + //Dynamics2 + + 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 + + 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; +} + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// X2Buss::ProcessBufferLists +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +OSStatus X2Buss::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_A )-0.5)*2.0; + trebleGain = 1.0+(trebleGain*fabs(trebleGain)*fabs(trebleGain)); + double highmidGain = (GetParameter( kParam_B )-0.5)*2.0; + highmidGain = 1.0+(highmidGain*fabs(highmidGain)*fabs(highmidGain)); + double lowmidGain = (GetParameter( kParam_C )-0.5)*2.0; + lowmidGain = 1.0+(lowmidGain*fabs(lowmidGain)*fabs(lowmidGain)); + double bassGain = (GetParameter( kParam_D )-0.5)*2.0; + bassGain = 1.0+(bassGain*fabs(bassGain)*fabs(bassGain)); + + double trebleRef = GetParameter( kParam_E )-0.5; + double highmidRef = GetParameter( kParam_F )-0.5; + double lowmidRef = GetParameter( kParam_G )-0.5; + double bassRef = GetParameter( kParam_H )-0.5; + double highF = 0.75 + ((trebleRef+trebleRef+trebleRef+highmidRef)*0.125); + double bassF = 0.25 + ((lowmidRef+bassRef+bassRef+bassRef)*0.125); + double midF = (highF*0.5) + (bassF*0.5) + ((highmidRef+lowmidRef)*0.125); + + double highQ = fmax(fmin(1.0+(highmidRef-trebleRef),4.0),0.125); + double midQ = fmax(fmin(1.0+(lowmidRef-highmidRef),4.0),0.125); + double lowQ = fmax(fmin(1.0+(bassRef-lowmidRef),4.0),0.125); + + highA[biq_freq] = ((pow(highF,3)*20000.0)/GetSampleRate()); + highC[biq_freq] = highB[biq_freq] = highA[biq_freq] = fmax(fmin(highA[biq_freq],0.4999),0.00025); + double highFreq = pow(highF,3)*20000.0; + double omega = 2.0*M_PI*(highFreq/GetSampleRate()); + double biqK = 2.0-cos(omega); + double highCoef = -sqrt((biqK*biqK)-1.0)+biqK; + highA[biq_reso] = 2.24697960 * highQ; + highB[biq_reso] = 0.80193774 * highQ; + highC[biq_reso] = 0.55495813 * highQ; + + midA[biq_freq] = ((pow(midF,3)*20000.0)/GetSampleRate()); + midC[biq_freq] = midB[biq_freq] = midA[biq_freq] = fmax(fmin(midA[biq_freq],0.4999),0.00025); + double midFreq = pow(midF,3)*20000.0; + omega = 2.0*M_PI*(midFreq/GetSampleRate()); + biqK = 2.0-cos(omega); + double midCoef = -sqrt((biqK*biqK)-1.0)+biqK; + midA[biq_reso] = 2.24697960 * midQ; + midB[biq_reso] = 0.80193774 * midQ; + midC[biq_reso] = 0.55495813 * midQ; + + lowA[biq_freq] = ((pow(bassF,3)*20000.0)/GetSampleRate()); + lowC[biq_freq] = lowB[biq_freq] = lowA[biq_freq] = fmax(fmin(lowA[biq_freq],0.4999),0.00025); + double lowFreq = pow(bassF,3)*20000.0; + omega = 2.0*M_PI*(lowFreq/GetSampleRate()); + biqK = 2.0-cos(omega); + double lowCoef = -sqrt((biqK*biqK)-1.0)+biqK; + lowA[biq_reso] = 2.24697960 * lowQ; + lowB[biq_reso] = 0.80193774 * lowQ; + lowC[biq_reso] = 0.55495813 * lowQ; + + biqK = tan(M_PI * highA[biq_freq]); + double norm = 1.0 / (1.0 + biqK / highA[biq_reso] + biqK * biqK); + highA[biq_a0] = biqK * biqK * norm; + highA[biq_a1] = 2.0 * highA[biq_a0]; + highA[biq_a2] = highA[biq_a0]; + highA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highA[biq_b2] = (1.0 - biqK / highA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highB[biq_freq]); + norm = 1.0 / (1.0 + biqK / highB[biq_reso] + biqK * biqK); + highB[biq_a0] = biqK * biqK * norm; + highB[biq_a1] = 2.0 * highB[biq_a0]; + highB[biq_a2] = highB[biq_a0]; + highB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highB[biq_b2] = (1.0 - biqK / highB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highC[biq_freq]); + norm = 1.0 / (1.0 + biqK / highC[biq_reso] + biqK * biqK); + highC[biq_a0] = biqK * biqK * norm; + highC[biq_a1] = 2.0 * highC[biq_a0]; + highC[biq_a2] = highC[biq_a0]; + highC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highC[biq_b2] = (1.0 - biqK / highC[biq_reso] + biqK * biqK) * norm; + + biqK = tan(M_PI * midA[biq_freq]); + norm = 1.0 / (1.0 + biqK / midA[biq_reso] + biqK * biqK); + midA[biq_a0] = biqK * biqK * norm; + midA[biq_a1] = 2.0 * midA[biq_a0]; + midA[biq_a2] = midA[biq_a0]; + midA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midA[biq_b2] = (1.0 - biqK / midA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midB[biq_freq]); + norm = 1.0 / (1.0 + biqK / midB[biq_reso] + biqK * biqK); + midB[biq_a0] = biqK * biqK * norm; + midB[biq_a1] = 2.0 * midB[biq_a0]; + midB[biq_a2] = midB[biq_a0]; + midB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midB[biq_b2] = (1.0 - biqK / midB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midC[biq_freq]); + norm = 1.0 / (1.0 + biqK / midC[biq_reso] + biqK * biqK); + midC[biq_a0] = biqK * biqK * norm; + midC[biq_a1] = 2.0 * midC[biq_a0]; + midC[biq_a2] = midC[biq_a0]; + midC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midC[biq_b2] = (1.0 - biqK / midC[biq_reso] + biqK * biqK) * norm; + + biqK = tan(M_PI * lowA[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowA[biq_reso] + biqK * biqK); + lowA[biq_a0] = biqK * biqK * norm; + lowA[biq_a1] = 2.0 * lowA[biq_a0]; + lowA[biq_a2] = lowA[biq_a0]; + lowA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowA[biq_b2] = (1.0 - biqK / lowA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowB[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowB[biq_reso] + biqK * biqK); + lowB[biq_a0] = biqK * biqK * norm; + lowB[biq_a1] = 2.0 * lowB[biq_a0]; + lowB[biq_a2] = lowB[biq_a0]; + lowB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowB[biq_b2] = (1.0 - biqK / lowB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowC[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowC[biq_reso] + biqK * biqK); + lowC[biq_a0] = biqK * biqK * norm; + lowC[biq_a1] = 2.0 * lowC[biq_a0]; + lowC[biq_a2] = lowC[biq_a0]; + lowC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowC[biq_b2] = (1.0 - biqK / lowC[biq_reso] + biqK * biqK) * norm; + //SmoothEQ2 + + double bezCThresh = pow(1.0-GetParameter( kParam_I ), 6.0) * 8.0; + double bezRez = pow(1.0-GetParameter( kParam_I ), 12.360679774997898) / overallscale; + double sloRez = pow(1.0-GetParameter( kParam_I ),10.0) / overallscale; + sloRez = fmin(fmax(sloRez,0.00001),1.0); + bezRez = fmin(fmax(bezRez,0.00001),1.0); + //Dynamics2 + + inTrimA = inTrimB; inTrimB = GetParameter( kParam_J )*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; + + 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)); + + double trebleL = inputSampleL; + double outSample = (trebleL * highA[biq_a0]) + highA[biq_sL1]; + highA[biq_sL1] = (trebleL * highA[biq_a1]) - (outSample * highA[biq_b1]) + highA[biq_sL2]; + highA[biq_sL2] = (trebleL * highA[biq_a2]) - (outSample * highA[biq_b2]); + double highmidL = outSample; trebleL -= highmidL; + + outSample = (highmidL * midA[biq_a0]) + midA[biq_sL1]; + midA[biq_sL1] = (highmidL * midA[biq_a1]) - (outSample * midA[biq_b1]) + midA[biq_sL2]; + midA[biq_sL2] = (highmidL * midA[biq_a2]) - (outSample * midA[biq_b2]); + double lowmidL = outSample; highmidL -= lowmidL; + + outSample = (lowmidL * lowA[biq_a0]) + lowA[biq_sL1]; + lowA[biq_sL1] = (lowmidL * lowA[biq_a1]) - (outSample * lowA[biq_b1]) + lowA[biq_sL2]; + lowA[biq_sL2] = (lowmidL * lowA[biq_a2]) - (outSample * lowA[biq_b2]); + double bassL = outSample; lowmidL -= bassL; + + trebleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain); + //first stage of three crossovers + + outSample = (trebleL * highB[biq_a0]) + highB[biq_sL1]; + highB[biq_sL1] = (trebleL * highB[biq_a1]) - (outSample * highB[biq_b1]) + highB[biq_sL2]; + highB[biq_sL2] = (trebleL * highB[biq_a2]) - (outSample * highB[biq_b2]); + highmidL = outSample; trebleL -= highmidL; + + outSample = (highmidL * midB[biq_a0]) + midB[biq_sL1]; + midB[biq_sL1] = (highmidL * midB[biq_a1]) - (outSample * midB[biq_b1]) + midB[biq_sL2]; + midB[biq_sL2] = (highmidL * midB[biq_a2]) - (outSample * midB[biq_b2]); + lowmidL = outSample; highmidL -= lowmidL; + + outSample = (lowmidL * lowB[biq_a0]) + lowB[biq_sL1]; + lowB[biq_sL1] = (lowmidL * lowB[biq_a1]) - (outSample * lowB[biq_b1]) + lowB[biq_sL2]; + lowB[biq_sL2] = (lowmidL * lowB[biq_a2]) - (outSample * lowB[biq_b2]); + bassL = outSample; lowmidL -= bassL; + + trebleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain); + //second stage of three crossovers + + outSample = (trebleL * highC[biq_a0]) + highC[biq_sL1]; + highC[biq_sL1] = (trebleL * highC[biq_a1]) - (outSample * highC[biq_b1]) + highC[biq_sL2]; + highC[biq_sL2] = (trebleL * highC[biq_a2]) - (outSample * highC[biq_b2]); + highmidL = outSample; trebleL -= highmidL; + + outSample = (highmidL * midC[biq_a0]) + midC[biq_sL1]; + midC[biq_sL1] = (highmidL * midC[biq_a1]) - (outSample * midC[biq_b1]) + midC[biq_sL2]; + midC[biq_sL2] = (highmidL * midC[biq_a2]) - (outSample * midC[biq_b2]); + lowmidL = outSample; highmidL -= lowmidL; + + outSample = (lowmidL * lowC[biq_a0]) + lowC[biq_sL1]; + lowC[biq_sL1] = (lowmidL * lowC[biq_a1]) - (outSample * lowC[biq_b1]) + lowC[biq_sL2]; + lowC[biq_sL2] = (lowmidL * lowC[biq_a2]) - (outSample * lowC[biq_b2]); + bassL = outSample; lowmidL -= bassL; + + trebleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain); + //third stage of three crossovers + + highLIIR = (highLIIR*highCoef) + (trebleL*(1.0-highCoef)); + highmidL = highLIIR; trebleL -= highmidL; + + midLIIR = (midLIIR*midCoef) + (highmidL*(1.0-midCoef)); + lowmidL = midLIIR; highmidL -= lowmidL; + + lowLIIR = (lowLIIR*lowCoef) + (lowmidL*(1.0-lowCoef)); + bassL = lowLIIR; lowmidL -= bassL; + + inputSampleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain); + //fourth stage of three crossovers is the exponential filters + + + double trebleR = inputSampleR; + outSample = (trebleR * highA[biq_a0]) + highA[biq_sR1]; + highA[biq_sR1] = (trebleR * highA[biq_a1]) - (outSample * highA[biq_b1]) + highA[biq_sR2]; + highA[biq_sR2] = (trebleR * highA[biq_a2]) - (outSample * highA[biq_b2]); + double highmidR = outSample; trebleR -= highmidR; + + outSample = (highmidR * midA[biq_a0]) + midA[biq_sR1]; + midA[biq_sR1] = (highmidR * midA[biq_a1]) - (outSample * midA[biq_b1]) + midA[biq_sR2]; + midA[biq_sR2] = (highmidR * midA[biq_a2]) - (outSample * midA[biq_b2]); + double lowmidR = outSample; highmidR -= lowmidR; + + outSample = (lowmidR * lowA[biq_a0]) + lowA[biq_sR1]; + lowA[biq_sR1] = (lowmidR * lowA[biq_a1]) - (outSample * lowA[biq_b1]) + lowA[biq_sR2]; + lowA[biq_sR2] = (lowmidR * lowA[biq_a2]) - (outSample * lowA[biq_b2]); + double bassR = outSample; lowmidR -= bassR; + + trebleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain); + //first stage of three crossovers + + outSample = (trebleR * highB[biq_a0]) + highB[biq_sR1]; + highB[biq_sR1] = (trebleR * highB[biq_a1]) - (outSample * highB[biq_b1]) + highB[biq_sR2]; + highB[biq_sR2] = (trebleR * highB[biq_a2]) - (outSample * highB[biq_b2]); + highmidR = outSample; trebleR -= highmidR; + + outSample = (highmidR * midB[biq_a0]) + midB[biq_sR1]; + midB[biq_sR1] = (highmidR * midB[biq_a1]) - (outSample * midB[biq_b1]) + midB[biq_sR2]; + midB[biq_sR2] = (highmidR * midB[biq_a2]) - (outSample * midB[biq_b2]); + lowmidR = outSample; highmidR -= lowmidR; + + outSample = (lowmidR * lowB[biq_a0]) + lowB[biq_sR1]; + lowB[biq_sR1] = (lowmidR * lowB[biq_a1]) - (outSample * lowB[biq_b1]) + lowB[biq_sR2]; + lowB[biq_sR2] = (lowmidR * lowB[biq_a2]) - (outSample * lowB[biq_b2]); + bassR = outSample; lowmidR -= bassR; + + trebleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain); + //second stage of three crossovers + + outSample = (trebleR * highC[biq_a0]) + highC[biq_sR1]; + highC[biq_sR1] = (trebleR * highC[biq_a1]) - (outSample * highC[biq_b1]) + highC[biq_sR2]; + highC[biq_sR2] = (trebleR * highC[biq_a2]) - (outSample * highC[biq_b2]); + highmidR = outSample; trebleR -= highmidR; + + outSample = (highmidR * midC[biq_a0]) + midC[biq_sR1]; + midC[biq_sR1] = (highmidR * midC[biq_a1]) - (outSample * midC[biq_b1]) + midC[biq_sR2]; + midC[biq_sR2] = (highmidR * midC[biq_a2]) - (outSample * midC[biq_b2]); + lowmidR = outSample; highmidR -= lowmidR; + + outSample = (lowmidR * lowC[biq_a0]) + lowC[biq_sR1]; + lowC[biq_sR1] = (lowmidR * lowC[biq_a1]) - (outSample * lowC[biq_b1]) + lowC[biq_sR2]; + lowC[biq_sR2] = (lowmidR * lowC[biq_a2]) - (outSample * lowC[biq_b2]); + bassR = outSample; lowmidR -= bassR; + + trebleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain); + //third stage of three crossovers + + highRIIR = (highRIIR*highCoef) + (trebleR*(1.0-highCoef)); + highmidR = highRIIR; trebleR -= highmidR; + + midRIIR = (midRIIR*midCoef) + (highmidR*(1.0-midCoef)); + lowmidR = midRIIR; highmidR -= lowmidR; + + lowRIIR = (lowRIIR*lowCoef) + (lowmidR*(1.0-lowCoef)); + bassR = lowRIIR; lowmidR -= bassR; + + inputSampleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain); + //fourth stage of three crossovers is the exponential filters + //SmoothEQ2 + + if (bezCThresh > 0.0) { + inputSampleL *= ((bezCThresh*0.5)+1.0); + inputSampleR *= ((bezCThresh*0.5)+1.0); + } + + bezCompF[bez_cycle] += bezRez; + bezCompF[bez_SampL] += (fabs(inputSampleL) * bezRez); + bezCompF[bez_SampR] += (fabs(inputSampleR) * bezRez); + bezMaxF = fmax(bezMaxF,fmax(fabs(inputSampleL),fabs(inputSampleR))); + + if (bezCompF[bez_cycle] > 1.0) { + bezCompF[bez_cycle] -= 1.0; + bezCompF[bez_CL] = bezCompF[bez_BL]; + bezCompF[bez_BL] = bezCompF[bez_AL]; + bezCompF[bez_AL] = bezCompF[bez_SampL]; + bezCompF[bez_SampL] = 0.0; + bezCompF[bez_CR] = bezCompF[bez_BR]; + bezCompF[bez_BR] = bezCompF[bez_AR]; + bezCompF[bez_AR] = bezCompF[bez_SampR]; + bezCompF[bez_SampR] = 0.0; + bezMaxF = 0.0; + } + bezCompS[bez_cycle] += sloRez; + bezCompS[bez_SampL] += (fabs(inputSampleL) * sloRez); //note: SampL is a control voltage + bezCompS[bez_SampR] += (fabs(inputSampleR) * sloRez); //note: SampR is a control voltage + if (bezCompS[bez_cycle] > 1.0) { + bezCompS[bez_cycle] -= 1.0; + bezCompS[bez_CL] = bezCompS[bez_BL]; + bezCompS[bez_BL] = bezCompS[bez_AL]; + bezCompS[bez_AL] = bezCompS[bez_SampL]; + bezCompS[bez_SampL] = 0.0; + bezCompS[bez_CR] = bezCompS[bez_BR]; + bezCompS[bez_BR] = bezCompS[bez_AR]; + bezCompS[bez_AR] = bezCompS[bez_SampR]; + bezCompS[bez_SampR] = 0.0; + } + double CBFL = (bezCompF[bez_CL]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_BL]*bezCompF[bez_cycle]); + double BAFL = (bezCompF[bez_BL]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_AL]*bezCompF[bez_cycle]); + double CBAFL = (bezCompF[bez_BL]+(CBFL*(1.0-bezCompF[bez_cycle]))+(BAFL*bezCompF[bez_cycle]))*0.5; + double CBSL = (bezCompS[bez_CL]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_BL]*bezCompS[bez_cycle]); + double BASL = (bezCompS[bez_BL]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_AL]*bezCompS[bez_cycle]); + double CBASL = (bezCompS[bez_BL]+(CBSL*(1.0-bezCompS[bez_cycle]))+(BASL*bezCompS[bez_cycle]))*0.5; + double CBAMax = fmax(CBASL,CBAFL); if (CBAMax > 0.0) CBAMax = 1.0/CBAMax; + double CBAFade = ((CBASL*-CBAMax)+(CBAFL*CBAMax)+1.0)*0.5; + if (bezCThresh > 0.0) inputSampleL *= 1.0-(fmin(((CBASL*(1.0-CBAFade))+(CBAFL*CBAFade))*bezCThresh,1.0)); + + double CBFR = (bezCompF[bez_CR]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_BR]*bezCompF[bez_cycle]); + double BAFR = (bezCompF[bez_BR]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_AR]*bezCompF[bez_cycle]); + double CBAFR = (bezCompF[bez_BR]+(CBFR*(1.0-bezCompF[bez_cycle]))+(BAFR*bezCompF[bez_cycle]))*0.5; + double CBSR = (bezCompS[bez_CR]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_BR]*bezCompS[bez_cycle]); + double BASR = (bezCompS[bez_BR]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_AR]*bezCompS[bez_cycle]); + double CBASR = (bezCompS[bez_BR]+(CBSR*(1.0-bezCompS[bez_cycle]))+(BASR*bezCompS[bez_cycle]))*0.5; + CBAMax = fmax(CBASR,CBAFR); if (CBAMax > 0.0) CBAMax = 1.0/CBAMax; + CBAFade = ((CBASR*-CBAMax)+(CBAFR*CBAMax)+1.0)*0.5; + if (bezCThresh > 0.0) inputSampleR *= 1.0-(fmin(((CBASR*(1.0-CBAFade))+(CBAFR*CBAFade))*bezCThresh,1.0)); + //Dynamics2 + + const double temp = (double)nSampleFrames/inFramesToProcess; + 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 * gain; + inputSampleR = inputSampleR * 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 + //Discontapeity + + //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; +} + diff --git a/plugins/MacAU/X2Buss/X2Buss.exp b/plugins/MacAU/X2Buss/X2Buss.exp new file mode 100755 index 000000000..6d0a7a08c --- /dev/null +++ b/plugins/MacAU/X2Buss/X2Buss.exp @@ -0,0 +1 @@ +_X2BussEntry diff --git a/plugins/MacAU/X2Buss/X2Buss.h b/plugins/MacAU/X2Buss/X2Buss.h new file mode 100755 index 000000000..44c66a82d --- /dev/null +++ b/plugins/MacAU/X2Buss/X2Buss.h @@ -0,0 +1,222 @@ +/* +* File: X2Buss.h +* +* Version: 1.0 +* +* Created: 10/31/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 "X2BussVersion.h" + +#if AU_DEBUG_DISPATCHER + #include "AUDebugDispatcher.h" +#endif + + +#ifndef __X2Buss_h__ +#define __X2Buss_h__ + + +#pragma mark ____X2Buss Parameters + +// parameters +static const float kDefaultValue_ParamA = 0.5; +static const float kDefaultValue_ParamB = 0.5; +static const float kDefaultValue_ParamC = 0.5; +static const float kDefaultValue_ParamD = 0.5; +static const float kDefaultValue_ParamE = 0.5; +static const float kDefaultValue_ParamF = 0.5; +static const float kDefaultValue_ParamG = 0.5; +static const float kDefaultValue_ParamH = 0.5; +static const float kDefaultValue_ParamI = 1.0; +static const float kDefaultValue_ParamJ = 0.5; + +static CFStringRef kParameterAUnit = CFSTR("eq"); +static CFStringRef kParameterAName = CFSTR("High"); +static CFStringRef kParameterBName = CFSTR("HMid"); +static CFStringRef kParameterCName = CFSTR("LMid"); +static CFStringRef kParameterDName = CFSTR("Bass"); +static CFStringRef kParameterEUnit = CFSTR("freq"); +static CFStringRef kParameterEName = CFSTR("HighF"); +static CFStringRef kParameterFName = CFSTR("HMidF"); +static CFStringRef kParameterGName = CFSTR("LMidF"); +static CFStringRef kParameterHName = CFSTR("BassF"); +static CFStringRef kParameterIUnit = CFSTR("dyn"); +static CFStringRef kParameterIName = CFSTR("Thresh"); +static CFStringRef kParameterJName = CFSTR("Fader"); + +enum { + kParam_A =0, + kParam_B =1, + kParam_C =2, + kParam_D =3, + kParam_E =4, + kParam_F =5, + kParam_G =6, + kParam_H =7, + kParam_I =8, + kParam_J =9, + //Add your parameters here... + kNumberOfParameters=10 +}; + +#pragma mark ____X2Buss +class X2Buss : public AUEffectBase +{ +public: + X2Buss(AudioUnit component); +#if AU_DEBUG_DISPATCHER + virtual ~X2Buss () { 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 kX2BussVersion; } + + 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 bessel filter, stereo + double highA[biq_total]; + double highB[biq_total]; + double highC[biq_total]; + double highLIIR; + double highRIIR; + + double midA[biq_total]; + double midB[biq_total]; + double midC[biq_total]; + double midLIIR; + double midRIIR; + + double lowA[biq_total]; + double lowB[biq_total]; + double lowC[biq_total]; + double lowLIIR; + double lowRIIR; + //SmoothEQ2 + + enum { + bez_AL, + bez_BL, + bez_CL, + bez_InL, + bez_UnInL, + bez_SampL, + bez_AR, + bez_BR, + bez_CR, + bez_InR, + bez_UnInR, + bez_SampR, + bez_cycle, + bez_total + }; //the new undersampling. bez signifies the bezier curve reconstruction + double bezCompF[bez_total]; + double bezMaxF; + double bezCompS[bez_total]; + //Dynamics2 + + 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; +}; + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + +#endif \ No newline at end of file diff --git a/plugins/MacAU/X2Buss/X2Buss.r b/plugins/MacAU/X2Buss/X2Buss.r new file mode 100755 index 000000000..a7248b528 --- /dev/null +++ b/plugins/MacAU/X2Buss/X2Buss.r @@ -0,0 +1,61 @@ +/* +* File: X2Buss.r +* +* Version: 1.0 +* +* Created: 10/31/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 + +#include "X2BussVersion.h" + +// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description +#define kAudioUnitResID_X2Buss 1000 + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ X2Buss~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +#define RES_ID kAudioUnitResID_X2Buss +#define COMP_TYPE kAudioUnitType_Effect +#define COMP_SUBTYPE X2Buss_COMP_SUBTYPE +#define COMP_MANUF X2Buss_COMP_MANF + +#define VERSION kX2BussVersion +#define NAME "Airwindows: X2Buss" +#define DESCRIPTION "X2Buss AU" +#define ENTRY_POINT "X2BussEntry" + +#include "AUResources.r" \ No newline at end of file diff --git a/plugins/MacAU/X2Buss/X2Buss.xcodeproj/christopherjohnson.mode1v3 b/plugins/MacAU/X2Buss/X2Buss.xcodeproj/christopherjohnson.mode1v3 new file mode 100755 index 000000000..61450416d --- /dev/null +++ b/plugins/MacAU/X2Buss/X2Buss.xcodeproj/christopherjohnson.mode1v3 @@ -0,0 +1,1359 @@ + + + + + ActivePerspectiveName + Project + AllowedModules + + + BundleLoadPath + + MaxInstances + n + Module + PBXSmartGroupTreeModule + Name + Groups and Files Outline View + + + BundleLoadPath + + MaxInstances + n + Module + PBXNavigatorGroup + Name + Editor + + + BundleLoadPath + + MaxInstances + n + Module + XCTaskListModule + Name + Task List + + + BundleLoadPath + + MaxInstances + n + Module + XCDetailModule + Name + File and Smart Group Detail Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXBuildResultsModule + Name + Detailed Build Results Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXProjectFindModule + Name + Project Batch Find Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCProjectFormatConflictsModule + Name + Project Format Conflicts List + + + BundleLoadPath + + MaxInstances + n + Module + PBXBookmarksModule + Name + Bookmarks Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXClassBrowserModule + Name + Class Browser + + + BundleLoadPath + + MaxInstances + n + Module + PBXCVSModule + Name + Source Code Control Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXDebugBreakpointsModule + Name + Debug Breakpoints Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCDockableInspector + Name + Inspector + + + BundleLoadPath + + MaxInstances + n + Module + PBXOpenQuicklyModule + Name + Open Quickly Tool + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugSessionModule + Name + Debugger + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugCLIModule + Name + Debug Console + + + BundleLoadPath + + MaxInstances + n + Module + XCSnapshotModule + Name + Snapshots Tool + + + BundlePath + /Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources + Description + DefaultDescriptionKey + DockingSystemVisible + + Extension + mode1v3 + FavBarConfig + + PBXProjectModuleGUID + 8BD3CCBC148831C90062E48C + XCBarModuleItemNames + + XCBarModuleItems + + + FirstTimeWindowDisplayed + + Identifier + com.apple.perspectives.project.mode1v3 + MajorVersion + 33 + MinorVersion + 0 + Name + Default + Notifications + + OpenEditors + + PerspectiveWidths + + -1 + -1 + + Perspectives + + + ChosenToolbarItems + + active-combo-popup + action + build + debugger-enable-breakpoints + get-info + com.apple.pbx.toolbar.searchfield + + ControllerClassBaseName + + IconName + WindowOfProjectWithEditor + Identifier + perspective.project + IsVertical + + Layout + + + BecomeActive + + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 1C37FABC05509CD000000102 + 1C37FABC05539CD112110102 + E2644B35053B69B200211256 + 1C37FABC04509CD000100104 + 1CC0EA4004350EF90044410B + 1CC0EA4004350EF90041110B + + PBXProjectModuleGUID + 1CE0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + yes + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 299 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 089C166AFE841209C02AAC07 + 08FB77ADFE841716C02AAC07 + 8BA05A7D072073D200365D66 + 8BA05A7E072073D200365D66 + 1C37FBAC04509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 6 + 5 + 4 + 1 + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {299, 445}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + + XCSharingToken + com.apple.Xcode.GFSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {316, 463}} + GroupTreeTableConfiguration + + MainColumn + 299 + + RubberWindowFrame + 18 337 788 504 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 316pt + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CE0B20306471E060097A5F4 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CE0B20406471E060097A5F4 + + SplitCount + 1 + + StatusBarVisibility + + + GeometryConfiguration + + Frame + {{0, 0}, {467, 0}} + RubberWindowFrame + 18 337 788 504 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 0pt + + + ContentConfiguration + + PBXProjectModuleGUID + 1CE0B20506471E060097A5F4 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{0, 5}, {467, 458}} + RubberWindowFrame + 18 337 788 504 0 0 1440 878 + + Module + XCDetailModule + Proportion + 458pt + + + Proportion + 467pt + + + Name + Project + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + XCModuleDock + PBXNavigatorGroup + XCDetailModule + + TableOfContents + + 8BDD47AA1A48BB8900FB2F61 + 1CE0B1FE06471DED0097A5F4 + 8BDD47AB1A48BB8900FB2F61 + 1CE0B20306471E060097A5F4 + 1CE0B20506471E060097A5F4 + + ToolbarConfigUserDefaultsMinorVersion + 2 + ToolbarConfiguration + xcode.toolbar.config.defaultV3 + + + ControllerClassBaseName + + IconName + WindowOfProject + Identifier + perspective.morph + IsVertical + 0 + Layout + + + BecomeActive + 1 + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 1C08E77C0454961000C914BD + 1C37FABC05509CD000000102 + 1C37FABC05539CD112110102 + E2644B35053B69B200211256 + 1C37FABC04509CD000100104 + 1CC0EA4004350EF90044410B + 1CC0EA4004350EF90041110B + + PBXProjectModuleGUID + 11E0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + yes + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 186 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 29B97314FDCFA39411CA2CEA + 1C37FABC05509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {186, 337}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + 1 + XCSharingToken + com.apple.Xcode.GFSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {203, 355}} + GroupTreeTableConfiguration + + MainColumn + 186 + + RubberWindowFrame + 373 269 690 397 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 100% + + + Name + Morph + PreferredWidth + 300 + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + + TableOfContents + + 11E0B1FE06471DED0097A5F4 + + ToolbarConfiguration + xcode.toolbar.config.default.shortV3 + + + PerspectivesBarVisible + + ShelfIsVisible + + SourceDescription + file at '/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecificationMode1.xcperspec' + StatusbarIsVisible + + TimeStamp + 0.0 + ToolbarConfigUserDefaultsMinorVersion + 2 + ToolbarDisplayMode + 1 + ToolbarIsVisible + + ToolbarSizeMode + 2 + Type + Perspectives + UpdateMessage + The Default Workspace in this version of Xcode now includes support to hide and show the detail view (what has been referred to as the "Metro-Morph" feature). You must discard your current Default Workspace settings and update to the latest Default Workspace in order to gain this feature. Do you wish to update to the latest Workspace defaults for project '%@'? + WindowJustification + 5 + WindowOrderList + + 8BD3CCBD148831C90062E48C + /Developer/Library/Xcode/Project Templates/System Plug-in/Audio Unit Effect/Audio Unit Effect with Cocoa View/StarterAU.xcodeproj + + WindowString + 18 337 788 504 0 0 1440 878 + WindowToolsV3 + + + FirstTimeWindowDisplayed + + Identifier + windowTool.build + IsVertical + + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528F0623707200166675 + PBXProjectModuleLabel + + StatusBarVisibility + + + GeometryConfiguration + + Frame + {{0, 0}, {500, 218}} + RubberWindowFrame + 668 222 500 500 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 218pt + + + ContentConfiguration + + PBXProjectModuleGUID + XCMainBuildResultsModuleGUID + PBXProjectModuleLabel + Build Results + XCBuildResultsTrigger_Collapse + 1021 + XCBuildResultsTrigger_Open + 1011 + + GeometryConfiguration + + Frame + {{0, 223}, {500, 236}} + RubberWindowFrame + 668 222 500 500 0 0 1440 878 + + Module + PBXBuildResultsModule + Proportion + 236pt + + + Proportion + 459pt + + + Name + Build Results + ServiceClasses + + PBXBuildResultsModule + + StatusbarIsVisible + + TableOfContents + + 8BD3CCBD148831C90062E48C + 8BDD47AC1A48BB8900FB2F61 + 1CD0528F0623707200166675 + XCMainBuildResultsModuleGUID + + ToolbarConfiguration + xcode.toolbar.config.buildV3 + WindowContentMinSize + 486 300 + WindowString + 668 222 500 500 0 0 1440 878 + WindowToolGUID + 8BD3CCBD148831C90062E48C + WindowToolIsVisible + + + + Identifier + windowTool.debugger + Layout + + + Dock + + + ContentConfiguration + + Debugger + + HorizontalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {317, 164}} + {{317, 0}, {377, 164}} + + + VerticalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {694, 164}} + {{0, 164}, {694, 216}} + + + + LauncherConfigVersion + 8 + PBXProjectModuleGUID + 1C162984064C10D400B95A72 + PBXProjectModuleLabel + Debug - GLUTExamples (Underwater) + + GeometryConfiguration + + DebugConsoleDrawerSize + {100, 120} + DebugConsoleVisible + None + DebugConsoleWindowFrame + {{200, 200}, {500, 300}} + DebugSTDIOWindowFrame + {{200, 200}, {500, 300}} + Frame + {{0, 0}, {694, 380}} + RubberWindowFrame + 321 238 694 422 0 0 1440 878 + + Module + PBXDebugSessionModule + Proportion + 100% + + + Proportion + 100% + + + Name + Debugger + ServiceClasses + + PBXDebugSessionModule + + StatusbarIsVisible + 1 + TableOfContents + + 1CD10A99069EF8BA00B06720 + 1C0AD2AB069F1E9B00FABCE6 + 1C162984064C10D400B95A72 + 1C0AD2AC069F1E9B00FABCE6 + + ToolbarConfiguration + xcode.toolbar.config.debugV3 + WindowString + 321 238 694 422 0 0 1440 878 + WindowToolGUID + 1CD10A99069EF8BA00B06720 + WindowToolIsVisible + 0 + + + Identifier + windowTool.find + Layout + + + Dock + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CDD528C0622207200134675 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CD0528D0623707200166675 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {781, 167}} + RubberWindowFrame + 62 385 781 470 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 781pt + + + Proportion + 50% + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528E0623707200166675 + PBXProjectModuleLabel + Project Find + + GeometryConfiguration + + Frame + {{8, 0}, {773, 254}} + RubberWindowFrame + 62 385 781 470 0 0 1440 878 + + Module + PBXProjectFindModule + Proportion + 50% + + + Proportion + 428pt + + + Name + Project Find + ServiceClasses + + PBXProjectFindModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C530D57069F1CE1000CFCEE + 1C530D58069F1CE1000CFCEE + 1C530D59069F1CE1000CFCEE + 1CDD528C0622207200134675 + 1C530D5A069F1CE1000CFCEE + 1CE0B1FE06471DED0097A5F4 + 1CD0528E0623707200166675 + + WindowString + 62 385 781 470 0 0 1440 878 + WindowToolGUID + 1C530D57069F1CE1000CFCEE + WindowToolIsVisible + 0 + + + Identifier + MENUSEPARATOR + + + Identifier + windowTool.debuggerConsole + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAAC065D492600B07095 + PBXProjectModuleLabel + Debugger Console + + GeometryConfiguration + + Frame + {{0, 0}, {650, 250}} + RubberWindowFrame + 516 632 650 250 0 0 1680 1027 + + Module + PBXDebugCLIModule + Proportion + 209pt + + + Proportion + 209pt + + + Name + Debugger Console + ServiceClasses + + PBXDebugCLIModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C78EAAD065D492600B07095 + 1C78EAAE065D492600B07095 + 1C78EAAC065D492600B07095 + + ToolbarConfiguration + xcode.toolbar.config.consoleV3 + WindowString + 650 41 650 250 0 0 1280 1002 + WindowToolGUID + 1C78EAAD065D492600B07095 + WindowToolIsVisible + 0 + + + Identifier + windowTool.snapshots + Layout + + + Dock + + + Module + XCSnapshotModule + Proportion + 100% + + + Proportion + 100% + + + Name + Snapshots + ServiceClasses + + XCSnapshotModule + + StatusbarIsVisible + Yes + ToolbarConfiguration + xcode.toolbar.config.snapshots + WindowString + 315 824 300 550 0 0 1440 878 + WindowToolIsVisible + Yes + + + Identifier + windowTool.scm + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAB2065D492600B07095 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1C78EAB3065D492600B07095 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {452, 0}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + + Module + PBXNavigatorGroup + Proportion + 0pt + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD052920623707200166675 + PBXProjectModuleLabel + SCM + + GeometryConfiguration + + ConsoleFrame + {{0, 259}, {452, 0}} + Frame + {{0, 7}, {452, 259}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + TableConfiguration + + Status + 30 + FileName + 199 + Path + 197.0950012207031 + + TableFrame + {{0, 0}, {452, 250}} + + Module + PBXCVSModule + Proportion + 262pt + + + Proportion + 266pt + + + Name + SCM + ServiceClasses + + PBXCVSModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C78EAB4065D492600B07095 + 1C78EAB5065D492600B07095 + 1C78EAB2065D492600B07095 + 1CD052920623707200166675 + + ToolbarConfiguration + xcode.toolbar.config.scm + WindowString + 743 379 452 308 0 0 1280 1002 + + + Identifier + windowTool.breakpoints + IsVertical + 0 + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C77FABC04509CD000000102 + + PBXProjectModuleGUID + 1CE0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + no + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 168 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 1C77FABC04509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {168, 350}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + 0 + + GeometryConfiguration + + Frame + {{0, 0}, {185, 368}} + GroupTreeTableConfiguration + + MainColumn + 168 + + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 185pt + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA1AED706398EBD00589147 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{190, 0}, {554, 368}} + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + XCDetailModule + Proportion + 554pt + + + Proportion + 368pt + + + MajorVersion + 3 + MinorVersion + 0 + Name + Breakpoints + ServiceClasses + + PBXSmartGroupTreeModule + XCDetailModule + + StatusbarIsVisible + 1 + TableOfContents + + 1CDDB66807F98D9800BB5817 + 1CDDB66907F98D9800BB5817 + 1CE0B1FE06471DED0097A5F4 + 1CA1AED706398EBD00589147 + + ToolbarConfiguration + xcode.toolbar.config.breakpointsV3 + WindowString + 315 424 744 409 0 0 1440 878 + WindowToolGUID + 1CDDB66807F98D9800BB5817 + WindowToolIsVisible + 1 + + + Identifier + windowTool.debugAnimator + Layout + + + Dock + + + Module + PBXNavigatorGroup + Proportion + 100% + + + Proportion + 100% + + + Name + Debug Visualizer + ServiceClasses + + PBXNavigatorGroup + + StatusbarIsVisible + 1 + ToolbarConfiguration + xcode.toolbar.config.debugAnimatorV3 + WindowString + 100 100 700 500 0 0 1280 1002 + + + Identifier + windowTool.bookmarks + Layout + + + Dock + + + Module + PBXBookmarksModule + Proportion + 100% + + + Proportion + 100% + + + Name + Bookmarks + ServiceClasses + + PBXBookmarksModule + + StatusbarIsVisible + 0 + WindowString + 538 42 401 187 0 0 1280 1002 + + + Identifier + windowTool.projectFormatConflicts + Layout + + + Dock + + + Module + XCProjectFormatConflictsModule + Proportion + 100% + + + Proportion + 100% + + + Name + Project Format Conflicts + ServiceClasses + + XCProjectFormatConflictsModule + + StatusbarIsVisible + 0 + WindowContentMinSize + 450 300 + WindowString + 50 850 472 307 0 0 1440 877 + + + Identifier + windowTool.classBrowser + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + OptionsSetName + Hierarchy, all classes + PBXProjectModuleGUID + 1CA6456E063B45B4001379D8 + PBXProjectModuleLabel + Class Browser - NSObject + + GeometryConfiguration + + ClassesFrame + {{0, 0}, {374, 96}} + ClassesTreeTableConfiguration + + PBXClassNameColumnIdentifier + 208 + PBXClassBookColumnIdentifier + 22 + + Frame + {{0, 0}, {630, 331}} + MembersFrame + {{0, 105}, {374, 395}} + MembersTreeTableConfiguration + + PBXMemberTypeIconColumnIdentifier + 22 + PBXMemberNameColumnIdentifier + 216 + PBXMemberTypeColumnIdentifier + 97 + PBXMemberBookColumnIdentifier + 22 + + PBXModuleWindowStatusBarHidden2 + 1 + RubberWindowFrame + 385 179 630 352 0 0 1440 878 + + Module + PBXClassBrowserModule + Proportion + 332pt + + + Proportion + 332pt + + + Name + Class Browser + ServiceClasses + + PBXClassBrowserModule + + StatusbarIsVisible + 0 + TableOfContents + + 1C0AD2AF069F1E9B00FABCE6 + 1C0AD2B0069F1E9B00FABCE6 + 1CA6456E063B45B4001379D8 + + ToolbarConfiguration + xcode.toolbar.config.classbrowser + WindowString + 385 179 630 352 0 0 1440 878 + WindowToolGUID + 1C0AD2AF069F1E9B00FABCE6 + WindowToolIsVisible + 0 + + + Identifier + windowTool.refactoring + IncludeInToolsMenu + 0 + Layout + + + Dock + + + BecomeActive + 1 + GeometryConfiguration + + Frame + {0, 0}, {500, 335} + RubberWindowFrame + {0, 0}, {500, 335} + + Module + XCRefactoringModule + Proportion + 100% + + + Proportion + 100% + + + Name + Refactoring + ServiceClasses + + XCRefactoringModule + + WindowString + 200 200 500 356 0 0 1920 1200 + + + + diff --git a/plugins/MacAU/X2Buss/X2Buss.xcodeproj/christopherjohnson.pbxuser b/plugins/MacAU/X2Buss/X2Buss.xcodeproj/christopherjohnson.pbxuser new file mode 100755 index 000000000..1d4e53b68 --- /dev/null +++ b/plugins/MacAU/X2Buss/X2Buss.xcodeproj/christopherjohnson.pbxuser @@ -0,0 +1,131 @@ +// !$*UTF8*$! +{ + 089C1669FE841209C02AAC07 /* Project object */ = { + activeBuildConfigurationName = Release; + activeTarget = 8D01CCC60486CAD60068D4B7 /* X2Buss */; + 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 = 783619103; + PBXWorkspaceStateSaveDate = 783619103; + }; + perUserProjectItems = { + 8B5C9E262EB515ED008B9860 /* PBXTextBookmark */ = 8B5C9E262EB515ED008B9860 /* PBXTextBookmark */; + 8B5C9E3E2EB516CF008B9860 /* PBXTextBookmark */ = 8B5C9E3E2EB516CF008B9860 /* PBXTextBookmark */; + }; + sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */; + userBuildSettings = { + }; + }; + 8B5C9E262EB515ED008B9860 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 8BC6025B073B072D006C4272 /* X2Buss.h */; + name = "X2Buss.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 62; + vrLoc = 0; + }; + 8B5C9E3E2EB516CF008B9860 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 8BC6025B073B072D006C4272 /* X2Buss.h */; + name = "X2Buss.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 62; + vrLoc = 0; + }; + 8BA05A660720730100365D66 /* X2Buss.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {903, 13608}}"; + sepNavSelRange = "{9006, 0}"; + sepNavVisRange = "{7185, 1986}"; + sepNavWindowFrame = "{{506, 48}, {912, 826}}"; + }; + }; + 8BA05A690720730100365D66 /* X2BussVersion.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1056, 1062}}"; + sepNavSelRange = "{2887, 0}"; + sepNavVisRange = "{965, 1985}"; + sepNavWindowFrame = "{{15, 47}, {912, 826}}"; + }; + }; + 8BA05A7F072073D200365D66 /* AUBase.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {516, 23430}}"; + sepNavSelRange = "{0, 0}"; + sepNavVisRange = "{0, 1336}"; + }; + }; + 8BC6025B073B072D006C4272 /* X2Buss.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {948, 3402}}"; + sepNavSelRange = "{0, 0}"; + sepNavVisRange = "{0, 62}"; + sepNavWindowFrame = "{{528, 52}, {912, 826}}"; + }; + }; + 8BD3CCB8148830B20062E48C /* Source Control */ = { + isa = PBXSourceControlManager; + fallbackIsa = XCSourceControlManager; + isSCMEnabled = 0; + scmConfiguration = { + repositoryNamesForRoots = { + "" = ""; + }; + }; + }; + 8BD3CCB9148830B20062E48C /* Code sense */ = { + isa = PBXCodeSenseManager; + indexTemplatePath = ""; + }; + 8D01CCC60486CAD60068D4B7 /* X2Buss */ = { + activeExec = 0; + }; +} diff --git a/plugins/MacAU/X2Buss/X2Buss.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacAU/X2Buss/X2Buss.xcodeproj/christopherjohnson.perspectivev3 new file mode 100755 index 000000000..f8765f23b --- /dev/null +++ b/plugins/MacAU/X2Buss/X2Buss.xcodeproj/christopherjohnson.perspectivev3 @@ -0,0 +1,1481 @@ + + + + + ActivePerspectiveName + Project + AllowedModules + + + BundleLoadPath + + MaxInstances + n + Module + PBXSmartGroupTreeModule + Name + Groups and Files Outline View + + + BundleLoadPath + + MaxInstances + n + Module + PBXNavigatorGroup + Name + Editor + + + BundleLoadPath + + MaxInstances + n + Module + XCTaskListModule + Name + Task List + + + BundleLoadPath + + MaxInstances + n + Module + XCDetailModule + Name + File and Smart Group Detail Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXBuildResultsModule + Name + Detailed Build Results Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXProjectFindModule + Name + Project Batch Find Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCProjectFormatConflictsModule + Name + Project Format Conflicts List + + + BundleLoadPath + + MaxInstances + n + Module + PBXBookmarksModule + Name + Bookmarks Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXClassBrowserModule + Name + Class Browser + + + BundleLoadPath + + MaxInstances + n + Module + PBXCVSModule + Name + Source Code Control Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXDebugBreakpointsModule + Name + Debug Breakpoints Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCDockableInspector + Name + Inspector + + + BundleLoadPath + + MaxInstances + n + Module + PBXOpenQuicklyModule + Name + Open Quickly Tool + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugSessionModule + Name + Debugger + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugCLIModule + Name + Debug Console + + + BundleLoadPath + + MaxInstances + n + Module + XCSnapshotModule + Name + Snapshots Tool + + + BundlePath + /Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources + Description + AIODescriptionKey + DockingSystemVisible + + Extension + perspectivev3 + FavBarConfig + + PBXProjectModuleGUID + 8B5C9E422EB516CF008B9860 + XCBarModuleItemNames + + XCBarModuleItems + + + FirstTimeWindowDisplayed + + Identifier + com.apple.perspectives.project.defaultV3 + MajorVersion + 34 + MinorVersion + 0 + Name + All-In-One + Notifications + + + XCObserverAutoDisconnectKey + + XCObserverDefintionKey + + PBXStatusErrorsKey + 0 + + XCObserverFactoryKey + XCPerspectivesSpecificationIdentifier + XCObserverGUIDKey + XCObserverProjectIdentifier + XCObserverNotificationKey + PBXStatusBuildStateMessageNotification + XCObserverTargetKey + XCMainBuildResultsModuleGUID + XCObserverTriggerKey + awakenModuleWithObserver: + XCObserverValidationKey + + PBXStatusErrorsKey + 2 + + + + OpenEditors + + PerspectiveWidths + + 810 + 810 + + Perspectives + + + ChosenToolbarItems + + XCToolbarPerspectiveControl + NSToolbarSeparatorItem + active-combo-popup + action + NSToolbarFlexibleSpaceItem + debugger-enable-breakpoints + build-and-go + com.apple.ide.PBXToolbarStopButton + get-info + NSToolbarFlexibleSpaceItem + com.apple.pbx.toolbar.searchfield + + ControllerClassBaseName + + IconName + WindowOfProject + Identifier + perspective.project + IsVertical + + Layout + + + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 1C37FABC05509CD000000102 + 1C37FABC05539CD112110102 + E2644B35053B69B200211256 + 1C37FABC04509CD000100104 + 1CC0EA4004350EF90044410B + 1CC0EA4004350EF90041110B + 1C77FABC04509CD000000102 + + PBXProjectModuleGUID + 1CA23ED40692098700951B8B + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + yes + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 185 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 089C166AFE841209C02AAC07 + 08FB77ADFE841716C02AAC07 + 8BA05A56072072A900365D66 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 4 + 2 + 1 + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {185, 428}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + + + GeometryConfiguration + + Frame + {{0, 0}, {202, 446}} + GroupTreeTableConfiguration + + MainColumn + 185 + + RubberWindowFrame + 606 279 810 487 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 202pt + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 8B5C9E232EB515ED008B9860 + PBXProjectModuleLabel + X2Buss.h + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 8B5C9E242EB515ED008B9860 + PBXProjectModuleLabel + X2Buss.h + _historyCapacity + 0 + bookmark + 8B5C9E3E2EB516CF008B9860 + history + + 8B5C9E262EB515ED008B9860 + + + SplitCount + 1 + + StatusBarVisibility + + XCSharingToken + com.apple.Xcode.CommonNavigatorGroupSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {603, 132}} + RubberWindowFrame + 606 279 810 487 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 132pt + + + Proportion + 309pt + Tabs + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA23EDF0692099D00951B8B + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{10, 27}, {603, 282}} + + Module + XCDetailModule + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA23EE00692099D00951B8B + PBXProjectModuleLabel + Project Find + + GeometryConfiguration + + Frame + {{10, 31}, {603, 297}} + + Module + PBXProjectFindModule + + + ContentConfiguration + + PBXCVSModuleFilterTypeKey + 1032 + PBXProjectModuleGUID + 1CA23EE10692099D00951B8B + PBXProjectModuleLabel + SCM Results + + GeometryConfiguration + + Frame + {{10, 31}, {603, 297}} + + Module + PBXCVSModule + + + ContentConfiguration + + PBXProjectModuleGUID + XCMainBuildResultsModuleGUID + PBXProjectModuleLabel + Build Results + XCBuildResultsTrigger_Collapse + 1023 + XCBuildResultsTrigger_Open + 1012 + + GeometryConfiguration + + Frame + {{10, 27}, {603, 282}} + RubberWindowFrame + 606 279 810 487 0 0 1440 878 + + Module + PBXBuildResultsModule + + + + + Proportion + 603pt + + + Name + Project + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + XCModuleDock + PBXNavigatorGroup + XCDockableTabModule + XCDetailModule + PBXProjectFindModule + PBXCVSModule + PBXBuildResultsModule + + TableOfContents + + 8B5C9E3F2EB516CF008B9860 + 1CA23ED40692098700951B8B + 8B5C9E402EB516CF008B9860 + 8B5C9E232EB515ED008B9860 + 8B5C9E412EB516CF008B9860 + 1CA23EDF0692099D00951B8B + 1CA23EE00692099D00951B8B + 1CA23EE10692099D00951B8B + XCMainBuildResultsModuleGUID + + ToolbarConfigUserDefaultsMinorVersion + 2 + ToolbarConfiguration + xcode.toolbar.config.defaultV3 + + + ChosenToolbarItems + + XCToolbarPerspectiveControl + NSToolbarSeparatorItem + active-combo-popup + NSToolbarFlexibleSpaceItem + debugger-enable-breakpoints + build-and-go + com.apple.ide.PBXToolbarStopButton + debugger-restart-executable + debugger-pause + debugger-step-over + debugger-step-into + debugger-step-out + NSToolbarFlexibleSpaceItem + servicesModulebreakpoints + debugger-show-console-window + + ControllerClassBaseName + PBXDebugSessionModule + IconName + DebugTabIcon + Identifier + perspective.debug + IsVertical + 1 + Layout + + + ContentConfiguration + + PBXProjectModuleGUID + 1CCC7628064C1048000F2A68 + PBXProjectModuleLabel + Debugger Console + + GeometryConfiguration + + Frame + {{0, 0}, {810, 0}} + + Module + PBXDebugCLIModule + Proportion + 0% + + + ContentConfiguration + + Debugger + + HorizontalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {395, 213}} + {{395, 0}, {415, 213}} + + + VerticalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {810, 213}} + {{0, 213}, {810, 225}} + + + + LauncherConfigVersion + 8 + PBXProjectModuleGUID + 1CCC7629064C1048000F2A68 + PBXProjectModuleLabel + Debug + + GeometryConfiguration + + DebugConsoleDrawerSize + {100, 120} + DebugConsoleVisible + None + DebugConsoleWindowFrame + {{200, 200}, {500, 300}} + DebugSTDIOWindowFrame + {{200, 200}, {500, 300}} + Frame + {{0, 7}, {810, 438}} + + Module + PBXDebugSessionModule + Proportion + 443pt + + + Name + Debug + ServiceClasses + + XCModuleDock + XCModuleDock + PBXDebugCLIModule + PBXDebugSessionModule + XCConsole + + TableOfContents + + 1CC8E6A5069209BD00BB180A + 1CC8E6A6069209BD00BB180A + 1CCC7628064C1048000F2A68 + 1CCC7629064C1048000F2A68 + 1CC8E6A7069209BD00BB180A + + ToolbarConfiguration + xcode.toolbar.config.debugV3 + + + PerspectivesBarVisible + + ShelfIsVisible + + SourceDescription + file at '/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecification.xcperspec' + StatusbarIsVisible + + TimeStamp + 783619791.55329394 + ToolbarConfigUserDefaultsMinorVersion + 2 + ToolbarDisplayMode + 1 + ToolbarIsVisible + + ToolbarSizeMode + 2 + Type + Perspectives + UpdateMessage + + WindowJustification + 5 + WindowOrderList + + /Users/christopherjohnson/Desktop/X2Buss/X2Buss.xcodeproj + + WindowString + 606 279 810 487 0 0 1440 878 + WindowToolsV3 + + + Identifier + windowTool.debugger + Layout + + + Dock + + + ContentConfiguration + + Debugger + + HorizontalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {317, 164}} + {{317, 0}, {377, 164}} + + + VerticalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {694, 164}} + {{0, 164}, {694, 216}} + + + + LauncherConfigVersion + 8 + PBXProjectModuleGUID + 1C162984064C10D400B95A72 + PBXProjectModuleLabel + Debug - GLUTExamples (Underwater) + + GeometryConfiguration + + DebugConsoleDrawerSize + {100, 120} + DebugConsoleVisible + None + DebugConsoleWindowFrame + {{200, 200}, {500, 300}} + DebugSTDIOWindowFrame + {{200, 200}, {500, 300}} + Frame + {{0, 0}, {694, 380}} + RubberWindowFrame + 321 238 694 422 0 0 1440 878 + + Module + PBXDebugSessionModule + Proportion + 100% + + + Proportion + 100% + + + Name + Debugger + ServiceClasses + + PBXDebugSessionModule + + StatusbarIsVisible + 1 + TableOfContents + + 1CD10A99069EF8BA00B06720 + 1C0AD2AB069F1E9B00FABCE6 + 1C162984064C10D400B95A72 + 1C0AD2AC069F1E9B00FABCE6 + + ToolbarConfiguration + xcode.toolbar.config.debugV3 + WindowString + 321 238 694 422 0 0 1440 878 + WindowToolGUID + 1CD10A99069EF8BA00B06720 + WindowToolIsVisible + 0 + + + Identifier + windowTool.build + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528F0623707200166675 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CD052900623707200166675 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {500, 215}} + RubberWindowFrame + 192 257 500 500 0 0 1280 1002 + + Module + PBXNavigatorGroup + Proportion + 218pt + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + XCMainBuildResultsModuleGUID + PBXProjectModuleLabel + Build Results + + GeometryConfiguration + + Frame + {{0, 222}, {500, 236}} + RubberWindowFrame + 192 257 500 500 0 0 1280 1002 + + Module + PBXBuildResultsModule + Proportion + 236pt + + + Proportion + 458pt + + + Name + Build Results + ServiceClasses + + PBXBuildResultsModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C78EAA5065D492600B07095 + 1C78EAA6065D492600B07095 + 1CD0528F0623707200166675 + XCMainBuildResultsModuleGUID + + ToolbarConfiguration + xcode.toolbar.config.buildV3 + WindowString + 192 257 500 500 0 0 1280 1002 + + + Identifier + windowTool.find + Layout + + + Dock + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CDD528C0622207200134675 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CD0528D0623707200166675 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {781, 167}} + RubberWindowFrame + 62 385 781 470 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 781pt + + + Proportion + 50% + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528E0623707200166675 + PBXProjectModuleLabel + Project Find + + GeometryConfiguration + + Frame + {{8, 0}, {773, 254}} + RubberWindowFrame + 62 385 781 470 0 0 1440 878 + + Module + PBXProjectFindModule + Proportion + 50% + + + Proportion + 428pt + + + Name + Project Find + ServiceClasses + + PBXProjectFindModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C530D57069F1CE1000CFCEE + 1C530D58069F1CE1000CFCEE + 1C530D59069F1CE1000CFCEE + 1CDD528C0622207200134675 + 1C530D5A069F1CE1000CFCEE + 1CE0B1FE06471DED0097A5F4 + 1CD0528E0623707200166675 + + WindowString + 62 385 781 470 0 0 1440 878 + WindowToolGUID + 1C530D57069F1CE1000CFCEE + WindowToolIsVisible + 0 + + + Identifier + windowTool.snapshots + Layout + + + Dock + + + Module + XCSnapshotModule + Proportion + 100% + + + Proportion + 100% + + + Name + Snapshots + ServiceClasses + + XCSnapshotModule + + StatusbarIsVisible + Yes + ToolbarConfiguration + xcode.toolbar.config.snapshots + WindowString + 315 824 300 550 0 0 1440 878 + WindowToolIsVisible + Yes + + + Identifier + windowTool.debuggerConsole + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAAC065D492600B07095 + PBXProjectModuleLabel + Debugger Console + + GeometryConfiguration + + Frame + {{0, 0}, {700, 358}} + RubberWindowFrame + 149 87 700 400 0 0 1440 878 + + Module + PBXDebugCLIModule + Proportion + 358pt + + + Proportion + 358pt + + + Name + Debugger Console + ServiceClasses + + PBXDebugCLIModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C530D5B069F1CE1000CFCEE + 1C530D5C069F1CE1000CFCEE + 1C78EAAC065D492600B07095 + + ToolbarConfiguration + xcode.toolbar.config.consoleV3 + WindowString + 149 87 440 400 0 0 1440 878 + WindowToolGUID + 1C530D5B069F1CE1000CFCEE + WindowToolIsVisible + 0 + + + Identifier + windowTool.scm + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAB2065D492600B07095 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1C78EAB3065D492600B07095 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {452, 0}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + + Module + PBXNavigatorGroup + Proportion + 0pt + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD052920623707200166675 + PBXProjectModuleLabel + SCM + + GeometryConfiguration + + ConsoleFrame + {{0, 259}, {452, 0}} + Frame + {{0, 7}, {452, 259}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + TableConfiguration + + Status + 30 + FileName + 199 + Path + 197.09500122070312 + + TableFrame + {{0, 0}, {452, 250}} + + Module + PBXCVSModule + Proportion + 262pt + + + Proportion + 266pt + + + Name + SCM + ServiceClasses + + PBXCVSModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C78EAB4065D492600B07095 + 1C78EAB5065D492600B07095 + 1C78EAB2065D492600B07095 + 1CD052920623707200166675 + + ToolbarConfiguration + xcode.toolbar.config.scmV3 + WindowString + 743 379 452 308 0 0 1280 1002 + + + Identifier + windowTool.breakpoints + IsVertical + 0 + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C77FABC04509CD000000102 + + PBXProjectModuleGUID + 1CE0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + no + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 168 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 1C77FABC04509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {168, 350}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + 0 + + GeometryConfiguration + + Frame + {{0, 0}, {185, 368}} + GroupTreeTableConfiguration + + MainColumn + 168 + + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 185pt + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA1AED706398EBD00589147 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{190, 0}, {554, 368}} + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + XCDetailModule + Proportion + 554pt + + + Proportion + 368pt + + + MajorVersion + 3 + MinorVersion + 0 + Name + Breakpoints + ServiceClasses + + PBXSmartGroupTreeModule + XCDetailModule + + StatusbarIsVisible + 1 + TableOfContents + + 1CDDB66807F98D9800BB5817 + 1CDDB66907F98D9800BB5817 + 1CE0B1FE06471DED0097A5F4 + 1CA1AED706398EBD00589147 + + ToolbarConfiguration + xcode.toolbar.config.breakpointsV3 + WindowString + 315 424 744 409 0 0 1440 878 + WindowToolGUID + 1CDDB66807F98D9800BB5817 + WindowToolIsVisible + 1 + + + Identifier + windowTool.debugAnimator + Layout + + + Dock + + + Module + PBXNavigatorGroup + Proportion + 100% + + + Proportion + 100% + + + Name + Debug Visualizer + ServiceClasses + + PBXNavigatorGroup + + StatusbarIsVisible + 1 + ToolbarConfiguration + xcode.toolbar.config.debugAnimatorV3 + WindowString + 100 100 700 500 0 0 1280 1002 + + + Identifier + windowTool.bookmarks + Layout + + + Dock + + + Module + PBXBookmarksModule + Proportion + 166pt + + + Proportion + 166pt + + + Name + Bookmarks + ServiceClasses + + PBXBookmarksModule + + StatusbarIsVisible + 0 + WindowString + 538 42 401 187 0 0 1280 1002 + + + Identifier + windowTool.projectFormatConflicts + Layout + + + Dock + + + Module + XCProjectFormatConflictsModule + Proportion + 100% + + + Proportion + 100% + + + Name + Project Format Conflicts + ServiceClasses + + XCProjectFormatConflictsModule + + StatusbarIsVisible + 0 + WindowContentMinSize + 450 300 + WindowString + 50 850 472 307 0 0 1440 877 + + + Identifier + windowTool.classBrowser + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + OptionsSetName + Hierarchy, all classes + PBXProjectModuleGUID + 1CA6456E063B45B4001379D8 + PBXProjectModuleLabel + Class Browser - NSObject + + GeometryConfiguration + + ClassesFrame + {{0, 0}, {369, 96}} + ClassesTreeTableConfiguration + + PBXClassNameColumnIdentifier + 208 + PBXClassBookColumnIdentifier + 22 + + Frame + {{0, 0}, {616, 353}} + MembersFrame + {{0, 105}, {369, 395}} + MembersTreeTableConfiguration + + PBXMemberTypeIconColumnIdentifier + 22 + PBXMemberNameColumnIdentifier + 216 + PBXMemberTypeColumnIdentifier + 94 + PBXMemberBookColumnIdentifier + 22 + + PBXModuleWindowStatusBarHidden2 + 1 + RubberWindowFrame + 597 125 616 374 0 0 1280 1002 + + Module + PBXClassBrowserModule + Proportion + 354pt + + + Proportion + 354pt + + + Name + Class Browser + ServiceClasses + + PBXClassBrowserModule + + StatusbarIsVisible + 0 + TableOfContents + + 1C78EABA065D492600B07095 + 1C78EABB065D492600B07095 + 1CA6456E063B45B4001379D8 + + ToolbarConfiguration + xcode.toolbar.config.classbrowser + WindowString + 597 125 616 374 0 0 1280 1002 + + + Identifier + windowTool.refactoring + IncludeInToolsMenu + 0 + Layout + + + Dock + + + BecomeActive + 1 + GeometryConfiguration + + Frame + {0, 0}, {500, 335} + RubberWindowFrame + {0, 0}, {500, 335} + + Module + XCRefactoringModule + Proportion + 100% + + + Proportion + 100% + + + Name + Refactoring + ServiceClasses + + XCRefactoringModule + + WindowString + 200 200 500 356 0 0 1920 1200 + + + + diff --git a/plugins/MacAU/X2Buss/X2Buss.xcodeproj/project.pbxproj b/plugins/MacAU/X2Buss/X2Buss.xcodeproj/project.pbxproj new file mode 100755 index 000000000..05bf48266 --- /dev/null +++ b/plugins/MacAU/X2Buss/X2Buss.xcodeproj/project.pbxproj @@ -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 /* X2Buss.r in Rez */ = {isa = PBXBuildFile; fileRef = 8BA05A680720730100365D66 /* X2Buss.r */; }; + 8BA05A6B0720730100365D66 /* X2Buss.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* X2Buss.cpp */; }; + 8BA05A6E0720730100365D66 /* X2BussVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* X2BussVersion.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 /* X2Buss.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* X2Buss.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 = ""; }; + 3EEA126B089847F5002C6BFC /* CAVectorUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAVectorUnit.cpp; sourceTree = ""; }; + 3EEA126C089847F5002C6BFC /* CAVectorUnit.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAVectorUnit.h; sourceTree = ""; }; + 3EEA126D089847F5002C6BFC /* CAVectorUnitTypes.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAVectorUnitTypes.h; sourceTree = ""; }; + 8B5C7FBF076FB2C200A15F61 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = ""; }; + 8BA05A660720730100365D66 /* X2Buss.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = X2Buss.cpp; sourceTree = ""; }; + 8BA05A670720730100365D66 /* X2Buss.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = X2Buss.exp; sourceTree = ""; }; + 8BA05A680720730100365D66 /* X2Buss.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = X2Buss.r; sourceTree = ""; }; + 8BA05A690720730100365D66 /* X2BussVersion.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = X2BussVersion.h; sourceTree = ""; }; + 8BA05A7F072073D200365D66 /* AUBase.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUBase.cpp; sourceTree = ""; }; + 8BA05A80072073D200365D66 /* AUBase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUBase.h; sourceTree = ""; }; + 8BA05A81072073D200365D66 /* AUDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUDispatch.cpp; sourceTree = ""; }; + 8BA05A82072073D200365D66 /* AUDispatch.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUDispatch.h; sourceTree = ""; }; + 8BA05A83072073D200365D66 /* AUInputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUInputElement.cpp; sourceTree = ""; }; + 8BA05A84072073D200365D66 /* AUInputElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUInputElement.h; sourceTree = ""; }; + 8BA05A85072073D200365D66 /* AUOutputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputElement.cpp; sourceTree = ""; }; + 8BA05A86072073D200365D66 /* AUOutputElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUOutputElement.h; sourceTree = ""; }; + 8BA05A87072073D200365D66 /* AUResources.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = AUResources.r; sourceTree = ""; }; + 8BA05A88072073D200365D66 /* AUScopeElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUScopeElement.cpp; sourceTree = ""; }; + 8BA05A89072073D200365D66 /* AUScopeElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUScopeElement.h; sourceTree = ""; }; + 8BA05A8A072073D200365D66 /* ComponentBase.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ComponentBase.cpp; sourceTree = ""; }; + 8BA05A8B072073D200365D66 /* ComponentBase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ComponentBase.h; sourceTree = ""; }; + 8BA05A9A072073D200365D66 /* AUEffectBase.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUEffectBase.cpp; sourceTree = ""; }; + 8BA05A9B072073D200365D66 /* AUEffectBase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUEffectBase.h; sourceTree = ""; }; + 8BA05AA7072073D200365D66 /* AUBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUBuffer.cpp; sourceTree = ""; }; + 8BA05AA8072073D200365D66 /* AUBuffer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUBuffer.h; sourceTree = ""; }; + 8BA05AA9072073D200365D66 /* AUDebugDispatcher.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUDebugDispatcher.cpp; sourceTree = ""; }; + 8BA05AAA072073D200365D66 /* AUDebugDispatcher.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUDebugDispatcher.h; sourceTree = ""; }; + 8BA05AAB072073D200365D66 /* AUInputFormatConverter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUInputFormatConverter.h; sourceTree = ""; }; + 8BA05AAC072073D200365D66 /* AUSilentTimeout.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUSilentTimeout.h; sourceTree = ""; }; + 8BA05AAD072073D200365D66 /* AUTimestampGenerator.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUTimestampGenerator.h; sourceTree = ""; }; + 8BA05ADF0720742100365D66 /* CAAudioChannelLayout.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayout.cpp; sourceTree = ""; }; + 8BA05AE00720742100365D66 /* CAAudioChannelLayout.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAAudioChannelLayout.h; sourceTree = ""; }; + 8BA05AE10720742100365D66 /* CAMutex.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAMutex.cpp; sourceTree = ""; }; + 8BA05AE20720742100365D66 /* CAMutex.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAMutex.h; sourceTree = ""; }; + 8BA05AE30720742100365D66 /* CAStreamBasicDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamBasicDescription.cpp; sourceTree = ""; }; + 8BA05AE40720742100365D66 /* CAStreamBasicDescription.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAStreamBasicDescription.h; sourceTree = ""; }; + 8BA05AF9072074E100365D66 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = /System/Library/Frameworks/AudioToolbox.framework; sourceTree = ""; }; + 8BA05AFA072074E100365D66 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = /System/Library/Frameworks/AudioUnit.framework; sourceTree = ""; }; + 8BA05B01072074F900365D66 /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = /System/Library/Frameworks/CoreServices.framework; sourceTree = ""; }; + 8BA05B050720754400365D66 /* CAAUParameter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUParameter.cpp; sourceTree = ""; }; + 8BA05B060720754400365D66 /* CAAUParameter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAAUParameter.h; sourceTree = ""; }; + 8BC6025B073B072D006C4272 /* X2Buss.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = X2Buss.h; sourceTree = ""; }; + 8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; + 8D01CCD20486CAD60068D4B7 /* X2Buss.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = X2Buss.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 /* X2Buss */ = { + isa = PBXGroup; + children = ( + 08FB77ADFE841716C02AAC07 /* Source */, + 089C167CFE841241C02AAC07 /* Resources */, + 089C1671FE841209C02AAC07 /* External Frameworks and Libraries */, + 19C28FB4FE9D528D11CA2CBB /* Products */, + ); + name = X2Buss; + sourceTree = ""; + }; + 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 = ""; + }; + 089C167CFE841241C02AAC07 /* Resources */ = { + isa = PBXGroup; + children = ( + 8D01CCD10486CAD60068D4B7 /* Info.plist */, + 089C167DFE841241C02AAC07 /* InfoPlist.strings */, + ); + name = Resources; + sourceTree = ""; + }; + 08FB77ADFE841716C02AAC07 /* Source */ = { + isa = PBXGroup; + children = ( + 8BA05A56072072A900365D66 /* AU Source */, + 8BA05AEB0720742700365D66 /* PublicUtility */, + 8BA05A7D072073D200365D66 /* AUPublic */, + ); + name = Source; + sourceTree = ""; + }; + 19C28FB4FE9D528D11CA2CBB /* Products */ = { + isa = PBXGroup; + children = ( + 8D01CCD20486CAD60068D4B7 /* X2Buss.component */, + ); + name = Products; + sourceTree = ""; + }; + 8BA05A56072072A900365D66 /* AU Source */ = { + isa = PBXGroup; + children = ( + 8BC6025B073B072D006C4272 /* X2Buss.h */, + 8BA05A660720730100365D66 /* X2Buss.cpp */, + 8BA05A670720730100365D66 /* X2Buss.exp */, + 8BA05A680720730100365D66 /* X2Buss.r */, + 8BA05A690720730100365D66 /* X2BussVersion.h */, + ); + name = "AU Source"; + sourceTree = ""; + }; + 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 = ""; + }; + 8BA05A99072073D200365D66 /* OtherBases */ = { + isa = PBXGroup; + children = ( + 8BA05A9A072073D200365D66 /* AUEffectBase.cpp */, + 8BA05A9B072073D200365D66 /* AUEffectBase.h */, + ); + path = OtherBases; + sourceTree = ""; + }; + 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 = ""; + }; + 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 /* X2BussVersion.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 /* X2Buss.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 /* X2Buss */ = { + isa = PBXNativeTarget; + buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "X2Buss" */; + buildPhases = ( + 8D01CCC70486CAD60068D4B7 /* Headers */, + 8D01CCC90486CAD60068D4B7 /* Resources */, + 8D01CCCB0486CAD60068D4B7 /* Sources */, + 8D01CCCD0486CAD60068D4B7 /* Frameworks */, + 8D01CCCF0486CAD60068D4B7 /* Rez */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = X2Buss; + productInstallPath = "$(HOME)/Library/Bundles"; + productName = X2Buss; + productReference = 8D01CCD20486CAD60068D4B7 /* X2Buss.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 "X2Buss" */; + compatibilityVersion = "Xcode 3.1"; + developmentRegion = English; + hasScannedForEncodings = 1; + knownRegions = ( + English, + Japanese, + French, + German, + ); + mainGroup = 089C166AFE841209C02AAC07 /* X2Buss */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 8D01CCC60486CAD60068D4B7 /* X2Buss */, + ); + }; +/* 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 /* X2Buss.r in Rez */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXRezBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 8D01CCCB0486CAD60068D4B7 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 8BA05A6B0720730100365D66 /* X2Buss.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 = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 3E4BA244089833B7007656EC /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + EXPORTED_SYMBOLS_FILE = X2Buss.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 = X2Buss; + WRAPPER_EXTENSION = component; + }; + name = Debug; + }; + 3E4BA245089833B7007656EC /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = ( + ppc, + i386, + x86_64, + ); + EXPORTED_SYMBOLS_FILE = X2Buss.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 = X2Buss; + 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 "X2Buss" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3E4BA244089833B7007656EC /* Debug */, + 3E4BA245089833B7007656EC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 3E4BA247089833B7007656EC /* Build configuration list for PBXProject "X2Buss" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3E4BA248089833B7007656EC /* Debug */, + 3E4BA249089833B7007656EC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; +/* End XCConfigurationList section */ + }; + rootObject = 089C1669FE841209C02AAC07 /* Project object */; +} diff --git a/plugins/MacAU/X2Buss/X2BussVersion.h b/plugins/MacAU/X2Buss/X2BussVersion.h new file mode 100755 index 000000000..8cfe2840f --- /dev/null +++ b/plugins/MacAU/X2Buss/X2BussVersion.h @@ -0,0 +1,58 @@ +/* +* File: X2BussVersion.h +* +* Version: 1.0 +* +* Created: 10/31/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 __X2BussVersion_h__ +#define __X2BussVersion_h__ + + +#ifdef DEBUG + #define kX2BussVersion 0xFFFFFFFF +#else + #define kX2BussVersion 0x00010000 +#endif + +//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~// +#define X2Buss_COMP_MANF 'Dthr' +#define X2Buss_COMP_SUBTYPE 'x2bs' +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// + +#endif + diff --git a/plugins/MacAU/X2Buss/version.plist b/plugins/MacAU/X2Buss/version.plist new file mode 100755 index 000000000..11edf8a1b --- /dev/null +++ b/plugins/MacAU/X2Buss/version.plist @@ -0,0 +1,16 @@ + + + + + BuildVersion + 3 + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1.0 + ProjectName + ${EXECUTABLE_NAME} + SourceVersion + 590000 + + diff --git a/plugins/MacAU/kWoodRoom/English.lproj/InfoPlist.strings b/plugins/MacAU/kWoodRoom/English.lproj/InfoPlist.strings new file mode 100755 index 000000000..8f574fc2d Binary files /dev/null and b/plugins/MacAU/kWoodRoom/English.lproj/InfoPlist.strings differ diff --git a/plugins/MacAU/kWoodRoom/Info.plist b/plugins/MacAU/kWoodRoom/Info.plist new file mode 100755 index 000000000..12f0517b5 --- /dev/null +++ b/plugins/MacAU/kWoodRoom/Info.plist @@ -0,0 +1,28 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + + CFBundleIdentifier + com.airwindows.audiounit.${PRODUCT_NAME:identifier} + CFBundleName + ${PROJECTNAMEASIDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0 + CFBundleSignature + Dthr + CFBundleVersion + 1.0 + CSResourcesFileMapped + + + diff --git a/plugins/MacAU/kWoodRoom/StarterAU_Prefix.pch b/plugins/MacAU/kWoodRoom/StarterAU_Prefix.pch new file mode 100755 index 000000000..c03b5f684 --- /dev/null +++ b/plugins/MacAU/kWoodRoom/StarterAU_Prefix.pch @@ -0,0 +1,5 @@ +// +// Prefix header for all source files of the '«PROJECTNAMEASIDENTIFIER»' target in the '«PROJECTNAMEASIDENTIFIER»' project. +// + +#include diff --git a/plugins/MacAU/kWoodRoom/kWoodRoom.cpp b/plugins/MacAU/kWoodRoom/kWoodRoom.cpp new file mode 100755 index 000000000..9534c8b70 --- /dev/null +++ b/plugins/MacAU/kWoodRoom/kWoodRoom.cpp @@ -0,0 +1,804 @@ +/* +* File: kWoodRoom.cpp +* +* Version: 1.0 +* +* Created: 11/1/25 +* +* Copyright: Copyright © 2025 Airwindows, Airwindows uses the MIT license +* +* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in +* consideration of your agreement to the following terms, and your use, installation, modification +* or redistribution of this Apple software constitutes acceptance of these terms. If you do +* not agree with these terms, please do not use, install, modify or redistribute this Apple +* software. +* +* In consideration of your agreement to abide by the following terms, and subject to these terms, +* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this +* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the +* Apple Software, with or without modifications, in source and/or binary forms; provided that if you +* redistribute the Apple Software in its entirety and without modifications, you must retain this +* notice and the following text and disclaimers in all such redistributions of the Apple Software. +* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to +* endorse or promote products derived from the Apple Software without specific prior written +* permission from Apple. Except as expressly stated in this notice, no other rights or +* licenses, express or implied, are granted by Apple herein, including but not limited to any +* patent rights that may be infringed by your derivative works or by other works in which the +* Apple Software may be incorporated. +* +* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR +* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY +* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE +* OR IN COMBINATION WITH YOUR PRODUCTS. +* +* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL +* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, +* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER +* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN +* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +*/ +/*============================================================================= + kWoodRoom.cpp + +=============================================================================*/ +#include "kWoodRoom.h" + + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +COMPONENT_ENTRY(kWoodRoom) + + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// kWoodRoom::kWoodRoom +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +kWoodRoom::kWoodRoom(AudioUnit component) + : AUEffectBase(component) +{ + CreateElements(); + Globals()->UseIndexedParameters(kNumberOfParameters); + SetParameter(kParam_A, kDefaultValue_ParamA ); + SetParameter(kParam_B, kDefaultValue_ParamB ); + SetParameter(kParam_C, kDefaultValue_ParamC ); + SetParameter(kParam_D, kDefaultValue_ParamD ); + SetParameter(kParam_E, kDefaultValue_ParamE ); + SetParameter(kParam_F, kDefaultValue_ParamF ); + +#if AU_DEBUG_DISPATCHER + mDebugDispatcher = new AUDebugDispatcher (this); +#endif + +} + + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// kWoodRoom::GetParameterValueStrings +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +ComponentResult kWoodRoom::GetParameterValueStrings(AudioUnitScope inScope, + AudioUnitParameterID inParameterID, + CFArrayRef * outStrings) +{ + + return kAudioUnitErr_InvalidProperty; +} + + + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// kWoodRoom::GetParameterInfo +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +ComponentResult kWoodRoom::GetParameterInfo(AudioUnitScope inScope, + AudioUnitParameterID inParameterID, + AudioUnitParameterInfo &outParameterInfo ) +{ + ComponentResult result = noErr; + + outParameterInfo.flags = kAudioUnitParameterFlag_IsWritable + | kAudioUnitParameterFlag_IsReadable; + + if (inScope == kAudioUnitScope_Global) { + switch(inParameterID) + { + case kParam_A: + AUBase::FillInParameterName (outParameterInfo, kParameterAName, false); + outParameterInfo.unit = kAudioUnitParameterUnit_Generic; + outParameterInfo.minValue = 0.0; + outParameterInfo.maxValue = 1.0; + outParameterInfo.defaultValue = kDefaultValue_ParamA; + break; + case kParam_B: + AUBase::FillInParameterName (outParameterInfo, kParameterBName, false); + outParameterInfo.unit = kAudioUnitParameterUnit_Generic; + outParameterInfo.minValue = 0.0; + outParameterInfo.maxValue = 1.0; + outParameterInfo.defaultValue = kDefaultValue_ParamB; + break; + case kParam_C: + AUBase::FillInParameterName (outParameterInfo, kParameterCName, false); + outParameterInfo.unit = kAudioUnitParameterUnit_Generic; + outParameterInfo.minValue = 0.0; + outParameterInfo.maxValue = 1.0; + outParameterInfo.defaultValue = kDefaultValue_ParamC; + break; + case kParam_D: + AUBase::FillInParameterName (outParameterInfo, kParameterDName, false); + outParameterInfo.unit = kAudioUnitParameterUnit_Generic; + outParameterInfo.minValue = 0.0; + outParameterInfo.maxValue = 1.0; + outParameterInfo.defaultValue = kDefaultValue_ParamD; + break; + case kParam_E: + AUBase::FillInParameterName (outParameterInfo, kParameterEName, false); + outParameterInfo.unit = kAudioUnitParameterUnit_Generic; + outParameterInfo.minValue = 0.0; + outParameterInfo.maxValue = 1.0; + outParameterInfo.defaultValue = kDefaultValue_ParamE; + break; + case kParam_F: + AUBase::FillInParameterName (outParameterInfo, kParameterFName, false); + outParameterInfo.unit = kAudioUnitParameterUnit_Generic; + outParameterInfo.minValue = 0.0; + outParameterInfo.maxValue = 1.0; + outParameterInfo.defaultValue = kDefaultValue_ParamF; + break; + default: + result = kAudioUnitErr_InvalidParameter; + break; + } + } else { + result = kAudioUnitErr_InvalidParameter; + } + + + + return result; +} + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// kWoodRoom::GetPropertyInfo +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +ComponentResult kWoodRoom::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 kWoodRoom::SupportedNumChannels(const AUChannelInfo ** outInfo) +{ + if (outInfo != NULL) + { + static AUChannelInfo info; + info.inChannels = 2; + info.outChannels = 2; + *outInfo = &info; + } + + return 1; +} + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// kWoodRoom::GetProperty +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +ComponentResult kWoodRoom::GetProperty( AudioUnitPropertyID inID, + AudioUnitScope inScope, + AudioUnitElement inElement, + void * outData ) +{ + return AUEffectBase::GetProperty (inID, inScope, inElement, outData); +} + +// kWoodRoom::Initialize +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +ComponentResult kWoodRoom::Initialize() +{ + ComponentResult result = AUEffectBase::Initialize(); + if (result == noErr) + Reset(kAudioUnitScope_Global, 0); + return result; +} + +#pragma mark ____kWoodRoomEffectKernel + + + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// kWoodRoom::kWoodRoomKernel::Reset() +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +ComponentResult kWoodRoom::Reset(AudioUnitScope inScope, AudioUnitElement inElement) +{ + for(int x = 0; x < d3A+2; x++) {a3AL[x] = 0.0; a3AR[x] = 0.0;} + for(int x = 0; x < d3B+2; x++) {a3BL[x] = 0.0; a3BR[x] = 0.0;} + for(int x = 0; x < d3C+2; x++) {a3CL[x] = 0.0; a3CR[x] = 0.0;} + for(int x = 0; x < d3D+2; x++) {a3DL[x] = 0.0; a3DR[x] = 0.0;} + for(int x = 0; x < d3E+2; x++) {a3EL[x] = 0.0; a3ER[x] = 0.0;} + for(int x = 0; x < d3F+2; x++) {a3FL[x] = 0.0; a3FR[x] = 0.0;} + for(int x = 0; x < d3G+2; x++) {a3GL[x] = 0.0; a3GR[x] = 0.0;} + for(int x = 0; x < d3H+2; x++) {a3HL[x] = 0.0; a3HR[x] = 0.0;} + for(int x = 0; x < d3I+2; x++) {a3IL[x] = 0.0; a3IR[x] = 0.0;} + c3AL = c3BL = c3CL = c3DL = c3EL = c3FL = c3GL = c3HL = c3IL = 1; + c3AR = c3BR = c3CR = c3DR = c3ER = c3FR = c3GR = c3HR = c3IR = 1; + + for(int x = 0; x < d6A+2; x++) {a6AL[x] = 0.0; a6AR[x] = 0.0;} + for(int x = 0; x < d6B+2; x++) {a6BL[x] = 0.0; a6BR[x] = 0.0;} + for(int x = 0; x < d6C+2; x++) {a6CL[x] = 0.0; a6CR[x] = 0.0;} + for(int x = 0; x < d6D+2; x++) {a6DL[x] = 0.0; a6DR[x] = 0.0;} + for(int x = 0; x < d6E+2; x++) {a6EL[x] = 0.0; a6ER[x] = 0.0;} + for(int x = 0; x < d6F+2; x++) {a6FL[x] = 0.0; a6FR[x] = 0.0;} + for(int x = 0; x < d6G+2; x++) {a6GL[x] = 0.0; a6GR[x] = 0.0;} + for(int x = 0; x < d6H+2; x++) {a6HL[x] = 0.0; a6HR[x] = 0.0;} + for(int x = 0; x < d6I+2; x++) {a6IL[x] = 0.0; a6IR[x] = 0.0;} + for(int x = 0; x < d6J+2; x++) {a6JL[x] = 0.0; a6JR[x] = 0.0;} + for(int x = 0; x < d6K+2; x++) {a6KL[x] = 0.0; a6KR[x] = 0.0;} + for(int x = 0; x < d6L+2; x++) {a6LL[x] = 0.0; a6LR[x] = 0.0;} + for(int x = 0; x < d6M+2; x++) {a6ML[x] = 0.0; a6MR[x] = 0.0;} + for(int x = 0; x < d6N+2; x++) {a6NL[x] = 0.0; a6NR[x] = 0.0;} + for(int x = 0; x < d6O+2; x++) {a6OL[x] = 0.0; a6OR[x] = 0.0;} + for(int x = 0; x < d6P+2; x++) {a6PL[x] = 0.0; a6PR[x] = 0.0;} + for(int x = 0; x < d6Q+2; x++) {a6QL[x] = 0.0; a6QR[x] = 0.0;} + for(int x = 0; x < d6R+2; x++) {a6RL[x] = 0.0; a6RR[x] = 0.0;} + for(int x = 0; x < d6S+2; x++) {a6SL[x] = 0.0; a6SR[x] = 0.0;} + for(int x = 0; x < d6T+2; x++) {a6TL[x] = 0.0; a6TR[x] = 0.0;} + for(int x = 0; x < d6U+2; x++) {a6UL[x] = 0.0; a6UR[x] = 0.0;} + for(int x = 0; x < d6V+2; x++) {a6VL[x] = 0.0; a6VR[x] = 0.0;} + for(int x = 0; x < d6W+2; x++) {a6WL[x] = 0.0; a6WR[x] = 0.0;} + for(int x = 0; x < d6X+2; x++) {a6XL[x] = 0.0; a6XR[x] = 0.0;} + for(int x = 0; x < d6Y+2; x++) {a6YL[x] = 0.0; a6YR[x] = 0.0;} + for(int x = 0; x < d6ZA+2; x++) {a6ZAL[x] = 0.0; a6ZAR[x] = 0.0;} + for(int x = 0; x < d6ZB+2; x++) {a6ZBL[x] = 0.0; a6ZBR[x] = 0.0;} + for(int x = 0; x < d6ZC+2; x++) {a6ZCL[x] = 0.0; a6ZCR[x] = 0.0;} + for(int x = 0; x < d6ZD+2; x++) {a6ZDL[x] = 0.0; a6ZDR[x] = 0.0;} + for(int x = 0; x < d6ZE+2; x++) {a6ZEL[x] = 0.0; a6ZER[x] = 0.0;} + for(int x = 0; x < d6ZF+2; x++) {a6ZFL[x] = 0.0; a6ZFR[x] = 0.0;} + for(int x = 0; x < d6ZG+2; x++) {a6ZGL[x] = 0.0; a6ZGR[x] = 0.0;} + for(int x = 0; x < d6ZH+2; x++) {a6ZHL[x] = 0.0; a6ZHR[x] = 0.0;} + for(int x = 0; x < d6ZI+2; x++) {a6ZIL[x] = 0.0; a6ZIR[x] = 0.0;} + for(int x = 0; x < d6ZJ+2; x++) {a6ZJL[x] = 0.0; a6ZJR[x] = 0.0;} + for(int x = 0; x < d6ZK+2; x++) {a6ZKL[x] = 0.0; a6ZKR[x] = 0.0;} + c6AL = c6BL = c6CL = c6DL = c6EL = c6FL = c6GL = c6HL = c6IL = 1; + c6JL = c6KL = c6LL = c6ML = c6NL = c6OL = c6PL = c6QL = c6RL = 1; + c6SL = c6TL = c6UL = c6VL = c6WL = c6XL = c6YL = c6ZAL = c6ZBL = 1; + c6ZCL = c6ZDL = c6ZEL = c6ZFL = c6ZGL = c6ZHL = c6ZIL = c6ZJL = c6ZKL = 1; + c6AR = c6BR = c6CR = c6DR = c6ER = c6FR = c6GR = c6HR = c6IR = 1; + c6JR = c6KR = c6LR = c6MR = c6NR = c6OR = c6PR = c6QR = c6RR = 1; + c6SR = c6TR = c6UR = c6VR = c6WR = c6XR = c6YR = c6ZAR = c6ZBR = 1; + c6ZCR = c6ZDR = c6ZER = c6ZFR = c6ZGR = c6ZHR = c6ZIR = c6ZJR = c6ZKR = 1; + f6AL = f6BL = f6CL = f6DL = f6EL = f6FL = 0.0; + f6FR = f6LR = f6RR = f6XR = f6ZER = f6ZKR = 0.0; + avg6L = avg6R = 0.0; + + for (int x = 0; x < bez_total; x++) { + bez[x] = 0.0; + bezF[x] = 0.0; + } + bez[bez_cycle] = 1.0; + bezF[bez_cycle] = 1.0; + + fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX; + fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX; + return noErr; +} + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// kWoodRoom::ProcessBufferLists +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +OSStatus kWoodRoom::ProcessBufferLists(AudioUnitRenderActionFlags & ioActionFlags, + const AudioBufferList & inBuffer, + AudioBufferList & outBuffer, + UInt32 inFramesToProcess) +{ + Float32 * inputL = (Float32*)(inBuffer.mBuffers[0].mData); + Float32 * inputR = (Float32*)(inBuffer.mBuffers[1].mData); + Float32 * outputL = (Float32*)(outBuffer.mBuffers[0].mData); + Float32 * outputR = (Float32*)(outBuffer.mBuffers[1].mData); + UInt32 nSampleFrames = inFramesToProcess; + double overallscale = 1.0; + overallscale /= 44100.0; + overallscale *= GetSampleRate(); + + double fdb6ck = (0.0009765625+0.0009765625+0.001953125)*0.3333333; + double reg6n = (1.0-pow(1.0-GetParameter( kParam_A ),1.618033988749894))*fdb6ck; + //start this but pad it in the loop by volume of output? + + double derez = GetParameter( kParam_B )*2.0; + bool stepped = true; // Revised Bezier Undersampling + if (derez > 1.0) { // has full rez at center, stepped + stepped = false; // to left, continuous to right + derez = 1.0-(derez-1.0); + } //if it's set up like that it's the revised algorithm + derez = fmin(fmax(derez/overallscale,0.0005),1.0); + int bezFraction = (int)(1.0/derez); + double bezTrim = (double)bezFraction/(bezFraction+1.0); + if (stepped) { //this hard-locks derez to exact subdivisions of 1.0 + derez = 1.0 / bezFraction; + bezTrim = 1.0-(derez*bezTrim); + } else { //this makes it match the 1.0 case using stepped + derez /= (2.0/pow(overallscale,0.5-((overallscale-1.0)*0.0375))); + bezTrim = 1.0-pow(derez*0.5,1.0/(derez*0.5)); + } //the revision more accurately connects the bezier curves + + double derezFreq = GetParameter( kParam_C )*2.0; + bool steppedFreq = true; // Revised Bezier Undersampling + if (derezFreq > 1.0) { // has full rez at center, stepped + steppedFreq = false; // to left, continuous to right + derezFreq = 1.0-(derezFreq-1.0); + } //if it's set up like that it's the revised algorithm + derezFreq = fmin(fmax(derezFreq,0.0005),1.0); //note: no overallscale, already inside undersampling + int bezFreqFraction = (int)(1.0/derezFreq); + double bezFreqTrim = (double)bezFreqFraction/(bezFreqFraction+1.0); + if (steppedFreq) { //this hard-locks derez to exact subdivisions of 1.0 + derezFreq = 1.0 / bezFreqFraction; + bezFreqTrim = 1.0-(derezFreq*bezFreqTrim); + } else { //this makes it match the 1.0 case using stepped + bezFreqTrim = 1.0-pow(derezFreq*0.5,1.0/(derezFreq*0.5)); + } //the revision more accurately connects the bezier curves + + double earlyLoudness = GetParameter( kParam_D )*2.0; + int start = (int)(GetParameter( kParam_E ) * 27.0); + int ld3G = early[start]; + int ld3H = early[start+1]; + int ld3D = early[start+2]; + int ld3A = early[start+3]; + int ld3E = early[start+4]; + int ld3I = early[start+5]; + int ld3F = early[start+6]; + int ld3B = early[start+7]; + int ld3C = early[start+8]; + double wet = GetParameter( kParam_F ); + + while (nSampleFrames-- > 0) { + double inputSampleL = *inputL; + double inputSampleR = *inputR; + if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17; + if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17; + double drySampleL = inputSampleL; + double drySampleR = inputSampleR; + + bez[bez_cycle] += derez; + bez[bez_SampL] += ((inputSampleL+bez[bez_InL]) * derez); + bez[bez_SampR] += ((inputSampleR+bez[bez_InR]) * derez); + bez[bez_InL] = inputSampleL; bez[bez_InR] = inputSampleR; + if (bez[bez_cycle] > 1.0) { //hit the end point and we do a reverb sample + if (stepped) bez[bez_cycle] = 0.0; + else bez[bez_cycle] -= 1.0; + + inputSampleL = (bez[bez_SampL]+bez[bez_AvgInSampL])*0.5; + bez[bez_AvgInSampL] = bez[bez_SampL]; + inputSampleR = (bez[bez_SampR]+bez[bez_AvgInSampR])*0.5; + bez[bez_AvgInSampR] = bez[bez_SampR]; + + a3AL[c3AL] = inputSampleL;// + (f3AL * reg3n); + a3BL[c3BL] = inputSampleL;// + (f3BL * reg3n); + a3CL[c3CL] = inputSampleL;// + (f3CL * reg3n); + + a3CR[c3CR] = inputSampleR;// + (f3CR * reg3n); + a3FR[c3FR] = inputSampleR;// + (f3FR * reg3n); + a3IR[c3IR] = inputSampleR;// + (f3IR * reg3n); + + c3AL++; if (c3AL < 0 || c3AL > ld3A) c3AL = 0; + c3BL++; if (c3BL < 0 || c3BL > ld3B) c3BL = 0; + c3CL++; if (c3CL < 0 || c3CL > ld3C) c3CL = 0; + c3CR++; if (c3CR < 0 || c3CR > ld3C) c3CR = 0; + c3FR++; if (c3FR < 0 || c3FR > ld3F) c3FR = 0; + c3IR++; if (c3IR < 0 || c3IR > ld3I) c3IR = 0; + + double o3AL = a3AL[c3AL-((c3AL > ld3A)?c3AL+1:0)]; + double o3BL = a3BL[c3BL-((c3BL > ld3B)?c3BL+1:0)]; + double o3CL = a3CL[c3CL-((c3CL > ld3C)?c3CL+1:0)]; + double o3CR = a3CR[c3CR-((c3CR > ld3C)?c3CR+1:0)]; + double o3FR = a3FR[c3FR-((c3FR > ld3F)?c3FR+1:0)]; + double o3IR = a3IR[c3IR-((c3IR > ld3I)?c3IR+1:0)]; + + a3DL[c3DL] = (((o3BL + o3CL) * -2.0) + o3AL); + a3EL[c3EL] = (((o3AL + o3CL) * -2.0) + o3BL); + a3FL[c3FL] = (((o3AL + o3BL) * -2.0) + o3CL); + a3BR[c3BR] = (((o3FR + o3IR) * -2.0) + o3CR); + a3ER[c3ER] = (((o3CR + o3IR) * -2.0) + o3FR); + a3HR[c3HR] = (((o3CR + o3FR) * -2.0) + o3IR); + + c3DL++; if (c3DL < 0 || c3DL > ld3D) c3DL = 0; + c3EL++; if (c3EL < 0 || c3EL > ld3E) c3EL = 0; + c3FL++; if (c3FL < 0 || c3FL > ld3F) c3FL = 0; + c3BR++; if (c3BR < 0 || c3BR > ld3B) c3BR = 0; + c3ER++; if (c3ER < 0 || c3ER > ld3E) c3ER = 0; + c3HR++; if (c3HR < 0 || c3HR > ld3H) c3HR = 0; + + double o3DL = a3DL[c3DL-((c3DL > ld3D)?c3DL+1:0)]; + double o3EL = a3EL[c3EL-((c3EL > ld3E)?c3EL+1:0)]; + double o3FL = a3FL[c3FL-((c3FL > ld3F)?c3FL+1:0)]; + double o3BR = a3BR[c3BR-((c3BR > ld3B)?c3BR+1:0)]; + double o3ER = a3ER[c3ER-((c3ER > ld3E)?c3ER+1:0)]; + double o3HR = a3HR[c3HR-((c3HR > ld3H)?c3HR+1:0)]; + + a3GL[c3GL] = (((o3EL + o3FL) * -2.0) + o3DL); + a3HL[c3HL] = (((o3DL + o3FL) * -2.0) + o3EL); + a3IL[c3IL] = (((o3DL + o3EL) * -2.0) + o3FL); + a3AR[c3AR] = (((o3ER + o3HR) * -2.0) + o3BR); + a3DR[c3DR] = (((o3BR + o3HR) * -2.0) + o3ER); + a3GR[c3GR] = (((o3BR + o3ER) * -2.0) + o3HR); + + c3GL++; if (c3GL < 0 || c3GL > ld3G) c3GL = 0; + c3HL++; if (c3HL < 0 || c3HL > ld3H) c3HL = 0; + c3IL++; if (c3IL < 0 || c3IL > ld3I) c3IL = 0; + c3AR++; if (c3AR < 0 || c3AR > ld3A) c3AR = 0; + c3DR++; if (c3DR < 0 || c3DR > ld3D) c3DR = 0; + c3GR++; if (c3GR < 0 || c3GR > ld3G) c3GR = 0; + + double o3GL = a3GL[c3GL-((c3GL > ld3G)?c3GL+1:0)]; + double o3HL = a3HL[c3HL-((c3HL > ld3H)?c3HL+1:0)]; + double o3IL = a3IL[c3IL-((c3IL > ld3I)?c3IL+1:0)]; + double o3AR = a3AR[c3AR-((c3AR > ld3A)?c3AR+1:0)]; + double o3DR = a3DR[c3DR-((c3DR > ld3D)?c3DR+1:0)]; + double o3GR = a3GR[c3GR-((c3GR > ld3G)?c3GR+1:0)]; + + double inputSampleL = (o3GL + o3HL + o3IL)*0.03125; + double inputSampleR = (o3AR + o3DR + o3GR)*0.03125; + + bezF[bez_cycle] += derezFreq; + bezF[bez_SampL] += ((inputSampleL+bezF[bez_InL]) * derezFreq); + bezF[bez_SampR] += ((inputSampleL+bezF[bez_InR]) * derezFreq); + bezF[bez_InL] = inputSampleL; bezF[bez_InR] = inputSampleR; + if (bezF[bez_cycle] > 1.0) { //hit the end point and we do a filter sample + if (steppedFreq) bezF[bez_cycle] = 0.0; + else bezF[bez_cycle] -= 1.0; + bezF[bez_CL] = bezF[bez_BL]; + bezF[bez_BL] = bezF[bez_AL]; + bezF[bez_AL] = (bezF[bez_SampL]+bezF[bez_AvgInSampL])*0.5; + bezF[bez_AvgInSampL] = bezF[bez_SampL]; bezF[bez_SampL] = 0.0; + bezF[bez_CR] = bezF[bez_BR]; + bezF[bez_BR] = bezF[bez_AR]; + bezF[bez_AR] = (bezF[bez_SampR]+bezF[bez_AvgInSampR])*0.5; + bezF[bez_AvgInSampR] = bezF[bez_SampR]; bezF[bez_SampR] = 0.0; + } + double X = bezF[bez_cycle]*bezFreqTrim; + double CBLfreq = (bezF[bez_CL]*(1.0-X))+(bezF[bez_BL]*X); + double BALfreq = (bezF[bez_BL]*(1.0-X))+(bezF[bez_AL]*X); + double CBALfreq = (bezF[bez_BL]+(CBLfreq*(1.0-X))+(BALfreq*X))*0.125; + double CBRfreq = (bezF[bez_CR]*(1.0-X))+(bezF[bez_BR]*X); + double BARfreq = (bezF[bez_BR]*(1.0-X))+(bezF[bez_AR]*X); + double CBARfreq = (bezF[bez_BR]+(CBRfreq*(1.0-X))+(BARfreq*X))*0.125; + inputSampleL = CBALfreq+bezF[bez_AvgOutSampL]; + bezF[bez_AvgOutSampL] = CBALfreq; + inputSampleR = CBARfreq+bezF[bez_AvgOutSampR]; + bezF[bez_AvgOutSampR] = CBARfreq; + + double earlyReflectionL = inputSampleL; + double earlyReflectionR = inputSampleR; //kWoodRoom has filtered early reflections + + a6AL[c6AL] = inputSampleL + (f6BL * reg6n); + a6BL[c6BL] = inputSampleL + (f6CL * reg6n); + a6CL[c6CL] = inputSampleL + (f6DL * reg6n); + a6DL[c6DL] = inputSampleL + (f6EL * reg6n); + a6EL[c6EL] = inputSampleL + (f6FL * reg6n); + a6FL[c6FL] = inputSampleL + (f6AL * reg6n); + + c6AL++; if (c6AL < 0 || c6AL > d6A) c6AL = 0; + c6BL++; if (c6BL < 0 || c6BL > d6B) c6BL = 0; + c6CL++; if (c6CL < 0 || c6CL > d6C) c6CL = 0; + c6DL++; if (c6DL < 0 || c6DL > d6D) c6DL = 0; + c6EL++; if (c6EL < 0 || c6EL > d6E) c6EL = 0; + c6FL++; if (c6FL < 0 || c6FL > d6F) c6FL = 0; + + double o6AL = a6AL[c6AL-((c6AL > d6A)?d6A+1:0)]; + double o6BL = a6BL[c6BL-((c6BL > d6B)?d6B+1:0)]; + double o6CL = a6CL[c6CL-((c6CL > d6C)?d6C+1:0)]; + double o6DL = a6DL[c6DL-((c6DL > d6D)?d6D+1:0)]; + double o6EL = a6EL[c6EL-((c6EL > d6E)?d6E+1:0)]; + double o6FL = a6FL[c6FL-((c6FL > d6F)?d6F+1:0)]; + + a6FR[c6FR] = inputSampleR + (f6LR * reg6n); + a6LR[c6LR] = inputSampleR + (f6RR * reg6n); + a6RR[c6RR] = inputSampleR + (f6XR * reg6n); + a6XR[c6XR] = inputSampleR + (f6ZER * reg6n); + a6ZER[c6ZER] = inputSampleR + (f6ZKR * reg6n); + a6ZKR[c6ZKR] = inputSampleR + (f6FR * reg6n); + + c6FR++; if (c6FR < 0 || c6FR > d6F) c6FR = 0; + c6LR++; if (c6LR < 0 || c6LR > d6L) c6LR = 0; + c6RR++; if (c6RR < 0 || c6RR > d6R) c6RR = 0; + c6XR++; if (c6XR < 0 || c6XR > d6X) c6XR = 0; + c6ZER++; if (c6ZER < 0 || c6ZER > d6ZE) c6ZER = 0; + c6ZKR++; if (c6ZKR < 0 || c6ZKR > d6ZK) c6ZKR = 0; + + double o6FR = a6FR[c6FR-((c6FR > d6F)?d6F+1:0)]; + double o6LR = a6LR[c6LR-((c6LR > d6L)?d6L+1:0)]; + double o6RR = a6RR[c6RR-((c6RR > d6R)?d6R+1:0)]; + double o6XR = a6XR[c6XR-((c6XR > d6X)?d6X+1:0)]; + double o6ZER = a6ZER[c6ZER-((c6ZER > d6ZE)?d6ZE+1:0)]; + double o6ZKR = a6ZKR[c6ZKR-((c6ZKR > d6ZK)?d6ZK+1:0)]; + + //-------- one + + a6GL[c6GL] = ((o6AL*2.0) - (o6BL + o6CL + o6DL + o6EL + o6FL)); + a6HL[c6HL] = ((o6BL*2.0) - (o6AL + o6CL + o6DL + o6EL + o6FL)); + a6IL[c6IL] = ((o6CL*2.0) - (o6AL + o6BL + o6DL + o6EL + o6FL)); + a6JL[c6JL] = ((o6DL*2.0) - (o6AL + o6BL + o6CL + o6EL + o6FL)); + a6KL[c6KL] = ((o6EL*2.0) - (o6AL + o6BL + o6CL + o6DL + o6FL)); + a6LL[c6LL] = ((o6FL*2.0) - (o6AL + o6BL + o6CL + o6DL + o6EL)); + + c6GL++; if (c6GL < 0 || c6GL > d6G) c6GL = 0; + c6HL++; if (c6HL < 0 || c6HL > d6H) c6HL = 0; + c6IL++; if (c6IL < 0 || c6IL > d6I) c6IL = 0; + c6JL++; if (c6JL < 0 || c6JL > d6J) c6JL = 0; + c6KL++; if (c6KL < 0 || c6KL > d6K) c6KL = 0; + c6LL++; if (c6LL < 0 || c6LL > d6L) c6LL = 0; + + double o6GL = a6GL[c6GL-((c6GL > d6G)?d6G+1:0)]; + double o6HL = a6HL[c6HL-((c6HL > d6H)?d6H+1:0)]; + double o6IL = a6IL[c6IL-((c6IL > d6I)?d6I+1:0)]; + double o6JL = a6JL[c6JL-((c6JL > d6J)?d6J+1:0)]; + double o6KL = a6KL[c6KL-((c6KL > d6K)?d6K+1:0)]; + double o6LL = a6LL[c6LL-((c6LL > d6L)?d6L+1:0)]; + + a6ER[c6ER] = ((o6FR*2.0) - (o6LR + o6RR + o6XR + o6ZER + o6ZKR)); + a6KR[c6KR] = ((o6LR*2.0) - (o6FR + o6RR + o6XR + o6ZER + o6ZKR)); + a6QR[c6QR] = ((o6RR*2.0) - (o6FR + o6LR + o6XR + o6ZER + o6ZKR)); + a6WR[c6WR] = ((o6XR*2.0) - (o6FR + o6LR + o6RR + o6ZER + o6ZKR)); + a6ZDR[c6ZDR] = ((o6ZER*2.0) - (o6FR + o6LR + o6RR + o6XR + o6ZKR)); + a6ZJR[c6ZJR] = ((o6ZKR*2.0) - (o6FR + o6LR + o6RR + o6XR + o6ZER)); + + c6ER++; if (c6ER < 0 || c6ER > d6E) c6ER = 0; + c6KR++; if (c6KR < 0 || c6KR > d6K) c6KR = 0; + c6QR++; if (c6QR < 0 || c6QR > d6Q) c6QR = 0; + c6WR++; if (c6WR < 0 || c6WR > d6W) c6WR = 0; + c6ZDR++; if (c6ZDR < 0 || c6ZDR > d6ZD) c6ZDR = 0; + c6ZJR++; if (c6ZJR < 0 || c6ZJR > d6ZJ) c6ZJR = 0; + + double o6ER = a6ER[c6ER-((c6ER > d6E)?d6E+1:0)]; + double o6KR = a6KR[c6KR-((c6KR > d6K)?d6K+1:0)]; + double o6QR = a6QR[c6QR-((c6QR > d6Q)?d6Q+1:0)]; + double o6WR = a6WR[c6WR-((c6WR > d6W)?d6W+1:0)]; + double o6ZDR = a6ZDR[c6ZDR-((c6ZDR > d6ZD)?d6ZD+1:0)]; + double o6ZJR = a6ZJR[c6ZJR-((c6ZJR > d6ZJ)?d6ZJ+1:0)]; + + //-------- two + + a6ML[c6ML] = ((o6GL*2.0) - (o6HL + o6IL + o6JL + o6KL + o6LL)); + a6NL[c6NL] = ((o6HL*2.0) - (o6GL + o6IL + o6JL + o6KL + o6LL)); + a6OL[c6OL] = ((o6IL*2.0) - (o6GL + o6HL + o6JL + o6KL + o6LL)); + a6PL[c6PL] = ((o6JL*2.0) - (o6GL + o6HL + o6IL + o6KL + o6LL)); + a6QL[c6QL] = ((o6KL*2.0) - (o6GL + o6HL + o6IL + o6JL + o6LL)); + a6RL[c6RL] = ((o6LL*2.0) - (o6GL + o6HL + o6IL + o6JL + o6KL)); + + c6ML++; if (c6ML < 0 || c6ML > d6M) c6ML = 0; + c6NL++; if (c6NL < 0 || c6NL > d6N) c6NL = 0; + c6OL++; if (c6OL < 0 || c6OL > d6O) c6OL = 0; + c6PL++; if (c6PL < 0 || c6PL > d6P) c6PL = 0; + c6QL++; if (c6QL < 0 || c6QL > d6Q) c6QL = 0; + c6RL++; if (c6RL < 0 || c6RL > d6R) c6RL = 0; + + double o6ML = a6ML[c6ML-((c6ML > d6M)?d6M+1:0)]; + double o6NL = a6NL[c6NL-((c6NL > d6N)?d6N+1:0)]; + double o6OL = a6OL[c6OL-((c6OL > d6O)?d6O+1:0)]; + double o6PL = a6PL[c6PL-((c6PL > d6P)?d6P+1:0)]; + double o6QL = a6QL[c6QL-((c6QL > d6Q)?d6Q+1:0)]; + double o6RL = a6RL[c6RL-((c6RL > d6R)?d6R+1:0)]; + + a6DR[c6DR] = ((o6ER*2.0) - (o6KR + o6QR + o6WR + o6ZDR + o6ZJR)); + a6JR[c6JR] = ((o6KR*2.0) - (o6ER + o6QR + o6WR + o6ZDR + o6ZJR)); + a6PR[c6PR] = ((o6QR*2.0) - (o6ER + o6KR + o6WR + o6ZDR + o6ZJR)); + a6VR[c6VR] = ((o6WR*2.0) - (o6ER + o6KR + o6QR + o6ZDR + o6ZJR)); + a6ZCR[c6ZCR] = ((o6ZDR*2.0) - (o6ER + o6KR + o6QR + o6WR + o6ZJR)); + a6ZIR[c6ZIR] = ((o6ZJR*2.0) - (o6ER + o6KR + o6QR + o6WR + o6ZDR)); + + c6DR++; if (c6DR < 0 || c6DR > d6D) c6DR = 0; + c6JR++; if (c6JR < 0 || c6JR > d6J) c6JR = 0; + c6PR++; if (c6PR < 0 || c6PR > d6P) c6PR = 0; + c6VR++; if (c6VR < 0 || c6VR > d6V) c6VR = 0; + c6ZCR++; if (c6ZCR < 0 || c6ZCR > d6ZC) c6ZCR = 0; + c6ZIR++; if (c6ZIR < 0 || c6ZIR > d6ZI) c6ZIR = 0; + + double o6DR = a6DR[c6DR-((c6DR > d6D)?d6D+1:0)]; + double o6JR = a6JR[c6JR-((c6JR > d6J)?d6J+1:0)]; + double o6PR = a6PR[c6PR-((c6PR > d6P)?d6P+1:0)]; + double o6VR = a6VR[c6VR-((c6VR > d6V)?d6V+1:0)]; + double o6ZCR = a6ZCR[c6ZCR-((c6ZCR > d6ZC)?d6ZC+1:0)]; + double o6ZIR = a6ZIR[c6ZIR-((c6ZIR > d6ZI)?d6ZI+1:0)]; + + //-------- three + + a6SL[c6SL] = ((o6ML*2.0) - (o6NL + o6OL + o6PL + o6QL + o6RL)); + a6TL[c6TL] = ((o6NL*2.0) - (o6ML + o6OL + o6PL + o6QL + o6RL)); + a6UL[c6UL] = ((o6OL*2.0) - (o6ML + o6NL + o6PL + o6QL + o6RL)); + a6VL[c6VL] = ((o6PL*2.0) - (o6ML + o6NL + o6OL + o6QL + o6RL)); + a6WL[c6WL] = ((o6QL*2.0) - (o6ML + o6NL + o6OL + o6PL + o6RL)); + a6XL[c6XL] = ((o6RL*2.0) - (o6ML + o6NL + o6OL + o6PL + o6QL)); + + c6SL++; if (c6SL < 0 || c6SL > d6S) c6SL = 0; + c6TL++; if (c6TL < 0 || c6TL > d6T) c6TL = 0; + c6UL++; if (c6UL < 0 || c6UL > d6U) c6UL = 0; + c6VL++; if (c6VL < 0 || c6VL > d6V) c6VL = 0; + c6WL++; if (c6WL < 0 || c6WL > d6W) c6WL = 0; + c6XL++; if (c6XL < 0 || c6XL > d6X) c6XL = 0; + + double o6SL = a6SL[c6SL-((c6SL > d6S)?d6S+1:0)]; + double o6TL = a6TL[c6TL-((c6TL > d6T)?d6T+1:0)]; + double o6UL = a6UL[c6UL-((c6UL > d6U)?d6U+1:0)]; + double o6VL = a6VL[c6VL-((c6VL > d6V)?d6V+1:0)]; + double o6WL = a6WL[c6WL-((c6WL > d6W)?d6W+1:0)]; + double o6XL = a6XL[c6XL-((c6XL > d6X)?d6X+1:0)]; + + a6CR[c6CR] = ((o6DR*2.0) - (o6JR + o6PR + o6VR + o6ZCR + o6ZIR)); + a6IR[c6IR] = ((o6JR*2.0) - (o6DR + o6PR + o6VR + o6ZCR + o6ZIR)); + a6OR[c6OR] = ((o6PR*2.0) - (o6DR + o6JR + o6VR + o6ZCR + o6ZIR)); + a6UR[c6UR] = ((o6VR*2.0) - (o6DR + o6JR + o6PR + o6ZCR + o6ZIR)); + a6ZBR[c6ZBR] = ((o6ZCR*2.0) - (o6DR + o6JR + o6PR + o6VR + o6ZIR)); + a6ZHR[c6ZHR] = ((o6ZIR*2.0) - (o6DR + o6JR + o6PR + o6VR + o6ZCR)); + + c6CR++; if (c6CR < 0 || c6CR > d6C) c6CR = 0; + c6IR++; if (c6IR < 0 || c6IR > d6I) c6IR = 0; + c6OR++; if (c6OR < 0 || c6OR > d6O) c6OR = 0; + c6UR++; if (c6UR < 0 || c6UR > d6U) c6UR = 0; + c6ZBR++; if (c6ZBR < 0 || c6ZBR > d6ZB) c6ZBR = 0; + c6ZHR++; if (c6ZHR < 0 || c6ZHR > d6ZH) c6ZHR = 0; + + double o6CR = a6CR[c6CR-((c6CR > d6C)?d6C+1:0)]; + double o6IR = a6IR[c6IR-((c6IR > d6I)?d6I+1:0)]; + double o6OR = a6OR[c6OR-((c6OR > d6O)?d6O+1:0)]; + double o6UR = a6UR[c6UR-((c6UR > d6U)?d6U+1:0)]; + double o6ZBR = a6ZBR[c6ZBR-((c6ZBR > d6ZB)?d6ZB+1:0)]; + double o6ZHR = a6ZHR[c6ZHR-((c6ZHR > d6ZH)?d6ZH+1:0)]; + + //-------- four + + a6YL[c6YL] = ((o6SL*2.0) - (o6TL + o6UL + o6VL + o6WL + o6XL)); + a6ZAL[c6ZAL] = ((o6TL*2.0) - (o6SL + o6UL + o6VL + o6WL + o6XL)); + a6ZBL[c6ZBL] = ((o6UL*2.0) - (o6SL + o6TL + o6VL + o6WL + o6XL)); + a6ZCL[c6ZCL] = ((o6VL*2.0) - (o6SL + o6TL + o6UL + o6WL + o6XL)); + a6ZDL[c6ZDL] = ((o6WL*2.0) - (o6SL + o6TL + o6UL + o6VL + o6XL)); + a6ZEL[c6ZEL] = ((o6XL*2.0) - (o6SL + o6TL + o6UL + o6VL + o6WL)); + + c6YL++; if (c6YL < 0 || c6YL > d6Y) c6YL = 0; + c6ZAL++; if (c6ZAL < 0 || c6ZAL > d6ZA) c6ZAL = 0; + c6ZBL++; if (c6ZBL < 0 || c6ZBL > d6ZB) c6ZBL = 0; + c6ZCL++; if (c6ZCL < 0 || c6ZCL > d6ZC) c6ZCL = 0; + c6ZDL++; if (c6ZDL < 0 || c6ZDL > d6ZD) c6ZDL = 0; + c6ZEL++; if (c6ZEL < 0 || c6ZEL > d6ZE) c6ZEL = 0; + + double o6YL = a6YL[c6YL-((c6YL > d6Y)?d6Y+1:0)]; + double o6ZAL = a6ZAL[c6ZAL-((c6ZAL > d6ZA)?d6ZA+1:0)]; + double o6ZBL = a6ZBL[c6ZBL-((c6ZBL > d6ZB)?d6ZB+1:0)]; + double o6ZCL = a6ZCL[c6ZCL-((c6ZCL > d6ZC)?d6ZC+1:0)]; + double o6ZDL = a6ZDL[c6ZDL-((c6ZDL > d6ZD)?d6ZD+1:0)]; + double o6ZEL = a6ZEL[c6ZEL-((c6ZEL > d6ZE)?d6ZE+1:0)]; + + a6BR[c6BR] = ((o6CR*2.0) - (o6IR + o6OR + o6UR + o6ZBR + o6ZHR)); + a6HR[c6HR] = ((o6IR*2.0) - (o6CR + o6OR + o6UR + o6ZBR + o6ZHR)); + a6NR[c6NR] = ((o6OR*2.0) - (o6CR + o6IR + o6UR + o6ZBR + o6ZHR)); + a6TR[c6TR] = ((o6UR*2.0) - (o6CR + o6IR + o6OR + o6ZBR + o6ZHR)); + a6ZAR[c6ZAR] = ((o6ZBR*2.0) - (o6CR + o6IR + o6OR + o6UR + o6ZHR)); + a6ZGR[c6ZGR] = ((o6ZHR*2.0) - (o6CR + o6IR + o6OR + o6UR + o6ZBR)); + + c6BR++; if (c6BR < 0 || c6BR > d6B) c6BR = 0; + c6HR++; if (c6HR < 0 || c6HR > d6H) c6HR = 0; + c6NR++; if (c6NR < 0 || c6NR > d6N) c6NR = 0; + c6TR++; if (c6TR < 0 || c6TR > d6T) c6TR = 0; + c6ZBR++; if (c6ZBR < 0 || c6ZBR > d6ZB) c6ZBR = 0; + c6ZGR++; if (c6ZGR < 0 || c6ZGR > d6ZG) c6ZGR = 0; + + double o6BR = a6BR[c6BR-((c6BR > d6B)?d6B+1:0)]; + double o6HR = a6HR[c6HR-((c6HR > d6H)?d6H+1:0)]; + double o6NR = a6NR[c6NR-((c6NR > d6N)?d6N+1:0)]; + double o6TR = a6TR[c6TR-((c6TR > d6T)?d6T+1:0)]; + double o6ZAR = a6ZAR[c6ZAR-((c6ZAR > d6ZA)?d6ZA+1:0)]; + double o6ZGR = a6ZGR[c6ZGR-((c6ZGR > d6ZG)?d6ZG+1:0)]; + + //-------- five + + a6ZFL[c6ZFL] = ((o6YL*2.0) - (o6ZAL + o6ZBL + o6ZCL + o6ZDL + o6ZEL)); + a6ZGL[c6ZGL] = ((o6ZAL*2.0) - (o6YL + o6ZBL + o6ZCL + o6ZDL + o6ZEL)); + a6ZHL[c6ZHL] = ((o6ZBL*2.0) - (o6YL + o6ZAL + o6ZCL + o6ZDL + o6ZEL)); + a6ZIL[c6ZIL] = ((o6ZCL*2.0) - (o6YL + o6ZAL + o6ZBL + o6ZDL + o6ZEL)); + a6ZJL[c6ZJL] = ((o6ZDL*2.0) - (o6YL + o6ZAL + o6ZBL + o6ZCL + o6ZEL)); + a6ZKL[c6ZKL] = ((o6ZEL*2.0) - (o6YL + o6ZAL + o6ZBL + o6ZCL + o6ZDL)); + + c6ZFL++; if (c6ZFL < 0 || c6ZFL > d6ZF) c6ZFL = 0; + c6ZGL++; if (c6ZGL < 0 || c6ZGL > d6ZG) c6ZGL = 0; + c6ZHL++; if (c6ZHL < 0 || c6ZHL > d6ZH) c6ZHL = 0; + c6ZIL++; if (c6ZIL < 0 || c6ZIL > d6ZI) c6ZIL = 0; + c6ZJL++; if (c6ZJL < 0 || c6ZJL > d6ZJ) c6ZJL = 0; + c6ZKL++; if (c6ZKL < 0 || c6ZKL > d6ZK) c6ZKL = 0; + + double o6ZFL = a6ZFL[c6ZFL-((c6ZFL > d6ZF)?d6ZF+1:0)]; + double o6ZGL = a6ZGL[c6ZGL-((c6ZGL > d6ZG)?d6ZG+1:0)]; + double o6ZHL = a6ZHL[c6ZHL-((c6ZHL > d6ZH)?d6ZH+1:0)]; + double o6ZIL = a6ZIL[c6ZIL-((c6ZIL > d6ZI)?d6ZI+1:0)]; + double o6ZJL = a6ZJL[c6ZJL-((c6ZJL > d6ZJ)?d6ZJ+1:0)]; + double o6ZKL = a6ZKL[c6ZKL-((c6ZKL > d6ZK)?d6ZK+1:0)]; + + a6AR[c6AR] = ((o6BR*2.0) - (o6HR + o6NR + o6TR + o6ZAR + o6ZGR)); + a6GR[c6GR] = ((o6HR*2.0) - (o6BR + o6NR + o6TR + o6ZAR + o6ZGR)); + a6MR[c6MR] = ((o6NR*2.0) - (o6BR + o6HR + o6TR + o6ZAR + o6ZGR)); + a6SR[c6SR] = ((o6TR*2.0) - (o6BR + o6HR + o6NR + o6ZAR + o6ZGR)); + a6YR[c6YR] = ((o6ZAR*2.0) - (o6BR + o6HR + o6NR + o6TR + o6ZGR)); + a6ZFR[c6ZFR] = ((o6ZGR*2.0) - (o6BR + o6HR + o6NR + o6TR + o6ZAR)); + + c6AR++; if (c6AR < 0 || c6AR > d6A) c6AR = 0; + c6GR++; if (c6GR < 0 || c6GR > d6G) c6GR = 0; + c6MR++; if (c6MR < 0 || c6MR > d6M) c6MR = 0; + c6SR++; if (c6SR < 0 || c6SR > d6S) c6SR = 0; + c6YR++; if (c6YR < 0 || c6YR > d6Y) c6YR = 0; + c6ZFR++; if (c6ZFR < 0 || c6ZFR > d6ZF) c6ZFR = 0; + + double o6AR = a6AR[c6AR-((c6AR > d6A)?d6A+1:0)]; + double o6GR = a6GR[c6GR-((c6GR > d6G)?d6G+1:0)]; + double o6MR = a6MR[c6MR-((c6MR > d6M)?d6M+1:0)]; + double o6SR = a6SR[c6SR-((c6SR > d6S)?d6S+1:0)]; + double o6YR = a6YR[c6YR-((c6YR > d6Y)?d6Y+1:0)]; + double o6ZFR = a6ZFR[c6ZFR-((c6ZFR > d6ZF)?d6ZF+1:0)]; + + //-------- six + + f6AL = ((o6AR*2.0) - (o6GR + o6MR + o6SR + o6YR + o6ZFR)); + f6BL = ((o6GR*2.0) - (o6AR + o6MR + o6SR + o6YR + o6ZFR)); + f6CL = ((o6MR*2.0) - (o6AR + o6GR + o6SR + o6YR + o6ZFR)); + f6DL = ((o6SR*2.0) - (o6AR + o6GR + o6MR + o6YR + o6ZFR)); + f6EL = ((o6YR*2.0) - (o6AR + o6GR + o6MR + o6SR + o6ZFR)); + f6FL = ((o6ZFR*2.0) - (o6AR + o6GR + o6MR + o6SR + o6YR)); + + f6FR = ((o6ZFL*2.0) - (o6ZGL + o6ZHL + o6ZIL + o6ZJL + o6ZKL)); + f6LR = ((o6ZGL*2.0) - (o6ZFL + o6ZHL + o6ZIL + o6ZJL + o6ZKL)); + f6RR = ((o6ZHL*2.0) - (o6ZFL + o6ZGL + o6ZIL + o6ZJL + o6ZKL)); + f6XR = ((o6ZIL*2.0) - (o6ZFL + o6ZGL + o6ZHL + o6ZJL + o6ZKL)); + f6ZER = ((o6ZJL*2.0) - (o6ZFL + o6ZGL + o6ZHL + o6ZIL + o6ZKL)); + f6ZKR = ((o6ZKL*2.0) - (o6ZFL + o6ZGL + o6ZHL + o6ZIL + o6ZJL)); + + inputSampleL = (o6ZFL + o6ZGL + o6ZHL + o6ZIL + o6ZJL + o6ZKL)*0.001953125; + inputSampleR = (o6AR + o6GR + o6MR + o6SR + o6YR + o6ZFR)*0.001953125; + + f6AL = (f6AL+avg6L)*0.5; avg6L = f6AL; + f6FR = (f6FR+avg6R)*0.5; avg6R = f6FR; + //manipulating deep reverb tail for realism + + inputSampleL += (earlyReflectionL * earlyLoudness); + inputSampleR += (earlyReflectionR * earlyLoudness); + + bez[bez_CL] = bez[bez_BL]; + bez[bez_BL] = bez[bez_AL]; + bez[bez_AL] = inputSampleL; + bez[bez_SampL] = 0.0; + + bez[bez_CR] = bez[bez_BR]; + bez[bez_BR] = bez[bez_AR]; + bez[bez_AR] = inputSampleR; + bez[bez_SampR] = 0.0; + } + double X = bez[bez_cycle]*bezTrim; + double CBL = (bez[bez_CL]*(1.0-X))+(bez[bez_BL]*X); + double CBR = (bez[bez_CR]*(1.0-X))+(bez[bez_BR]*X); + double BAL = (bez[bez_BL]*(1.0-X))+(bez[bez_AL]*X); + double BAR = (bez[bez_BR]*(1.0-X))+(bez[bez_AR]*X); + double CBAL = (bez[bez_BL]+(CBL*(1.0-X))+(BAL*X))*-0.0625; + double CBAR = (bez[bez_BR]+(CBR*(1.0-X))+(BAR*X))*-0.0625; + inputSampleL = CBAL+bez[bez_AvgOutSampL]; bez[bez_AvgOutSampL] = CBAL; + inputSampleR = CBAR+bez[bez_AvgOutSampR]; bez[bez_AvgOutSampR] = CBAR; + + inputSampleL = (inputSampleL * wet)+(drySampleL * (1.0-wet)); + inputSampleR = (inputSampleR * wet)+(drySampleR * (1.0-wet)); + + //begin 32 bit stereo floating point dither + int expon; frexpf((float)inputSampleL, &expon); + fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5; + inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62)); + frexpf((float)inputSampleR, &expon); + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5; + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62)); + //end 32 bit stereo floating point dither + + *outputL = inputSampleL; + *outputR = inputSampleR; + //direct stereo out + + inputL += 1; + inputR += 1; + outputL += 1; + outputR += 1; + } + return noErr; +} \ No newline at end of file diff --git a/plugins/MacAU/kWoodRoom/kWoodRoom.exp b/plugins/MacAU/kWoodRoom/kWoodRoom.exp new file mode 100755 index 000000000..88f1eb3ab --- /dev/null +++ b/plugins/MacAU/kWoodRoom/kWoodRoom.exp @@ -0,0 +1 @@ +_kWoodRoomEntry diff --git a/plugins/MacAU/kWoodRoom/kWoodRoom.h b/plugins/MacAU/kWoodRoom/kWoodRoom.h new file mode 100755 index 000000000..d0f061cf6 --- /dev/null +++ b/plugins/MacAU/kWoodRoom/kWoodRoom.h @@ -0,0 +1,270 @@ +/* +* File: kWoodRoom.h +* +* Version: 1.0 +* +* Created: 11/1/25 +* +* Copyright: Copyright © 2025 Airwindows, Airwindows uses the MIT license +* +* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in +* consideration of your agreement to the following terms, and your use, installation, modification +* or redistribution of this Apple software constitutes acceptance of these terms. If you do +* not agree with these terms, please do not use, install, modify or redistribute this Apple +* software. +* +* In consideration of your agreement to abide by the following terms, and subject to these terms, +* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this +* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the +* Apple Software, with or without modifications, in source and/or binary forms; provided that if you +* redistribute the Apple Software in its entirety and without modifications, you must retain this +* notice and the following text and disclaimers in all such redistributions of the Apple Software. +* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to +* endorse or promote products derived from the Apple Software without specific prior written +* permission from Apple. Except as expressly stated in this notice, no other rights or +* licenses, express or implied, are granted by Apple herein, including but not limited to any +* patent rights that may be infringed by your derivative works or by other works in which the +* Apple Software may be incorporated. +* +* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR +* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY +* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE +* OR IN COMBINATION WITH YOUR PRODUCTS. +* +* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL +* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, +* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER +* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN +* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +*/ +#include "AUEffectBase.h" +#include "kWoodRoomVersion.h" + +#if AU_DEBUG_DISPATCHER + #include "AUDebugDispatcher.h" +#endif + + +#ifndef __kWoodRoom_h__ +#define __kWoodRoom_h__ + + +#pragma mark ____kWoodRoom Parameters + +// parameters +static const float kDefaultValue_ParamA = 0.5; +static const float kDefaultValue_ParamB = 0.5; +static const float kDefaultValue_ParamC = 0.25; +static const float kDefaultValue_ParamD = 0.5; +static const float kDefaultValue_ParamE = 0.5; +static const float kDefaultValue_ParamF = 0.5; + +static CFStringRef kParameterAName = CFSTR("Regen"); +static CFStringRef kParameterBName = CFSTR("Derez"); +static CFStringRef kParameterCName = CFSTR("Filter"); +static CFStringRef kParameterDName = CFSTR("EarlyRf"); +static CFStringRef kParameterEName = CFSTR("Positin"); +static CFStringRef kParameterFName = CFSTR("Dry/Wet"); + +enum { + kParam_A =0, + kParam_B =1, + kParam_C =2, + kParam_D =3, + kParam_E =4, + kParam_F =5, + //Add your parameters here... + kNumberOfParameters=6 +}; + +const int d3A = 581; const int d3B = 831; const int d3C = 832; +const int d3D = 574; const int d3E = 598; const int d3F = 685; +const int d3G = 499; const int d3H = 573; const int d3I = 655; +#define THREEBYTHREE true +const int d6A = 154; const int d6B = 832; const int d6C = 109; const int d6D = 685; const int d6E = 33; const int d6F = 12; const int d6G = 27; const int d6H = 30; const int d6I = 339; const int d6J = 499; const int d6K = 296; const int d6L = 169; const int d6M = 169; const int d6N = 831; const int d6O = 15; const int d6P = 411; const int d6Q = 238; const int d6R = 68; const int d6S = 0; const int d6T = 8; const int d6U = 655; const int d6V = 581; const int d6W = 465; const int d6X = 173; const int d6Y = 3; const int d6ZA = 96; const int d6ZB = 573; const int d6ZC = 243; const int d6ZD = 30; const int d6ZE = 188; const int d6ZF = 291; const int d6ZG = 11; const int d6ZH = 372; const int d6ZI = 574; const int d6ZJ = 100; const int d6ZK = 598; //1 to 90 ms, 249 seat club +#define SIXBYSIX true // 249seat154832109x6 on 2025-10-31 kWoodRoom +const int early[] = {0, 3, 8, 11, 12, 15, 27, 30, 30, 33, 68, 96, 100, 109, 154, 169, 169, 173, 188, 238, 243, 291, 296, 339, 372, 411, 465, 499, 573, 574, 581, 598, 655, 685, 831, 832}; + +#pragma mark ____kWoodRoom +class kWoodRoom : public AUEffectBase +{ +public: + kWoodRoom(AudioUnit component); +#if AU_DEBUG_DISPATCHER + virtual ~kWoodRoom () { 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 kkWoodRoomVersion; } + + private: + double a3AL[d3A+5]; + double a3BL[d3B+5]; + double a3CL[d3C+5]; + double a3DL[d3D+5]; + double a3EL[d3E+5]; + double a3FL[d3F+5]; + double a3GL[d3G+5]; + double a3HL[d3H+5]; + double a3IL[d3I+5]; + double a3AR[d3A+5]; + double a3BR[d3B+5]; + double a3CR[d3C+5]; + double a3DR[d3D+5]; + double a3ER[d3E+5]; + double a3FR[d3F+5]; + double a3GR[d3G+5]; + double a3HR[d3H+5]; + double a3IR[d3I+5]; + int c3AL,c3AR,c3BL,c3BR,c3CL,c3CR,c3DL,c3DR,c3EL,c3ER; + int c3FL,c3FR,c3GL,c3GR,c3HL,c3HR,c3IL,c3IR; + + double a6AL[d6A+5]; + double a6BL[d6B+5]; + double a6CL[d6C+5]; + double a6DL[d6D+5]; + double a6EL[d6E+5]; + double a6FL[d6F+5]; + double a6GL[d6G+5]; + double a6HL[d6H+5]; + double a6IL[d6I+5]; + double a6JL[d6J+5]; + double a6KL[d6K+5]; + double a6LL[d6L+5]; + double a6ML[d6M+5]; + double a6NL[d6N+5]; + double a6OL[d6O+5]; + double a6PL[d6P+5]; + double a6QL[d6Q+5]; + double a6RL[d6R+5]; + double a6SL[d6S+5]; + double a6TL[d6T+5]; + double a6UL[d6U+5]; + double a6VL[d6V+5]; + double a6WL[d6W+5]; + double a6XL[d6X+5]; + double a6YL[d6Y+5]; + double a6ZAL[d6ZA+5]; + double a6ZBL[d6ZB+5]; + double a6ZCL[d6ZC+5]; + double a6ZDL[d6ZD+5]; + double a6ZEL[d6ZE+5]; + double a6ZFL[d6ZF+5]; + double a6ZGL[d6ZG+5]; + double a6ZHL[d6ZH+5]; + double a6ZIL[d6ZI+5]; + double a6ZJL[d6ZJ+5]; + double a6ZKL[d6ZK+5]; + double a6AR[d6A+5]; + double a6BR[d6B+5]; + double a6CR[d6C+5]; + double a6DR[d6D+5]; + double a6ER[d6E+5]; + double a6FR[d6F+5]; + double a6GR[d6G+5]; + double a6HR[d6H+5]; + double a6IR[d6I+5]; + double a6JR[d6J+5]; + double a6KR[d6K+5]; + double a6LR[d6L+5]; + double a6MR[d6M+5]; + double a6NR[d6N+5]; + double a6OR[d6O+5]; + double a6PR[d6P+5]; + double a6QR[d6Q+5]; + double a6RR[d6R+5]; + double a6SR[d6S+5]; + double a6TR[d6T+5]; + double a6UR[d6U+5]; + double a6VR[d6V+5]; + double a6WR[d6W+5]; + double a6XR[d6X+5]; + double a6YR[d6Y+5]; + double a6ZAR[d6ZA+5]; + double a6ZBR[d6ZB+5]; + double a6ZCR[d6ZC+5]; + double a6ZDR[d6ZD+5]; + double a6ZER[d6ZE+5]; + double a6ZFR[d6ZF+5]; + double a6ZGR[d6ZG+5]; + double a6ZHR[d6ZH+5]; + double a6ZIR[d6ZI+5]; + double a6ZJR[d6ZJ+5]; + double a6ZKR[d6ZK+5]; + int c6AL,c6BL,c6CL,c6DL,c6EL,c6FL,c6GL,c6HL,c6IL; + int c6JL,c6KL,c6LL,c6ML,c6NL,c6OL,c6PL,c6QL,c6RL; + int c6SL,c6TL,c6UL,c6VL,c6WL,c6XL,c6YL,c6ZAL,c6ZBL; + int c6ZCL,c6ZDL,c6ZEL,c6ZFL,c6ZGL,c6ZHL,c6ZIL,c6ZJL,c6ZKL; + int c6AR,c6BR,c6CR,c6DR,c6ER,c6FR,c6GR,c6HR,c6IR; + int c6JR,c6KR,c6LR,c6MR,c6NR,c6OR,c6PR,c6QR,c6RR; + int c6SR,c6TR,c6UR,c6VR,c6WR,c6XR,c6YR,c6ZAR,c6ZBR; + int c6ZCR,c6ZDR,c6ZER,c6ZFR,c6ZGR,c6ZHR,c6ZIR,c6ZJR,c6ZKR; + double f6AL,f6BL,f6CL,f6DL,f6EL,f6FL; + double f6FR,f6LR,f6RR,f6XR,f6ZER,f6ZKR; + double avg6L,avg6R; + + enum { + bez_AL, + bez_AR, + bez_BL, + bez_BR, + bez_CL, + bez_CR, + bez_InL, + bez_InR, + bez_UnInL, + bez_UnInR, + bez_SampL, + bez_SampR, + bez_AvgInSampL, + bez_AvgInSampR, + bez_AvgOutSampL, + bez_AvgOutSampR, + bez_cycle, + bez_total + }; //the new undersampling. bez signifies the bezier curve reconstruction + double bez[bez_total]; + + double bezF[bez_total]; + + uint32_t fpdL; + uint32_t fpdR; +}; + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + +#endif \ No newline at end of file diff --git a/plugins/MacAU/kWoodRoom/kWoodRoom.r b/plugins/MacAU/kWoodRoom/kWoodRoom.r new file mode 100755 index 000000000..6250814fa --- /dev/null +++ b/plugins/MacAU/kWoodRoom/kWoodRoom.r @@ -0,0 +1,61 @@ +/* +* File: kWoodRoom.r +* +* Version: 1.0 +* +* Created: 11/1/25 +* +* Copyright: Copyright © 2025 Airwindows, Airwindows uses the MIT license +* +* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in +* consideration of your agreement to the following terms, and your use, installation, modification +* or redistribution of this Apple software constitutes acceptance of these terms. If you do +* not agree with these terms, please do not use, install, modify or redistribute this Apple +* software. +* +* In consideration of your agreement to abide by the following terms, and subject to these terms, +* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this +* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the +* Apple Software, with or without modifications, in source and/or binary forms; provided that if you +* redistribute the Apple Software in its entirety and without modifications, you must retain this +* notice and the following text and disclaimers in all such redistributions of the Apple Software. +* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to +* endorse or promote products derived from the Apple Software without specific prior written +* permission from Apple. Except as expressly stated in this notice, no other rights or +* licenses, express or implied, are granted by Apple herein, including but not limited to any +* patent rights that may be infringed by your derivative works or by other works in which the +* Apple Software may be incorporated. +* +* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR +* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY +* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE +* OR IN COMBINATION WITH YOUR PRODUCTS. +* +* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL +* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, +* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER +* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN +* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +*/ +#include + +#include "kWoodRoomVersion.h" + +// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description +#define kAudioUnitResID_kWoodRoom 1000 + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ kWoodRoom~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +#define RES_ID kAudioUnitResID_kWoodRoom +#define COMP_TYPE kAudioUnitType_Effect +#define COMP_SUBTYPE kWoodRoom_COMP_SUBTYPE +#define COMP_MANUF kWoodRoom_COMP_MANF + +#define VERSION kkWoodRoomVersion +#define NAME "Airwindows: kWoodRoom" +#define DESCRIPTION "kWoodRoom AU" +#define ENTRY_POINT "kWoodRoomEntry" + +#include "AUResources.r" \ No newline at end of file diff --git a/plugins/MacAU/kWoodRoom/kWoodRoom.xcodeproj/christopherjohnson.mode1v3 b/plugins/MacAU/kWoodRoom/kWoodRoom.xcodeproj/christopherjohnson.mode1v3 new file mode 100755 index 000000000..61450416d --- /dev/null +++ b/plugins/MacAU/kWoodRoom/kWoodRoom.xcodeproj/christopherjohnson.mode1v3 @@ -0,0 +1,1359 @@ + + + + + ActivePerspectiveName + Project + AllowedModules + + + BundleLoadPath + + MaxInstances + n + Module + PBXSmartGroupTreeModule + Name + Groups and Files Outline View + + + BundleLoadPath + + MaxInstances + n + Module + PBXNavigatorGroup + Name + Editor + + + BundleLoadPath + + MaxInstances + n + Module + XCTaskListModule + Name + Task List + + + BundleLoadPath + + MaxInstances + n + Module + XCDetailModule + Name + File and Smart Group Detail Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXBuildResultsModule + Name + Detailed Build Results Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXProjectFindModule + Name + Project Batch Find Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCProjectFormatConflictsModule + Name + Project Format Conflicts List + + + BundleLoadPath + + MaxInstances + n + Module + PBXBookmarksModule + Name + Bookmarks Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXClassBrowserModule + Name + Class Browser + + + BundleLoadPath + + MaxInstances + n + Module + PBXCVSModule + Name + Source Code Control Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXDebugBreakpointsModule + Name + Debug Breakpoints Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCDockableInspector + Name + Inspector + + + BundleLoadPath + + MaxInstances + n + Module + PBXOpenQuicklyModule + Name + Open Quickly Tool + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugSessionModule + Name + Debugger + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugCLIModule + Name + Debug Console + + + BundleLoadPath + + MaxInstances + n + Module + XCSnapshotModule + Name + Snapshots Tool + + + BundlePath + /Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources + Description + DefaultDescriptionKey + DockingSystemVisible + + Extension + mode1v3 + FavBarConfig + + PBXProjectModuleGUID + 8BD3CCBC148831C90062E48C + XCBarModuleItemNames + + XCBarModuleItems + + + FirstTimeWindowDisplayed + + Identifier + com.apple.perspectives.project.mode1v3 + MajorVersion + 33 + MinorVersion + 0 + Name + Default + Notifications + + OpenEditors + + PerspectiveWidths + + -1 + -1 + + Perspectives + + + ChosenToolbarItems + + active-combo-popup + action + build + debugger-enable-breakpoints + get-info + com.apple.pbx.toolbar.searchfield + + ControllerClassBaseName + + IconName + WindowOfProjectWithEditor + Identifier + perspective.project + IsVertical + + Layout + + + BecomeActive + + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 1C37FABC05509CD000000102 + 1C37FABC05539CD112110102 + E2644B35053B69B200211256 + 1C37FABC04509CD000100104 + 1CC0EA4004350EF90044410B + 1CC0EA4004350EF90041110B + + PBXProjectModuleGUID + 1CE0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + yes + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 299 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 089C166AFE841209C02AAC07 + 08FB77ADFE841716C02AAC07 + 8BA05A7D072073D200365D66 + 8BA05A7E072073D200365D66 + 1C37FBAC04509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 6 + 5 + 4 + 1 + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {299, 445}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + + XCSharingToken + com.apple.Xcode.GFSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {316, 463}} + GroupTreeTableConfiguration + + MainColumn + 299 + + RubberWindowFrame + 18 337 788 504 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 316pt + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CE0B20306471E060097A5F4 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CE0B20406471E060097A5F4 + + SplitCount + 1 + + StatusBarVisibility + + + GeometryConfiguration + + Frame + {{0, 0}, {467, 0}} + RubberWindowFrame + 18 337 788 504 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 0pt + + + ContentConfiguration + + PBXProjectModuleGUID + 1CE0B20506471E060097A5F4 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{0, 5}, {467, 458}} + RubberWindowFrame + 18 337 788 504 0 0 1440 878 + + Module + XCDetailModule + Proportion + 458pt + + + Proportion + 467pt + + + Name + Project + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + XCModuleDock + PBXNavigatorGroup + XCDetailModule + + TableOfContents + + 8BDD47AA1A48BB8900FB2F61 + 1CE0B1FE06471DED0097A5F4 + 8BDD47AB1A48BB8900FB2F61 + 1CE0B20306471E060097A5F4 + 1CE0B20506471E060097A5F4 + + ToolbarConfigUserDefaultsMinorVersion + 2 + ToolbarConfiguration + xcode.toolbar.config.defaultV3 + + + ControllerClassBaseName + + IconName + WindowOfProject + Identifier + perspective.morph + IsVertical + 0 + Layout + + + BecomeActive + 1 + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 1C08E77C0454961000C914BD + 1C37FABC05509CD000000102 + 1C37FABC05539CD112110102 + E2644B35053B69B200211256 + 1C37FABC04509CD000100104 + 1CC0EA4004350EF90044410B + 1CC0EA4004350EF90041110B + + PBXProjectModuleGUID + 11E0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + yes + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 186 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 29B97314FDCFA39411CA2CEA + 1C37FABC05509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {186, 337}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + 1 + XCSharingToken + com.apple.Xcode.GFSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {203, 355}} + GroupTreeTableConfiguration + + MainColumn + 186 + + RubberWindowFrame + 373 269 690 397 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 100% + + + Name + Morph + PreferredWidth + 300 + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + + TableOfContents + + 11E0B1FE06471DED0097A5F4 + + ToolbarConfiguration + xcode.toolbar.config.default.shortV3 + + + PerspectivesBarVisible + + ShelfIsVisible + + SourceDescription + file at '/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecificationMode1.xcperspec' + StatusbarIsVisible + + TimeStamp + 0.0 + ToolbarConfigUserDefaultsMinorVersion + 2 + ToolbarDisplayMode + 1 + ToolbarIsVisible + + ToolbarSizeMode + 2 + Type + Perspectives + UpdateMessage + The Default Workspace in this version of Xcode now includes support to hide and show the detail view (what has been referred to as the "Metro-Morph" feature). You must discard your current Default Workspace settings and update to the latest Default Workspace in order to gain this feature. Do you wish to update to the latest Workspace defaults for project '%@'? + WindowJustification + 5 + WindowOrderList + + 8BD3CCBD148831C90062E48C + /Developer/Library/Xcode/Project Templates/System Plug-in/Audio Unit Effect/Audio Unit Effect with Cocoa View/StarterAU.xcodeproj + + WindowString + 18 337 788 504 0 0 1440 878 + WindowToolsV3 + + + FirstTimeWindowDisplayed + + Identifier + windowTool.build + IsVertical + + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528F0623707200166675 + PBXProjectModuleLabel + + StatusBarVisibility + + + GeometryConfiguration + + Frame + {{0, 0}, {500, 218}} + RubberWindowFrame + 668 222 500 500 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 218pt + + + ContentConfiguration + + PBXProjectModuleGUID + XCMainBuildResultsModuleGUID + PBXProjectModuleLabel + Build Results + XCBuildResultsTrigger_Collapse + 1021 + XCBuildResultsTrigger_Open + 1011 + + GeometryConfiguration + + Frame + {{0, 223}, {500, 236}} + RubberWindowFrame + 668 222 500 500 0 0 1440 878 + + Module + PBXBuildResultsModule + Proportion + 236pt + + + Proportion + 459pt + + + Name + Build Results + ServiceClasses + + PBXBuildResultsModule + + StatusbarIsVisible + + TableOfContents + + 8BD3CCBD148831C90062E48C + 8BDD47AC1A48BB8900FB2F61 + 1CD0528F0623707200166675 + XCMainBuildResultsModuleGUID + + ToolbarConfiguration + xcode.toolbar.config.buildV3 + WindowContentMinSize + 486 300 + WindowString + 668 222 500 500 0 0 1440 878 + WindowToolGUID + 8BD3CCBD148831C90062E48C + WindowToolIsVisible + + + + Identifier + windowTool.debugger + Layout + + + Dock + + + ContentConfiguration + + Debugger + + HorizontalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {317, 164}} + {{317, 0}, {377, 164}} + + + VerticalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {694, 164}} + {{0, 164}, {694, 216}} + + + + LauncherConfigVersion + 8 + PBXProjectModuleGUID + 1C162984064C10D400B95A72 + PBXProjectModuleLabel + Debug - GLUTExamples (Underwater) + + GeometryConfiguration + + DebugConsoleDrawerSize + {100, 120} + DebugConsoleVisible + None + DebugConsoleWindowFrame + {{200, 200}, {500, 300}} + DebugSTDIOWindowFrame + {{200, 200}, {500, 300}} + Frame + {{0, 0}, {694, 380}} + RubberWindowFrame + 321 238 694 422 0 0 1440 878 + + Module + PBXDebugSessionModule + Proportion + 100% + + + Proportion + 100% + + + Name + Debugger + ServiceClasses + + PBXDebugSessionModule + + StatusbarIsVisible + 1 + TableOfContents + + 1CD10A99069EF8BA00B06720 + 1C0AD2AB069F1E9B00FABCE6 + 1C162984064C10D400B95A72 + 1C0AD2AC069F1E9B00FABCE6 + + ToolbarConfiguration + xcode.toolbar.config.debugV3 + WindowString + 321 238 694 422 0 0 1440 878 + WindowToolGUID + 1CD10A99069EF8BA00B06720 + WindowToolIsVisible + 0 + + + Identifier + windowTool.find + Layout + + + Dock + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CDD528C0622207200134675 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CD0528D0623707200166675 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {781, 167}} + RubberWindowFrame + 62 385 781 470 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 781pt + + + Proportion + 50% + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528E0623707200166675 + PBXProjectModuleLabel + Project Find + + GeometryConfiguration + + Frame + {{8, 0}, {773, 254}} + RubberWindowFrame + 62 385 781 470 0 0 1440 878 + + Module + PBXProjectFindModule + Proportion + 50% + + + Proportion + 428pt + + + Name + Project Find + ServiceClasses + + PBXProjectFindModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C530D57069F1CE1000CFCEE + 1C530D58069F1CE1000CFCEE + 1C530D59069F1CE1000CFCEE + 1CDD528C0622207200134675 + 1C530D5A069F1CE1000CFCEE + 1CE0B1FE06471DED0097A5F4 + 1CD0528E0623707200166675 + + WindowString + 62 385 781 470 0 0 1440 878 + WindowToolGUID + 1C530D57069F1CE1000CFCEE + WindowToolIsVisible + 0 + + + Identifier + MENUSEPARATOR + + + Identifier + windowTool.debuggerConsole + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAAC065D492600B07095 + PBXProjectModuleLabel + Debugger Console + + GeometryConfiguration + + Frame + {{0, 0}, {650, 250}} + RubberWindowFrame + 516 632 650 250 0 0 1680 1027 + + Module + PBXDebugCLIModule + Proportion + 209pt + + + Proportion + 209pt + + + Name + Debugger Console + ServiceClasses + + PBXDebugCLIModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C78EAAD065D492600B07095 + 1C78EAAE065D492600B07095 + 1C78EAAC065D492600B07095 + + ToolbarConfiguration + xcode.toolbar.config.consoleV3 + WindowString + 650 41 650 250 0 0 1280 1002 + WindowToolGUID + 1C78EAAD065D492600B07095 + WindowToolIsVisible + 0 + + + Identifier + windowTool.snapshots + Layout + + + Dock + + + Module + XCSnapshotModule + Proportion + 100% + + + Proportion + 100% + + + Name + Snapshots + ServiceClasses + + XCSnapshotModule + + StatusbarIsVisible + Yes + ToolbarConfiguration + xcode.toolbar.config.snapshots + WindowString + 315 824 300 550 0 0 1440 878 + WindowToolIsVisible + Yes + + + Identifier + windowTool.scm + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAB2065D492600B07095 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1C78EAB3065D492600B07095 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {452, 0}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + + Module + PBXNavigatorGroup + Proportion + 0pt + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD052920623707200166675 + PBXProjectModuleLabel + SCM + + GeometryConfiguration + + ConsoleFrame + {{0, 259}, {452, 0}} + Frame + {{0, 7}, {452, 259}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + TableConfiguration + + Status + 30 + FileName + 199 + Path + 197.0950012207031 + + TableFrame + {{0, 0}, {452, 250}} + + Module + PBXCVSModule + Proportion + 262pt + + + Proportion + 266pt + + + Name + SCM + ServiceClasses + + PBXCVSModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C78EAB4065D492600B07095 + 1C78EAB5065D492600B07095 + 1C78EAB2065D492600B07095 + 1CD052920623707200166675 + + ToolbarConfiguration + xcode.toolbar.config.scm + WindowString + 743 379 452 308 0 0 1280 1002 + + + Identifier + windowTool.breakpoints + IsVertical + 0 + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C77FABC04509CD000000102 + + PBXProjectModuleGUID + 1CE0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + no + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 168 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 1C77FABC04509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {168, 350}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + 0 + + GeometryConfiguration + + Frame + {{0, 0}, {185, 368}} + GroupTreeTableConfiguration + + MainColumn + 168 + + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 185pt + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA1AED706398EBD00589147 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{190, 0}, {554, 368}} + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + XCDetailModule + Proportion + 554pt + + + Proportion + 368pt + + + MajorVersion + 3 + MinorVersion + 0 + Name + Breakpoints + ServiceClasses + + PBXSmartGroupTreeModule + XCDetailModule + + StatusbarIsVisible + 1 + TableOfContents + + 1CDDB66807F98D9800BB5817 + 1CDDB66907F98D9800BB5817 + 1CE0B1FE06471DED0097A5F4 + 1CA1AED706398EBD00589147 + + ToolbarConfiguration + xcode.toolbar.config.breakpointsV3 + WindowString + 315 424 744 409 0 0 1440 878 + WindowToolGUID + 1CDDB66807F98D9800BB5817 + WindowToolIsVisible + 1 + + + Identifier + windowTool.debugAnimator + Layout + + + Dock + + + Module + PBXNavigatorGroup + Proportion + 100% + + + Proportion + 100% + + + Name + Debug Visualizer + ServiceClasses + + PBXNavigatorGroup + + StatusbarIsVisible + 1 + ToolbarConfiguration + xcode.toolbar.config.debugAnimatorV3 + WindowString + 100 100 700 500 0 0 1280 1002 + + + Identifier + windowTool.bookmarks + Layout + + + Dock + + + Module + PBXBookmarksModule + Proportion + 100% + + + Proportion + 100% + + + Name + Bookmarks + ServiceClasses + + PBXBookmarksModule + + StatusbarIsVisible + 0 + WindowString + 538 42 401 187 0 0 1280 1002 + + + Identifier + windowTool.projectFormatConflicts + Layout + + + Dock + + + Module + XCProjectFormatConflictsModule + Proportion + 100% + + + Proportion + 100% + + + Name + Project Format Conflicts + ServiceClasses + + XCProjectFormatConflictsModule + + StatusbarIsVisible + 0 + WindowContentMinSize + 450 300 + WindowString + 50 850 472 307 0 0 1440 877 + + + Identifier + windowTool.classBrowser + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + OptionsSetName + Hierarchy, all classes + PBXProjectModuleGUID + 1CA6456E063B45B4001379D8 + PBXProjectModuleLabel + Class Browser - NSObject + + GeometryConfiguration + + ClassesFrame + {{0, 0}, {374, 96}} + ClassesTreeTableConfiguration + + PBXClassNameColumnIdentifier + 208 + PBXClassBookColumnIdentifier + 22 + + Frame + {{0, 0}, {630, 331}} + MembersFrame + {{0, 105}, {374, 395}} + MembersTreeTableConfiguration + + PBXMemberTypeIconColumnIdentifier + 22 + PBXMemberNameColumnIdentifier + 216 + PBXMemberTypeColumnIdentifier + 97 + PBXMemberBookColumnIdentifier + 22 + + PBXModuleWindowStatusBarHidden2 + 1 + RubberWindowFrame + 385 179 630 352 0 0 1440 878 + + Module + PBXClassBrowserModule + Proportion + 332pt + + + Proportion + 332pt + + + Name + Class Browser + ServiceClasses + + PBXClassBrowserModule + + StatusbarIsVisible + 0 + TableOfContents + + 1C0AD2AF069F1E9B00FABCE6 + 1C0AD2B0069F1E9B00FABCE6 + 1CA6456E063B45B4001379D8 + + ToolbarConfiguration + xcode.toolbar.config.classbrowser + WindowString + 385 179 630 352 0 0 1440 878 + WindowToolGUID + 1C0AD2AF069F1E9B00FABCE6 + WindowToolIsVisible + 0 + + + Identifier + windowTool.refactoring + IncludeInToolsMenu + 0 + Layout + + + Dock + + + BecomeActive + 1 + GeometryConfiguration + + Frame + {0, 0}, {500, 335} + RubberWindowFrame + {0, 0}, {500, 335} + + Module + XCRefactoringModule + Proportion + 100% + + + Proportion + 100% + + + Name + Refactoring + ServiceClasses + + XCRefactoringModule + + WindowString + 200 200 500 356 0 0 1920 1200 + + + + diff --git a/plugins/MacAU/kWoodRoom/kWoodRoom.xcodeproj/christopherjohnson.pbxuser b/plugins/MacAU/kWoodRoom/kWoodRoom.xcodeproj/christopherjohnson.pbxuser new file mode 100755 index 000000000..35f07972f --- /dev/null +++ b/plugins/MacAU/kWoodRoom/kWoodRoom.xcodeproj/christopherjohnson.pbxuser @@ -0,0 +1,142 @@ +// !$*UTF8*$! +{ + 089C1669FE841209C02AAC07 /* Project object */ = { + activeBuildConfigurationName = Release; + activeTarget = 8D01CCC60486CAD60068D4B7 /* kWoodRoom */; + 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 = 783773359; + PBXWorkspaceStateSaveDate = 783773359; + }; + perUserProjectItems = { + 8B2829512EB7764F003789A7 /* PBXTextBookmark */ = 8B2829512EB7764F003789A7 /* PBXTextBookmark */; + 8BD128442EB6E2C500B339E5 /* PBXTextBookmark */ = 8BD128442EB6E2C500B339E5 /* PBXTextBookmark */; + 8BD128462EB6E2C500B339E5 /* PBXTextBookmark */ = 8BD128462EB6E2C500B339E5 /* PBXTextBookmark */; + }; + sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */; + userBuildSettings = { + }; + }; + 8B2829512EB7764F003789A7 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 8BC6025B073B072D006C4272 /* kWoodRoom.h */; + name = "kWoodRoom.h: 88"; + rLen = 0; + rLoc = 4838; + rType = 0; + vrLen = 1065; + vrLoc = 3804; + }; + 8BA05A660720730100365D66 /* kWoodRoom.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {939, 14634}}"; + sepNavSelRange = "{35694, 84}"; + sepNavVisRange = "{21092, 1777}"; + sepNavWindowFrame = "{{7, 52}, {912, 826}}"; + }; + }; + 8BA05A690720730100365D66 /* kWoodRoomVersion.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1056, 1062}}"; + sepNavSelRange = "{2906, 0}"; + sepNavVisRange = "{1069, 1900}"; + sepNavWindowFrame = "{{15, 47}, {912, 826}}"; + }; + }; + 8BA05A7F072073D200365D66 /* AUBase.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {516, 23430}}"; + sepNavSelRange = "{0, 0}"; + sepNavVisRange = "{0, 1336}"; + }; + }; + 8BC6025B073B072D006C4272 /* kWoodRoom.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {7041, 4446}}"; + sepNavSelRange = "{4838, 0}"; + sepNavVisRange = "{3804, 1065}"; + sepNavWindowFrame = "{{15, 47}, {912, 826}}"; + }; + }; + 8BD128442EB6E2C500B339E5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 8BA05A660720730100365D66 /* kWoodRoom.cpp */; + name = "kWoodRoom.cpp: 472"; + rLen = 0; + rLoc = 22228; + rType = 0; + vrLen = 184; + vrLoc = 22080; + }; + 8BD128462EB6E2C500B339E5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 8BC6025B073B072D006C4272 /* kWoodRoom.h */; + name = "kWoodRoom.h: 88"; + rLen = 0; + rLoc = 4838; + rType = 0; + vrLen = 1065; + vrLoc = 3804; + }; + 8BD3CCB8148830B20062E48C /* Source Control */ = { + isa = PBXSourceControlManager; + fallbackIsa = XCSourceControlManager; + isSCMEnabled = 0; + scmConfiguration = { + repositoryNamesForRoots = { + "" = ""; + }; + }; + }; + 8BD3CCB9148830B20062E48C /* Code sense */ = { + isa = PBXCodeSenseManager; + indexTemplatePath = ""; + }; + 8D01CCC60486CAD60068D4B7 /* kWoodRoom */ = { + activeExec = 0; + }; +} diff --git a/plugins/MacAU/kWoodRoom/kWoodRoom.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacAU/kWoodRoom/kWoodRoom.xcodeproj/christopherjohnson.perspectivev3 new file mode 100755 index 000000000..ce8c58d06 --- /dev/null +++ b/plugins/MacAU/kWoodRoom/kWoodRoom.xcodeproj/christopherjohnson.perspectivev3 @@ -0,0 +1,1485 @@ + + + + + ActivePerspectiveName + Project + AllowedModules + + + BundleLoadPath + + MaxInstances + n + Module + PBXSmartGroupTreeModule + Name + Groups and Files Outline View + + + BundleLoadPath + + MaxInstances + n + Module + PBXNavigatorGroup + Name + Editor + + + BundleLoadPath + + MaxInstances + n + Module + XCTaskListModule + Name + Task List + + + BundleLoadPath + + MaxInstances + n + Module + XCDetailModule + Name + File and Smart Group Detail Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXBuildResultsModule + Name + Detailed Build Results Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXProjectFindModule + Name + Project Batch Find Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCProjectFormatConflictsModule + Name + Project Format Conflicts List + + + BundleLoadPath + + MaxInstances + n + Module + PBXBookmarksModule + Name + Bookmarks Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXClassBrowserModule + Name + Class Browser + + + BundleLoadPath + + MaxInstances + n + Module + PBXCVSModule + Name + Source Code Control Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXDebugBreakpointsModule + Name + Debug Breakpoints Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCDockableInspector + Name + Inspector + + + BundleLoadPath + + MaxInstances + n + Module + PBXOpenQuicklyModule + Name + Open Quickly Tool + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugSessionModule + Name + Debugger + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugCLIModule + Name + Debug Console + + + BundleLoadPath + + MaxInstances + n + Module + XCSnapshotModule + Name + Snapshots Tool + + + BundlePath + /Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources + Description + AIODescriptionKey + DockingSystemVisible + + Extension + perspectivev3 + FavBarConfig + + PBXProjectModuleGUID + 8B47D3602EB6C9600017457B + XCBarModuleItemNames + + XCBarModuleItems + + + FirstTimeWindowDisplayed + + Identifier + com.apple.perspectives.project.defaultV3 + MajorVersion + 34 + MinorVersion + 0 + Name + All-In-One + Notifications + + + XCObserverAutoDisconnectKey + + XCObserverDefintionKey + + PBXStatusErrorsKey + 0 + + XCObserverFactoryKey + XCPerspectivesSpecificationIdentifier + XCObserverGUIDKey + XCObserverProjectIdentifier + XCObserverNotificationKey + PBXStatusBuildStateMessageNotification + XCObserverTargetKey + XCMainBuildResultsModuleGUID + XCObserverTriggerKey + awakenModuleWithObserver: + XCObserverValidationKey + + PBXStatusErrorsKey + 2 + + + + OpenEditors + + PerspectiveWidths + + 810 + 810 + + Perspectives + + + ChosenToolbarItems + + XCToolbarPerspectiveControl + NSToolbarSeparatorItem + active-combo-popup + action + NSToolbarFlexibleSpaceItem + debugger-enable-breakpoints + build-and-go + com.apple.ide.PBXToolbarStopButton + get-info + NSToolbarFlexibleSpaceItem + com.apple.pbx.toolbar.searchfield + + ControllerClassBaseName + + IconName + WindowOfProject + Identifier + perspective.project + IsVertical + + Layout + + + BecomeActive + + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 1C37FABC05509CD000000102 + 1C37FABC05539CD112110102 + E2644B35053B69B200211256 + 1C37FABC04509CD000100104 + 1CC0EA4004350EF90044410B + 1CC0EA4004350EF90041110B + 1C77FABC04509CD000000102 + + PBXProjectModuleGUID + 1CA23ED40692098700951B8B + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + yes + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 185 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 089C166AFE841209C02AAC07 + 08FB77ADFE841716C02AAC07 + 8BA05A56072072A900365D66 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 4 + 2 + 1 + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {185, 428}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + + + GeometryConfiguration + + Frame + {{0, 0}, {202, 446}} + GroupTreeTableConfiguration + + MainColumn + 185 + + RubberWindowFrame + 27 248 810 487 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 202pt + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 8B47D35B2EB6C9600017457B + PBXProjectModuleLabel + kWoodRoom.h + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 8B47D35C2EB6C9600017457B + PBXProjectModuleLabel + kWoodRoom.h + _historyCapacity + 0 + bookmark + 8B2829512EB7764F003789A7 + history + + 8BD128442EB6E2C500B339E5 + 8BD128462EB6E2C500B339E5 + + + SplitCount + 1 + + StatusBarVisibility + + XCSharingToken + com.apple.Xcode.CommonNavigatorGroupSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {603, 102}} + RubberWindowFrame + 27 248 810 487 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 102pt + + + Proportion + 339pt + Tabs + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA23EDF0692099D00951B8B + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{10, 27}, {603, 312}} + RubberWindowFrame + 27 248 810 487 0 0 1440 878 + + Module + XCDetailModule + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA23EE00692099D00951B8B + PBXProjectModuleLabel + Project Find + + GeometryConfiguration + + Frame + {{10, 31}, {603, 297}} + + Module + PBXProjectFindModule + + + ContentConfiguration + + PBXCVSModuleFilterTypeKey + 1032 + PBXProjectModuleGUID + 1CA23EE10692099D00951B8B + PBXProjectModuleLabel + SCM Results + + GeometryConfiguration + + Frame + {{10, 31}, {603, 297}} + + Module + PBXCVSModule + + + ContentConfiguration + + PBXProjectModuleGUID + XCMainBuildResultsModuleGUID + PBXProjectModuleLabel + Build Results + XCBuildResultsTrigger_Collapse + 1023 + XCBuildResultsTrigger_Open + 1012 + + GeometryConfiguration + + Frame + {{10, 27}, {603, 414}} + + Module + PBXBuildResultsModule + + + + + Proportion + 603pt + + + Name + Project + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + XCModuleDock + PBXNavigatorGroup + XCDockableTabModule + XCDetailModule + PBXProjectFindModule + PBXCVSModule + PBXBuildResultsModule + + TableOfContents + + 8B2829522EB7764F003789A7 + 1CA23ED40692098700951B8B + 8B2829532EB7764F003789A7 + 8B47D35B2EB6C9600017457B + 8B2829542EB7764F003789A7 + 1CA23EDF0692099D00951B8B + 1CA23EE00692099D00951B8B + 1CA23EE10692099D00951B8B + XCMainBuildResultsModuleGUID + + ToolbarConfigUserDefaultsMinorVersion + 2 + ToolbarConfiguration + xcode.toolbar.config.defaultV3 + + + ChosenToolbarItems + + XCToolbarPerspectiveControl + NSToolbarSeparatorItem + active-combo-popup + NSToolbarFlexibleSpaceItem + debugger-enable-breakpoints + build-and-go + com.apple.ide.PBXToolbarStopButton + debugger-restart-executable + debugger-pause + debugger-step-over + debugger-step-into + debugger-step-out + NSToolbarFlexibleSpaceItem + servicesModulebreakpoints + debugger-show-console-window + + ControllerClassBaseName + PBXDebugSessionModule + IconName + DebugTabIcon + Identifier + perspective.debug + IsVertical + 1 + Layout + + + ContentConfiguration + + PBXProjectModuleGUID + 1CCC7628064C1048000F2A68 + PBXProjectModuleLabel + Debugger Console + + GeometryConfiguration + + Frame + {{0, 0}, {810, 0}} + + Module + PBXDebugCLIModule + Proportion + 0% + + + ContentConfiguration + + Debugger + + HorizontalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {395, 213}} + {{395, 0}, {415, 213}} + + + VerticalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {810, 213}} + {{0, 213}, {810, 225}} + + + + LauncherConfigVersion + 8 + PBXProjectModuleGUID + 1CCC7629064C1048000F2A68 + PBXProjectModuleLabel + Debug + + GeometryConfiguration + + DebugConsoleDrawerSize + {100, 120} + DebugConsoleVisible + None + DebugConsoleWindowFrame + {{200, 200}, {500, 300}} + DebugSTDIOWindowFrame + {{200, 200}, {500, 300}} + Frame + {{0, 7}, {810, 438}} + + Module + PBXDebugSessionModule + Proportion + 443pt + + + Name + Debug + ServiceClasses + + XCModuleDock + XCModuleDock + PBXDebugCLIModule + PBXDebugSessionModule + XCConsole + + TableOfContents + + 1CC8E6A5069209BD00BB180A + 1CC8E6A6069209BD00BB180A + 1CCC7628064C1048000F2A68 + 1CCC7629064C1048000F2A68 + 1CC8E6A7069209BD00BB180A + + ToolbarConfiguration + xcode.toolbar.config.debugV3 + + + PerspectivesBarVisible + + ShelfIsVisible + + SourceDescription + file at '/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecification.xcperspec' + StatusbarIsVisible + + TimeStamp + 783775311.75096202 + ToolbarConfigUserDefaultsMinorVersion + 2 + ToolbarDisplayMode + 1 + ToolbarIsVisible + + ToolbarSizeMode + 2 + Type + Perspectives + UpdateMessage + + WindowJustification + 5 + WindowOrderList + + 8B2829552EB7764F003789A7 + /Users/christopherjohnson/Desktop/airwindows/plugins/MacAU/kWoodRoom/kWoodRoom.xcodeproj + + WindowString + 27 248 810 487 0 0 1440 878 + WindowToolsV3 + + + Identifier + windowTool.debugger + Layout + + + Dock + + + ContentConfiguration + + Debugger + + HorizontalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {317, 164}} + {{317, 0}, {377, 164}} + + + VerticalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {694, 164}} + {{0, 164}, {694, 216}} + + + + LauncherConfigVersion + 8 + PBXProjectModuleGUID + 1C162984064C10D400B95A72 + PBXProjectModuleLabel + Debug - GLUTExamples (Underwater) + + GeometryConfiguration + + DebugConsoleDrawerSize + {100, 120} + DebugConsoleVisible + None + DebugConsoleWindowFrame + {{200, 200}, {500, 300}} + DebugSTDIOWindowFrame + {{200, 200}, {500, 300}} + Frame + {{0, 0}, {694, 380}} + RubberWindowFrame + 321 238 694 422 0 0 1440 878 + + Module + PBXDebugSessionModule + Proportion + 100% + + + Proportion + 100% + + + Name + Debugger + ServiceClasses + + PBXDebugSessionModule + + StatusbarIsVisible + 1 + TableOfContents + + 1CD10A99069EF8BA00B06720 + 1C0AD2AB069F1E9B00FABCE6 + 1C162984064C10D400B95A72 + 1C0AD2AC069F1E9B00FABCE6 + + ToolbarConfiguration + xcode.toolbar.config.debugV3 + WindowString + 321 238 694 422 0 0 1440 878 + WindowToolGUID + 1CD10A99069EF8BA00B06720 + WindowToolIsVisible + 0 + + + Identifier + windowTool.build + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528F0623707200166675 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CD052900623707200166675 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {500, 215}} + RubberWindowFrame + 192 257 500 500 0 0 1280 1002 + + Module + PBXNavigatorGroup + Proportion + 218pt + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + XCMainBuildResultsModuleGUID + PBXProjectModuleLabel + Build Results + + GeometryConfiguration + + Frame + {{0, 222}, {500, 236}} + RubberWindowFrame + 192 257 500 500 0 0 1280 1002 + + Module + PBXBuildResultsModule + Proportion + 236pt + + + Proportion + 458pt + + + Name + Build Results + ServiceClasses + + PBXBuildResultsModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C78EAA5065D492600B07095 + 1C78EAA6065D492600B07095 + 1CD0528F0623707200166675 + XCMainBuildResultsModuleGUID + + ToolbarConfiguration + xcode.toolbar.config.buildV3 + WindowString + 192 257 500 500 0 0 1280 1002 + + + Identifier + windowTool.find + Layout + + + Dock + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CDD528C0622207200134675 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CD0528D0623707200166675 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {781, 167}} + RubberWindowFrame + 62 385 781 470 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 781pt + + + Proportion + 50% + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528E0623707200166675 + PBXProjectModuleLabel + Project Find + + GeometryConfiguration + + Frame + {{8, 0}, {773, 254}} + RubberWindowFrame + 62 385 781 470 0 0 1440 878 + + Module + PBXProjectFindModule + Proportion + 50% + + + Proportion + 428pt + + + Name + Project Find + ServiceClasses + + PBXProjectFindModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C530D57069F1CE1000CFCEE + 1C530D58069F1CE1000CFCEE + 1C530D59069F1CE1000CFCEE + 1CDD528C0622207200134675 + 1C530D5A069F1CE1000CFCEE + 1CE0B1FE06471DED0097A5F4 + 1CD0528E0623707200166675 + + WindowString + 62 385 781 470 0 0 1440 878 + WindowToolGUID + 1C530D57069F1CE1000CFCEE + WindowToolIsVisible + 0 + + + Identifier + windowTool.snapshots + Layout + + + Dock + + + Module + XCSnapshotModule + Proportion + 100% + + + Proportion + 100% + + + Name + Snapshots + ServiceClasses + + XCSnapshotModule + + StatusbarIsVisible + Yes + ToolbarConfiguration + xcode.toolbar.config.snapshots + WindowString + 315 824 300 550 0 0 1440 878 + WindowToolIsVisible + Yes + + + Identifier + windowTool.debuggerConsole + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAAC065D492600B07095 + PBXProjectModuleLabel + Debugger Console + + GeometryConfiguration + + Frame + {{0, 0}, {700, 358}} + RubberWindowFrame + 149 87 700 400 0 0 1440 878 + + Module + PBXDebugCLIModule + Proportion + 358pt + + + Proportion + 358pt + + + Name + Debugger Console + ServiceClasses + + PBXDebugCLIModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C530D5B069F1CE1000CFCEE + 1C530D5C069F1CE1000CFCEE + 1C78EAAC065D492600B07095 + + ToolbarConfiguration + xcode.toolbar.config.consoleV3 + WindowString + 149 87 440 400 0 0 1440 878 + WindowToolGUID + 1C530D5B069F1CE1000CFCEE + WindowToolIsVisible + 0 + + + Identifier + windowTool.scm + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAB2065D492600B07095 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1C78EAB3065D492600B07095 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {452, 0}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + + Module + PBXNavigatorGroup + Proportion + 0pt + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD052920623707200166675 + PBXProjectModuleLabel + SCM + + GeometryConfiguration + + ConsoleFrame + {{0, 259}, {452, 0}} + Frame + {{0, 7}, {452, 259}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + TableConfiguration + + Status + 30 + FileName + 199 + Path + 197.09500122070312 + + TableFrame + {{0, 0}, {452, 250}} + + Module + PBXCVSModule + Proportion + 262pt + + + Proportion + 266pt + + + Name + SCM + ServiceClasses + + PBXCVSModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C78EAB4065D492600B07095 + 1C78EAB5065D492600B07095 + 1C78EAB2065D492600B07095 + 1CD052920623707200166675 + + ToolbarConfiguration + xcode.toolbar.config.scmV3 + WindowString + 743 379 452 308 0 0 1280 1002 + + + Identifier + windowTool.breakpoints + IsVertical + 0 + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C77FABC04509CD000000102 + + PBXProjectModuleGUID + 1CE0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + no + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 168 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 1C77FABC04509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {168, 350}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + 0 + + GeometryConfiguration + + Frame + {{0, 0}, {185, 368}} + GroupTreeTableConfiguration + + MainColumn + 168 + + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 185pt + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA1AED706398EBD00589147 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{190, 0}, {554, 368}} + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + XCDetailModule + Proportion + 554pt + + + Proportion + 368pt + + + MajorVersion + 3 + MinorVersion + 0 + Name + Breakpoints + ServiceClasses + + PBXSmartGroupTreeModule + XCDetailModule + + StatusbarIsVisible + 1 + TableOfContents + + 1CDDB66807F98D9800BB5817 + 1CDDB66907F98D9800BB5817 + 1CE0B1FE06471DED0097A5F4 + 1CA1AED706398EBD00589147 + + ToolbarConfiguration + xcode.toolbar.config.breakpointsV3 + WindowString + 315 424 744 409 0 0 1440 878 + WindowToolGUID + 1CDDB66807F98D9800BB5817 + WindowToolIsVisible + 1 + + + Identifier + windowTool.debugAnimator + Layout + + + Dock + + + Module + PBXNavigatorGroup + Proportion + 100% + + + Proportion + 100% + + + Name + Debug Visualizer + ServiceClasses + + PBXNavigatorGroup + + StatusbarIsVisible + 1 + ToolbarConfiguration + xcode.toolbar.config.debugAnimatorV3 + WindowString + 100 100 700 500 0 0 1280 1002 + + + Identifier + windowTool.bookmarks + Layout + + + Dock + + + Module + PBXBookmarksModule + Proportion + 166pt + + + Proportion + 166pt + + + Name + Bookmarks + ServiceClasses + + PBXBookmarksModule + + StatusbarIsVisible + 0 + WindowString + 538 42 401 187 0 0 1280 1002 + + + Identifier + windowTool.projectFormatConflicts + Layout + + + Dock + + + Module + XCProjectFormatConflictsModule + Proportion + 100% + + + Proportion + 100% + + + Name + Project Format Conflicts + ServiceClasses + + XCProjectFormatConflictsModule + + StatusbarIsVisible + 0 + WindowContentMinSize + 450 300 + WindowString + 50 850 472 307 0 0 1440 877 + + + Identifier + windowTool.classBrowser + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + OptionsSetName + Hierarchy, all classes + PBXProjectModuleGUID + 1CA6456E063B45B4001379D8 + PBXProjectModuleLabel + Class Browser - NSObject + + GeometryConfiguration + + ClassesFrame + {{0, 0}, {369, 96}} + ClassesTreeTableConfiguration + + PBXClassNameColumnIdentifier + 208 + PBXClassBookColumnIdentifier + 22 + + Frame + {{0, 0}, {616, 353}} + MembersFrame + {{0, 105}, {369, 395}} + MembersTreeTableConfiguration + + PBXMemberTypeIconColumnIdentifier + 22 + PBXMemberNameColumnIdentifier + 216 + PBXMemberTypeColumnIdentifier + 94 + PBXMemberBookColumnIdentifier + 22 + + PBXModuleWindowStatusBarHidden2 + 1 + RubberWindowFrame + 597 125 616 374 0 0 1280 1002 + + Module + PBXClassBrowserModule + Proportion + 354pt + + + Proportion + 354pt + + + Name + Class Browser + ServiceClasses + + PBXClassBrowserModule + + StatusbarIsVisible + 0 + TableOfContents + + 1C78EABA065D492600B07095 + 1C78EABB065D492600B07095 + 1CA6456E063B45B4001379D8 + + ToolbarConfiguration + xcode.toolbar.config.classbrowser + WindowString + 597 125 616 374 0 0 1280 1002 + + + Identifier + windowTool.refactoring + IncludeInToolsMenu + 0 + Layout + + + Dock + + + BecomeActive + 1 + GeometryConfiguration + + Frame + {0, 0}, {500, 335} + RubberWindowFrame + {0, 0}, {500, 335} + + Module + XCRefactoringModule + Proportion + 100% + + + Proportion + 100% + + + Name + Refactoring + ServiceClasses + + XCRefactoringModule + + WindowString + 200 200 500 356 0 0 1920 1200 + + + + diff --git a/plugins/MacAU/kWoodRoom/kWoodRoom.xcodeproj/project.pbxproj b/plugins/MacAU/kWoodRoom/kWoodRoom.xcodeproj/project.pbxproj new file mode 100755 index 000000000..c91b59ba6 --- /dev/null +++ b/plugins/MacAU/kWoodRoom/kWoodRoom.xcodeproj/project.pbxproj @@ -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 /* kWoodRoom.r in Rez */ = {isa = PBXBuildFile; fileRef = 8BA05A680720730100365D66 /* kWoodRoom.r */; }; + 8BA05A6B0720730100365D66 /* kWoodRoom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* kWoodRoom.cpp */; }; + 8BA05A6E0720730100365D66 /* kWoodRoomVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* kWoodRoomVersion.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 /* kWoodRoom.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* kWoodRoom.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 = ""; }; + 3EEA126B089847F5002C6BFC /* CAVectorUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAVectorUnit.cpp; sourceTree = ""; }; + 3EEA126C089847F5002C6BFC /* CAVectorUnit.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAVectorUnit.h; sourceTree = ""; }; + 3EEA126D089847F5002C6BFC /* CAVectorUnitTypes.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAVectorUnitTypes.h; sourceTree = ""; }; + 8B5C7FBF076FB2C200A15F61 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = ""; }; + 8BA05A660720730100365D66 /* kWoodRoom.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = kWoodRoom.cpp; sourceTree = ""; }; + 8BA05A670720730100365D66 /* kWoodRoom.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = kWoodRoom.exp; sourceTree = ""; }; + 8BA05A680720730100365D66 /* kWoodRoom.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = kWoodRoom.r; sourceTree = ""; }; + 8BA05A690720730100365D66 /* kWoodRoomVersion.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = kWoodRoomVersion.h; sourceTree = ""; }; + 8BA05A7F072073D200365D66 /* AUBase.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUBase.cpp; sourceTree = ""; }; + 8BA05A80072073D200365D66 /* AUBase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUBase.h; sourceTree = ""; }; + 8BA05A81072073D200365D66 /* AUDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUDispatch.cpp; sourceTree = ""; }; + 8BA05A82072073D200365D66 /* AUDispatch.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUDispatch.h; sourceTree = ""; }; + 8BA05A83072073D200365D66 /* AUInputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUInputElement.cpp; sourceTree = ""; }; + 8BA05A84072073D200365D66 /* AUInputElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUInputElement.h; sourceTree = ""; }; + 8BA05A85072073D200365D66 /* AUOutputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputElement.cpp; sourceTree = ""; }; + 8BA05A86072073D200365D66 /* AUOutputElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUOutputElement.h; sourceTree = ""; }; + 8BA05A87072073D200365D66 /* AUResources.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = AUResources.r; sourceTree = ""; }; + 8BA05A88072073D200365D66 /* AUScopeElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUScopeElement.cpp; sourceTree = ""; }; + 8BA05A89072073D200365D66 /* AUScopeElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUScopeElement.h; sourceTree = ""; }; + 8BA05A8A072073D200365D66 /* ComponentBase.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ComponentBase.cpp; sourceTree = ""; }; + 8BA05A8B072073D200365D66 /* ComponentBase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ComponentBase.h; sourceTree = ""; }; + 8BA05A9A072073D200365D66 /* AUEffectBase.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUEffectBase.cpp; sourceTree = ""; }; + 8BA05A9B072073D200365D66 /* AUEffectBase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUEffectBase.h; sourceTree = ""; }; + 8BA05AA7072073D200365D66 /* AUBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUBuffer.cpp; sourceTree = ""; }; + 8BA05AA8072073D200365D66 /* AUBuffer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUBuffer.h; sourceTree = ""; }; + 8BA05AA9072073D200365D66 /* AUDebugDispatcher.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUDebugDispatcher.cpp; sourceTree = ""; }; + 8BA05AAA072073D200365D66 /* AUDebugDispatcher.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUDebugDispatcher.h; sourceTree = ""; }; + 8BA05AAB072073D200365D66 /* AUInputFormatConverter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUInputFormatConverter.h; sourceTree = ""; }; + 8BA05AAC072073D200365D66 /* AUSilentTimeout.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUSilentTimeout.h; sourceTree = ""; }; + 8BA05AAD072073D200365D66 /* AUTimestampGenerator.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUTimestampGenerator.h; sourceTree = ""; }; + 8BA05ADF0720742100365D66 /* CAAudioChannelLayout.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayout.cpp; sourceTree = ""; }; + 8BA05AE00720742100365D66 /* CAAudioChannelLayout.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAAudioChannelLayout.h; sourceTree = ""; }; + 8BA05AE10720742100365D66 /* CAMutex.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAMutex.cpp; sourceTree = ""; }; + 8BA05AE20720742100365D66 /* CAMutex.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAMutex.h; sourceTree = ""; }; + 8BA05AE30720742100365D66 /* CAStreamBasicDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamBasicDescription.cpp; sourceTree = ""; }; + 8BA05AE40720742100365D66 /* CAStreamBasicDescription.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAStreamBasicDescription.h; sourceTree = ""; }; + 8BA05AF9072074E100365D66 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = /System/Library/Frameworks/AudioToolbox.framework; sourceTree = ""; }; + 8BA05AFA072074E100365D66 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = /System/Library/Frameworks/AudioUnit.framework; sourceTree = ""; }; + 8BA05B01072074F900365D66 /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = /System/Library/Frameworks/CoreServices.framework; sourceTree = ""; }; + 8BA05B050720754400365D66 /* CAAUParameter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUParameter.cpp; sourceTree = ""; }; + 8BA05B060720754400365D66 /* CAAUParameter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAAUParameter.h; sourceTree = ""; }; + 8BC6025B073B072D006C4272 /* kWoodRoom.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = kWoodRoom.h; sourceTree = ""; }; + 8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; + 8D01CCD20486CAD60068D4B7 /* kWoodRoom.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = kWoodRoom.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 /* kWoodRoom */ = { + isa = PBXGroup; + children = ( + 08FB77ADFE841716C02AAC07 /* Source */, + 089C167CFE841241C02AAC07 /* Resources */, + 089C1671FE841209C02AAC07 /* External Frameworks and Libraries */, + 19C28FB4FE9D528D11CA2CBB /* Products */, + ); + name = kWoodRoom; + sourceTree = ""; + }; + 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 = ""; + }; + 089C167CFE841241C02AAC07 /* Resources */ = { + isa = PBXGroup; + children = ( + 8D01CCD10486CAD60068D4B7 /* Info.plist */, + 089C167DFE841241C02AAC07 /* InfoPlist.strings */, + ); + name = Resources; + sourceTree = ""; + }; + 08FB77ADFE841716C02AAC07 /* Source */ = { + isa = PBXGroup; + children = ( + 8BA05A56072072A900365D66 /* AU Source */, + 8BA05AEB0720742700365D66 /* PublicUtility */, + 8BA05A7D072073D200365D66 /* AUPublic */, + ); + name = Source; + sourceTree = ""; + }; + 19C28FB4FE9D528D11CA2CBB /* Products */ = { + isa = PBXGroup; + children = ( + 8D01CCD20486CAD60068D4B7 /* kWoodRoom.component */, + ); + name = Products; + sourceTree = ""; + }; + 8BA05A56072072A900365D66 /* AU Source */ = { + isa = PBXGroup; + children = ( + 8BC6025B073B072D006C4272 /* kWoodRoom.h */, + 8BA05A660720730100365D66 /* kWoodRoom.cpp */, + 8BA05A670720730100365D66 /* kWoodRoom.exp */, + 8BA05A680720730100365D66 /* kWoodRoom.r */, + 8BA05A690720730100365D66 /* kWoodRoomVersion.h */, + ); + name = "AU Source"; + sourceTree = ""; + }; + 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 = ""; + }; + 8BA05A99072073D200365D66 /* OtherBases */ = { + isa = PBXGroup; + children = ( + 8BA05A9A072073D200365D66 /* AUEffectBase.cpp */, + 8BA05A9B072073D200365D66 /* AUEffectBase.h */, + ); + path = OtherBases; + sourceTree = ""; + }; + 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 = ""; + }; + 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 /* kWoodRoomVersion.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 /* kWoodRoom.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 /* kWoodRoom */ = { + isa = PBXNativeTarget; + buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "kWoodRoom" */; + buildPhases = ( + 8D01CCC70486CAD60068D4B7 /* Headers */, + 8D01CCC90486CAD60068D4B7 /* Resources */, + 8D01CCCB0486CAD60068D4B7 /* Sources */, + 8D01CCCD0486CAD60068D4B7 /* Frameworks */, + 8D01CCCF0486CAD60068D4B7 /* Rez */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = kWoodRoom; + productInstallPath = "$(HOME)/Library/Bundles"; + productName = kWoodRoom; + productReference = 8D01CCD20486CAD60068D4B7 /* kWoodRoom.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 "kWoodRoom" */; + compatibilityVersion = "Xcode 3.1"; + developmentRegion = English; + hasScannedForEncodings = 1; + knownRegions = ( + English, + Japanese, + French, + German, + ); + mainGroup = 089C166AFE841209C02AAC07 /* kWoodRoom */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 8D01CCC60486CAD60068D4B7 /* kWoodRoom */, + ); + }; +/* 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 /* kWoodRoom.r in Rez */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXRezBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 8D01CCCB0486CAD60068D4B7 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 8BA05A6B0720730100365D66 /* kWoodRoom.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 = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 3E4BA244089833B7007656EC /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + EXPORTED_SYMBOLS_FILE = kWoodRoom.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 = kWoodRoom; + WRAPPER_EXTENSION = component; + }; + name = Debug; + }; + 3E4BA245089833B7007656EC /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = ( + ppc, + i386, + x86_64, + ); + EXPORTED_SYMBOLS_FILE = kWoodRoom.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 = kWoodRoom; + 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 "kWoodRoom" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3E4BA244089833B7007656EC /* Debug */, + 3E4BA245089833B7007656EC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 3E4BA247089833B7007656EC /* Build configuration list for PBXProject "kWoodRoom" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3E4BA248089833B7007656EC /* Debug */, + 3E4BA249089833B7007656EC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; +/* End XCConfigurationList section */ + }; + rootObject = 089C1669FE841209C02AAC07 /* Project object */; +} diff --git a/plugins/MacAU/kWoodRoom/kWoodRoomVersion.h b/plugins/MacAU/kWoodRoom/kWoodRoomVersion.h new file mode 100755 index 000000000..d87cfed2e --- /dev/null +++ b/plugins/MacAU/kWoodRoom/kWoodRoomVersion.h @@ -0,0 +1,58 @@ +/* +* File: kWoodRoomVersion.h +* +* Version: 1.0 +* +* Created: 11/1/25 +* +* Copyright: Copyright © 2025 Airwindows, Airwindows uses the MIT license +* +* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in +* consideration of your agreement to the following terms, and your use, installation, modification +* or redistribution of this Apple software constitutes acceptance of these terms. If you do +* not agree with these terms, please do not use, install, modify or redistribute this Apple +* software. +* +* In consideration of your agreement to abide by the following terms, and subject to these terms, +* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this +* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the +* Apple Software, with or without modifications, in source and/or binary forms; provided that if you +* redistribute the Apple Software in its entirety and without modifications, you must retain this +* notice and the following text and disclaimers in all such redistributions of the Apple Software. +* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to +* endorse or promote products derived from the Apple Software without specific prior written +* permission from Apple. Except as expressly stated in this notice, no other rights or +* licenses, express or implied, are granted by Apple herein, including but not limited to any +* patent rights that may be infringed by your derivative works or by other works in which the +* Apple Software may be incorporated. +* +* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR +* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY +* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE +* OR IN COMBINATION WITH YOUR PRODUCTS. +* +* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL +* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, +* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER +* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN +* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +*/ +#ifndef __kWoodRoomVersion_h__ +#define __kWoodRoomVersion_h__ + + +#ifdef DEBUG + #define kkWoodRoomVersion 0xFFFFFFFF +#else + #define kkWoodRoomVersion 0x00010000 +#endif + +//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~// +#define kWoodRoom_COMP_MANF 'Dthr' +#define kWoodRoom_COMP_SUBTYPE 'kwdr' +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// + +#endif + diff --git a/plugins/MacAU/kWoodRoom/version.plist b/plugins/MacAU/kWoodRoom/version.plist new file mode 100755 index 000000000..11edf8a1b --- /dev/null +++ b/plugins/MacAU/kWoodRoom/version.plist @@ -0,0 +1,16 @@ + + + + + BuildVersion + 3 + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1.0 + ProjectName + ${EXECUTABLE_NAME} + SourceVersion + 590000 + + diff --git a/plugins/MacSignedAU/ConsoleX2Buss/ConsoleX2Buss.cpp b/plugins/MacSignedAU/ConsoleX2Buss/ConsoleX2Buss.cpp index 54547723f..164e598e5 100755 --- a/plugins/MacSignedAU/ConsoleX2Buss/ConsoleX2Buss.cpp +++ b/plugins/MacSignedAU/ConsoleX2Buss/ConsoleX2Buss.cpp @@ -70,12 +70,6 @@ ConsoleX2Buss::ConsoleX2Buss(AudioUnit component) SetParameter(kParam_I, kDefaultValue_ParamI ); SetParameter(kParam_J, kDefaultValue_ParamJ ); SetParameter(kParam_K, kDefaultValue_ParamK ); - SetParameter(kParam_L, kDefaultValue_ParamL ); - SetParameter(kParam_M, kDefaultValue_ParamM ); - SetParameter(kParam_N, kDefaultValue_ParamN ); - SetParameter(kParam_O, kDefaultValue_ParamO ); - SetParameter(kParam_P, kDefaultValue_ParamP ); - SetParameter(kParam_Q, kDefaultValue_ParamQ ); #if AU_DEBUG_DISPATCHER mDebugDispatcher = new AUDebugDispatcher (this); @@ -192,50 +186,6 @@ ComponentResult ConsoleX2Buss::GetParameterInfo(AudioUnitScope inScope, outParameterInfo.maxValue = 1.0; outParameterInfo.defaultValue = kDefaultValue_ParamK; break; - case kParam_L: - AUBase::FillInParameterName (outParameterInfo, kParameterLName, false); - outParameterInfo.unit = kAudioUnitParameterUnit_Generic; - outParameterInfo.minValue = 0.0; - outParameterInfo.maxValue = 1.0; - outParameterInfo.defaultValue = kDefaultValue_ParamL; - break; - case kParam_M: - AUBase::FillInParameterName (outParameterInfo, kParameterMName, false); - outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit; - outParameterInfo.unitName = kParameterMUnit; - outParameterInfo.minValue = 0.0; - outParameterInfo.maxValue = 1.0; - outParameterInfo.defaultValue = kDefaultValue_ParamM; - break; - case kParam_N: - AUBase::FillInParameterName (outParameterInfo, kParameterNName, false); - outParameterInfo.unit = kAudioUnitParameterUnit_Generic; - outParameterInfo.minValue = 0.0; - outParameterInfo.maxValue = 1.0; - outParameterInfo.defaultValue = kDefaultValue_ParamN; - break; - case kParam_O: - AUBase::FillInParameterName (outParameterInfo, kParameterOName, false); - outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit; - outParameterInfo.unitName = kParameterOUnit; - outParameterInfo.minValue = 0.0; - outParameterInfo.maxValue = 1.0; - outParameterInfo.defaultValue = kDefaultValue_ParamO; - break; - case kParam_P: - AUBase::FillInParameterName (outParameterInfo, kParameterPName, false); - outParameterInfo.unit = kAudioUnitParameterUnit_Generic; - outParameterInfo.minValue = 0.0; - outParameterInfo.maxValue = 1.0; - outParameterInfo.defaultValue = kDefaultValue_ParamP; - break; - case kParam_Q: - AUBase::FillInParameterName (outParameterInfo, kParameterQName, false); - outParameterInfo.unit = kAudioUnitParameterUnit_Generic; - outParameterInfo.minValue = 0.0; - outParameterInfo.maxValue = 1.0; - outParameterInfo.defaultValue = kDefaultValue_ParamQ; - break; default: result = kAudioUnitErr_InvalidParameter; break; @@ -327,40 +277,22 @@ ComponentResult ConsoleX2Buss::Reset(AudioUnitScope inScope, AudioUnitElement i 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; + bezCompS[bez_cycle] = 1.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 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 - 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 - - 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; return noErr; @@ -382,6 +314,8 @@ OSStatus ConsoleX2Buss::ProcessBufferLists(AudioUnitRenderActionFlags & ioActio 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_A )-0.5)*2.0; trebleGain = 1.0+(trebleGain*fabs(trebleGain)*fabs(trebleGain)); @@ -408,8 +342,8 @@ OSStatus ConsoleX2Buss::ProcessBufferLists(AudioUnitRenderActionFlags & ioActio highC[biq_freq] = highB[biq_freq] = highA[biq_freq] = fmax(fmin(highA[biq_freq],0.4999),0.00025); double highFreq = pow(highF,3)*20000.0; double omega = 2.0*M_PI*(highFreq/GetSampleRate()); - double K = 2.0-cos(omega); - double highCoef = -sqrt((K*K)-1.0)+K; + double biqK = 2.0-cos(omega); + double highCoef = -sqrt((biqK*biqK)-1.0)+biqK; highA[biq_reso] = 2.24697960 * highQ; highB[biq_reso] = 0.80193774 * highQ; highC[biq_reso] = 0.55495813 * highQ; @@ -418,8 +352,8 @@ OSStatus ConsoleX2Buss::ProcessBufferLists(AudioUnitRenderActionFlags & ioActio midC[biq_freq] = midB[biq_freq] = midA[biq_freq] = fmax(fmin(midA[biq_freq],0.4999),0.00025); double midFreq = pow(midF,3)*20000.0; omega = 2.0*M_PI*(midFreq/GetSampleRate()); - K = 2.0-cos(omega); - double midCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double midCoef = -sqrt((biqK*biqK)-1.0)+biqK; midA[biq_reso] = 2.24697960 * midQ; midB[biq_reso] = 0.80193774 * midQ; midC[biq_reso] = 0.55495813 * midQ; @@ -428,99 +362,90 @@ OSStatus ConsoleX2Buss::ProcessBufferLists(AudioUnitRenderActionFlags & ioActio lowC[biq_freq] = lowB[biq_freq] = lowA[biq_freq] = fmax(fmin(lowA[biq_freq],0.4999),0.00025); double lowFreq = pow(bassF,3)*20000.0; omega = 2.0*M_PI*(lowFreq/GetSampleRate()); - K = 2.0-cos(omega); - double lowCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double lowCoef = -sqrt((biqK*biqK)-1.0)+biqK; lowA[biq_reso] = 2.24697960 * lowQ; lowB[biq_reso] = 0.80193774 * lowQ; lowC[biq_reso] = 0.55495813 * lowQ; - K = tan(M_PI * highA[biq_freq]); - double norm = 1.0 / (1.0 + K / highA[biq_reso] + K * K); - highA[biq_a0] = K * K * norm; + biqK = tan(M_PI * highA[biq_freq]); + double norm = 1.0 / (1.0 + biqK / highA[biq_reso] + biqK * biqK); + highA[biq_a0] = biqK * biqK * norm; highA[biq_a1] = 2.0 * highA[biq_a0]; highA[biq_a2] = highA[biq_a0]; - highA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highA[biq_b2] = (1.0 - K / highA[biq_reso] + K * K) * norm; - K = tan(M_PI * highB[biq_freq]); - norm = 1.0 / (1.0 + K / highB[biq_reso] + K * K); - highB[biq_a0] = K * K * norm; + highA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highA[biq_b2] = (1.0 - biqK / highA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highB[biq_freq]); + norm = 1.0 / (1.0 + biqK / highB[biq_reso] + biqK * biqK); + highB[biq_a0] = biqK * biqK * norm; highB[biq_a1] = 2.0 * highB[biq_a0]; highB[biq_a2] = highB[biq_a0]; - highB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highB[biq_b2] = (1.0 - K / highB[biq_reso] + K * K) * norm; - K = tan(M_PI * highC[biq_freq]); - norm = 1.0 / (1.0 + K / highC[biq_reso] + K * K); - highC[biq_a0] = K * K * norm; + highB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highB[biq_b2] = (1.0 - biqK / highB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highC[biq_freq]); + norm = 1.0 / (1.0 + biqK / highC[biq_reso] + biqK * biqK); + highC[biq_a0] = biqK * biqK * norm; highC[biq_a1] = 2.0 * highC[biq_a0]; highC[biq_a2] = highC[biq_a0]; - highC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highC[biq_b2] = (1.0 - K / highC[biq_reso] + K * K) * norm; + highC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highC[biq_b2] = (1.0 - biqK / highC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * midA[biq_freq]); - norm = 1.0 / (1.0 + K / midA[biq_reso] + K * K); - midA[biq_a0] = K * K * norm; + biqK = tan(M_PI * midA[biq_freq]); + norm = 1.0 / (1.0 + biqK / midA[biq_reso] + biqK * biqK); + midA[biq_a0] = biqK * biqK * norm; midA[biq_a1] = 2.0 * midA[biq_a0]; midA[biq_a2] = midA[biq_a0]; - midA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midA[biq_b2] = (1.0 - K / midA[biq_reso] + K * K) * norm; - K = tan(M_PI * midB[biq_freq]); - norm = 1.0 / (1.0 + K / midB[biq_reso] + K * K); - midB[biq_a0] = K * K * norm; + midA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midA[biq_b2] = (1.0 - biqK / midA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midB[biq_freq]); + norm = 1.0 / (1.0 + biqK / midB[biq_reso] + biqK * biqK); + midB[biq_a0] = biqK * biqK * norm; midB[biq_a1] = 2.0 * midB[biq_a0]; midB[biq_a2] = midB[biq_a0]; - midB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midB[biq_b2] = (1.0 - K / midB[biq_reso] + K * K) * norm; - K = tan(M_PI * midC[biq_freq]); - norm = 1.0 / (1.0 + K / midC[biq_reso] + K * K); - midC[biq_a0] = K * K * norm; + midB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midB[biq_b2] = (1.0 - biqK / midB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midC[biq_freq]); + norm = 1.0 / (1.0 + biqK / midC[biq_reso] + biqK * biqK); + midC[biq_a0] = biqK * biqK * norm; midC[biq_a1] = 2.0 * midC[biq_a0]; midC[biq_a2] = midC[biq_a0]; - midC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midC[biq_b2] = (1.0 - K / midC[biq_reso] + K * K) * norm; + midC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midC[biq_b2] = (1.0 - biqK / midC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * lowA[biq_freq]); - norm = 1.0 / (1.0 + K / lowA[biq_reso] + K * K); - lowA[biq_a0] = K * K * norm; + biqK = tan(M_PI * lowA[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowA[biq_reso] + biqK * biqK); + lowA[biq_a0] = biqK * biqK * norm; lowA[biq_a1] = 2.0 * lowA[biq_a0]; lowA[biq_a2] = lowA[biq_a0]; - lowA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowA[biq_b2] = (1.0 - K / lowA[biq_reso] + K * K) * norm; - K = tan(M_PI * lowB[biq_freq]); - norm = 1.0 / (1.0 + K / lowB[biq_reso] + K * K); - lowB[biq_a0] = K * K * norm; + lowA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowA[biq_b2] = (1.0 - biqK / lowA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowB[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowB[biq_reso] + biqK * biqK); + lowB[biq_a0] = biqK * biqK * norm; lowB[biq_a1] = 2.0 * lowB[biq_a0]; lowB[biq_a2] = lowB[biq_a0]; - lowB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowB[biq_b2] = (1.0 - K / lowB[biq_reso] + K * K) * norm; - K = tan(M_PI * lowC[biq_freq]); - norm = 1.0 / (1.0 + K / lowC[biq_reso] + K * K); - lowC[biq_a0] = K * K * norm; + lowB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowB[biq_b2] = (1.0 - biqK / lowB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowC[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowC[biq_reso] + biqK * biqK); + lowC[biq_a0] = biqK * biqK * norm; lowC[biq_a1] = 2.0 * lowC[biq_a0]; lowC[biq_a2] = lowC[biq_a0]; - lowC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowC[biq_b2] = (1.0 - K / lowC[biq_reso] + K * K) * norm; + lowC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowC[biq_b2] = (1.0 - biqK / lowC[biq_reso] + biqK * biqK) * norm; //SmoothEQ2 double bezCThresh = pow(1.0-GetParameter( kParam_I ), 6.0) * 8.0; - double bezRez = pow(1.0-GetParameter( kParam_J ), 8.0) / overallscale; - double sloRez = pow(1.0-GetParameter( kParam_K ),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_L ),4.0),sqrt(bezCThresh+1.0)); + double bezRez = pow(1.0-GetParameter( kParam_I ), 12.360679774997898) / overallscale; + double sloRez = pow(1.0-GetParameter( kParam_I ),10.0) / overallscale; + sloRez = fmin(fmax(sloRez,0.00001),1.0); + bezRez = fmin(fmax(bezRez,0.00001),1.0); //Dynamics2 - - lFreqA = lFreqB; lFreqB = pow(fmax(GetParameter( kParam_M ),0.002),overallscale); //the lowpass - hFreqA = hFreqB; hFreqB = pow(GetParameter( kParam_N ),overallscale+2.0); //the highpass - //Cabs2 - - double moreDiscontinuity = fmax(pow(GetParameter( kParam_O )*0.42,3.0)*overallscale,0.00001); - double moreTapeHack = (GetParameter( kParam_O )*1.4152481)+1.2; - //Discontapeity - - panA = panB; panB = GetParameter( kParam_P )*1.57079633; - inTrimA = inTrimB; inTrimB = GetParameter( kParam_Q )*2.0; + + panA = panB; panB = GetParameter( kParam_J )*1.57079633; + inTrimA = inTrimB; inTrimB = GetParameter( kParam_K )*2.0; //Console - + while (nSampleFrames-- > 0) { double inputSampleL = *inputL; double inputSampleR = *inputR; @@ -672,10 +597,7 @@ OSStatus ConsoleX2Buss::ProcessBufferLists(AudioUnitRenderActionFlags & ioActio inputSampleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain); //fourth stage of three crossovers is the exponential filters //SmoothEQ2 - - if (fmax(fabs(inputSampleL),fabs(inputSampleR)) > gate+(sloRez*bezGate)) bezGate = ((bezGate*overallscale*3.0)+3.0)*(0.25/overallscale); - else bezGate = fmax(0.0, bezGate-(sloRez*sloRez)); - + if (bezCThresh > 0.0) { inputSampleL *= ((bezCThresh*0.5)+1.0); inputSampleR *= ((bezCThresh*0.5)+1.0); @@ -688,21 +610,14 @@ OSStatus ConsoleX2Buss::ProcessBufferLists(AudioUnitRenderActionFlags & ioActio if (bezCompF[bez_cycle] > 1.0) { bezCompF[bez_cycle] -= 1.0; - - if (bezMaxF < gate) bezCompF[bez_SampL] = bezMaxF/gate; //note: SampL is a control voltage, - if (bezCompF[bez_SampL] 1.0) { bezCompS[bez_cycle] -= 1.0; - - if (bezCompS[bez_SampL] 0.0) CBAMax = 1.0/CBAMax; CBAFade = ((CBASR*-CBAMax)+(CBAFR*CBAMax)+1.0)*0.5; if (bezCThresh > 0.0) inputSampleR *= 1.0-(fmin(((CBASR*(1.0-CBAFade))+(CBAFR*CBAFade))*bezCThresh,1.0)); - - if (bezGate < 1.0 && gate > 0.0) {inputSampleL *= bezGate; inputSampleR *= bezGate;} //Dynamics2 const double temp = (double)nSampleFrames/inFramesToProcess; - const double hFreq = (hFreqA*temp)+(hFreqB*(1.0-temp)); - if (hFreq > 0.0) { - double lowSampleL = inputSampleL; - double lowSampleR = inputSampleR; - for(int count = 0; count < 21; count++) { - iirHAngleL[count] = (iirHAngleL[count]*(1.0-hFreq))+((lowSampleL-iirHPositionL[count])*hFreq); - lowSampleL = ((iirHPositionL[count]+(iirHAngleL[count]*hFreq))*(1.0-hFreq))+(lowSampleL*hFreq); - iirHPositionL[count] = ((iirHPositionL[count]+(iirHAngleL[count]*hFreq))*(1.0-hFreq))+(lowSampleL*hFreq); - inputSampleL -= (lowSampleL * (1.0/21.0));//left - iirHAngleR[count] = (iirHAngleR[count]*(1.0-hFreq))+((lowSampleR-iirHPositionR[count])*hFreq); - lowSampleR = ((iirHPositionR[count]+(iirHAngleR[count]*hFreq))*(1.0-hFreq))+(lowSampleR*hFreq); - iirHPositionR[count] = ((iirHPositionR[count]+(iirHAngleR[count]*hFreq))*(1.0-hFreq))+(lowSampleR*hFreq); - inputSampleR -= (lowSampleR * (1.0/21.0));//right - } //the highpass - hBypass = false; - } else { - if (!hBypass) { - hBypass = true; - for(int count = 0; count < 22; count++) { - iirHPositionL[count] = 0.0; - iirHAngleL[count] = 0.0; - iirHPositionR[count] = 0.0; - iirHAngleR[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++) { - iirLAngleL[count] = (iirLAngleL[count]*(1.0-lFreq))+((inputSampleL-iirLPositionL[count])*lFreq); - inputSampleL = ((iirLPositionL[count]+(iirLAngleL[count]*lFreq))*(1.0-lFreq))+(inputSampleL*lFreq); - iirLPositionL[count] = ((iirLPositionL[count]+(iirLAngleL[count]*lFreq))*(1.0-lFreq))+(inputSampleL*lFreq);//left - iirLAngleR[count] = (iirLAngleR[count]*(1.0-lFreq))+((inputSampleR-iirLPositionR[count])*lFreq); - inputSampleR = ((iirLPositionR[count]+(iirLAngleR[count]*lFreq))*(1.0-lFreq))+(inputSampleR*lFreq); - iirLPositionR[count] = ((iirLPositionR[count]+(iirLAngleR[count]*lFreq))*(1.0-lFreq))+(inputSampleR*lFreq);//right - } //the lowpass - lBypass = false; - } else { - if (!lBypass) { - lBypass = true; - for(int count = 0; count < 14; count++) { - iirLPositionL[count] = 0.0; - iirLAngleL[count] = 0.0; - iirLPositionR[count] = 0.0; - iirLAngleR[count] = 0.0; - } - } //blank out lowpass if just switched off - } - //Cabs2 + 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 - //begin Discontinuity section - inputSampleL *= moreDiscontinuity; - dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5); - dBaPosL = fmin(dBaPosL,1.0); - int dBdly = floor(dBaPosL*dscBuf); - double dBi = (dBaPosL*dscBuf)-dBdly; - inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi; - dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0; - inputSampleL /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleL = fmax(fmin(inputSampleL*moreTapeHack,2.305929007734908),-2.305929007734908); + 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); @@ -822,21 +720,11 @@ OSStatus ConsoleX2Buss::ProcessBufferLists(AudioUnitRenderActionFlags & ioActio empower *= addtwo; //eleventh inputSampleL -= (empower / 9979200.0f); //this is a degenerate form of a Taylor Series to approximate sin() - inputSampleL *= 0.9239; + inputSampleL *= 0.92; //end TapeHack section - //begin Discontinuity section - inputSampleR *= moreDiscontinuity; - dBaR[dBaXR] = inputSampleR; dBaPosR *= 0.5; dBaPosR += fabs((inputSampleR*((inputSampleR*0.25)-0.5))*0.5); - dBaPosR = fmin(dBaPosR,1.0); - dBdly = floor(dBaPosR*dscBuf); - dBi = (dBaPosR*dscBuf)-dBdly; - inputSampleR = dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleR += dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*dBi; - dBaXR++; if (dBaXR < 0 || dBaXR >= dscBuf) dBaXR = 0; - inputSampleR /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleR = fmax(fmin(inputSampleR*moreTapeHack,2.305929007734908),-2.305929007734908); + //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); @@ -849,21 +737,9 @@ OSStatus ConsoleX2Buss::ProcessBufferLists(AudioUnitRenderActionFlags & ioActio empower *= addtwo; //eleventh inputSampleR -= (empower / 9979200.0f); //this is a degenerate form of a Taylor Series to approximate sin() - inputSampleR *= 0.9239; + inputSampleR *= 0.92; //end TapeHack section //Discontapeity - - 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 //begin 32 bit stereo floating point dither int expon; frexpf((float)inputSampleL, &expon); diff --git a/plugins/MacSignedAU/ConsoleX2Buss/ConsoleX2Buss.h b/plugins/MacSignedAU/ConsoleX2Buss/ConsoleX2Buss.h index f74eeba47..daa78a49b 100755 --- a/plugins/MacSignedAU/ConsoleX2Buss/ConsoleX2Buss.h +++ b/plugins/MacSignedAU/ConsoleX2Buss/ConsoleX2Buss.h @@ -65,12 +65,6 @@ static const float kDefaultValue_ParamH = 0.5; static const float kDefaultValue_ParamI = 1.0; static const float kDefaultValue_ParamJ = 0.5; static const float kDefaultValue_ParamK = 0.5; -static const float kDefaultValue_ParamL = 0.0; -static const float kDefaultValue_ParamM = 1.0; -static const float kDefaultValue_ParamN = 0.0; -static const float kDefaultValue_ParamO = 0.0; -static const float kDefaultValue_ParamP = 0.5; -static const float kDefaultValue_ParamQ = 0.5; static CFStringRef kParameterAUnit = CFSTR("eq"); static CFStringRef kParameterAName = CFSTR("High"); @@ -84,16 +78,8 @@ static CFStringRef kParameterGName = CFSTR("LMidF"); static CFStringRef kParameterHName = CFSTR("BassF"); static CFStringRef kParameterIUnit = CFSTR("dyn"); static CFStringRef kParameterIName = CFSTR("Thresh"); -static CFStringRef kParameterJName = CFSTR("Attack"); -static CFStringRef kParameterKName = CFSTR("Release"); -static CFStringRef kParameterLName = CFSTR("Gate"); -static CFStringRef kParameterMUnit = CFSTR("fltr"); -static CFStringRef kParameterMName = CFSTR("Lowpass"); -static CFStringRef kParameterNName = CFSTR("Hipass"); -static CFStringRef kParameterOUnit = CFSTR("+"); -static CFStringRef kParameterOName = CFSTR("More"); -static CFStringRef kParameterPName = CFSTR("Pan"); -static CFStringRef kParameterQName = CFSTR("Fader"); +static CFStringRef kParameterJName = CFSTR("Pan"); +static CFStringRef kParameterKName = CFSTR("Fader"); enum { kParam_A =0, @@ -107,18 +93,10 @@ enum { kParam_I =8, kParam_J =9, kParam_K =10, - kParam_L =11, - kParam_M =12, - kParam_N =13, - kParam_O =14, - kParam_P =15, - kParam_Q =16, //Add your parameters here... - kNumberOfParameters=17 + kNumberOfParameters=11 }; -const int dscBuf = 256; - #pragma mark ____ConsoleX2Buss class ConsoleX2Buss : public AUEffectBase { @@ -216,32 +194,24 @@ public: 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; diff --git a/plugins/MacSignedAU/ConsoleX2Buss/ConsoleX2Buss.xcodeproj/christopherjohnson.pbxuser b/plugins/MacSignedAU/ConsoleX2Buss/ConsoleX2Buss.xcodeproj/christopherjohnson.pbxuser index 4c1243b6a..46c9c9a12 100755 --- a/plugins/MacSignedAU/ConsoleX2Buss/ConsoleX2Buss.xcodeproj/christopherjohnson.pbxuser +++ b/plugins/MacSignedAU/ConsoleX2Buss/ConsoleX2Buss.xcodeproj/christopherjohnson.pbxuser @@ -51,20 +51,19 @@ PBXFileDataSource_Warnings_ColumnID, ); }; - PBXPerProjectTemplateStateSaveDate = 781899426; - PBXWorkspaceStateSaveDate = 781899426; + PBXPerProjectTemplateStateSaveDate = 783619597; + PBXWorkspaceStateSaveDate = 783619597; }; perUserProjectItems = { - 8B962AAA2E9AD07A000EAC04 /* PBXTextBookmark */ = 8B962AAA2E9AD07A000EAC04 /* PBXTextBookmark */; - 8B962ADC2E9AD297000EAC04 /* PBXTextBookmark */ = 8B962ADC2E9AD297000EAC04 /* PBXTextBookmark */; - 8B962B2D2E9AD3DA000EAC04 /* PBXTextBookmark */ = 8B962B2D2E9AD3DA000EAC04 /* PBXTextBookmark */; - 8B962BA12E9AD778000EAC04 /* PBXTextBookmark */ = 8B962BA12E9AD778000EAC04 /* PBXTextBookmark */; + 8B5C9E332EB51644008B9860 /* PBXTextBookmark */ = 8B5C9E332EB51644008B9860 /* PBXTextBookmark */; + 8B5C9E342EB51644008B9860 /* PBXTextBookmark */ = 8B5C9E342EB51644008B9860 /* PBXTextBookmark */; + 8B5C9E352EB51644008B9860 /* PBXTextBookmark */ = 8B5C9E352EB51644008B9860 /* PBXTextBookmark */; }; sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */; userBuildSettings = { }; }; - 8B962AAA2E9AD07A000EAC04 /* PBXTextBookmark */ = { + 8B5C9E332EB51644008B9860 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 8BA05A690720730100365D66 /* ConsoleX2BussVersion.h */; name = "ConsoleX2BussVersion.h: 1"; @@ -74,42 +73,32 @@ vrLen = 258; vrLoc = 0; }; - 8B962ADC2E9AD297000EAC04 /* PBXTextBookmark */ = { + 8B5C9E342EB51644008B9860 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 8BA05A660720730100365D66 /* ConsoleX2Buss.cpp */; - name = "ConsoleX2Buss.cpp: 516"; - rLen = 0; - rLoc = 22774; + name = "ConsoleX2Buss.cpp: 317"; + rLen = 20897; + rLoc = 14098; rType = 0; - vrLen = 148; - vrLoc = 22439; + vrLen = 285; + vrLoc = 14098; }; - 8B962B2D2E9AD3DA000EAC04 /* PBXTextBookmark */ = { + 8B5C9E352EB51644008B9860 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 8BC6025B073B072D006C4272 /* ConsoleX2Buss.h */; - name = "ConsoleX2Buss.h: 97"; - rLen = 0; - rLoc = 4804; + fRef = 8BA05A660720730100365D66 /* ConsoleX2Buss.cpp */; + name = "ConsoleX2Buss.cpp: 317"; + rLen = 20897; + rLoc = 14098; rType = 0; - vrLen = 112; - vrLoc = 4700; - }; - 8B962BA12E9AD778000EAC04 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 8BC6025B073B072D006C4272 /* ConsoleX2Buss.h */; - name = "ConsoleX2Buss.h: 97"; - rLen = 0; - rLoc = 4804; - rType = 0; - vrLen = 61; - vrLoc = 4751; + vrLen = 285; + vrLoc = 14098; }; 8BA05A660720730100365D66 /* ConsoleX2Buss.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1308, 15822}}"; - sepNavSelRange = "{39367, 15}"; - sepNavVisRange = "{38789, 1325}"; - sepNavWindowFrame = "{{-6, 75}, {1066, 786}}"; + sepNavIntBoundsRect = "{{0, 0}, {1056, 13716}}"; + sepNavSelRange = "{14098, 20897}"; + sepNavVisRange = "{14098, 285}"; + sepNavWindowFrame = "{{5, 38}, {912, 826}}"; }; }; 8BA05A690720730100365D66 /* ConsoleX2BussVersion.h */ = { @@ -129,10 +118,10 @@ }; 8BC6025B073B072D006C4272 /* ConsoleX2Buss.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {554, 4608}}"; - sepNavSelRange = "{4804, 0}"; - sepNavVisRange = "{4751, 61}"; - sepNavWindowFrame = "{{374, 68}, {1066, 786}}"; + sepNavIntBoundsRect = "{{0, 0}, {1146, 4086}}"; + sepNavSelRange = "{6056, 1375}"; + sepNavVisRange = "{4948, 1224}"; + sepNavWindowFrame = "{{10, 38}, {838, 820}}"; }; }; 8BD3CCB8148830B20062E48C /* Source Control */ = { diff --git a/plugins/MacSignedAU/ConsoleX2Buss/ConsoleX2Buss.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacSignedAU/ConsoleX2Buss/ConsoleX2Buss.xcodeproj/christopherjohnson.perspectivev3 index df1f7f58d..9d073fd2b 100755 --- a/plugins/MacSignedAU/ConsoleX2Buss/ConsoleX2Buss.xcodeproj/christopherjohnson.perspectivev3 +++ b/plugins/MacSignedAU/ConsoleX2Buss/ConsoleX2Buss.xcodeproj/christopherjohnson.perspectivev3 @@ -324,7 +324,7 @@ 185 RubberWindowFrame - 13 282 810 487 0 0 1440 878 + 5 284 810 487 0 0 1440 878 Module PBXSmartGroupTreeModule @@ -340,7 +340,7 @@ PBXProjectModuleGUID 8BD95EC52E957B6B00D77499 PBXProjectModuleLabel - ConsoleX2Buss.h + ConsoleX2Buss.cpp PBXSplitModuleInNavigatorKey Split0 @@ -348,16 +348,15 @@ PBXProjectModuleGUID 8BD95EC62E957B6B00D77499 PBXProjectModuleLabel - ConsoleX2Buss.h + ConsoleX2Buss.cpp _historyCapacity 0 bookmark - 8B962BA12E9AD778000EAC04 + 8B5C9E352EB51644008B9860 history - 8B962AAA2E9AD07A000EAC04 - 8B962ADC2E9AD297000EAC04 - 8B962B2D2E9AD3DA000EAC04 + 8B5C9E332EB51644008B9860 + 8B5C9E342EB51644008B9860 SplitCount @@ -371,18 +370,18 @@ GeometryConfiguration Frame - {{0, 0}, {603, 86}} + {{0, 0}, {603, 132}} RubberWindowFrame - 13 282 810 487 0 0 1440 878 + 5 284 810 487 0 0 1440 878 Module PBXNavigatorGroup Proportion - 86pt + 132pt Proportion - 355pt + 309pt Tabs @@ -396,9 +395,9 @@ GeometryConfiguration Frame - {{10, 27}, {603, 328}} + {{10, 27}, {603, 282}} RubberWindowFrame - 13 282 810 487 0 0 1440 878 + 5 284 810 487 0 0 1440 878 Module XCDetailModule @@ -452,7 +451,7 @@ GeometryConfiguration Frame - {{10, 27}, {603, 414}} + {{10, 27}, {603, 401}} Module PBXBuildResultsModule @@ -480,11 +479,11 @@ TableOfContents - 8B962B7F2E9AD6A6000EAC04 + 8B5C9E362EB51644008B9860 1CA23ED40692098700951B8B - 8B962B802E9AD6A6000EAC04 + 8B5C9E372EB51644008B9860 8BD95EC52E957B6B00D77499 - 8B962B812E9AD6A6000EAC04 + 8B5C9E382EB51644008B9860 1CA23EDF0692099D00951B8B 1CA23EE00692099D00951B8B 1CA23EE10692099D00951B8B @@ -657,7 +656,7 @@ StatusbarIsVisible TimeStamp - 781899640.115731 + 783619652.93727398 ToolbarConfigUserDefaultsMinorVersion 2 ToolbarDisplayMode @@ -674,10 +673,11 @@ 5 WindowOrderList + 8B5C9E392EB51644008B9860 /Users/christopherjohnson/Desktop/airwindows/plugins/MacAU/ConsoleX2Buss/ConsoleX2Buss.xcodeproj WindowString - 13 282 810 487 0 0 1440 878 + 5 284 810 487 0 0 1440 878 WindowToolsV3 diff --git a/plugins/MacSignedAU/ConsoleX2Buss/ConsoleX2Buss.xcodeproj/project.pbxproj b/plugins/MacSignedAU/ConsoleX2Buss/ConsoleX2Buss.xcodeproj/project.pbxproj index 9d5beb3e5..5f0459746 100755 --- a/plugins/MacSignedAU/ConsoleX2Buss/ConsoleX2Buss.xcodeproj/project.pbxproj +++ b/plugins/MacSignedAU/ConsoleX2Buss/ConsoleX2Buss.xcodeproj/project.pbxproj @@ -7,135 +7,135 @@ objects = { /* Begin PBXBuildFile section */ - 8B845B692E9DA78000AFF254 /* CAExtAudioFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845AE12E9DA78000AFF254 /* CAExtAudioFile.h */; }; - 8B845B6A2E9DA78000AFF254 /* CACFMachPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845AE22E9DA78000AFF254 /* CACFMachPort.h */; }; - 8B845B6B2E9DA78000AFF254 /* CABool.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845AE32E9DA78000AFF254 /* CABool.h */; }; - 8B845B6C2E9DA78000AFF254 /* CAComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845AE42E9DA78000AFF254 /* CAComponent.cpp */; }; - 8B845B6D2E9DA78000AFF254 /* CADebugger.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845AE52E9DA78000AFF254 /* CADebugger.h */; }; - 8B845B6E2E9DA78000AFF254 /* CACFNumber.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845AE62E9DA78000AFF254 /* CACFNumber.cpp */; }; - 8B845B6F2E9DA78000AFF254 /* CAGuard.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845AE72E9DA78000AFF254 /* CAGuard.h */; }; - 8B845B702E9DA78000AFF254 /* CAAtomic.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845AE82E9DA78000AFF254 /* CAAtomic.h */; }; - 8B845B712E9DA78000AFF254 /* CAStreamBasicDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845AE92E9DA78000AFF254 /* CAStreamBasicDescription.h */; }; - 8B845B722E9DA78000AFF254 /* CACFObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845AEA2E9DA78000AFF254 /* CACFObject.h */; }; - 8B845B732E9DA78000AFF254 /* CAStreamRangedDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845AEB2E9DA78000AFF254 /* CAStreamRangedDescription.h */; }; - 8B845B742E9DA78000AFF254 /* CATokenMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845AEC2E9DA78000AFF254 /* CATokenMap.h */; }; - 8B845B752E9DA78000AFF254 /* CAComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845AED2E9DA78000AFF254 /* CAComponent.h */; }; - 8B845B762E9DA78000AFF254 /* CAAudioBufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845AEE2E9DA78000AFF254 /* CAAudioBufferList.h */; }; - 8B845B772E9DA78000AFF254 /* CAAudioUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845AEF2E9DA78000AFF254 /* CAAudioUnit.h */; }; - 8B845B782E9DA78000AFF254 /* CAAUParameter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845AF02E9DA78000AFF254 /* CAAUParameter.h */; }; - 8B845B792E9DA78000AFF254 /* CAException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845AF12E9DA78000AFF254 /* CAException.h */; }; - 8B845B7A2E9DA78000AFF254 /* CAAUProcessor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845AF22E9DA78000AFF254 /* CAAUProcessor.cpp */; }; - 8B845B7B2E9DA78000AFF254 /* CAAUProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845AF32E9DA78000AFF254 /* CAAUProcessor.h */; }; - 8B845B7C2E9DA78000AFF254 /* CAProcess.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845AF42E9DA78000AFF254 /* CAProcess.h */; }; - 8B845B7D2E9DA78000AFF254 /* CACFDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845AF52E9DA78000AFF254 /* CACFDictionary.h */; }; - 8B845B7E2E9DA78000AFF254 /* CAPThread.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845AF62E9DA78000AFF254 /* CAPThread.h */; }; - 8B845B7F2E9DA78000AFF254 /* CAAUParameter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845AF72E9DA78000AFF254 /* CAAUParameter.cpp */; }; - 8B845B802E9DA78000AFF254 /* CAAudioTimeStamp.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845AF82E9DA78000AFF254 /* CAAudioTimeStamp.h */; }; - 8B845B812E9DA78000AFF254 /* CAFilePathUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845AF92E9DA78000AFF254 /* CAFilePathUtils.cpp */; }; - 8B845B822E9DA78000AFF254 /* CAAudioValueRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845AFA2E9DA78000AFF254 /* CAAudioValueRange.h */; }; - 8B845B832E9DA78000AFF254 /* CAVectorUnitTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845AFB2E9DA78000AFF254 /* CAVectorUnitTypes.h */; }; - 8B845B842E9DA78000AFF254 /* CAAudioChannelLayoutObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845AFC2E9DA78000AFF254 /* CAAudioChannelLayoutObject.cpp */; }; - 8B845B852E9DA78000AFF254 /* CAGuard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845AFD2E9DA78000AFF254 /* CAGuard.cpp */; }; - 8B845B862E9DA78000AFF254 /* CACFNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845AFE2E9DA78000AFF254 /* CACFNumber.h */; }; - 8B845B872E9DA78000AFF254 /* CACFDistributedNotification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845AFF2E9DA78000AFF254 /* CACFDistributedNotification.cpp */; }; - 8B845B882E9DA78000AFF254 /* CACFString.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845B002E9DA78000AFF254 /* CACFString.h */; }; - 8B845B892E9DA78000AFF254 /* CAAUMIDIMapManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845B012E9DA78000AFF254 /* CAAUMIDIMapManager.cpp */; }; - 8B845B8A2E9DA78000AFF254 /* CAComponentDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845B022E9DA78000AFF254 /* CAComponentDescription.cpp */; }; - 8B845B8B2E9DA78000AFF254 /* CAHostTimeBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845B032E9DA78000AFF254 /* CAHostTimeBase.h */; }; - 8B845B8C2E9DA78000AFF254 /* CADebugMacros.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845B042E9DA78000AFF254 /* CADebugMacros.cpp */; }; - 8B845B8D2E9DA78000AFF254 /* CAAudioFileFormats.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845B052E9DA78000AFF254 /* CAAudioFileFormats.h */; }; - 8B845B8E2E9DA78000AFF254 /* CAAUMIDIMapManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845B062E9DA78000AFF254 /* CAAUMIDIMapManager.h */; }; - 8B845B8F2E9DA78000AFF254 /* CACFDictionary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845B072E9DA78000AFF254 /* CACFDictionary.cpp */; }; - 8B845B902E9DA78000AFF254 /* CAMutex.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845B082E9DA78000AFF254 /* CAMutex.h */; }; - 8B845B912E9DA78000AFF254 /* CACFString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845B092E9DA78000AFF254 /* CACFString.cpp */; }; - 8B845B922E9DA78000AFF254 /* CASettingsStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845B0A2E9DA78000AFF254 /* CASettingsStorage.h */; }; - 8B845B932E9DA78000AFF254 /* CADebugPrintf.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845B0B2E9DA78000AFF254 /* CADebugPrintf.h */; }; - 8B845B942E9DA78000AFF254 /* CAXException.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845B0C2E9DA78000AFF254 /* CAXException.cpp */; }; - 8B845B952E9DA78000AFF254 /* CAAUMIDIMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845B0D2E9DA78000AFF254 /* CAAUMIDIMap.h */; }; - 8B845B962E9DA78000AFF254 /* AUParamInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845B0E2E9DA78000AFF254 /* AUParamInfo.h */; }; - 8B845B972E9DA78000AFF254 /* CABitOperations.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845B0F2E9DA78000AFF254 /* CABitOperations.h */; }; - 8B845B982E9DA78000AFF254 /* CACFPreferences.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845B102E9DA78000AFF254 /* CACFPreferences.cpp */; }; - 8B845B992E9DA78000AFF254 /* CABundleLocker.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845B112E9DA78000AFF254 /* CABundleLocker.h */; }; - 8B845B9A2E9DA78000AFF254 /* CAPropertyAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845B122E9DA78000AFF254 /* CAPropertyAddress.h */; }; - 8B845B9B2E9DA78000AFF254 /* CAXException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845B132E9DA78000AFF254 /* CAXException.h */; }; - 8B845B9C2E9DA78000AFF254 /* CAAudioChannelLayout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845B142E9DA78000AFF254 /* CAAudioChannelLayout.cpp */; }; - 8B845B9D2E9DA78000AFF254 /* CAThreadSafeList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845B152E9DA78000AFF254 /* CAThreadSafeList.h */; }; - 8B845B9E2E9DA78000AFF254 /* CAAudioUnitOutputCapturer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845B162E9DA78000AFF254 /* CAAudioUnitOutputCapturer.h */; }; - 8B845B9F2E9DA78000AFF254 /* AUParamInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845B172E9DA78000AFF254 /* AUParamInfo.cpp */; }; - 8B845BA02E9DA78000AFF254 /* CASharedLibrary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845B182E9DA78000AFF254 /* CASharedLibrary.cpp */; }; - 8B845BA12E9DA78000AFF254 /* CAAUMIDIMap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845B192E9DA78000AFF254 /* CAAUMIDIMap.cpp */; }; - 8B845BA22E9DA78000AFF254 /* CALogMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845B1A2E9DA78000AFF254 /* CALogMacros.h */; }; - 8B845BA32E9DA78000AFF254 /* CACFMessagePort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845B1B2E9DA78000AFF254 /* CACFMessagePort.cpp */; }; - 8B845BA42E9DA78000AFF254 /* CARingBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845B1C2E9DA78000AFF254 /* CARingBuffer.h */; }; - 8B845BA52E9DA78000AFF254 /* AUOutputBL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845B1D2E9DA78000AFF254 /* AUOutputBL.cpp */; }; - 8B845BA62E9DA78000AFF254 /* CABufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845B1E2E9DA78000AFF254 /* CABufferList.h */; }; - 8B845BA72E9DA78000AFF254 /* CASharedLibrary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845B1F2E9DA78000AFF254 /* CASharedLibrary.h */; }; - 8B845BA82E9DA78000AFF254 /* CACFData.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845B202E9DA78000AFF254 /* CACFData.h */; }; - 8B845BA92E9DA78000AFF254 /* CAStreamRangedDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845B212E9DA78000AFF254 /* CAStreamRangedDescription.cpp */; }; - 8B845BAA2E9DA78000AFF254 /* CAPThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845B222E9DA78000AFF254 /* CAPThread.cpp */; }; - 8B845BAB2E9DA78000AFF254 /* CAAutoDisposer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845B232E9DA78000AFF254 /* CAAutoDisposer.h */; }; - 8B845BAC2E9DA78000AFF254 /* CACFPreferences.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845B242E9DA78000AFF254 /* CACFPreferences.h */; }; - 8B845BAD2E9DA78000AFF254 /* CAVectorUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845B252E9DA78000AFF254 /* CAVectorUnit.cpp */; }; - 8B845BAE2E9DA78000AFF254 /* CAComponentDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845B262E9DA78000AFF254 /* CAComponentDescription.h */; }; - 8B845BAF2E9DA78000AFF254 /* CADebugMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845B272E9DA78000AFF254 /* CADebugMacros.h */; }; - 8B845BB02E9DA78000AFF254 /* AUOutputBL.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845B282E9DA78000AFF254 /* AUOutputBL.h */; }; - 8B845BB12E9DA78000AFF254 /* CADebugPrintf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845B292E9DA78000AFF254 /* CADebugPrintf.cpp */; }; - 8B845BB22E9DA78000AFF254 /* CARingBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845B2A2E9DA78000AFF254 /* CARingBuffer.cpp */; }; - 8B845BB32E9DA78000AFF254 /* CACFPlugIn.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845B2B2E9DA78000AFF254 /* CACFPlugIn.h */; }; - 8B845BB42E9DA78000AFF254 /* CASettingsStorage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845B2C2E9DA78000AFF254 /* CASettingsStorage.cpp */; }; - 8B845BB52E9DA78000AFF254 /* CAMixMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845B2D2E9DA78000AFF254 /* CAMixMap.h */; }; - 8B845BB62E9DA78000AFF254 /* CACFDistributedNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845B2E2E9DA78000AFF254 /* CACFDistributedNotification.h */; }; - 8B845BB72E9DA78000AFF254 /* CAFilePathUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845B2F2E9DA78000AFF254 /* CAFilePathUtils.h */; }; - 8B845BB82E9DA78000AFF254 /* CATink.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845B302E9DA78000AFF254 /* CATink.h */; }; - 8B845BB92E9DA78000AFF254 /* CAStreamBasicDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845B312E9DA78000AFF254 /* CAStreamBasicDescription.cpp */; }; - 8B845BBA2E9DA78000AFF254 /* CAAudioChannelLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845B322E9DA78000AFF254 /* CAAudioChannelLayout.h */; }; - 8B845BBB2E9DA78000AFF254 /* CAProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845B332E9DA78000AFF254 /* CAProcess.cpp */; }; - 8B845BBC2E9DA78000AFF254 /* CAHostTimeBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845B342E9DA78000AFF254 /* CAHostTimeBase.cpp */; }; - 8B845BBD2E9DA78000AFF254 /* CAPersistence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845B352E9DA78000AFF254 /* CAPersistence.cpp */; }; - 8B845BBE2E9DA78000AFF254 /* CAAudioBufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845B362E9DA78000AFF254 /* CAAudioBufferList.cpp */; }; - 8B845BBF2E9DA78000AFF254 /* CAAudioTimeStamp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845B372E9DA78000AFF254 /* CAAudioTimeStamp.cpp */; }; - 8B845BC02E9DA78000AFF254 /* CAVectorUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845B382E9DA78000AFF254 /* CAVectorUnit.h */; }; - 8B845BC12E9DA78100AFF254 /* CAByteOrder.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845B392E9DA78000AFF254 /* CAByteOrder.h */; }; - 8B845BC22E9DA78100AFF254 /* CACFArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845B3A2E9DA78000AFF254 /* CACFArray.h */; }; - 8B845BC32E9DA78100AFF254 /* CAAtomicStack.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845B3B2E9DA78000AFF254 /* CAAtomicStack.h */; }; - 8B845BC42E9DA78100AFF254 /* CAReferenceCounted.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845B3C2E9DA78000AFF254 /* CAReferenceCounted.h */; }; - 8B845BC52E9DA78100AFF254 /* CACFMachPort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845B3D2E9DA78000AFF254 /* CACFMachPort.cpp */; }; - 8B845BC62E9DA78100AFF254 /* CABufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845B3E2E9DA78000AFF254 /* CABufferList.cpp */; }; - 8B845BC72E9DA78100AFF254 /* CAMutex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845B3F2E9DA78000AFF254 /* CAMutex.cpp */; }; - 8B845BC82E9DA78100AFF254 /* CADebugger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845B402E9DA78000AFF254 /* CADebugger.cpp */; }; - 8B845BC92E9DA78100AFF254 /* CABundleLocker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845B412E9DA78000AFF254 /* CABundleLocker.cpp */; }; - 8B845BCA2E9DA78100AFF254 /* CAAudioFileFormats.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845B422E9DA78000AFF254 /* CAAudioFileFormats.cpp */; }; - 8B845BCB2E9DA78100AFF254 /* CAMath.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845B432E9DA78000AFF254 /* CAMath.h */; }; - 8B845BCC2E9DA78100AFF254 /* CACFArray.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845B442E9DA78000AFF254 /* CACFArray.cpp */; }; - 8B845BCD2E9DA78100AFF254 /* CACFMessagePort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845B452E9DA78000AFF254 /* CACFMessagePort.h */; }; - 8B845BCE2E9DA78100AFF254 /* CAAudioValueRange.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845B462E9DA78000AFF254 /* CAAudioValueRange.cpp */; }; - 8B845BCF2E9DA78100AFF254 /* CAAudioUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845B472E9DA78000AFF254 /* CAAudioUnit.cpp */; }; - 8B845BD02E9DA78100AFF254 /* AUViewLocalizedStringKeys.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845B4B2E9DA78000AFF254 /* AUViewLocalizedStringKeys.h */; }; - 8B845BD12E9DA78100AFF254 /* ComponentBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845B4D2E9DA78000AFF254 /* ComponentBase.cpp */; }; - 8B845BD22E9DA78100AFF254 /* AUScopeElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845B4E2E9DA78000AFF254 /* AUScopeElement.cpp */; }; - 8B845BD32E9DA78100AFF254 /* ComponentBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845B4F2E9DA78000AFF254 /* ComponentBase.h */; }; - 8B845BD42E9DA78100AFF254 /* AUBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845B502E9DA78000AFF254 /* AUBase.cpp */; }; - 8B845BD52E9DA78100AFF254 /* AUInputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845B512E9DA78000AFF254 /* AUInputElement.h */; }; - 8B845BD62E9DA78100AFF254 /* AUBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845B522E9DA78000AFF254 /* AUBase.h */; }; - 8B845BD72E9DA78100AFF254 /* AUPlugInDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845B532E9DA78000AFF254 /* AUPlugInDispatch.h */; }; - 8B845BD82E9DA78100AFF254 /* AUDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845B542E9DA78000AFF254 /* AUDispatch.h */; }; - 8B845BD92E9DA78100AFF254 /* AUOutputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845B552E9DA78000AFF254 /* AUOutputElement.cpp */; }; - 8B845BDB2E9DA78100AFF254 /* AUPlugInDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845B572E9DA78000AFF254 /* AUPlugInDispatch.cpp */; }; - 8B845BDC2E9DA78100AFF254 /* AUOutputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845B582E9DA78000AFF254 /* AUOutputElement.h */; }; - 8B845BDD2E9DA78100AFF254 /* AUDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845B592E9DA78000AFF254 /* AUDispatch.cpp */; }; - 8B845BDE2E9DA78100AFF254 /* AUScopeElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845B5A2E9DA78000AFF254 /* AUScopeElement.h */; }; - 8B845BDF2E9DA78100AFF254 /* AUInputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845B5B2E9DA78000AFF254 /* AUInputElement.cpp */; }; - 8B845BE02E9DA78100AFF254 /* AUEffectBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845B5D2E9DA78000AFF254 /* AUEffectBase.cpp */; }; - 8B845BE12E9DA78100AFF254 /* AUEffectBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845B5E2E9DA78000AFF254 /* AUEffectBase.h */; }; - 8B845BE22E9DA78100AFF254 /* AUTimestampGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845B602E9DA78000AFF254 /* AUTimestampGenerator.h */; }; - 8B845BE32E9DA78100AFF254 /* AUBaseHelper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845B612E9DA78000AFF254 /* AUBaseHelper.cpp */; }; - 8B845BE42E9DA78100AFF254 /* AUSilentTimeout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845B622E9DA78000AFF254 /* AUSilentTimeout.h */; }; - 8B845BE52E9DA78100AFF254 /* AUInputFormatConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845B632E9DA78000AFF254 /* AUInputFormatConverter.h */; }; - 8B845BE62E9DA78100AFF254 /* AUTimestampGenerator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845B642E9DA78000AFF254 /* AUTimestampGenerator.cpp */; }; - 8B845BE72E9DA78100AFF254 /* AUBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845B652E9DA78000AFF254 /* AUBuffer.cpp */; }; - 8B845BE82E9DA78100AFF254 /* AUMIDIDefs.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845B662E9DA78000AFF254 /* AUMIDIDefs.h */; }; - 8B845BE92E9DA78100AFF254 /* AUBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845B672E9DA78000AFF254 /* AUBuffer.h */; }; - 8B845BEA2E9DA78100AFF254 /* AUBaseHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845B682E9DA78000AFF254 /* AUBaseHelper.h */; }; + 8B7A47322EB5632A00B07840 /* CAExtAudioFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46AA2EB5632A00B07840 /* CAExtAudioFile.h */; }; + 8B7A47332EB5632A00B07840 /* CACFMachPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46AB2EB5632A00B07840 /* CACFMachPort.h */; }; + 8B7A47342EB5632A00B07840 /* CABool.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46AC2EB5632A00B07840 /* CABool.h */; }; + 8B7A47352EB5632A00B07840 /* CAComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A46AD2EB5632A00B07840 /* CAComponent.cpp */; }; + 8B7A47362EB5632A00B07840 /* CADebugger.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46AE2EB5632A00B07840 /* CADebugger.h */; }; + 8B7A47372EB5632A00B07840 /* CACFNumber.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A46AF2EB5632A00B07840 /* CACFNumber.cpp */; }; + 8B7A47382EB5632A00B07840 /* CAGuard.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46B02EB5632A00B07840 /* CAGuard.h */; }; + 8B7A47392EB5632A00B07840 /* CAAtomic.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46B12EB5632A00B07840 /* CAAtomic.h */; }; + 8B7A473A2EB5632A00B07840 /* CAStreamBasicDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46B22EB5632A00B07840 /* CAStreamBasicDescription.h */; }; + 8B7A473B2EB5632A00B07840 /* CACFObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46B32EB5632A00B07840 /* CACFObject.h */; }; + 8B7A473C2EB5632A00B07840 /* CAStreamRangedDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46B42EB5632A00B07840 /* CAStreamRangedDescription.h */; }; + 8B7A473D2EB5632A00B07840 /* CATokenMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46B52EB5632A00B07840 /* CATokenMap.h */; }; + 8B7A473E2EB5632A00B07840 /* CAComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46B62EB5632A00B07840 /* CAComponent.h */; }; + 8B7A473F2EB5632A00B07840 /* CAAudioBufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46B72EB5632A00B07840 /* CAAudioBufferList.h */; }; + 8B7A47402EB5632A00B07840 /* CAAudioUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46B82EB5632A00B07840 /* CAAudioUnit.h */; }; + 8B7A47412EB5632A00B07840 /* CAAUParameter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46B92EB5632A00B07840 /* CAAUParameter.h */; }; + 8B7A47422EB5632A00B07840 /* CAException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46BA2EB5632A00B07840 /* CAException.h */; }; + 8B7A47432EB5632A00B07840 /* CAAUProcessor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A46BB2EB5632A00B07840 /* CAAUProcessor.cpp */; }; + 8B7A47442EB5632A00B07840 /* CAAUProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46BC2EB5632A00B07840 /* CAAUProcessor.h */; }; + 8B7A47452EB5632A00B07840 /* CAProcess.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46BD2EB5632A00B07840 /* CAProcess.h */; }; + 8B7A47462EB5632A00B07840 /* CACFDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46BE2EB5632A00B07840 /* CACFDictionary.h */; }; + 8B7A47472EB5632A00B07840 /* CAPThread.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46BF2EB5632A00B07840 /* CAPThread.h */; }; + 8B7A47482EB5632A00B07840 /* CAAUParameter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A46C02EB5632A00B07840 /* CAAUParameter.cpp */; }; + 8B7A47492EB5632A00B07840 /* CAAudioTimeStamp.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46C12EB5632A00B07840 /* CAAudioTimeStamp.h */; }; + 8B7A474A2EB5632A00B07840 /* CAFilePathUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A46C22EB5632A00B07840 /* CAFilePathUtils.cpp */; }; + 8B7A474B2EB5632A00B07840 /* CAAudioValueRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46C32EB5632A00B07840 /* CAAudioValueRange.h */; }; + 8B7A474C2EB5632A00B07840 /* CAVectorUnitTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46C42EB5632A00B07840 /* CAVectorUnitTypes.h */; }; + 8B7A474D2EB5632A00B07840 /* CAAudioChannelLayoutObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A46C52EB5632A00B07840 /* CAAudioChannelLayoutObject.cpp */; }; + 8B7A474E2EB5632A00B07840 /* CAGuard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A46C62EB5632A00B07840 /* CAGuard.cpp */; }; + 8B7A474F2EB5632A00B07840 /* CACFNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46C72EB5632A00B07840 /* CACFNumber.h */; }; + 8B7A47502EB5632A00B07840 /* CACFDistributedNotification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A46C82EB5632A00B07840 /* CACFDistributedNotification.cpp */; }; + 8B7A47512EB5632A00B07840 /* CACFString.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46C92EB5632A00B07840 /* CACFString.h */; }; + 8B7A47522EB5632A00B07840 /* CAAUMIDIMapManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A46CA2EB5632A00B07840 /* CAAUMIDIMapManager.cpp */; }; + 8B7A47532EB5632A00B07840 /* CAComponentDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A46CB2EB5632A00B07840 /* CAComponentDescription.cpp */; }; + 8B7A47542EB5632A00B07840 /* CAHostTimeBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46CC2EB5632A00B07840 /* CAHostTimeBase.h */; }; + 8B7A47552EB5632A00B07840 /* CADebugMacros.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A46CD2EB5632A00B07840 /* CADebugMacros.cpp */; }; + 8B7A47562EB5632A00B07840 /* CAAudioFileFormats.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46CE2EB5632A00B07840 /* CAAudioFileFormats.h */; }; + 8B7A47572EB5632A00B07840 /* CAAUMIDIMapManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46CF2EB5632A00B07840 /* CAAUMIDIMapManager.h */; }; + 8B7A47582EB5632A00B07840 /* CACFDictionary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A46D02EB5632A00B07840 /* CACFDictionary.cpp */; }; + 8B7A47592EB5632A00B07840 /* CAMutex.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46D12EB5632A00B07840 /* CAMutex.h */; }; + 8B7A475A2EB5632A00B07840 /* CACFString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A46D22EB5632A00B07840 /* CACFString.cpp */; }; + 8B7A475B2EB5632A00B07840 /* CASettingsStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46D32EB5632A00B07840 /* CASettingsStorage.h */; }; + 8B7A475C2EB5632A00B07840 /* CADebugPrintf.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46D42EB5632A00B07840 /* CADebugPrintf.h */; }; + 8B7A475D2EB5632A00B07840 /* CAXException.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A46D52EB5632A00B07840 /* CAXException.cpp */; }; + 8B7A475E2EB5632A00B07840 /* CAAUMIDIMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46D62EB5632A00B07840 /* CAAUMIDIMap.h */; }; + 8B7A475F2EB5632A00B07840 /* AUParamInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46D72EB5632A00B07840 /* AUParamInfo.h */; }; + 8B7A47602EB5632A00B07840 /* CABitOperations.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46D82EB5632A00B07840 /* CABitOperations.h */; }; + 8B7A47612EB5632A00B07840 /* CACFPreferences.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A46D92EB5632A00B07840 /* CACFPreferences.cpp */; }; + 8B7A47622EB5632A00B07840 /* CABundleLocker.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46DA2EB5632A00B07840 /* CABundleLocker.h */; }; + 8B7A47632EB5632A00B07840 /* CAPropertyAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46DB2EB5632A00B07840 /* CAPropertyAddress.h */; }; + 8B7A47642EB5632A00B07840 /* CAXException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46DC2EB5632A00B07840 /* CAXException.h */; }; + 8B7A47652EB5632A00B07840 /* CAAudioChannelLayout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A46DD2EB5632A00B07840 /* CAAudioChannelLayout.cpp */; }; + 8B7A47662EB5632A00B07840 /* CAThreadSafeList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46DE2EB5632A00B07840 /* CAThreadSafeList.h */; }; + 8B7A47672EB5632A00B07840 /* CAAudioUnitOutputCapturer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46DF2EB5632A00B07840 /* CAAudioUnitOutputCapturer.h */; }; + 8B7A47682EB5632A00B07840 /* AUParamInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A46E02EB5632A00B07840 /* AUParamInfo.cpp */; }; + 8B7A47692EB5632A00B07840 /* CASharedLibrary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A46E12EB5632A00B07840 /* CASharedLibrary.cpp */; }; + 8B7A476A2EB5632A00B07840 /* CAAUMIDIMap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A46E22EB5632A00B07840 /* CAAUMIDIMap.cpp */; }; + 8B7A476B2EB5632A00B07840 /* CALogMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46E32EB5632A00B07840 /* CALogMacros.h */; }; + 8B7A476C2EB5632A00B07840 /* CACFMessagePort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A46E42EB5632A00B07840 /* CACFMessagePort.cpp */; }; + 8B7A476D2EB5632A00B07840 /* CARingBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46E52EB5632A00B07840 /* CARingBuffer.h */; }; + 8B7A476E2EB5632A00B07840 /* AUOutputBL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A46E62EB5632A00B07840 /* AUOutputBL.cpp */; }; + 8B7A476F2EB5632A00B07840 /* CABufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46E72EB5632A00B07840 /* CABufferList.h */; }; + 8B7A47702EB5632A00B07840 /* CASharedLibrary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46E82EB5632A00B07840 /* CASharedLibrary.h */; }; + 8B7A47712EB5632A00B07840 /* CACFData.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46E92EB5632A00B07840 /* CACFData.h */; }; + 8B7A47722EB5632A00B07840 /* CAStreamRangedDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A46EA2EB5632A00B07840 /* CAStreamRangedDescription.cpp */; }; + 8B7A47732EB5632A00B07840 /* CAPThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A46EB2EB5632A00B07840 /* CAPThread.cpp */; }; + 8B7A47742EB5632A00B07840 /* CAAutoDisposer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46EC2EB5632A00B07840 /* CAAutoDisposer.h */; }; + 8B7A47752EB5632A00B07840 /* CACFPreferences.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46ED2EB5632A00B07840 /* CACFPreferences.h */; }; + 8B7A47762EB5632A00B07840 /* CAVectorUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A46EE2EB5632A00B07840 /* CAVectorUnit.cpp */; }; + 8B7A47772EB5632A00B07840 /* CAComponentDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46EF2EB5632A00B07840 /* CAComponentDescription.h */; }; + 8B7A47782EB5632A00B07840 /* CADebugMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46F02EB5632A00B07840 /* CADebugMacros.h */; }; + 8B7A47792EB5632A00B07840 /* AUOutputBL.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46F12EB5632A00B07840 /* AUOutputBL.h */; }; + 8B7A477A2EB5632A00B07840 /* CADebugPrintf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A46F22EB5632A00B07840 /* CADebugPrintf.cpp */; }; + 8B7A477B2EB5632A00B07840 /* CARingBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A46F32EB5632A00B07840 /* CARingBuffer.cpp */; }; + 8B7A477C2EB5632A00B07840 /* CACFPlugIn.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46F42EB5632A00B07840 /* CACFPlugIn.h */; }; + 8B7A477D2EB5632A00B07840 /* CASettingsStorage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A46F52EB5632A00B07840 /* CASettingsStorage.cpp */; }; + 8B7A477E2EB5632A00B07840 /* CAMixMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46F62EB5632A00B07840 /* CAMixMap.h */; }; + 8B7A477F2EB5632A00B07840 /* CACFDistributedNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46F72EB5632A00B07840 /* CACFDistributedNotification.h */; }; + 8B7A47802EB5632A00B07840 /* CAFilePathUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46F82EB5632A00B07840 /* CAFilePathUtils.h */; }; + 8B7A47812EB5632A00B07840 /* CATink.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46F92EB5632A00B07840 /* CATink.h */; }; + 8B7A47822EB5632A00B07840 /* CAStreamBasicDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A46FA2EB5632A00B07840 /* CAStreamBasicDescription.cpp */; }; + 8B7A47832EB5632A00B07840 /* CAAudioChannelLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A46FB2EB5632A00B07840 /* CAAudioChannelLayout.h */; }; + 8B7A47842EB5632A00B07840 /* CAProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A46FC2EB5632A00B07840 /* CAProcess.cpp */; }; + 8B7A47852EB5632A00B07840 /* CAHostTimeBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A46FD2EB5632A00B07840 /* CAHostTimeBase.cpp */; }; + 8B7A47862EB5632A00B07840 /* CAPersistence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A46FE2EB5632A00B07840 /* CAPersistence.cpp */; }; + 8B7A47872EB5632A00B07840 /* CAAudioBufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A46FF2EB5632A00B07840 /* CAAudioBufferList.cpp */; }; + 8B7A47882EB5632A00B07840 /* CAAudioTimeStamp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A47002EB5632A00B07840 /* CAAudioTimeStamp.cpp */; }; + 8B7A47892EB5632A00B07840 /* CAVectorUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47012EB5632A00B07840 /* CAVectorUnit.h */; }; + 8B7A478A2EB5632A00B07840 /* CAByteOrder.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47022EB5632A00B07840 /* CAByteOrder.h */; }; + 8B7A478B2EB5632A00B07840 /* CACFArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47032EB5632A00B07840 /* CACFArray.h */; }; + 8B7A478C2EB5632A00B07840 /* CAAtomicStack.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47042EB5632A00B07840 /* CAAtomicStack.h */; }; + 8B7A478D2EB5632A00B07840 /* CAReferenceCounted.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47052EB5632A00B07840 /* CAReferenceCounted.h */; }; + 8B7A478E2EB5632A00B07840 /* CACFMachPort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A47062EB5632A00B07840 /* CACFMachPort.cpp */; }; + 8B7A478F2EB5632A00B07840 /* CABufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A47072EB5632A00B07840 /* CABufferList.cpp */; }; + 8B7A47902EB5632A00B07840 /* CAMutex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A47082EB5632A00B07840 /* CAMutex.cpp */; }; + 8B7A47912EB5632A00B07840 /* CADebugger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A47092EB5632A00B07840 /* CADebugger.cpp */; }; + 8B7A47922EB5632A00B07840 /* CABundleLocker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A470A2EB5632A00B07840 /* CABundleLocker.cpp */; }; + 8B7A47932EB5632A00B07840 /* CAAudioFileFormats.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A470B2EB5632A00B07840 /* CAAudioFileFormats.cpp */; }; + 8B7A47942EB5632A00B07840 /* CAMath.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A470C2EB5632A00B07840 /* CAMath.h */; }; + 8B7A47952EB5632A00B07840 /* CACFArray.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A470D2EB5632A00B07840 /* CACFArray.cpp */; }; + 8B7A47962EB5632A00B07840 /* CACFMessagePort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A470E2EB5632A00B07840 /* CACFMessagePort.h */; }; + 8B7A47972EB5632A00B07840 /* CAAudioValueRange.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A470F2EB5632A00B07840 /* CAAudioValueRange.cpp */; }; + 8B7A47982EB5632A00B07840 /* CAAudioUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A47102EB5632A00B07840 /* CAAudioUnit.cpp */; }; + 8B7A47992EB5632A00B07840 /* AUViewLocalizedStringKeys.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47142EB5632A00B07840 /* AUViewLocalizedStringKeys.h */; }; + 8B7A479A2EB5632A00B07840 /* ComponentBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A47162EB5632A00B07840 /* ComponentBase.cpp */; }; + 8B7A479B2EB5632A00B07840 /* AUScopeElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A47172EB5632A00B07840 /* AUScopeElement.cpp */; }; + 8B7A479C2EB5632A00B07840 /* ComponentBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47182EB5632A00B07840 /* ComponentBase.h */; }; + 8B7A479D2EB5632A00B07840 /* AUBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A47192EB5632A00B07840 /* AUBase.cpp */; }; + 8B7A479E2EB5632A00B07840 /* AUInputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A471A2EB5632A00B07840 /* AUInputElement.h */; }; + 8B7A479F2EB5632A00B07840 /* AUBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A471B2EB5632A00B07840 /* AUBase.h */; }; + 8B7A47A02EB5632A00B07840 /* AUPlugInDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A471C2EB5632A00B07840 /* AUPlugInDispatch.h */; }; + 8B7A47A12EB5632A00B07840 /* AUDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A471D2EB5632A00B07840 /* AUDispatch.h */; }; + 8B7A47A22EB5632A00B07840 /* AUOutputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A471E2EB5632A00B07840 /* AUOutputElement.cpp */; }; + 8B7A47A42EB5632A00B07840 /* AUPlugInDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A47202EB5632A00B07840 /* AUPlugInDispatch.cpp */; }; + 8B7A47A52EB5632A00B07840 /* AUOutputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47212EB5632A00B07840 /* AUOutputElement.h */; }; + 8B7A47A62EB5632A00B07840 /* AUDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A47222EB5632A00B07840 /* AUDispatch.cpp */; }; + 8B7A47A72EB5632A00B07840 /* AUScopeElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47232EB5632A00B07840 /* AUScopeElement.h */; }; + 8B7A47A82EB5632A00B07840 /* AUInputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A47242EB5632A00B07840 /* AUInputElement.cpp */; }; + 8B7A47A92EB5632A00B07840 /* AUEffectBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A47262EB5632A00B07840 /* AUEffectBase.cpp */; }; + 8B7A47AA2EB5632A00B07840 /* AUEffectBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47272EB5632A00B07840 /* AUEffectBase.h */; }; + 8B7A47AB2EB5632A00B07840 /* AUTimestampGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47292EB5632A00B07840 /* AUTimestampGenerator.h */; }; + 8B7A47AC2EB5632A00B07840 /* AUBaseHelper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A472A2EB5632A00B07840 /* AUBaseHelper.cpp */; }; + 8B7A47AD2EB5632A00B07840 /* AUSilentTimeout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A472B2EB5632A00B07840 /* AUSilentTimeout.h */; }; + 8B7A47AE2EB5632A00B07840 /* AUInputFormatConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A472C2EB5632A00B07840 /* AUInputFormatConverter.h */; }; + 8B7A47AF2EB5632A00B07840 /* AUTimestampGenerator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A472D2EB5632A00B07840 /* AUTimestampGenerator.cpp */; }; + 8B7A47B02EB5632A00B07840 /* AUBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A472E2EB5632A00B07840 /* AUBuffer.cpp */; }; + 8B7A47B12EB5632A00B07840 /* AUMIDIDefs.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A472F2EB5632A00B07840 /* AUMIDIDefs.h */; }; + 8B7A47B22EB5632A00B07840 /* AUBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47302EB5632A00B07840 /* AUBuffer.h */; }; + 8B7A47B32EB5632A00B07840 /* AUBaseHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47312EB5632A00B07840 /* AUBaseHelper.h */; }; 8BA05A6B0720730100365D66 /* ConsoleX2Buss.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* ConsoleX2Buss.cpp */; }; 8BA05A6E0720730100365D66 /* ConsoleX2BussVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* ConsoleX2BussVersion.h */; }; 8BA05AFC072074E100365D66 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8BA05AF9072074E100365D66 /* AudioToolbox.framework */; }; @@ -147,137 +147,137 @@ /* Begin PBXFileReference section */ 8B5C7FBF076FB2C200A15F61 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = ""; }; - 8B845AE12E9DA78000AFF254 /* CAExtAudioFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAExtAudioFile.h; sourceTree = ""; }; - 8B845AE22E9DA78000AFF254 /* CACFMachPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMachPort.h; sourceTree = ""; }; - 8B845AE32E9DA78000AFF254 /* CABool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABool.h; sourceTree = ""; }; - 8B845AE42E9DA78000AFF254 /* CAComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponent.cpp; sourceTree = ""; }; - 8B845AE52E9DA78000AFF254 /* CADebugger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugger.h; sourceTree = ""; }; - 8B845AE62E9DA78000AFF254 /* CACFNumber.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFNumber.cpp; sourceTree = ""; }; - 8B845AE72E9DA78000AFF254 /* CAGuard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAGuard.h; sourceTree = ""; }; - 8B845AE82E9DA78000AFF254 /* CAAtomic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomic.h; sourceTree = ""; }; - 8B845AE92E9DA78000AFF254 /* CAStreamBasicDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamBasicDescription.h; sourceTree = ""; }; - 8B845AEA2E9DA78000AFF254 /* CACFObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFObject.h; sourceTree = ""; }; - 8B845AEB2E9DA78000AFF254 /* CAStreamRangedDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamRangedDescription.h; sourceTree = ""; }; - 8B845AEC2E9DA78000AFF254 /* CATokenMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATokenMap.h; sourceTree = ""; }; - 8B845AED2E9DA78000AFF254 /* CAComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponent.h; sourceTree = ""; }; - 8B845AEE2E9DA78000AFF254 /* CAAudioBufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioBufferList.h; sourceTree = ""; }; - 8B845AEF2E9DA78000AFF254 /* CAAudioUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnit.h; sourceTree = ""; }; - 8B845AF02E9DA78000AFF254 /* CAAUParameter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUParameter.h; sourceTree = ""; }; - 8B845AF12E9DA78000AFF254 /* CAException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAException.h; sourceTree = ""; }; - 8B845AF22E9DA78000AFF254 /* CAAUProcessor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUProcessor.cpp; sourceTree = ""; }; - 8B845AF32E9DA78000AFF254 /* CAAUProcessor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUProcessor.h; sourceTree = ""; }; - 8B845AF42E9DA78000AFF254 /* CAProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAProcess.h; sourceTree = ""; }; - 8B845AF52E9DA78000AFF254 /* CACFDictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDictionary.h; sourceTree = ""; }; - 8B845AF62E9DA78000AFF254 /* CAPThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPThread.h; sourceTree = ""; }; - 8B845AF72E9DA78000AFF254 /* CAAUParameter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUParameter.cpp; sourceTree = ""; }; - 8B845AF82E9DA78000AFF254 /* CAAudioTimeStamp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioTimeStamp.h; sourceTree = ""; }; - 8B845AF92E9DA78000AFF254 /* CAFilePathUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAFilePathUtils.cpp; sourceTree = ""; }; - 8B845AFA2E9DA78000AFF254 /* CAAudioValueRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioValueRange.h; sourceTree = ""; }; - 8B845AFB2E9DA78000AFF254 /* CAVectorUnitTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnitTypes.h; sourceTree = ""; }; - 8B845AFC2E9DA78000AFF254 /* CAAudioChannelLayoutObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayoutObject.cpp; sourceTree = ""; }; - 8B845AFD2E9DA78000AFF254 /* CAGuard.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAGuard.cpp; sourceTree = ""; }; - 8B845AFE2E9DA78000AFF254 /* CACFNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFNumber.h; sourceTree = ""; }; - 8B845AFF2E9DA78000AFF254 /* CACFDistributedNotification.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDistributedNotification.cpp; sourceTree = ""; }; - 8B845B002E9DA78000AFF254 /* CACFString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFString.h; sourceTree = ""; }; - 8B845B012E9DA78000AFF254 /* CAAUMIDIMapManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMapManager.cpp; sourceTree = ""; }; - 8B845B022E9DA78000AFF254 /* CAComponentDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponentDescription.cpp; sourceTree = ""; }; - 8B845B032E9DA78000AFF254 /* CAHostTimeBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAHostTimeBase.h; sourceTree = ""; }; - 8B845B042E9DA78000AFF254 /* CADebugMacros.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugMacros.cpp; sourceTree = ""; }; - 8B845B052E9DA78000AFF254 /* CAAudioFileFormats.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioFileFormats.h; sourceTree = ""; }; - 8B845B062E9DA78000AFF254 /* CAAUMIDIMapManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMapManager.h; sourceTree = ""; }; - 8B845B072E9DA78000AFF254 /* CACFDictionary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDictionary.cpp; sourceTree = ""; }; - 8B845B082E9DA78000AFF254 /* CAMutex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMutex.h; sourceTree = ""; }; - 8B845B092E9DA78000AFF254 /* CACFString.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFString.cpp; sourceTree = ""; }; - 8B845B0A2E9DA78000AFF254 /* CASettingsStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASettingsStorage.h; sourceTree = ""; }; - 8B845B0B2E9DA78000AFF254 /* CADebugPrintf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugPrintf.h; sourceTree = ""; }; - 8B845B0C2E9DA78000AFF254 /* CAXException.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAXException.cpp; sourceTree = ""; }; - 8B845B0D2E9DA78000AFF254 /* CAAUMIDIMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMap.h; sourceTree = ""; }; - 8B845B0E2E9DA78000AFF254 /* AUParamInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUParamInfo.h; sourceTree = ""; }; - 8B845B0F2E9DA78000AFF254 /* CABitOperations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABitOperations.h; sourceTree = ""; }; - 8B845B102E9DA78000AFF254 /* CACFPreferences.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFPreferences.cpp; sourceTree = ""; }; - 8B845B112E9DA78000AFF254 /* CABundleLocker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABundleLocker.h; sourceTree = ""; }; - 8B845B122E9DA78000AFF254 /* CAPropertyAddress.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPropertyAddress.h; sourceTree = ""; }; - 8B845B132E9DA78000AFF254 /* CAXException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAXException.h; sourceTree = ""; }; - 8B845B142E9DA78000AFF254 /* CAAudioChannelLayout.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayout.cpp; sourceTree = ""; }; - 8B845B152E9DA78000AFF254 /* CAThreadSafeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAThreadSafeList.h; sourceTree = ""; }; - 8B845B162E9DA78000AFF254 /* CAAudioUnitOutputCapturer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnitOutputCapturer.h; sourceTree = ""; }; - 8B845B172E9DA78000AFF254 /* AUParamInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUParamInfo.cpp; sourceTree = ""; }; - 8B845B182E9DA78000AFF254 /* CASharedLibrary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASharedLibrary.cpp; sourceTree = ""; }; - 8B845B192E9DA78000AFF254 /* CAAUMIDIMap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMap.cpp; sourceTree = ""; }; - 8B845B1A2E9DA78000AFF254 /* CALogMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CALogMacros.h; sourceTree = ""; }; - 8B845B1B2E9DA78000AFF254 /* CACFMessagePort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMessagePort.cpp; sourceTree = ""; }; - 8B845B1C2E9DA78000AFF254 /* CARingBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CARingBuffer.h; sourceTree = ""; }; - 8B845B1D2E9DA78000AFF254 /* AUOutputBL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputBL.cpp; sourceTree = ""; }; - 8B845B1E2E9DA78000AFF254 /* CABufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABufferList.h; sourceTree = ""; }; - 8B845B1F2E9DA78000AFF254 /* CASharedLibrary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASharedLibrary.h; sourceTree = ""; }; - 8B845B202E9DA78000AFF254 /* CACFData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFData.h; sourceTree = ""; }; - 8B845B212E9DA78000AFF254 /* CAStreamRangedDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamRangedDescription.cpp; sourceTree = ""; }; - 8B845B222E9DA78000AFF254 /* CAPThread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPThread.cpp; sourceTree = ""; }; - 8B845B232E9DA78000AFF254 /* CAAutoDisposer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAutoDisposer.h; sourceTree = ""; }; - 8B845B242E9DA78000AFF254 /* CACFPreferences.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPreferences.h; sourceTree = ""; }; - 8B845B252E9DA78000AFF254 /* CAVectorUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAVectorUnit.cpp; sourceTree = ""; }; - 8B845B262E9DA78000AFF254 /* CAComponentDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponentDescription.h; sourceTree = ""; }; - 8B845B272E9DA78000AFF254 /* CADebugMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugMacros.h; sourceTree = ""; }; - 8B845B282E9DA78000AFF254 /* AUOutputBL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputBL.h; sourceTree = ""; }; - 8B845B292E9DA78000AFF254 /* CADebugPrintf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugPrintf.cpp; sourceTree = ""; }; - 8B845B2A2E9DA78000AFF254 /* CARingBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CARingBuffer.cpp; sourceTree = ""; }; - 8B845B2B2E9DA78000AFF254 /* CACFPlugIn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPlugIn.h; sourceTree = ""; }; - 8B845B2C2E9DA78000AFF254 /* CASettingsStorage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASettingsStorage.cpp; sourceTree = ""; }; - 8B845B2D2E9DA78000AFF254 /* CAMixMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMixMap.h; sourceTree = ""; }; - 8B845B2E2E9DA78000AFF254 /* CACFDistributedNotification.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDistributedNotification.h; sourceTree = ""; }; - 8B845B2F2E9DA78000AFF254 /* CAFilePathUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAFilePathUtils.h; sourceTree = ""; }; - 8B845B302E9DA78000AFF254 /* CATink.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATink.h; sourceTree = ""; }; - 8B845B312E9DA78000AFF254 /* CAStreamBasicDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamBasicDescription.cpp; sourceTree = ""; }; - 8B845B322E9DA78000AFF254 /* CAAudioChannelLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioChannelLayout.h; sourceTree = ""; }; - 8B845B332E9DA78000AFF254 /* CAProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAProcess.cpp; sourceTree = ""; }; - 8B845B342E9DA78000AFF254 /* CAHostTimeBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAHostTimeBase.cpp; sourceTree = ""; }; - 8B845B352E9DA78000AFF254 /* CAPersistence.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPersistence.cpp; sourceTree = ""; }; - 8B845B362E9DA78000AFF254 /* CAAudioBufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioBufferList.cpp; sourceTree = ""; }; - 8B845B372E9DA78000AFF254 /* CAAudioTimeStamp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioTimeStamp.cpp; sourceTree = ""; }; - 8B845B382E9DA78000AFF254 /* CAVectorUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnit.h; sourceTree = ""; }; - 8B845B392E9DA78000AFF254 /* CAByteOrder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAByteOrder.h; sourceTree = ""; }; - 8B845B3A2E9DA78000AFF254 /* CACFArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFArray.h; sourceTree = ""; }; - 8B845B3B2E9DA78000AFF254 /* CAAtomicStack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomicStack.h; sourceTree = ""; }; - 8B845B3C2E9DA78000AFF254 /* CAReferenceCounted.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAReferenceCounted.h; sourceTree = ""; }; - 8B845B3D2E9DA78000AFF254 /* CACFMachPort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMachPort.cpp; sourceTree = ""; }; - 8B845B3E2E9DA78000AFF254 /* CABufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABufferList.cpp; sourceTree = ""; }; - 8B845B3F2E9DA78000AFF254 /* CAMutex.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAMutex.cpp; sourceTree = ""; }; - 8B845B402E9DA78000AFF254 /* CADebugger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugger.cpp; sourceTree = ""; }; - 8B845B412E9DA78000AFF254 /* CABundleLocker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABundleLocker.cpp; sourceTree = ""; }; - 8B845B422E9DA78000AFF254 /* CAAudioFileFormats.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioFileFormats.cpp; sourceTree = ""; }; - 8B845B432E9DA78000AFF254 /* CAMath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMath.h; sourceTree = ""; }; - 8B845B442E9DA78000AFF254 /* CACFArray.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFArray.cpp; sourceTree = ""; }; - 8B845B452E9DA78000AFF254 /* CACFMessagePort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMessagePort.h; sourceTree = ""; }; - 8B845B462E9DA78000AFF254 /* CAAudioValueRange.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioValueRange.cpp; sourceTree = ""; }; - 8B845B472E9DA78000AFF254 /* CAAudioUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioUnit.cpp; sourceTree = ""; }; - 8B845B4B2E9DA78000AFF254 /* AUViewLocalizedStringKeys.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUViewLocalizedStringKeys.h; sourceTree = ""; }; - 8B845B4D2E9DA78000AFF254 /* ComponentBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ComponentBase.cpp; sourceTree = ""; }; - 8B845B4E2E9DA78000AFF254 /* AUScopeElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUScopeElement.cpp; sourceTree = ""; }; - 8B845B4F2E9DA78000AFF254 /* ComponentBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ComponentBase.h; sourceTree = ""; }; - 8B845B502E9DA78000AFF254 /* AUBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBase.cpp; sourceTree = ""; }; - 8B845B512E9DA78000AFF254 /* AUInputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputElement.h; sourceTree = ""; }; - 8B845B522E9DA78000AFF254 /* AUBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBase.h; sourceTree = ""; }; - 8B845B532E9DA78000AFF254 /* AUPlugInDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUPlugInDispatch.h; sourceTree = ""; }; - 8B845B542E9DA78000AFF254 /* AUDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUDispatch.h; sourceTree = ""; }; - 8B845B552E9DA78000AFF254 /* AUOutputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputElement.cpp; sourceTree = ""; }; - 8B845B562E9DA78000AFF254 /* AUResources.r */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; path = AUResources.r; sourceTree = ""; }; - 8B845B572E9DA78000AFF254 /* AUPlugInDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUPlugInDispatch.cpp; sourceTree = ""; }; - 8B845B582E9DA78000AFF254 /* AUOutputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputElement.h; sourceTree = ""; }; - 8B845B592E9DA78000AFF254 /* AUDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUDispatch.cpp; sourceTree = ""; }; - 8B845B5A2E9DA78000AFF254 /* AUScopeElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUScopeElement.h; sourceTree = ""; }; - 8B845B5B2E9DA78000AFF254 /* AUInputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUInputElement.cpp; sourceTree = ""; }; - 8B845B5D2E9DA78000AFF254 /* AUEffectBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUEffectBase.cpp; sourceTree = ""; }; - 8B845B5E2E9DA78000AFF254 /* AUEffectBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUEffectBase.h; sourceTree = ""; }; - 8B845B602E9DA78000AFF254 /* AUTimestampGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUTimestampGenerator.h; sourceTree = ""; }; - 8B845B612E9DA78000AFF254 /* AUBaseHelper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBaseHelper.cpp; sourceTree = ""; }; - 8B845B622E9DA78000AFF254 /* AUSilentTimeout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUSilentTimeout.h; sourceTree = ""; }; - 8B845B632E9DA78000AFF254 /* AUInputFormatConverter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputFormatConverter.h; sourceTree = ""; }; - 8B845B642E9DA78000AFF254 /* AUTimestampGenerator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUTimestampGenerator.cpp; sourceTree = ""; }; - 8B845B652E9DA78000AFF254 /* AUBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBuffer.cpp; sourceTree = ""; }; - 8B845B662E9DA78000AFF254 /* AUMIDIDefs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUMIDIDefs.h; sourceTree = ""; }; - 8B845B672E9DA78000AFF254 /* AUBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBuffer.h; sourceTree = ""; }; - 8B845B682E9DA78000AFF254 /* AUBaseHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBaseHelper.h; sourceTree = ""; }; - 8B845BEB2E9DA81C00AFF254 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; + 8B7A46AA2EB5632A00B07840 /* CAExtAudioFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAExtAudioFile.h; sourceTree = ""; }; + 8B7A46AB2EB5632A00B07840 /* CACFMachPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMachPort.h; sourceTree = ""; }; + 8B7A46AC2EB5632A00B07840 /* CABool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABool.h; sourceTree = ""; }; + 8B7A46AD2EB5632A00B07840 /* CAComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponent.cpp; sourceTree = ""; }; + 8B7A46AE2EB5632A00B07840 /* CADebugger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugger.h; sourceTree = ""; }; + 8B7A46AF2EB5632A00B07840 /* CACFNumber.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFNumber.cpp; sourceTree = ""; }; + 8B7A46B02EB5632A00B07840 /* CAGuard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAGuard.h; sourceTree = ""; }; + 8B7A46B12EB5632A00B07840 /* CAAtomic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomic.h; sourceTree = ""; }; + 8B7A46B22EB5632A00B07840 /* CAStreamBasicDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamBasicDescription.h; sourceTree = ""; }; + 8B7A46B32EB5632A00B07840 /* CACFObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFObject.h; sourceTree = ""; }; + 8B7A46B42EB5632A00B07840 /* CAStreamRangedDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamRangedDescription.h; sourceTree = ""; }; + 8B7A46B52EB5632A00B07840 /* CATokenMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATokenMap.h; sourceTree = ""; }; + 8B7A46B62EB5632A00B07840 /* CAComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponent.h; sourceTree = ""; }; + 8B7A46B72EB5632A00B07840 /* CAAudioBufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioBufferList.h; sourceTree = ""; }; + 8B7A46B82EB5632A00B07840 /* CAAudioUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnit.h; sourceTree = ""; }; + 8B7A46B92EB5632A00B07840 /* CAAUParameter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUParameter.h; sourceTree = ""; }; + 8B7A46BA2EB5632A00B07840 /* CAException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAException.h; sourceTree = ""; }; + 8B7A46BB2EB5632A00B07840 /* CAAUProcessor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUProcessor.cpp; sourceTree = ""; }; + 8B7A46BC2EB5632A00B07840 /* CAAUProcessor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUProcessor.h; sourceTree = ""; }; + 8B7A46BD2EB5632A00B07840 /* CAProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAProcess.h; sourceTree = ""; }; + 8B7A46BE2EB5632A00B07840 /* CACFDictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDictionary.h; sourceTree = ""; }; + 8B7A46BF2EB5632A00B07840 /* CAPThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPThread.h; sourceTree = ""; }; + 8B7A46C02EB5632A00B07840 /* CAAUParameter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUParameter.cpp; sourceTree = ""; }; + 8B7A46C12EB5632A00B07840 /* CAAudioTimeStamp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioTimeStamp.h; sourceTree = ""; }; + 8B7A46C22EB5632A00B07840 /* CAFilePathUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAFilePathUtils.cpp; sourceTree = ""; }; + 8B7A46C32EB5632A00B07840 /* CAAudioValueRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioValueRange.h; sourceTree = ""; }; + 8B7A46C42EB5632A00B07840 /* CAVectorUnitTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnitTypes.h; sourceTree = ""; }; + 8B7A46C52EB5632A00B07840 /* CAAudioChannelLayoutObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayoutObject.cpp; sourceTree = ""; }; + 8B7A46C62EB5632A00B07840 /* CAGuard.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAGuard.cpp; sourceTree = ""; }; + 8B7A46C72EB5632A00B07840 /* CACFNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFNumber.h; sourceTree = ""; }; + 8B7A46C82EB5632A00B07840 /* CACFDistributedNotification.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDistributedNotification.cpp; sourceTree = ""; }; + 8B7A46C92EB5632A00B07840 /* CACFString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFString.h; sourceTree = ""; }; + 8B7A46CA2EB5632A00B07840 /* CAAUMIDIMapManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMapManager.cpp; sourceTree = ""; }; + 8B7A46CB2EB5632A00B07840 /* CAComponentDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponentDescription.cpp; sourceTree = ""; }; + 8B7A46CC2EB5632A00B07840 /* CAHostTimeBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAHostTimeBase.h; sourceTree = ""; }; + 8B7A46CD2EB5632A00B07840 /* CADebugMacros.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugMacros.cpp; sourceTree = ""; }; + 8B7A46CE2EB5632A00B07840 /* CAAudioFileFormats.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioFileFormats.h; sourceTree = ""; }; + 8B7A46CF2EB5632A00B07840 /* CAAUMIDIMapManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMapManager.h; sourceTree = ""; }; + 8B7A46D02EB5632A00B07840 /* CACFDictionary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDictionary.cpp; sourceTree = ""; }; + 8B7A46D12EB5632A00B07840 /* CAMutex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMutex.h; sourceTree = ""; }; + 8B7A46D22EB5632A00B07840 /* CACFString.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFString.cpp; sourceTree = ""; }; + 8B7A46D32EB5632A00B07840 /* CASettingsStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASettingsStorage.h; sourceTree = ""; }; + 8B7A46D42EB5632A00B07840 /* CADebugPrintf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugPrintf.h; sourceTree = ""; }; + 8B7A46D52EB5632A00B07840 /* CAXException.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAXException.cpp; sourceTree = ""; }; + 8B7A46D62EB5632A00B07840 /* CAAUMIDIMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMap.h; sourceTree = ""; }; + 8B7A46D72EB5632A00B07840 /* AUParamInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUParamInfo.h; sourceTree = ""; }; + 8B7A46D82EB5632A00B07840 /* CABitOperations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABitOperations.h; sourceTree = ""; }; + 8B7A46D92EB5632A00B07840 /* CACFPreferences.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFPreferences.cpp; sourceTree = ""; }; + 8B7A46DA2EB5632A00B07840 /* CABundleLocker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABundleLocker.h; sourceTree = ""; }; + 8B7A46DB2EB5632A00B07840 /* CAPropertyAddress.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPropertyAddress.h; sourceTree = ""; }; + 8B7A46DC2EB5632A00B07840 /* CAXException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAXException.h; sourceTree = ""; }; + 8B7A46DD2EB5632A00B07840 /* CAAudioChannelLayout.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayout.cpp; sourceTree = ""; }; + 8B7A46DE2EB5632A00B07840 /* CAThreadSafeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAThreadSafeList.h; sourceTree = ""; }; + 8B7A46DF2EB5632A00B07840 /* CAAudioUnitOutputCapturer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnitOutputCapturer.h; sourceTree = ""; }; + 8B7A46E02EB5632A00B07840 /* AUParamInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUParamInfo.cpp; sourceTree = ""; }; + 8B7A46E12EB5632A00B07840 /* CASharedLibrary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASharedLibrary.cpp; sourceTree = ""; }; + 8B7A46E22EB5632A00B07840 /* CAAUMIDIMap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMap.cpp; sourceTree = ""; }; + 8B7A46E32EB5632A00B07840 /* CALogMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CALogMacros.h; sourceTree = ""; }; + 8B7A46E42EB5632A00B07840 /* CACFMessagePort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMessagePort.cpp; sourceTree = ""; }; + 8B7A46E52EB5632A00B07840 /* CARingBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CARingBuffer.h; sourceTree = ""; }; + 8B7A46E62EB5632A00B07840 /* AUOutputBL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputBL.cpp; sourceTree = ""; }; + 8B7A46E72EB5632A00B07840 /* CABufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABufferList.h; sourceTree = ""; }; + 8B7A46E82EB5632A00B07840 /* CASharedLibrary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASharedLibrary.h; sourceTree = ""; }; + 8B7A46E92EB5632A00B07840 /* CACFData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFData.h; sourceTree = ""; }; + 8B7A46EA2EB5632A00B07840 /* CAStreamRangedDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamRangedDescription.cpp; sourceTree = ""; }; + 8B7A46EB2EB5632A00B07840 /* CAPThread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPThread.cpp; sourceTree = ""; }; + 8B7A46EC2EB5632A00B07840 /* CAAutoDisposer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAutoDisposer.h; sourceTree = ""; }; + 8B7A46ED2EB5632A00B07840 /* CACFPreferences.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPreferences.h; sourceTree = ""; }; + 8B7A46EE2EB5632A00B07840 /* CAVectorUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAVectorUnit.cpp; sourceTree = ""; }; + 8B7A46EF2EB5632A00B07840 /* CAComponentDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponentDescription.h; sourceTree = ""; }; + 8B7A46F02EB5632A00B07840 /* CADebugMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugMacros.h; sourceTree = ""; }; + 8B7A46F12EB5632A00B07840 /* AUOutputBL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputBL.h; sourceTree = ""; }; + 8B7A46F22EB5632A00B07840 /* CADebugPrintf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugPrintf.cpp; sourceTree = ""; }; + 8B7A46F32EB5632A00B07840 /* CARingBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CARingBuffer.cpp; sourceTree = ""; }; + 8B7A46F42EB5632A00B07840 /* CACFPlugIn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPlugIn.h; sourceTree = ""; }; + 8B7A46F52EB5632A00B07840 /* CASettingsStorage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASettingsStorage.cpp; sourceTree = ""; }; + 8B7A46F62EB5632A00B07840 /* CAMixMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMixMap.h; sourceTree = ""; }; + 8B7A46F72EB5632A00B07840 /* CACFDistributedNotification.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDistributedNotification.h; sourceTree = ""; }; + 8B7A46F82EB5632A00B07840 /* CAFilePathUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAFilePathUtils.h; sourceTree = ""; }; + 8B7A46F92EB5632A00B07840 /* CATink.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATink.h; sourceTree = ""; }; + 8B7A46FA2EB5632A00B07840 /* CAStreamBasicDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamBasicDescription.cpp; sourceTree = ""; }; + 8B7A46FB2EB5632A00B07840 /* CAAudioChannelLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioChannelLayout.h; sourceTree = ""; }; + 8B7A46FC2EB5632A00B07840 /* CAProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAProcess.cpp; sourceTree = ""; }; + 8B7A46FD2EB5632A00B07840 /* CAHostTimeBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAHostTimeBase.cpp; sourceTree = ""; }; + 8B7A46FE2EB5632A00B07840 /* CAPersistence.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPersistence.cpp; sourceTree = ""; }; + 8B7A46FF2EB5632A00B07840 /* CAAudioBufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioBufferList.cpp; sourceTree = ""; }; + 8B7A47002EB5632A00B07840 /* CAAudioTimeStamp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioTimeStamp.cpp; sourceTree = ""; }; + 8B7A47012EB5632A00B07840 /* CAVectorUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnit.h; sourceTree = ""; }; + 8B7A47022EB5632A00B07840 /* CAByteOrder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAByteOrder.h; sourceTree = ""; }; + 8B7A47032EB5632A00B07840 /* CACFArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFArray.h; sourceTree = ""; }; + 8B7A47042EB5632A00B07840 /* CAAtomicStack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomicStack.h; sourceTree = ""; }; + 8B7A47052EB5632A00B07840 /* CAReferenceCounted.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAReferenceCounted.h; sourceTree = ""; }; + 8B7A47062EB5632A00B07840 /* CACFMachPort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMachPort.cpp; sourceTree = ""; }; + 8B7A47072EB5632A00B07840 /* CABufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABufferList.cpp; sourceTree = ""; }; + 8B7A47082EB5632A00B07840 /* CAMutex.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAMutex.cpp; sourceTree = ""; }; + 8B7A47092EB5632A00B07840 /* CADebugger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugger.cpp; sourceTree = ""; }; + 8B7A470A2EB5632A00B07840 /* CABundleLocker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABundleLocker.cpp; sourceTree = ""; }; + 8B7A470B2EB5632A00B07840 /* CAAudioFileFormats.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioFileFormats.cpp; sourceTree = ""; }; + 8B7A470C2EB5632A00B07840 /* CAMath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMath.h; sourceTree = ""; }; + 8B7A470D2EB5632A00B07840 /* CACFArray.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFArray.cpp; sourceTree = ""; }; + 8B7A470E2EB5632A00B07840 /* CACFMessagePort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMessagePort.h; sourceTree = ""; }; + 8B7A470F2EB5632A00B07840 /* CAAudioValueRange.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioValueRange.cpp; sourceTree = ""; }; + 8B7A47102EB5632A00B07840 /* CAAudioUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioUnit.cpp; sourceTree = ""; }; + 8B7A47142EB5632A00B07840 /* AUViewLocalizedStringKeys.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUViewLocalizedStringKeys.h; sourceTree = ""; }; + 8B7A47162EB5632A00B07840 /* ComponentBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ComponentBase.cpp; sourceTree = ""; }; + 8B7A47172EB5632A00B07840 /* AUScopeElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUScopeElement.cpp; sourceTree = ""; }; + 8B7A47182EB5632A00B07840 /* ComponentBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ComponentBase.h; sourceTree = ""; }; + 8B7A47192EB5632A00B07840 /* AUBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBase.cpp; sourceTree = ""; }; + 8B7A471A2EB5632A00B07840 /* AUInputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputElement.h; sourceTree = ""; }; + 8B7A471B2EB5632A00B07840 /* AUBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBase.h; sourceTree = ""; }; + 8B7A471C2EB5632A00B07840 /* AUPlugInDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUPlugInDispatch.h; sourceTree = ""; }; + 8B7A471D2EB5632A00B07840 /* AUDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUDispatch.h; sourceTree = ""; }; + 8B7A471E2EB5632A00B07840 /* AUOutputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputElement.cpp; sourceTree = ""; }; + 8B7A471F2EB5632A00B07840 /* AUResources.r */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; path = AUResources.r; sourceTree = ""; }; + 8B7A47202EB5632A00B07840 /* AUPlugInDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUPlugInDispatch.cpp; sourceTree = ""; }; + 8B7A47212EB5632A00B07840 /* AUOutputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputElement.h; sourceTree = ""; }; + 8B7A47222EB5632A00B07840 /* AUDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUDispatch.cpp; sourceTree = ""; }; + 8B7A47232EB5632A00B07840 /* AUScopeElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUScopeElement.h; sourceTree = ""; }; + 8B7A47242EB5632A00B07840 /* AUInputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUInputElement.cpp; sourceTree = ""; }; + 8B7A47262EB5632A00B07840 /* AUEffectBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUEffectBase.cpp; sourceTree = ""; }; + 8B7A47272EB5632A00B07840 /* AUEffectBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUEffectBase.h; sourceTree = ""; }; + 8B7A47292EB5632A00B07840 /* AUTimestampGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUTimestampGenerator.h; sourceTree = ""; }; + 8B7A472A2EB5632A00B07840 /* AUBaseHelper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBaseHelper.cpp; sourceTree = ""; }; + 8B7A472B2EB5632A00B07840 /* AUSilentTimeout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUSilentTimeout.h; sourceTree = ""; }; + 8B7A472C2EB5632A00B07840 /* AUInputFormatConverter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputFormatConverter.h; sourceTree = ""; }; + 8B7A472D2EB5632A00B07840 /* AUTimestampGenerator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUTimestampGenerator.cpp; sourceTree = ""; }; + 8B7A472E2EB5632A00B07840 /* AUBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBuffer.cpp; sourceTree = ""; }; + 8B7A472F2EB5632A00B07840 /* AUMIDIDefs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUMIDIDefs.h; sourceTree = ""; }; + 8B7A47302EB5632A00B07840 /* AUBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBuffer.h; sourceTree = ""; }; + 8B7A47312EB5632A00B07840 /* AUBaseHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBaseHelper.h; sourceTree = ""; }; + 8B7A47B42EB5648A00B07840 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; 8BA05A660720730100365D66 /* ConsoleX2Buss.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ConsoleX2Buss.cpp; sourceTree = ""; }; 8BA05A670720730100365D66 /* ConsoleX2Buss.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = ConsoleX2Buss.exp; sourceTree = ""; }; 8BA05A680720730100365D66 /* ConsoleX2Buss.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = ConsoleX2Buss.r; sourceTree = ""; }; @@ -338,7 +338,7 @@ 08FB77ADFE841716C02AAC07 /* Source */ = { isa = PBXGroup; children = ( - 8B845ADF2E9DA78000AFF254 /* CA_SDK */, + 8B7A46A82EB5632A00B07840 /* CA_SDK */, 8BA05A56072072A900365D66 /* AU Source */, ); name = Source; @@ -352,196 +352,196 @@ name = Products; sourceTree = ""; }; - 8B845ADF2E9DA78000AFF254 /* CA_SDK */ = { + 8B7A46A82EB5632A00B07840 /* CA_SDK */ = { isa = PBXGroup; children = ( - 8B845AE02E9DA78000AFF254 /* PublicUtility */, - 8B845B482E9DA78000AFF254 /* AudioUnits */, + 8B7A46A92EB5632A00B07840 /* PublicUtility */, + 8B7A47112EB5632A00B07840 /* AudioUnits */, ); name = CA_SDK; path = ../../../../CA_SDK; sourceTree = ""; }; - 8B845AE02E9DA78000AFF254 /* PublicUtility */ = { + 8B7A46A92EB5632A00B07840 /* PublicUtility */ = { isa = PBXGroup; children = ( - 8B845AE12E9DA78000AFF254 /* CAExtAudioFile.h */, - 8B845AE22E9DA78000AFF254 /* CACFMachPort.h */, - 8B845AE32E9DA78000AFF254 /* CABool.h */, - 8B845AE42E9DA78000AFF254 /* CAComponent.cpp */, - 8B845AE52E9DA78000AFF254 /* CADebugger.h */, - 8B845AE62E9DA78000AFF254 /* CACFNumber.cpp */, - 8B845AE72E9DA78000AFF254 /* CAGuard.h */, - 8B845AE82E9DA78000AFF254 /* CAAtomic.h */, - 8B845AE92E9DA78000AFF254 /* CAStreamBasicDescription.h */, - 8B845AEA2E9DA78000AFF254 /* CACFObject.h */, - 8B845AEB2E9DA78000AFF254 /* CAStreamRangedDescription.h */, - 8B845AEC2E9DA78000AFF254 /* CATokenMap.h */, - 8B845AED2E9DA78000AFF254 /* CAComponent.h */, - 8B845AEE2E9DA78000AFF254 /* CAAudioBufferList.h */, - 8B845AEF2E9DA78000AFF254 /* CAAudioUnit.h */, - 8B845AF02E9DA78000AFF254 /* CAAUParameter.h */, - 8B845AF12E9DA78000AFF254 /* CAException.h */, - 8B845AF22E9DA78000AFF254 /* CAAUProcessor.cpp */, - 8B845AF32E9DA78000AFF254 /* CAAUProcessor.h */, - 8B845AF42E9DA78000AFF254 /* CAProcess.h */, - 8B845AF52E9DA78000AFF254 /* CACFDictionary.h */, - 8B845AF62E9DA78000AFF254 /* CAPThread.h */, - 8B845AF72E9DA78000AFF254 /* CAAUParameter.cpp */, - 8B845AF82E9DA78000AFF254 /* CAAudioTimeStamp.h */, - 8B845AF92E9DA78000AFF254 /* CAFilePathUtils.cpp */, - 8B845AFA2E9DA78000AFF254 /* CAAudioValueRange.h */, - 8B845AFB2E9DA78000AFF254 /* CAVectorUnitTypes.h */, - 8B845AFC2E9DA78000AFF254 /* CAAudioChannelLayoutObject.cpp */, - 8B845AFD2E9DA78000AFF254 /* CAGuard.cpp */, - 8B845AFE2E9DA78000AFF254 /* CACFNumber.h */, - 8B845AFF2E9DA78000AFF254 /* CACFDistributedNotification.cpp */, - 8B845B002E9DA78000AFF254 /* CACFString.h */, - 8B845B012E9DA78000AFF254 /* CAAUMIDIMapManager.cpp */, - 8B845B022E9DA78000AFF254 /* CAComponentDescription.cpp */, - 8B845B032E9DA78000AFF254 /* CAHostTimeBase.h */, - 8B845B042E9DA78000AFF254 /* CADebugMacros.cpp */, - 8B845B052E9DA78000AFF254 /* CAAudioFileFormats.h */, - 8B845B062E9DA78000AFF254 /* CAAUMIDIMapManager.h */, - 8B845B072E9DA78000AFF254 /* CACFDictionary.cpp */, - 8B845B082E9DA78000AFF254 /* CAMutex.h */, - 8B845B092E9DA78000AFF254 /* CACFString.cpp */, - 8B845B0A2E9DA78000AFF254 /* CASettingsStorage.h */, - 8B845B0B2E9DA78000AFF254 /* CADebugPrintf.h */, - 8B845B0C2E9DA78000AFF254 /* CAXException.cpp */, - 8B845B0D2E9DA78000AFF254 /* CAAUMIDIMap.h */, - 8B845B0E2E9DA78000AFF254 /* AUParamInfo.h */, - 8B845B0F2E9DA78000AFF254 /* CABitOperations.h */, - 8B845B102E9DA78000AFF254 /* CACFPreferences.cpp */, - 8B845B112E9DA78000AFF254 /* CABundleLocker.h */, - 8B845B122E9DA78000AFF254 /* CAPropertyAddress.h */, - 8B845B132E9DA78000AFF254 /* CAXException.h */, - 8B845B142E9DA78000AFF254 /* CAAudioChannelLayout.cpp */, - 8B845B152E9DA78000AFF254 /* CAThreadSafeList.h */, - 8B845B162E9DA78000AFF254 /* CAAudioUnitOutputCapturer.h */, - 8B845B172E9DA78000AFF254 /* AUParamInfo.cpp */, - 8B845B182E9DA78000AFF254 /* CASharedLibrary.cpp */, - 8B845B192E9DA78000AFF254 /* CAAUMIDIMap.cpp */, - 8B845B1A2E9DA78000AFF254 /* CALogMacros.h */, - 8B845B1B2E9DA78000AFF254 /* CACFMessagePort.cpp */, - 8B845B1C2E9DA78000AFF254 /* CARingBuffer.h */, - 8B845B1D2E9DA78000AFF254 /* AUOutputBL.cpp */, - 8B845B1E2E9DA78000AFF254 /* CABufferList.h */, - 8B845B1F2E9DA78000AFF254 /* CASharedLibrary.h */, - 8B845B202E9DA78000AFF254 /* CACFData.h */, - 8B845B212E9DA78000AFF254 /* CAStreamRangedDescription.cpp */, - 8B845B222E9DA78000AFF254 /* CAPThread.cpp */, - 8B845B232E9DA78000AFF254 /* CAAutoDisposer.h */, - 8B845B242E9DA78000AFF254 /* CACFPreferences.h */, - 8B845B252E9DA78000AFF254 /* CAVectorUnit.cpp */, - 8B845B262E9DA78000AFF254 /* CAComponentDescription.h */, - 8B845B272E9DA78000AFF254 /* CADebugMacros.h */, - 8B845B282E9DA78000AFF254 /* AUOutputBL.h */, - 8B845B292E9DA78000AFF254 /* CADebugPrintf.cpp */, - 8B845B2A2E9DA78000AFF254 /* CARingBuffer.cpp */, - 8B845B2B2E9DA78000AFF254 /* CACFPlugIn.h */, - 8B845B2C2E9DA78000AFF254 /* CASettingsStorage.cpp */, - 8B845B2D2E9DA78000AFF254 /* CAMixMap.h */, - 8B845B2E2E9DA78000AFF254 /* CACFDistributedNotification.h */, - 8B845B2F2E9DA78000AFF254 /* CAFilePathUtils.h */, - 8B845B302E9DA78000AFF254 /* CATink.h */, - 8B845B312E9DA78000AFF254 /* CAStreamBasicDescription.cpp */, - 8B845B322E9DA78000AFF254 /* CAAudioChannelLayout.h */, - 8B845B332E9DA78000AFF254 /* CAProcess.cpp */, - 8B845B342E9DA78000AFF254 /* CAHostTimeBase.cpp */, - 8B845B352E9DA78000AFF254 /* CAPersistence.cpp */, - 8B845B362E9DA78000AFF254 /* CAAudioBufferList.cpp */, - 8B845B372E9DA78000AFF254 /* CAAudioTimeStamp.cpp */, - 8B845B382E9DA78000AFF254 /* CAVectorUnit.h */, - 8B845B392E9DA78000AFF254 /* CAByteOrder.h */, - 8B845B3A2E9DA78000AFF254 /* CACFArray.h */, - 8B845B3B2E9DA78000AFF254 /* CAAtomicStack.h */, - 8B845B3C2E9DA78000AFF254 /* CAReferenceCounted.h */, - 8B845B3D2E9DA78000AFF254 /* CACFMachPort.cpp */, - 8B845B3E2E9DA78000AFF254 /* CABufferList.cpp */, - 8B845B3F2E9DA78000AFF254 /* CAMutex.cpp */, - 8B845B402E9DA78000AFF254 /* CADebugger.cpp */, - 8B845B412E9DA78000AFF254 /* CABundleLocker.cpp */, - 8B845B422E9DA78000AFF254 /* CAAudioFileFormats.cpp */, - 8B845B432E9DA78000AFF254 /* CAMath.h */, - 8B845B442E9DA78000AFF254 /* CACFArray.cpp */, - 8B845B452E9DA78000AFF254 /* CACFMessagePort.h */, - 8B845B462E9DA78000AFF254 /* CAAudioValueRange.cpp */, - 8B845B472E9DA78000AFF254 /* CAAudioUnit.cpp */, + 8B7A46AA2EB5632A00B07840 /* CAExtAudioFile.h */, + 8B7A46AB2EB5632A00B07840 /* CACFMachPort.h */, + 8B7A46AC2EB5632A00B07840 /* CABool.h */, + 8B7A46AD2EB5632A00B07840 /* CAComponent.cpp */, + 8B7A46AE2EB5632A00B07840 /* CADebugger.h */, + 8B7A46AF2EB5632A00B07840 /* CACFNumber.cpp */, + 8B7A46B02EB5632A00B07840 /* CAGuard.h */, + 8B7A46B12EB5632A00B07840 /* CAAtomic.h */, + 8B7A46B22EB5632A00B07840 /* CAStreamBasicDescription.h */, + 8B7A46B32EB5632A00B07840 /* CACFObject.h */, + 8B7A46B42EB5632A00B07840 /* CAStreamRangedDescription.h */, + 8B7A46B52EB5632A00B07840 /* CATokenMap.h */, + 8B7A46B62EB5632A00B07840 /* CAComponent.h */, + 8B7A46B72EB5632A00B07840 /* CAAudioBufferList.h */, + 8B7A46B82EB5632A00B07840 /* CAAudioUnit.h */, + 8B7A46B92EB5632A00B07840 /* CAAUParameter.h */, + 8B7A46BA2EB5632A00B07840 /* CAException.h */, + 8B7A46BB2EB5632A00B07840 /* CAAUProcessor.cpp */, + 8B7A46BC2EB5632A00B07840 /* CAAUProcessor.h */, + 8B7A46BD2EB5632A00B07840 /* CAProcess.h */, + 8B7A46BE2EB5632A00B07840 /* CACFDictionary.h */, + 8B7A46BF2EB5632A00B07840 /* CAPThread.h */, + 8B7A46C02EB5632A00B07840 /* CAAUParameter.cpp */, + 8B7A46C12EB5632A00B07840 /* CAAudioTimeStamp.h */, + 8B7A46C22EB5632A00B07840 /* CAFilePathUtils.cpp */, + 8B7A46C32EB5632A00B07840 /* CAAudioValueRange.h */, + 8B7A46C42EB5632A00B07840 /* CAVectorUnitTypes.h */, + 8B7A46C52EB5632A00B07840 /* CAAudioChannelLayoutObject.cpp */, + 8B7A46C62EB5632A00B07840 /* CAGuard.cpp */, + 8B7A46C72EB5632A00B07840 /* CACFNumber.h */, + 8B7A46C82EB5632A00B07840 /* CACFDistributedNotification.cpp */, + 8B7A46C92EB5632A00B07840 /* CACFString.h */, + 8B7A46CA2EB5632A00B07840 /* CAAUMIDIMapManager.cpp */, + 8B7A46CB2EB5632A00B07840 /* CAComponentDescription.cpp */, + 8B7A46CC2EB5632A00B07840 /* CAHostTimeBase.h */, + 8B7A46CD2EB5632A00B07840 /* CADebugMacros.cpp */, + 8B7A46CE2EB5632A00B07840 /* CAAudioFileFormats.h */, + 8B7A46CF2EB5632A00B07840 /* CAAUMIDIMapManager.h */, + 8B7A46D02EB5632A00B07840 /* CACFDictionary.cpp */, + 8B7A46D12EB5632A00B07840 /* CAMutex.h */, + 8B7A46D22EB5632A00B07840 /* CACFString.cpp */, + 8B7A46D32EB5632A00B07840 /* CASettingsStorage.h */, + 8B7A46D42EB5632A00B07840 /* CADebugPrintf.h */, + 8B7A46D52EB5632A00B07840 /* CAXException.cpp */, + 8B7A46D62EB5632A00B07840 /* CAAUMIDIMap.h */, + 8B7A46D72EB5632A00B07840 /* AUParamInfo.h */, + 8B7A46D82EB5632A00B07840 /* CABitOperations.h */, + 8B7A46D92EB5632A00B07840 /* CACFPreferences.cpp */, + 8B7A46DA2EB5632A00B07840 /* CABundleLocker.h */, + 8B7A46DB2EB5632A00B07840 /* CAPropertyAddress.h */, + 8B7A46DC2EB5632A00B07840 /* CAXException.h */, + 8B7A46DD2EB5632A00B07840 /* CAAudioChannelLayout.cpp */, + 8B7A46DE2EB5632A00B07840 /* CAThreadSafeList.h */, + 8B7A46DF2EB5632A00B07840 /* CAAudioUnitOutputCapturer.h */, + 8B7A46E02EB5632A00B07840 /* AUParamInfo.cpp */, + 8B7A46E12EB5632A00B07840 /* CASharedLibrary.cpp */, + 8B7A46E22EB5632A00B07840 /* CAAUMIDIMap.cpp */, + 8B7A46E32EB5632A00B07840 /* CALogMacros.h */, + 8B7A46E42EB5632A00B07840 /* CACFMessagePort.cpp */, + 8B7A46E52EB5632A00B07840 /* CARingBuffer.h */, + 8B7A46E62EB5632A00B07840 /* AUOutputBL.cpp */, + 8B7A46E72EB5632A00B07840 /* CABufferList.h */, + 8B7A46E82EB5632A00B07840 /* CASharedLibrary.h */, + 8B7A46E92EB5632A00B07840 /* CACFData.h */, + 8B7A46EA2EB5632A00B07840 /* CAStreamRangedDescription.cpp */, + 8B7A46EB2EB5632A00B07840 /* CAPThread.cpp */, + 8B7A46EC2EB5632A00B07840 /* CAAutoDisposer.h */, + 8B7A46ED2EB5632A00B07840 /* CACFPreferences.h */, + 8B7A46EE2EB5632A00B07840 /* CAVectorUnit.cpp */, + 8B7A46EF2EB5632A00B07840 /* CAComponentDescription.h */, + 8B7A46F02EB5632A00B07840 /* CADebugMacros.h */, + 8B7A46F12EB5632A00B07840 /* AUOutputBL.h */, + 8B7A46F22EB5632A00B07840 /* CADebugPrintf.cpp */, + 8B7A46F32EB5632A00B07840 /* CARingBuffer.cpp */, + 8B7A46F42EB5632A00B07840 /* CACFPlugIn.h */, + 8B7A46F52EB5632A00B07840 /* CASettingsStorage.cpp */, + 8B7A46F62EB5632A00B07840 /* CAMixMap.h */, + 8B7A46F72EB5632A00B07840 /* CACFDistributedNotification.h */, + 8B7A46F82EB5632A00B07840 /* CAFilePathUtils.h */, + 8B7A46F92EB5632A00B07840 /* CATink.h */, + 8B7A46FA2EB5632A00B07840 /* CAStreamBasicDescription.cpp */, + 8B7A46FB2EB5632A00B07840 /* CAAudioChannelLayout.h */, + 8B7A46FC2EB5632A00B07840 /* CAProcess.cpp */, + 8B7A46FD2EB5632A00B07840 /* CAHostTimeBase.cpp */, + 8B7A46FE2EB5632A00B07840 /* CAPersistence.cpp */, + 8B7A46FF2EB5632A00B07840 /* CAAudioBufferList.cpp */, + 8B7A47002EB5632A00B07840 /* CAAudioTimeStamp.cpp */, + 8B7A47012EB5632A00B07840 /* CAVectorUnit.h */, + 8B7A47022EB5632A00B07840 /* CAByteOrder.h */, + 8B7A47032EB5632A00B07840 /* CACFArray.h */, + 8B7A47042EB5632A00B07840 /* CAAtomicStack.h */, + 8B7A47052EB5632A00B07840 /* CAReferenceCounted.h */, + 8B7A47062EB5632A00B07840 /* CACFMachPort.cpp */, + 8B7A47072EB5632A00B07840 /* CABufferList.cpp */, + 8B7A47082EB5632A00B07840 /* CAMutex.cpp */, + 8B7A47092EB5632A00B07840 /* CADebugger.cpp */, + 8B7A470A2EB5632A00B07840 /* CABundleLocker.cpp */, + 8B7A470B2EB5632A00B07840 /* CAAudioFileFormats.cpp */, + 8B7A470C2EB5632A00B07840 /* CAMath.h */, + 8B7A470D2EB5632A00B07840 /* CACFArray.cpp */, + 8B7A470E2EB5632A00B07840 /* CACFMessagePort.h */, + 8B7A470F2EB5632A00B07840 /* CAAudioValueRange.cpp */, + 8B7A47102EB5632A00B07840 /* CAAudioUnit.cpp */, ); path = PublicUtility; sourceTree = ""; }; - 8B845B482E9DA78000AFF254 /* AudioUnits */ = { + 8B7A47112EB5632A00B07840 /* AudioUnits */ = { isa = PBXGroup; children = ( - 8B845B492E9DA78000AFF254 /* AUPublic */, + 8B7A47122EB5632A00B07840 /* AUPublic */, ); path = AudioUnits; sourceTree = ""; }; - 8B845B492E9DA78000AFF254 /* AUPublic */ = { + 8B7A47122EB5632A00B07840 /* AUPublic */ = { isa = PBXGroup; children = ( - 8B845B4A2E9DA78000AFF254 /* AUViewBase */, - 8B845B4C2E9DA78000AFF254 /* AUBase */, - 8B845B5C2E9DA78000AFF254 /* OtherBases */, - 8B845B5F2E9DA78000AFF254 /* Utility */, + 8B7A47132EB5632A00B07840 /* AUViewBase */, + 8B7A47152EB5632A00B07840 /* AUBase */, + 8B7A47252EB5632A00B07840 /* OtherBases */, + 8B7A47282EB5632A00B07840 /* Utility */, ); path = AUPublic; sourceTree = ""; }; - 8B845B4A2E9DA78000AFF254 /* AUViewBase */ = { + 8B7A47132EB5632A00B07840 /* AUViewBase */ = { isa = PBXGroup; children = ( - 8B845B4B2E9DA78000AFF254 /* AUViewLocalizedStringKeys.h */, + 8B7A47142EB5632A00B07840 /* AUViewLocalizedStringKeys.h */, ); path = AUViewBase; sourceTree = ""; }; - 8B845B4C2E9DA78000AFF254 /* AUBase */ = { + 8B7A47152EB5632A00B07840 /* AUBase */ = { isa = PBXGroup; children = ( - 8B845B4D2E9DA78000AFF254 /* ComponentBase.cpp */, - 8B845B4E2E9DA78000AFF254 /* AUScopeElement.cpp */, - 8B845B4F2E9DA78000AFF254 /* ComponentBase.h */, - 8B845B502E9DA78000AFF254 /* AUBase.cpp */, - 8B845B512E9DA78000AFF254 /* AUInputElement.h */, - 8B845B522E9DA78000AFF254 /* AUBase.h */, - 8B845B532E9DA78000AFF254 /* AUPlugInDispatch.h */, - 8B845B542E9DA78000AFF254 /* AUDispatch.h */, - 8B845B552E9DA78000AFF254 /* AUOutputElement.cpp */, - 8B845B562E9DA78000AFF254 /* AUResources.r */, - 8B845B572E9DA78000AFF254 /* AUPlugInDispatch.cpp */, - 8B845B582E9DA78000AFF254 /* AUOutputElement.h */, - 8B845B592E9DA78000AFF254 /* AUDispatch.cpp */, - 8B845B5A2E9DA78000AFF254 /* AUScopeElement.h */, - 8B845B5B2E9DA78000AFF254 /* AUInputElement.cpp */, + 8B7A47162EB5632A00B07840 /* ComponentBase.cpp */, + 8B7A47172EB5632A00B07840 /* AUScopeElement.cpp */, + 8B7A47182EB5632A00B07840 /* ComponentBase.h */, + 8B7A47192EB5632A00B07840 /* AUBase.cpp */, + 8B7A471A2EB5632A00B07840 /* AUInputElement.h */, + 8B7A471B2EB5632A00B07840 /* AUBase.h */, + 8B7A471C2EB5632A00B07840 /* AUPlugInDispatch.h */, + 8B7A471D2EB5632A00B07840 /* AUDispatch.h */, + 8B7A471E2EB5632A00B07840 /* AUOutputElement.cpp */, + 8B7A471F2EB5632A00B07840 /* AUResources.r */, + 8B7A47202EB5632A00B07840 /* AUPlugInDispatch.cpp */, + 8B7A47212EB5632A00B07840 /* AUOutputElement.h */, + 8B7A47222EB5632A00B07840 /* AUDispatch.cpp */, + 8B7A47232EB5632A00B07840 /* AUScopeElement.h */, + 8B7A47242EB5632A00B07840 /* AUInputElement.cpp */, ); path = AUBase; sourceTree = ""; }; - 8B845B5C2E9DA78000AFF254 /* OtherBases */ = { + 8B7A47252EB5632A00B07840 /* OtherBases */ = { isa = PBXGroup; children = ( - 8B845B5D2E9DA78000AFF254 /* AUEffectBase.cpp */, - 8B845B5E2E9DA78000AFF254 /* AUEffectBase.h */, + 8B7A47262EB5632A00B07840 /* AUEffectBase.cpp */, + 8B7A47272EB5632A00B07840 /* AUEffectBase.h */, ); path = OtherBases; sourceTree = ""; }; - 8B845B5F2E9DA78000AFF254 /* Utility */ = { + 8B7A47282EB5632A00B07840 /* Utility */ = { isa = PBXGroup; children = ( - 8B845B602E9DA78000AFF254 /* AUTimestampGenerator.h */, - 8B845B612E9DA78000AFF254 /* AUBaseHelper.cpp */, - 8B845B622E9DA78000AFF254 /* AUSilentTimeout.h */, - 8B845B632E9DA78000AFF254 /* AUInputFormatConverter.h */, - 8B845B642E9DA78000AFF254 /* AUTimestampGenerator.cpp */, - 8B845B652E9DA78000AFF254 /* AUBuffer.cpp */, - 8B845B662E9DA78000AFF254 /* AUMIDIDefs.h */, - 8B845B672E9DA78000AFF254 /* AUBuffer.h */, - 8B845B682E9DA78000AFF254 /* AUBaseHelper.h */, + 8B7A47292EB5632A00B07840 /* AUTimestampGenerator.h */, + 8B7A472A2EB5632A00B07840 /* AUBaseHelper.cpp */, + 8B7A472B2EB5632A00B07840 /* AUSilentTimeout.h */, + 8B7A472C2EB5632A00B07840 /* AUInputFormatConverter.h */, + 8B7A472D2EB5632A00B07840 /* AUTimestampGenerator.cpp */, + 8B7A472E2EB5632A00B07840 /* AUBuffer.cpp */, + 8B7A472F2EB5632A00B07840 /* AUMIDIDefs.h */, + 8B7A47302EB5632A00B07840 /* AUBuffer.h */, + 8B7A47312EB5632A00B07840 /* AUBaseHelper.h */, ); path = Utility; sourceTree = ""; @@ -565,84 +565,84 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 8B845B992E9DA78000AFF254 /* CABundleLocker.h in Headers */, - 8B845BBA2E9DA78000AFF254 /* CAAudioChannelLayout.h in Headers */, - 8B845BB02E9DA78000AFF254 /* AUOutputBL.h in Headers */, - 8B845B8B2E9DA78000AFF254 /* CAHostTimeBase.h in Headers */, - 8B845BD32E9DA78100AFF254 /* ComponentBase.h in Headers */, - 8B845BC32E9DA78100AFF254 /* CAAtomicStack.h in Headers */, - 8B845B802E9DA78000AFF254 /* CAAudioTimeStamp.h in Headers */, - 8B845B9D2E9DA78000AFF254 /* CAThreadSafeList.h in Headers */, - 8B845B782E9DA78000AFF254 /* CAAUParameter.h in Headers */, - 8B845BEA2E9DA78100AFF254 /* AUBaseHelper.h in Headers */, - 8B845BE22E9DA78100AFF254 /* AUTimestampGenerator.h in Headers */, - 8B845B932E9DA78000AFF254 /* CADebugPrintf.h in Headers */, - 8B845BCD2E9DA78100AFF254 /* CACFMessagePort.h in Headers */, - 8B845B7B2E9DA78000AFF254 /* CAAUProcessor.h in Headers */, - 8B845B772E9DA78000AFF254 /* CAAudioUnit.h in Headers */, - 8B845BD02E9DA78100AFF254 /* AUViewLocalizedStringKeys.h in Headers */, - 8B845BB62E9DA78000AFF254 /* CACFDistributedNotification.h in Headers */, - 8B845B752E9DA78000AFF254 /* CAComponent.h in Headers */, - 8B845B832E9DA78000AFF254 /* CAVectorUnitTypes.h in Headers */, + 8B7A47622EB5632A00B07840 /* CABundleLocker.h in Headers */, + 8B7A47832EB5632A00B07840 /* CAAudioChannelLayout.h in Headers */, + 8B7A47792EB5632A00B07840 /* AUOutputBL.h in Headers */, + 8B7A47542EB5632A00B07840 /* CAHostTimeBase.h in Headers */, + 8B7A479C2EB5632A00B07840 /* ComponentBase.h in Headers */, + 8B7A478C2EB5632A00B07840 /* CAAtomicStack.h in Headers */, + 8B7A47492EB5632A00B07840 /* CAAudioTimeStamp.h in Headers */, + 8B7A47662EB5632A00B07840 /* CAThreadSafeList.h in Headers */, + 8B7A47412EB5632A00B07840 /* CAAUParameter.h in Headers */, + 8B7A47B32EB5632A00B07840 /* AUBaseHelper.h in Headers */, + 8B7A47AB2EB5632A00B07840 /* AUTimestampGenerator.h in Headers */, + 8B7A475C2EB5632A00B07840 /* CADebugPrintf.h in Headers */, + 8B7A47962EB5632A00B07840 /* CACFMessagePort.h in Headers */, + 8B7A47442EB5632A00B07840 /* CAAUProcessor.h in Headers */, + 8B7A47402EB5632A00B07840 /* CAAudioUnit.h in Headers */, + 8B7A47992EB5632A00B07840 /* AUViewLocalizedStringKeys.h in Headers */, + 8B7A477F2EB5632A00B07840 /* CACFDistributedNotification.h in Headers */, + 8B7A473E2EB5632A00B07840 /* CAComponent.h in Headers */, + 8B7A474C2EB5632A00B07840 /* CAVectorUnitTypes.h in Headers */, 8BA05A6E0720730100365D66 /* ConsoleX2BussVersion.h in Headers */, - 8B845BB72E9DA78000AFF254 /* CAFilePathUtils.h in Headers */, - 8B845B792E9DA78000AFF254 /* CAException.h in Headers */, - 8B845B702E9DA78000AFF254 /* CAAtomic.h in Headers */, - 8B845B6F2E9DA78000AFF254 /* CAGuard.h in Headers */, - 8B845BD52E9DA78100AFF254 /* AUInputElement.h in Headers */, - 8B845BAC2E9DA78000AFF254 /* CACFPreferences.h in Headers */, - 8B845BC12E9DA78100AFF254 /* CAByteOrder.h in Headers */, - 8B845BA42E9DA78000AFF254 /* CARingBuffer.h in Headers */, - 8B845B6B2E9DA78000AFF254 /* CABool.h in Headers */, - 8B845B902E9DA78000AFF254 /* CAMutex.h in Headers */, - 8B845BD62E9DA78100AFF254 /* AUBase.h in Headers */, + 8B7A47802EB5632A00B07840 /* CAFilePathUtils.h in Headers */, + 8B7A47422EB5632A00B07840 /* CAException.h in Headers */, + 8B7A47392EB5632A00B07840 /* CAAtomic.h in Headers */, + 8B7A47382EB5632A00B07840 /* CAGuard.h in Headers */, + 8B7A479E2EB5632A00B07840 /* AUInputElement.h in Headers */, + 8B7A47752EB5632A00B07840 /* CACFPreferences.h in Headers */, + 8B7A478A2EB5632A00B07840 /* CAByteOrder.h in Headers */, + 8B7A476D2EB5632A00B07840 /* CARingBuffer.h in Headers */, + 8B7A47342EB5632A00B07840 /* CABool.h in Headers */, + 8B7A47592EB5632A00B07840 /* CAMutex.h in Headers */, + 8B7A479F2EB5632A00B07840 /* AUBase.h in Headers */, 8BC6025C073B072D006C4272 /* ConsoleX2Buss.h in Headers */, - 8B845B882E9DA78000AFF254 /* CACFString.h in Headers */, - 8B845BA72E9DA78000AFF254 /* CASharedLibrary.h in Headers */, - 8B845B742E9DA78000AFF254 /* CATokenMap.h in Headers */, - 8B845B692E9DA78000AFF254 /* CAExtAudioFile.h in Headers */, - 8B845B7E2E9DA78000AFF254 /* CAPThread.h in Headers */, - 8B845B9A2E9DA78000AFF254 /* CAPropertyAddress.h in Headers */, - 8B845BC42E9DA78100AFF254 /* CAReferenceCounted.h in Headers */, - 8B845BE92E9DA78100AFF254 /* AUBuffer.h in Headers */, - 8B845BCB2E9DA78100AFF254 /* CAMath.h in Headers */, - 8B845BAB2E9DA78000AFF254 /* CAAutoDisposer.h in Headers */, - 8B845B722E9DA78000AFF254 /* CACFObject.h in Headers */, - 8B845B922E9DA78000AFF254 /* CASettingsStorage.h in Headers */, - 8B845B9B2E9DA78000AFF254 /* CAXException.h in Headers */, - 8B845BB82E9DA78000AFF254 /* CATink.h in Headers */, - 8B845BE52E9DA78100AFF254 /* AUInputFormatConverter.h in Headers */, - 8B845BC02E9DA78000AFF254 /* CAVectorUnit.h in Headers */, - 8B845B7C2E9DA78000AFF254 /* CAProcess.h in Headers */, - 8B845B822E9DA78000AFF254 /* CAAudioValueRange.h in Headers */, - 8B845B972E9DA78000AFF254 /* CABitOperations.h in Headers */, - 8B845B8D2E9DA78000AFF254 /* CAAudioFileFormats.h in Headers */, - 8B845B862E9DA78000AFF254 /* CACFNumber.h in Headers */, - 8B845B9E2E9DA78000AFF254 /* CAAudioUnitOutputCapturer.h in Headers */, - 8B845BAF2E9DA78000AFF254 /* CADebugMacros.h in Headers */, - 8B845BE82E9DA78100AFF254 /* AUMIDIDefs.h in Headers */, - 8B845BA82E9DA78000AFF254 /* CACFData.h in Headers */, - 8B845B712E9DA78000AFF254 /* CAStreamBasicDescription.h in Headers */, - 8B845BD72E9DA78100AFF254 /* AUPlugInDispatch.h in Headers */, - 8B845B732E9DA78000AFF254 /* CAStreamRangedDescription.h in Headers */, - 8B845BB32E9DA78000AFF254 /* CACFPlugIn.h in Headers */, - 8B845B762E9DA78000AFF254 /* CAAudioBufferList.h in Headers */, - 8B845B8E2E9DA78000AFF254 /* CAAUMIDIMapManager.h in Headers */, - 8B845BE12E9DA78100AFF254 /* AUEffectBase.h in Headers */, - 8B845B7D2E9DA78000AFF254 /* CACFDictionary.h in Headers */, - 8B845BDE2E9DA78100AFF254 /* AUScopeElement.h in Headers */, - 8B845BAE2E9DA78000AFF254 /* CAComponentDescription.h in Headers */, - 8B845BE42E9DA78100AFF254 /* AUSilentTimeout.h in Headers */, - 8B845BA62E9DA78000AFF254 /* CABufferList.h in Headers */, - 8B845BD82E9DA78100AFF254 /* AUDispatch.h in Headers */, - 8B845BDC2E9DA78100AFF254 /* AUOutputElement.h in Headers */, - 8B845BA22E9DA78000AFF254 /* CALogMacros.h in Headers */, - 8B845B962E9DA78000AFF254 /* AUParamInfo.h in Headers */, - 8B845BB52E9DA78000AFF254 /* CAMixMap.h in Headers */, - 8B845BC22E9DA78100AFF254 /* CACFArray.h in Headers */, - 8B845B6A2E9DA78000AFF254 /* CACFMachPort.h in Headers */, - 8B845B952E9DA78000AFF254 /* CAAUMIDIMap.h in Headers */, - 8B845B6D2E9DA78000AFF254 /* CADebugger.h in Headers */, + 8B7A47512EB5632A00B07840 /* CACFString.h in Headers */, + 8B7A47702EB5632A00B07840 /* CASharedLibrary.h in Headers */, + 8B7A473D2EB5632A00B07840 /* CATokenMap.h in Headers */, + 8B7A47322EB5632A00B07840 /* CAExtAudioFile.h in Headers */, + 8B7A47472EB5632A00B07840 /* CAPThread.h in Headers */, + 8B7A47632EB5632A00B07840 /* CAPropertyAddress.h in Headers */, + 8B7A478D2EB5632A00B07840 /* CAReferenceCounted.h in Headers */, + 8B7A47B22EB5632A00B07840 /* AUBuffer.h in Headers */, + 8B7A47942EB5632A00B07840 /* CAMath.h in Headers */, + 8B7A47742EB5632A00B07840 /* CAAutoDisposer.h in Headers */, + 8B7A473B2EB5632A00B07840 /* CACFObject.h in Headers */, + 8B7A475B2EB5632A00B07840 /* CASettingsStorage.h in Headers */, + 8B7A47642EB5632A00B07840 /* CAXException.h in Headers */, + 8B7A47812EB5632A00B07840 /* CATink.h in Headers */, + 8B7A47AE2EB5632A00B07840 /* AUInputFormatConverter.h in Headers */, + 8B7A47892EB5632A00B07840 /* CAVectorUnit.h in Headers */, + 8B7A47452EB5632A00B07840 /* CAProcess.h in Headers */, + 8B7A474B2EB5632A00B07840 /* CAAudioValueRange.h in Headers */, + 8B7A47602EB5632A00B07840 /* CABitOperations.h in Headers */, + 8B7A47562EB5632A00B07840 /* CAAudioFileFormats.h in Headers */, + 8B7A474F2EB5632A00B07840 /* CACFNumber.h in Headers */, + 8B7A47672EB5632A00B07840 /* CAAudioUnitOutputCapturer.h in Headers */, + 8B7A47782EB5632A00B07840 /* CADebugMacros.h in Headers */, + 8B7A47B12EB5632A00B07840 /* AUMIDIDefs.h in Headers */, + 8B7A47712EB5632A00B07840 /* CACFData.h in Headers */, + 8B7A473A2EB5632A00B07840 /* CAStreamBasicDescription.h in Headers */, + 8B7A47A02EB5632A00B07840 /* AUPlugInDispatch.h in Headers */, + 8B7A473C2EB5632A00B07840 /* CAStreamRangedDescription.h in Headers */, + 8B7A477C2EB5632A00B07840 /* CACFPlugIn.h in Headers */, + 8B7A473F2EB5632A00B07840 /* CAAudioBufferList.h in Headers */, + 8B7A47572EB5632A00B07840 /* CAAUMIDIMapManager.h in Headers */, + 8B7A47AA2EB5632A00B07840 /* AUEffectBase.h in Headers */, + 8B7A47462EB5632A00B07840 /* CACFDictionary.h in Headers */, + 8B7A47A72EB5632A00B07840 /* AUScopeElement.h in Headers */, + 8B7A47772EB5632A00B07840 /* CAComponentDescription.h in Headers */, + 8B7A47AD2EB5632A00B07840 /* AUSilentTimeout.h in Headers */, + 8B7A476F2EB5632A00B07840 /* CABufferList.h in Headers */, + 8B7A47A12EB5632A00B07840 /* AUDispatch.h in Headers */, + 8B7A47A52EB5632A00B07840 /* AUOutputElement.h in Headers */, + 8B7A476B2EB5632A00B07840 /* CALogMacros.h in Headers */, + 8B7A475F2EB5632A00B07840 /* AUParamInfo.h in Headers */, + 8B7A477E2EB5632A00B07840 /* CAMixMap.h in Headers */, + 8B7A478B2EB5632A00B07840 /* CACFArray.h in Headers */, + 8B7A47332EB5632A00B07840 /* CACFMachPort.h in Headers */, + 8B7A475E2EB5632A00B07840 /* CAAUMIDIMap.h in Headers */, + 8B7A47362EB5632A00B07840 /* CADebugger.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -681,9 +681,9 @@ developmentRegion = en; hasScannedForEncodings = 1; knownRegions = ( - ja, - Base, en, + Base, + ja, fr, de, ); @@ -712,60 +712,60 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 8B845BA52E9DA78000AFF254 /* AUOutputBL.cpp in Sources */, - 8B845BCA2E9DA78100AFF254 /* CAAudioFileFormats.cpp in Sources */, - 8B845BBC2E9DA78000AFF254 /* CAHostTimeBase.cpp in Sources */, - 8B845B942E9DA78000AFF254 /* CAXException.cpp in Sources */, - 8B845BBE2E9DA78000AFF254 /* CAAudioBufferList.cpp in Sources */, - 8B845B812E9DA78000AFF254 /* CAFilePathUtils.cpp in Sources */, - 8B845B7F2E9DA78000AFF254 /* CAAUParameter.cpp in Sources */, - 8B845BA12E9DA78000AFF254 /* CAAUMIDIMap.cpp in Sources */, - 8B845BCE2E9DA78100AFF254 /* CAAudioValueRange.cpp in Sources */, - 8B845BDD2E9DA78100AFF254 /* AUDispatch.cpp in Sources */, - 8B845B982E9DA78000AFF254 /* CACFPreferences.cpp in Sources */, - 8B845BDB2E9DA78100AFF254 /* AUPlugInDispatch.cpp in Sources */, - 8B845B7A2E9DA78000AFF254 /* CAAUProcessor.cpp in Sources */, - 8B845B8F2E9DA78000AFF254 /* CACFDictionary.cpp in Sources */, - 8B845BE32E9DA78100AFF254 /* AUBaseHelper.cpp in Sources */, - 8B845BC82E9DA78100AFF254 /* CADebugger.cpp in Sources */, - 8B845B9C2E9DA78000AFF254 /* CAAudioChannelLayout.cpp in Sources */, - 8B845B9F2E9DA78000AFF254 /* AUParamInfo.cpp in Sources */, - 8B845BBD2E9DA78000AFF254 /* CAPersistence.cpp in Sources */, - 8B845BB12E9DA78000AFF254 /* CADebugPrintf.cpp in Sources */, - 8B845BE62E9DA78100AFF254 /* AUTimestampGenerator.cpp in Sources */, - 8B845BB92E9DA78000AFF254 /* CAStreamBasicDescription.cpp in Sources */, - 8B845B892E9DA78000AFF254 /* CAAUMIDIMapManager.cpp in Sources */, - 8B845BB42E9DA78000AFF254 /* CASettingsStorage.cpp in Sources */, - 8B845BD92E9DA78100AFF254 /* AUOutputElement.cpp in Sources */, - 8B845B852E9DA78000AFF254 /* CAGuard.cpp in Sources */, + 8B7A476E2EB5632A00B07840 /* AUOutputBL.cpp in Sources */, + 8B7A47932EB5632A00B07840 /* CAAudioFileFormats.cpp in Sources */, + 8B7A47852EB5632A00B07840 /* CAHostTimeBase.cpp in Sources */, + 8B7A475D2EB5632A00B07840 /* CAXException.cpp in Sources */, + 8B7A47872EB5632A00B07840 /* CAAudioBufferList.cpp in Sources */, + 8B7A474A2EB5632A00B07840 /* CAFilePathUtils.cpp in Sources */, + 8B7A47482EB5632A00B07840 /* CAAUParameter.cpp in Sources */, + 8B7A476A2EB5632A00B07840 /* CAAUMIDIMap.cpp in Sources */, + 8B7A47972EB5632A00B07840 /* CAAudioValueRange.cpp in Sources */, + 8B7A47A62EB5632A00B07840 /* AUDispatch.cpp in Sources */, + 8B7A47612EB5632A00B07840 /* CACFPreferences.cpp in Sources */, + 8B7A47A42EB5632A00B07840 /* AUPlugInDispatch.cpp in Sources */, + 8B7A47432EB5632A00B07840 /* CAAUProcessor.cpp in Sources */, + 8B7A47582EB5632A00B07840 /* CACFDictionary.cpp in Sources */, + 8B7A47AC2EB5632A00B07840 /* AUBaseHelper.cpp in Sources */, + 8B7A47912EB5632A00B07840 /* CADebugger.cpp in Sources */, + 8B7A47652EB5632A00B07840 /* CAAudioChannelLayout.cpp in Sources */, + 8B7A47682EB5632A00B07840 /* AUParamInfo.cpp in Sources */, + 8B7A47862EB5632A00B07840 /* CAPersistence.cpp in Sources */, + 8B7A477A2EB5632A00B07840 /* CADebugPrintf.cpp in Sources */, + 8B7A47AF2EB5632A00B07840 /* AUTimestampGenerator.cpp in Sources */, + 8B7A47822EB5632A00B07840 /* CAStreamBasicDescription.cpp in Sources */, + 8B7A47522EB5632A00B07840 /* CAAUMIDIMapManager.cpp in Sources */, + 8B7A477D2EB5632A00B07840 /* CASettingsStorage.cpp in Sources */, + 8B7A47A22EB5632A00B07840 /* AUOutputElement.cpp in Sources */, + 8B7A474E2EB5632A00B07840 /* CAGuard.cpp in Sources */, 8BA05A6B0720730100365D66 /* ConsoleX2Buss.cpp in Sources */, - 8B845BC72E9DA78100AFF254 /* CAMutex.cpp in Sources */, - 8B845BE02E9DA78100AFF254 /* AUEffectBase.cpp in Sources */, - 8B845BC52E9DA78100AFF254 /* CACFMachPort.cpp in Sources */, - 8B845BD42E9DA78100AFF254 /* AUBase.cpp in Sources */, - 8B845BA02E9DA78000AFF254 /* CASharedLibrary.cpp in Sources */, - 8B845B872E9DA78000AFF254 /* CACFDistributedNotification.cpp in Sources */, - 8B845B8A2E9DA78000AFF254 /* CAComponentDescription.cpp in Sources */, - 8B845B912E9DA78000AFF254 /* CACFString.cpp in Sources */, - 8B845BD12E9DA78100AFF254 /* ComponentBase.cpp in Sources */, - 8B845BB22E9DA78000AFF254 /* CARingBuffer.cpp in Sources */, - 8B845BD22E9DA78100AFF254 /* AUScopeElement.cpp in Sources */, - 8B845BCF2E9DA78100AFF254 /* CAAudioUnit.cpp in Sources */, - 8B845BCC2E9DA78100AFF254 /* CACFArray.cpp in Sources */, - 8B845BC92E9DA78100AFF254 /* CABundleLocker.cpp in Sources */, - 8B845BBB2E9DA78000AFF254 /* CAProcess.cpp in Sources */, - 8B845BA92E9DA78000AFF254 /* CAStreamRangedDescription.cpp in Sources */, - 8B845BAA2E9DA78000AFF254 /* CAPThread.cpp in Sources */, - 8B845B6C2E9DA78000AFF254 /* CAComponent.cpp in Sources */, - 8B845B842E9DA78000AFF254 /* CAAudioChannelLayoutObject.cpp in Sources */, - 8B845BBF2E9DA78000AFF254 /* CAAudioTimeStamp.cpp in Sources */, - 8B845BC62E9DA78100AFF254 /* CABufferList.cpp in Sources */, - 8B845BA32E9DA78000AFF254 /* CACFMessagePort.cpp in Sources */, - 8B845BAD2E9DA78000AFF254 /* CAVectorUnit.cpp in Sources */, - 8B845BDF2E9DA78100AFF254 /* AUInputElement.cpp in Sources */, - 8B845BE72E9DA78100AFF254 /* AUBuffer.cpp in Sources */, - 8B845B8C2E9DA78000AFF254 /* CADebugMacros.cpp in Sources */, - 8B845B6E2E9DA78000AFF254 /* CACFNumber.cpp in Sources */, + 8B7A47902EB5632A00B07840 /* CAMutex.cpp in Sources */, + 8B7A47A92EB5632A00B07840 /* AUEffectBase.cpp in Sources */, + 8B7A478E2EB5632A00B07840 /* CACFMachPort.cpp in Sources */, + 8B7A479D2EB5632A00B07840 /* AUBase.cpp in Sources */, + 8B7A47692EB5632A00B07840 /* CASharedLibrary.cpp in Sources */, + 8B7A47502EB5632A00B07840 /* CACFDistributedNotification.cpp in Sources */, + 8B7A47532EB5632A00B07840 /* CAComponentDescription.cpp in Sources */, + 8B7A475A2EB5632A00B07840 /* CACFString.cpp in Sources */, + 8B7A479A2EB5632A00B07840 /* ComponentBase.cpp in Sources */, + 8B7A477B2EB5632A00B07840 /* CARingBuffer.cpp in Sources */, + 8B7A479B2EB5632A00B07840 /* AUScopeElement.cpp in Sources */, + 8B7A47982EB5632A00B07840 /* CAAudioUnit.cpp in Sources */, + 8B7A47952EB5632A00B07840 /* CACFArray.cpp in Sources */, + 8B7A47922EB5632A00B07840 /* CABundleLocker.cpp in Sources */, + 8B7A47842EB5632A00B07840 /* CAProcess.cpp in Sources */, + 8B7A47722EB5632A00B07840 /* CAStreamRangedDescription.cpp in Sources */, + 8B7A47732EB5632A00B07840 /* CAPThread.cpp in Sources */, + 8B7A47352EB5632A00B07840 /* CAComponent.cpp in Sources */, + 8B7A474D2EB5632A00B07840 /* CAAudioChannelLayoutObject.cpp in Sources */, + 8B7A47882EB5632A00B07840 /* CAAudioTimeStamp.cpp in Sources */, + 8B7A478F2EB5632A00B07840 /* CABufferList.cpp in Sources */, + 8B7A476C2EB5632A00B07840 /* CACFMessagePort.cpp in Sources */, + 8B7A47762EB5632A00B07840 /* CAVectorUnit.cpp in Sources */, + 8B7A47A82EB5632A00B07840 /* AUInputElement.cpp in Sources */, + 8B7A47B02EB5632A00B07840 /* AUBuffer.cpp in Sources */, + 8B7A47552EB5632A00B07840 /* CADebugMacros.cpp in Sources */, + 8B7A47372EB5632A00B07840 /* CACFNumber.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -775,7 +775,7 @@ 089C167DFE841241C02AAC07 /* InfoPlist.strings */ = { isa = PBXVariantGroup; children = ( - 8B845BEB2E9DA81C00AFF254 /* en */, + 8B7A47B42EB5648A00B07840 /* en */, ); name = InfoPlist.strings; sourceTree = ""; diff --git a/plugins/MacSignedAU/ConsoleX2Buss/ConsoleX2Buss.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacSignedAU/ConsoleX2Buss/ConsoleX2Buss.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate index f9c91c32b..6ae470cc7 100644 Binary files a/plugins/MacSignedAU/ConsoleX2Buss/ConsoleX2Buss.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate and b/plugins/MacSignedAU/ConsoleX2Buss/ConsoleX2Buss.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/plugins/MacSignedAU/ConsoleX2Channel/ConsoleX2Channel.cpp b/plugins/MacSignedAU/ConsoleX2Channel/ConsoleX2Channel.cpp index 5619e2f1f..9172b24c9 100755 --- a/plugins/MacSignedAU/ConsoleX2Channel/ConsoleX2Channel.cpp +++ b/plugins/MacSignedAU/ConsoleX2Channel/ConsoleX2Channel.cpp @@ -76,6 +76,7 @@ ConsoleX2Channel::ConsoleX2Channel(AudioUnit component) SetParameter(kParam_O, kDefaultValue_ParamO ); SetParameter(kParam_P, kDefaultValue_ParamP ); SetParameter(kParam_Q, kDefaultValue_ParamQ ); + SetParameter(kParam_R, kDefaultValue_ParamR ); #if AU_DEBUG_DISPATCHER mDebugDispatcher = new AUDebugDispatcher (this); @@ -114,10 +115,9 @@ ComponentResult ConsoleX2Channel::GetParameterInfo(AudioUnitScope inScope, { case kParam_A: AUBase::FillInParameterName (outParameterInfo, kParameterAName, false); - outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit; - outParameterInfo.unitName = kParameterAUnit; - outParameterInfo.minValue = 0.0; - outParameterInfo.maxValue = 1.0; + outParameterInfo.unit = kAudioUnitParameterUnit_Indexed; + outParameterInfo.minValue = 0; + outParameterInfo.maxValue = 4; outParameterInfo.defaultValue = kDefaultValue_ParamA; break; case kParam_B: @@ -129,7 +129,8 @@ ComponentResult ConsoleX2Channel::GetParameterInfo(AudioUnitScope inScope, break; case kParam_C: AUBase::FillInParameterName (outParameterInfo, kParameterCName, false); - outParameterInfo.unit = kAudioUnitParameterUnit_Generic; + outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit; + outParameterInfo.unitName = kParameterCUnit; outParameterInfo.minValue = 0.0; outParameterInfo.maxValue = 1.0; outParameterInfo.defaultValue = kDefaultValue_ParamC; @@ -143,8 +144,7 @@ ComponentResult ConsoleX2Channel::GetParameterInfo(AudioUnitScope inScope, break; case kParam_E: AUBase::FillInParameterName (outParameterInfo, kParameterEName, false); - outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit; - outParameterInfo.unitName = kParameterEUnit; + outParameterInfo.unit = kAudioUnitParameterUnit_Generic; outParameterInfo.minValue = 0.0; outParameterInfo.maxValue = 1.0; outParameterInfo.defaultValue = kDefaultValue_ParamE; @@ -158,7 +158,8 @@ ComponentResult ConsoleX2Channel::GetParameterInfo(AudioUnitScope inScope, break; case kParam_G: AUBase::FillInParameterName (outParameterInfo, kParameterGName, false); - outParameterInfo.unit = kAudioUnitParameterUnit_Generic; + outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit; + outParameterInfo.unitName = kParameterGUnit; outParameterInfo.minValue = 0.0; outParameterInfo.maxValue = 1.0; outParameterInfo.defaultValue = kDefaultValue_ParamG; @@ -172,8 +173,7 @@ ComponentResult ConsoleX2Channel::GetParameterInfo(AudioUnitScope inScope, break; case kParam_I: AUBase::FillInParameterName (outParameterInfo, kParameterIName, false); - outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit; - outParameterInfo.unitName = kParameterIUnit; + outParameterInfo.unit = kAudioUnitParameterUnit_Generic; outParameterInfo.minValue = 0.0; outParameterInfo.maxValue = 1.0; outParameterInfo.defaultValue = kDefaultValue_ParamI; @@ -187,7 +187,8 @@ ComponentResult ConsoleX2Channel::GetParameterInfo(AudioUnitScope inScope, break; case kParam_K: AUBase::FillInParameterName (outParameterInfo, kParameterKName, false); - outParameterInfo.unit = kAudioUnitParameterUnit_Generic; + outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit; + outParameterInfo.unitName = kParameterKUnit; outParameterInfo.minValue = 0.0; outParameterInfo.maxValue = 1.0; outParameterInfo.defaultValue = kDefaultValue_ParamK; @@ -201,9 +202,8 @@ ComponentResult ConsoleX2Channel::GetParameterInfo(AudioUnitScope inScope, break; case kParam_M: AUBase::FillInParameterName (outParameterInfo, kParameterMName, false); - outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit; - outParameterInfo.unitName = kParameterMUnit; - outParameterInfo.minValue = 0.0; + outParameterInfo.unit = kAudioUnitParameterUnit_Generic; + outParameterInfo.minValue = 0.0; outParameterInfo.maxValue = 1.0; outParameterInfo.defaultValue = kDefaultValue_ParamM; break; @@ -236,7 +236,14 @@ ComponentResult ConsoleX2Channel::GetParameterInfo(AudioUnitScope inScope, outParameterInfo.maxValue = 1.0; outParameterInfo.defaultValue = kDefaultValue_ParamQ; break; - default: + case kParam_R: + AUBase::FillInParameterName (outParameterInfo, kParameterRName, false); + outParameterInfo.unit = kAudioUnitParameterUnit_Generic; + outParameterInfo.minValue = 0.0; + outParameterInfo.maxValue = 1.0; + outParameterInfo.defaultValue = kDefaultValue_ParamR; + break; + default: result = kAudioUnitErr_InvalidParameter; break; } @@ -356,7 +363,17 @@ ComponentResult ConsoleX2Channel::Reset(AudioUnitScope inScope, AudioUnitElemen 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; @@ -383,20 +400,33 @@ OSStatus ConsoleX2Channel::ProcessBufferLists(AudioUnitRenderActionFlags & ioAc 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_B )*2.0)+1.0; + switch ((int)GetParameter( kParam_A )){ + case 0: moreTapeHack *= 0.5; break; + case 1: break; + case 2: moreTapeHack *= 2.0; break; + case 3: moreTapeHack *= 4.0; break; + case 4: moreTapeHack *= 8.0; break; + } + double moreDiscontinuity = fmax(pow(GetParameter( kParam_B )*0.42,3.0)*overallscale,0.00001); + //Discontapeity - double trebleGain = (GetParameter( kParam_A )-0.5)*2.0; + double trebleGain = (GetParameter( kParam_C )-0.5)*2.0; trebleGain = 1.0+(trebleGain*fabs(trebleGain)*fabs(trebleGain)); - double highmidGain = (GetParameter( kParam_B )-0.5)*2.0; + double highmidGain = (GetParameter( kParam_D )-0.5)*2.0; highmidGain = 1.0+(highmidGain*fabs(highmidGain)*fabs(highmidGain)); - double lowmidGain = (GetParameter( kParam_C )-0.5)*2.0; + double lowmidGain = (GetParameter( kParam_E )-0.5)*2.0; lowmidGain = 1.0+(lowmidGain*fabs(lowmidGain)*fabs(lowmidGain)); - double bassGain = (GetParameter( kParam_D )-0.5)*2.0; + double bassGain = (GetParameter( kParam_F )-0.5)*2.0; bassGain = 1.0+(bassGain*fabs(bassGain)*fabs(bassGain)); - double trebleRef = GetParameter( kParam_E )-0.5; - double highmidRef = GetParameter( kParam_F )-0.5; - double lowmidRef = GetParameter( kParam_G )-0.5; - double bassRef = GetParameter( kParam_H )-0.5; + double trebleRef = GetParameter( kParam_G )-0.5; + double highmidRef = GetParameter( kParam_H )-0.5; + double lowmidRef = GetParameter( kParam_I )-0.5; + double bassRef = GetParameter( kParam_J )-0.5; double highF = 0.75 + ((trebleRef+trebleRef+trebleRef+highmidRef)*0.125); double bassF = 0.25 + ((lowmidRef+bassRef+bassRef+bassRef)*0.125); double midF = (highF*0.5) + (bassF*0.5) + ((highmidRef+lowmidRef)*0.125); @@ -409,8 +439,8 @@ OSStatus ConsoleX2Channel::ProcessBufferLists(AudioUnitRenderActionFlags & ioAc highC[biq_freq] = highB[biq_freq] = highA[biq_freq] = fmax(fmin(highA[biq_freq],0.4999),0.00025); double highFreq = pow(highF,3)*20000.0; double omega = 2.0*M_PI*(highFreq/GetSampleRate()); - double K = 2.0-cos(omega); - double highCoef = -sqrt((K*K)-1.0)+K; + double biqK = 2.0-cos(omega); + double highCoef = -sqrt((biqK*biqK)-1.0)+biqK; highA[biq_reso] = 2.24697960 * highQ; highB[biq_reso] = 0.80193774 * highQ; highC[biq_reso] = 0.55495813 * highQ; @@ -419,8 +449,8 @@ OSStatus ConsoleX2Channel::ProcessBufferLists(AudioUnitRenderActionFlags & ioAc midC[biq_freq] = midB[biq_freq] = midA[biq_freq] = fmax(fmin(midA[biq_freq],0.4999),0.00025); double midFreq = pow(midF,3)*20000.0; omega = 2.0*M_PI*(midFreq/GetSampleRate()); - K = 2.0-cos(omega); - double midCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double midCoef = -sqrt((biqK*biqK)-1.0)+biqK; midA[biq_reso] = 2.24697960 * midQ; midB[biq_reso] = 0.80193774 * midQ; midC[biq_reso] = 0.55495813 * midQ; @@ -429,97 +459,93 @@ OSStatus ConsoleX2Channel::ProcessBufferLists(AudioUnitRenderActionFlags & ioAc lowC[biq_freq] = lowB[biq_freq] = lowA[biq_freq] = fmax(fmin(lowA[biq_freq],0.4999),0.00025); double lowFreq = pow(bassF,3)*20000.0; omega = 2.0*M_PI*(lowFreq/GetSampleRate()); - K = 2.0-cos(omega); - double lowCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double lowCoef = -sqrt((biqK*biqK)-1.0)+biqK; lowA[biq_reso] = 2.24697960 * lowQ; lowB[biq_reso] = 0.80193774 * lowQ; lowC[biq_reso] = 0.55495813 * lowQ; - K = tan(M_PI * highA[biq_freq]); - double norm = 1.0 / (1.0 + K / highA[biq_reso] + K * K); - highA[biq_a0] = K * K * norm; + biqK = tan(M_PI * highA[biq_freq]); + double norm = 1.0 / (1.0 + biqK / highA[biq_reso] + biqK * biqK); + highA[biq_a0] = biqK * biqK * norm; highA[biq_a1] = 2.0 * highA[biq_a0]; highA[biq_a2] = highA[biq_a0]; - highA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highA[biq_b2] = (1.0 - K / highA[biq_reso] + K * K) * norm; - K = tan(M_PI * highB[biq_freq]); - norm = 1.0 / (1.0 + K / highB[biq_reso] + K * K); - highB[biq_a0] = K * K * norm; + highA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highA[biq_b2] = (1.0 - biqK / highA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highB[biq_freq]); + norm = 1.0 / (1.0 + biqK / highB[biq_reso] + biqK * biqK); + highB[biq_a0] = biqK * biqK * norm; highB[biq_a1] = 2.0 * highB[biq_a0]; highB[biq_a2] = highB[biq_a0]; - highB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highB[biq_b2] = (1.0 - K / highB[biq_reso] + K * K) * norm; - K = tan(M_PI * highC[biq_freq]); - norm = 1.0 / (1.0 + K / highC[biq_reso] + K * K); - highC[biq_a0] = K * K * norm; + highB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highB[biq_b2] = (1.0 - biqK / highB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highC[biq_freq]); + norm = 1.0 / (1.0 + biqK / highC[biq_reso] + biqK * biqK); + highC[biq_a0] = biqK * biqK * norm; highC[biq_a1] = 2.0 * highC[biq_a0]; highC[biq_a2] = highC[biq_a0]; - highC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highC[biq_b2] = (1.0 - K / highC[biq_reso] + K * K) * norm; + highC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highC[biq_b2] = (1.0 - biqK / highC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * midA[biq_freq]); - norm = 1.0 / (1.0 + K / midA[biq_reso] + K * K); - midA[biq_a0] = K * K * norm; + biqK = tan(M_PI * midA[biq_freq]); + norm = 1.0 / (1.0 + biqK / midA[biq_reso] + biqK * biqK); + midA[biq_a0] = biqK * biqK * norm; midA[biq_a1] = 2.0 * midA[biq_a0]; midA[biq_a2] = midA[biq_a0]; - midA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midA[biq_b2] = (1.0 - K / midA[biq_reso] + K * K) * norm; - K = tan(M_PI * midB[biq_freq]); - norm = 1.0 / (1.0 + K / midB[biq_reso] + K * K); - midB[biq_a0] = K * K * norm; + midA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midA[biq_b2] = (1.0 - biqK / midA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midB[biq_freq]); + norm = 1.0 / (1.0 + biqK / midB[biq_reso] + biqK * biqK); + midB[biq_a0] = biqK * biqK * norm; midB[biq_a1] = 2.0 * midB[biq_a0]; midB[biq_a2] = midB[biq_a0]; - midB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midB[biq_b2] = (1.0 - K / midB[biq_reso] + K * K) * norm; - K = tan(M_PI * midC[biq_freq]); - norm = 1.0 / (1.0 + K / midC[biq_reso] + K * K); - midC[biq_a0] = K * K * norm; + midB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midB[biq_b2] = (1.0 - biqK / midB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midC[biq_freq]); + norm = 1.0 / (1.0 + biqK / midC[biq_reso] + biqK * biqK); + midC[biq_a0] = biqK * biqK * norm; midC[biq_a1] = 2.0 * midC[biq_a0]; midC[biq_a2] = midC[biq_a0]; - midC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midC[biq_b2] = (1.0 - K / midC[biq_reso] + K * K) * norm; + midC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midC[biq_b2] = (1.0 - biqK / midC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * lowA[biq_freq]); - norm = 1.0 / (1.0 + K / lowA[biq_reso] + K * K); - lowA[biq_a0] = K * K * norm; + biqK = tan(M_PI * lowA[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowA[biq_reso] + biqK * biqK); + lowA[biq_a0] = biqK * biqK * norm; lowA[biq_a1] = 2.0 * lowA[biq_a0]; lowA[biq_a2] = lowA[biq_a0]; - lowA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowA[biq_b2] = (1.0 - K / lowA[biq_reso] + K * K) * norm; - K = tan(M_PI * lowB[biq_freq]); - norm = 1.0 / (1.0 + K / lowB[biq_reso] + K * K); - lowB[biq_a0] = K * K * norm; + lowA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowA[biq_b2] = (1.0 - biqK / lowA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowB[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowB[biq_reso] + biqK * biqK); + lowB[biq_a0] = biqK * biqK * norm; lowB[biq_a1] = 2.0 * lowB[biq_a0]; lowB[biq_a2] = lowB[biq_a0]; - lowB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowB[biq_b2] = (1.0 - K / lowB[biq_reso] + K * K) * norm; - K = tan(M_PI * lowC[biq_freq]); - norm = 1.0 / (1.0 + K / lowC[biq_reso] + K * K); - lowC[biq_a0] = K * K * norm; + lowB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowB[biq_b2] = (1.0 - biqK / lowB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowC[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowC[biq_reso] + biqK * biqK); + lowC[biq_a0] = biqK * biqK * norm; lowC[biq_a1] = 2.0 * lowC[biq_a0]; lowC[biq_a2] = lowC[biq_a0]; - lowC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowC[biq_b2] = (1.0 - K / lowC[biq_reso] + K * K) * norm; + lowC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowC[biq_b2] = (1.0 - biqK / lowC[biq_reso] + biqK * biqK) * norm; //SmoothEQ2 - double bezCThresh = pow(1.0-GetParameter( kParam_I ), 6.0) * 8.0; - double bezRez = pow(1.0-GetParameter( kParam_J ), 8.0) / overallscale; - double sloRez = pow(1.0-GetParameter( kParam_K ),12.0) / overallscale; + double bezCThresh = pow(1.0-GetParameter( kParam_K ), 6.0) * 8.0; + double bezRez = pow(1.0-GetParameter( kParam_L ), 8.0) / overallscale; + double sloRez = pow(1.0-GetParameter( kParam_M ),12.0) / overallscale; sloRez = fmin(fmax(sloRez-(bezRez*0.5),0.00001),1.0); bezRez = fmin(fmax(bezRez,0.0001),1.0); - double gate = pow(pow(GetParameter( kParam_L ),4.0),sqrt(bezCThresh+1.0)); + double gate = pow(pow(GetParameter( kParam_N ),4.0),sqrt(bezCThresh+1.0)); //Dynamics2 - lFreqA = lFreqB; lFreqB = pow(fmax(GetParameter( kParam_M ),0.002),overallscale); //the lowpass - hFreqA = hFreqB; hFreqB = pow(GetParameter( kParam_N ),overallscale+2.0); //the highpass + lFreqA = lFreqB; lFreqB = pow(fmax(GetParameter( kParam_O ),0.002),overallscale); //the lowpass + hFreqA = hFreqB; hFreqB = pow(GetParameter( kParam_P ),overallscale+2.0); //the highpass //Cabs2 - - double moreDiscontinuity = fmax(pow(GetParameter( kParam_O )*0.42,3.0)*overallscale,0.00001); - double moreTapeHack = (GetParameter( kParam_O )*1.4152481)+1.2; - //Discontapeity - - panA = panB; panB = GetParameter( kParam_P )*1.57079633; - inTrimA = inTrimB; inTrimB = GetParameter( kParam_Q )*2.0; + + panA = panB; panB = GetParameter( kParam_Q )*1.57079633; + inTrimA = inTrimB; inTrimB = GetParameter( kParam_R )*2.0; //Console while (nSampleFrames-- > 0) { @@ -528,6 +554,99 @@ OSStatus ConsoleX2Channel::ProcessBufferLists(AudioUnitRenderActionFlags & ioAc if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17; if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17; + double darkSampleL = inputSampleL; + double darkSampleR = inputSampleR; + if (avgPos > 31) avgPos = 0; + if (spacing > 31) { + avg32L[avgPos] = darkSampleL; avg32R[avgPos] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 32; x++) {darkSampleL += avg32L[x]; darkSampleR += avg32R[x];} + darkSampleL /= 32.0; darkSampleR /= 32.0; + } if (spacing > 15) { + avg16L[avgPos%16] = darkSampleL; avg16R[avgPos%16] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 16; x++) {darkSampleL += avg16L[x]; darkSampleR += avg16R[x];} + darkSampleL /= 16.0; darkSampleR /= 16.0; + } if (spacing > 7) { + avg8L[avgPos%8] = darkSampleL; avg8R[avgPos%8] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 8; x++) {darkSampleL += avg8L[x]; darkSampleR += avg8R[x];} + darkSampleL /= 8.0; darkSampleR /= 8.0; + } if (spacing > 3) { + avg4L[avgPos%4] = darkSampleL; avg4R[avgPos%4] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 4; x++) {darkSampleL += avg4L[x]; darkSampleR += avg4R[x];} + darkSampleL /= 4.0; darkSampleR /= 4.0; + } if (spacing > 1) { + avg2L[avgPos%2] = darkSampleL; avg2R[avgPos%2] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 2; x++) {darkSampleL += avg2L[x]; darkSampleR += avg2R[x];} + darkSampleL /= 2.0; darkSampleR /= 2.0; + } avgPos++; + lastSlewL += fabs(lastSlewpleL-inputSampleL); lastSlewpleL = inputSampleL; + double avgSlewL = fmin(lastSlewL,1.0); + lastSlewL = fmax(lastSlewL*0.78,2.39996322972865332223); + lastSlewR += fabs(lastSlewpleR-inputSampleR); lastSlewpleR = inputSampleR; + double avgSlewR = fmin(lastSlewR,1.0); + lastSlewR = fmax(lastSlewR*0.78,2.39996322972865332223); //look up Golden Angle, it's cool + inputSampleL = (inputSampleL*(1.0-avgSlewL)) + (darkSampleL*avgSlewL); + inputSampleR = (inputSampleR*(1.0-avgSlewR)) + (darkSampleR*avgSlewR); + + //begin Discontinuity section + inputSampleL *= moreTapeHack; + inputSampleL *= moreDiscontinuity; + dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5); + dBaPosL = fmin(dBaPosL,1.0); + int dBdly = floor(dBaPosL*dscBuf); + double dBi = (dBaPosL*dscBuf)-dBdly; + inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi); + dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi; + dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0; + inputSampleL /= moreDiscontinuity; + //end Discontinuity section, begin TapeHack section + inputSampleL = fmax(fmin(inputSampleL,2.305929007734908),-2.305929007734908); + double addtwo = inputSampleL * inputSampleL; + double empower = inputSampleL * addtwo; // inputSampleL to the third power + inputSampleL -= (empower / 6.0); + empower *= addtwo; // to the fifth power + inputSampleL += (empower / 69.0); + empower *= addtwo; //seventh + inputSampleL -= (empower / 2530.08); + empower *= addtwo; //ninth + inputSampleL += (empower / 224985.6); + empower *= addtwo; //eleventh + inputSampleL -= (empower / 9979200.0f); + //this is a degenerate form of a Taylor Series to approximate sin() + //end TapeHack section + + //begin Discontinuity section + inputSampleR *= moreTapeHack; + inputSampleR *= moreDiscontinuity; + dBaR[dBaXR] = inputSampleR; dBaPosR *= 0.5; dBaPosR += fabs((inputSampleR*((inputSampleR*0.25)-0.5))*0.5); + dBaPosR = fmin(dBaPosR,1.0); + dBdly = floor(dBaPosR*dscBuf); + dBi = (dBaPosR*dscBuf)-dBdly; + inputSampleR = dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*(1.0-dBi); + dBdly++; inputSampleR += dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*dBi; + dBaXR++; if (dBaXR < 0 || dBaXR >= dscBuf) dBaXR = 0; + inputSampleR /= moreDiscontinuity; + //end Discontinuity section, begin TapeHack section + inputSampleR = fmax(fmin(inputSampleR,2.305929007734908),-2.305929007734908); + addtwo = inputSampleR * inputSampleR; + empower = inputSampleR * addtwo; // inputSampleR to the third power + inputSampleR -= (empower / 6.0); + empower *= addtwo; // to the fifth power + inputSampleR += (empower / 69.0); + empower *= addtwo; //seventh + inputSampleR -= (empower / 2530.08); + empower *= addtwo; //ninth + inputSampleR += (empower / 224985.6); + empower *= addtwo; //eleventh + inputSampleR -= (empower / 9979200.0f); + //this is a degenerate form of a Taylor Series to approximate sin() + //end TapeHack section + //Discontapeity + double trebleL = inputSampleL; double outSample = (trebleL * highA[biq_a0]) + highA[biq_sL1]; highA[biq_sL1] = (trebleL * highA[biq_a1]) - (outSample * highA[biq_b1]) + highA[biq_sL2]; @@ -787,62 +906,7 @@ OSStatus ConsoleX2Channel::ProcessBufferLists(AudioUnitRenderActionFlags & ioAc } //blank out lowpass if just switched off } //Cabs2 - - //begin Discontinuity section - inputSampleL *= moreDiscontinuity; - dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5); - dBaPosL = fmin(dBaPosL,1.0); - int dBdly = floor(dBaPosL*dscBuf); - double dBi = (dBaPosL*dscBuf)-dBdly; - inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi; - dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0; - inputSampleL /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleL = fmax(fmin(inputSampleL*moreTapeHack,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.9239; - //end TapeHack section - - //begin Discontinuity section - inputSampleR *= moreDiscontinuity; - dBaR[dBaXR] = inputSampleR; dBaPosR *= 0.5; dBaPosR += fabs((inputSampleR*((inputSampleR*0.25)-0.5))*0.5); - dBaPosR = fmin(dBaPosR,1.0); - dBdly = floor(dBaPosR*dscBuf); - dBi = (dBaPosR*dscBuf)-dBdly; - inputSampleR = dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleR += dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*dBi; - dBaXR++; if (dBaXR < 0 || dBaXR >= dscBuf) dBaXR = 0; - inputSampleR /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleR = fmax(fmin(inputSampleR*moreTapeHack,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.9239; - //end TapeHack section - //Discontapeity - + double gainR = (panA*temp)+(panB*(1.0-temp)); double gainL = 1.57079633-gainR; gainR = sin(gainR); gainL = sin(gainL); @@ -850,19 +914,16 @@ OSStatus ConsoleX2Channel::ProcessBufferLists(AudioUnitRenderActionFlags & ioAc 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 *= 0.763932022500211; inputSampleL = inputSampleL * gainL * gain; inputSampleR = inputSampleR * gainR * gain; //applies pan section, and smoothed fader gain - inputSampleL *= 0.618033988749895; if (inputSampleL > 1.0) inputSampleL = 1.0; else if (inputSampleL > 0.0) inputSampleL = -expm1((log1p(-inputSampleL) * 1.618033988749895)); if (inputSampleL < -1.0) inputSampleL = -1.0; else if (inputSampleL < 0.0) inputSampleL = expm1((log1p(inputSampleL) * 1.618033988749895)); - inputSampleR *= 0.618033988749895; if (inputSampleR > 1.0) inputSampleR = 1.0; else if (inputSampleR > 0.0) inputSampleR = -expm1((log1p(-inputSampleR) * 1.618033988749895)); if (inputSampleR < -1.0) inputSampleR = -1.0; diff --git a/plugins/MacSignedAU/ConsoleX2Channel/ConsoleX2Channel.h b/plugins/MacSignedAU/ConsoleX2Channel/ConsoleX2Channel.h index 51c8bbafe..7cc14906a 100755 --- a/plugins/MacSignedAU/ConsoleX2Channel/ConsoleX2Channel.h +++ b/plugins/MacSignedAU/ConsoleX2Channel/ConsoleX2Channel.h @@ -54,46 +54,47 @@ #pragma mark ____ConsoleX2Channel Parameters // parameters -static const float kDefaultValue_ParamA = 0.5; -static const float kDefaultValue_ParamB = 0.5; +static const int kDefaultValue_ParamA = 1; +static const float kDefaultValue_ParamB = 0.0; static const float kDefaultValue_ParamC = 0.5; static const float kDefaultValue_ParamD = 0.5; static const float kDefaultValue_ParamE = 0.5; static const float kDefaultValue_ParamF = 0.5; static const float kDefaultValue_ParamG = 0.5; static const float kDefaultValue_ParamH = 0.5; -static const float kDefaultValue_ParamI = 1.0; +static const float kDefaultValue_ParamI = 0.5; static const float kDefaultValue_ParamJ = 0.5; -static const float kDefaultValue_ParamK = 0.5; -static const float kDefaultValue_ParamL = 0.0; -static const float kDefaultValue_ParamM = 1.0; +static const float kDefaultValue_ParamK = 1.0; +static const float kDefaultValue_ParamL = 0.5; +static const float kDefaultValue_ParamM = 0.5; static const float kDefaultValue_ParamN = 0.0; -static const float kDefaultValue_ParamO = 0.0; -static const float kDefaultValue_ParamP = 0.5; +static const float kDefaultValue_ParamO = 1.0; +static const float kDefaultValue_ParamP = 0.0; static const float kDefaultValue_ParamQ = 0.5; +static const float kDefaultValue_ParamR = 0.5; -static CFStringRef kParameterAUnit = CFSTR("eq"); -static CFStringRef kParameterAName = CFSTR("High"); -static CFStringRef kParameterBName = CFSTR("HMid"); -static CFStringRef kParameterCName = CFSTR("LMid"); -static CFStringRef kParameterDName = CFSTR("Bass"); -static CFStringRef kParameterEUnit = CFSTR("freq"); -static CFStringRef kParameterEName = CFSTR("HighF"); -static CFStringRef kParameterFName = CFSTR("HMidF"); -static CFStringRef kParameterGName = CFSTR("LMidF"); -static CFStringRef kParameterHName = CFSTR("BassF"); -static CFStringRef kParameterIUnit = CFSTR("dyn"); -static CFStringRef kParameterIName = CFSTR("Thresh"); -static CFStringRef kParameterJName = CFSTR("Attack"); -static CFStringRef kParameterKName = CFSTR("Release"); -static CFStringRef kParameterLName = CFSTR("Gate"); -static CFStringRef kParameterMUnit = CFSTR("fltr"); -static CFStringRef kParameterMName = CFSTR("Lowpass"); -static CFStringRef kParameterNName = CFSTR("Hipass"); -static CFStringRef kParameterOUnit = CFSTR("+"); -static CFStringRef kParameterOName = CFSTR("More"); -static CFStringRef kParameterPName = CFSTR("Pan"); -static CFStringRef kParameterQName = CFSTR("Fader"); +static CFStringRef kParameterAName = CFSTR("Trim"); +static CFStringRef kParameterBName = CFSTR("More"); +static CFStringRef kParameterCUnit = CFSTR("eq"); +static CFStringRef kParameterCName = CFSTR("High"); +static CFStringRef kParameterDName = CFSTR("HMid"); +static CFStringRef kParameterEName = CFSTR("LMid"); +static CFStringRef kParameterFName = CFSTR("Bass"); +static CFStringRef kParameterGUnit = CFSTR("freq"); +static CFStringRef kParameterGName = CFSTR("HighF"); +static CFStringRef kParameterHName = CFSTR("HMidF"); +static CFStringRef kParameterIName = CFSTR("LMidF"); +static CFStringRef kParameterJName = CFSTR("BassF"); +static CFStringRef kParameterKUnit = CFSTR("dyn"); +static CFStringRef kParameterKName = CFSTR("Thresh"); +static CFStringRef kParameterLName = CFSTR("Attack"); +static CFStringRef kParameterMName = CFSTR("Release"); +static CFStringRef kParameterNName = CFSTR("Gate"); +static CFStringRef kParameterOUnit = CFSTR("fltr"); +static CFStringRef kParameterOName = CFSTR("Lowpass"); +static CFStringRef kParameterPName = CFSTR("Hipass"); +static CFStringRef kParameterQName = CFSTR("Pan"); +static CFStringRef kParameterRName = CFSTR("Fader"); enum { kParam_A =0, @@ -113,8 +114,9 @@ enum { kParam_O =14, kParam_P =15, kParam_Q =16, + kParam_R =17, //Add your parameters here... - kNumberOfParameters=17 + kNumberOfParameters=18 }; const int dscBuf = 256; @@ -243,6 +245,23 @@ public: 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; diff --git a/plugins/MacSignedAU/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/christopherjohnson.pbxuser b/plugins/MacSignedAU/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/christopherjohnson.pbxuser index 3849e4a39..97de010b9 100755 --- a/plugins/MacSignedAU/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/christopherjohnson.pbxuser +++ b/plugins/MacSignedAU/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/christopherjohnson.pbxuser @@ -51,19 +51,39 @@ PBXFileDataSource_Warnings_ColumnID, ); }; - PBXPerProjectTemplateStateSaveDate = 781897277; - PBXWorkspaceStateSaveDate = 781897277; + PBXPerProjectTemplateStateSaveDate = 783603960; + PBXWorkspaceStateSaveDate = 783603960; }; perUserProjectItems = { + 8B692BE12EB4E21700F51381 /* PBXTextBookmark */ = 8B692BE12EB4E21700F51381 /* PBXTextBookmark */; + 8B692BE22EB4E21700F51381 /* PBXTextBookmark */ = 8B692BE22EB4E21700F51381 /* PBXTextBookmark */; 8B9629D92E9AC7DA000EAC04 /* PBXTextBookmark */ = 8B9629D92E9AC7DA000EAC04 /* PBXTextBookmark */; - 8B9629DA2E9AC7DA000EAC04 /* PBXTextBookmark */ = 8B9629DA2E9AC7DA000EAC04 /* PBXTextBookmark */; - 8B962AF92E9AD2D8000EAC04 /* PBXTextBookmark */ = 8B962AF92E9AD2D8000EAC04 /* PBXTextBookmark */; - 8B962AFA2E9AD2D8000EAC04 /* PBXTextBookmark */ = 8B962AFA2E9AD2D8000EAC04 /* PBXTextBookmark */; + 8BAA80A32EA691D900A83054 /* PBXTextBookmark */ = 8BAA80A32EA691D900A83054 /* PBXTextBookmark */; }; sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */; userBuildSettings = { }; }; + 8B692BE12EB4E21700F51381 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 8BA05A660720730100365D66 /* ConsoleX2Channel.cpp */; + name = "ConsoleX2Channel.cpp: 377"; + rLen = 0; + rLoc = 16627; + rType = 0; + vrLen = 22; + vrLoc = 54; + }; + 8B692BE22EB4E21700F51381 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 8BA05A660720730100365D66 /* ConsoleX2Channel.cpp */; + name = "ConsoleX2Channel.cpp: 377"; + rLen = 0; + rLoc = 16627; + rType = 0; + vrLen = 22; + vrLoc = 54; + }; 8B9629D92E9AC7DA000EAC04 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 8BA05A690720730100365D66 /* ConsoleX2ChannelVersion.h */; @@ -74,42 +94,20 @@ vrLen = 258; vrLoc = 0; }; - 8B9629DA2E9AC7DA000EAC04 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 8BC6025B073B072D006C4272 /* ConsoleX2Channel.h */; - name = "ConsoleX2Channel.h: 230"; - rLen = 0; - rLoc = 8099; - rType = 0; - vrLen = 141; - vrLoc = 7736; - }; - 8B962AF92E9AD2D8000EAC04 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 8BA05A660720730100365D66 /* ConsoleX2Channel.cpp */; - name = "ConsoleX2Channel.cpp: 355"; - rLen = 0; - rLoc = 15850; - rType = 0; - vrLen = 103; - vrLoc = 15621; - }; - 8B962AFA2E9AD2D8000EAC04 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 8BC6025B073B072D006C4272 /* ConsoleX2Channel.h */; - name = "ConsoleX2Channel.h: 235"; - rLen = 0; - rLoc = 8099; - rType = 0; - vrLen = 105; - vrLoc = 7686; - }; 8BA05A660720730100365D66 /* ConsoleX2Channel.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1019, 15912}}"; - sepNavSelRange = "{10994, 0}"; - sepNavVisRange = "{10196, 2001}"; - sepNavWindowFrame = "{{22, 92}, {1066, 786}}"; + sepNavIntBoundsRect = "{{0, 0}, {696, 17226}}"; + sepNavSelRange = "{16627, 0}"; + sepNavVisRange = "{54, 22}"; + sepNavWindowFrame = "{{6, 88}, {931, 746}}"; + }; + }; + 8BA05A670720730100365D66 /* ConsoleX2Channel.exp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {609, 616}}"; + sepNavSelRange = "{0, 23}"; + sepNavVisRange = "{0, 23}"; + sepNavWindowFrame = "{{15, 129}, {656, 744}}"; }; }; 8BA05A690720730100365D66 /* ConsoleX2ChannelVersion.h */ = { @@ -127,12 +125,22 @@ sepNavVisRange = "{0, 1336}"; }; }; + 8BAA80A32EA691D900A83054 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 8BC6025B073B072D006C4272 /* ConsoleX2Channel.h */; + name = "ConsoleX2Channel.h: 235"; + rLen = 0; + rLoc = 8160; + rType = 0; + vrLen = 76; + vrLoc = 7715; + }; 8BC6025B073B072D006C4272 /* ConsoleX2Channel.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {705, 4968}}"; - sepNavSelRange = "{8099, 0}"; - sepNavVisRange = "{7686, 105}"; - sepNavWindowFrame = "{{8, 39}, {656, 839}}"; + sepNavIntBoundsRect = "{{0, 0}, {1146, 5058}}"; + sepNavSelRange = "{8317, 299}"; + sepNavVisRange = "{3331, 1640}"; + sepNavWindowFrame = "{{2, 39}, {656, 839}}"; }; }; 8BD3CCB8148830B20062E48C /* Source Control */ = { diff --git a/plugins/MacSignedAU/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacSignedAU/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/christopherjohnson.perspectivev3 index c1bd1a716..8aed517aa 100755 --- a/plugins/MacSignedAU/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/christopherjohnson.perspectivev3 +++ b/plugins/MacSignedAU/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/christopherjohnson.perspectivev3 @@ -324,7 +324,7 @@ 185 RubberWindowFrame - 37 201 810 487 0 0 1440 878 + 9 258 810 487 0 0 1440 878 Module PBXSmartGroupTreeModule @@ -340,7 +340,7 @@ PBXProjectModuleGUID 8BD95EA72E957B1200D77499 PBXProjectModuleLabel - ConsoleX2Channel.h + ConsoleX2Channel.cpp PBXSplitModuleInNavigatorKey Split0 @@ -348,16 +348,16 @@ PBXProjectModuleGUID 8BD95EA82E957B1200D77499 PBXProjectModuleLabel - ConsoleX2Channel.h + ConsoleX2Channel.cpp _historyCapacity 0 bookmark - 8B962AFA2E9AD2D8000EAC04 + 8B692BE22EB4E21700F51381 history 8B9629D92E9AC7DA000EAC04 - 8B962AF92E9AD2D8000EAC04 - 8B9629DA2E9AC7DA000EAC04 + 8BAA80A32EA691D900A83054 + 8B692BE12EB4E21700F51381 SplitCount @@ -371,18 +371,18 @@ GeometryConfiguration Frame - {{0, 0}, {603, 117}} + {{0, 0}, {603, 51}} RubberWindowFrame - 37 201 810 487 0 0 1440 878 + 9 258 810 487 0 0 1440 878 Module PBXNavigatorGroup Proportion - 117pt + 51pt Proportion - 324pt + 390pt Tabs @@ -396,9 +396,9 @@ GeometryConfiguration Frame - {{10, 27}, {603, 297}} + {{10, 27}, {603, 363}} RubberWindowFrame - 37 201 810 487 0 0 1440 878 + 9 258 810 487 0 0 1440 878 Module XCDetailModule @@ -452,7 +452,7 @@ GeometryConfiguration Frame - {{10, 27}, {603, 414}} + {{10, 27}, {603, 345}} Module PBXBuildResultsModule @@ -480,11 +480,11 @@ TableOfContents - 8B962AFB2E9AD2D8000EAC04 + 8B692BE32EB4E21700F51381 1CA23ED40692098700951B8B - 8B962AFC2E9AD2D8000EAC04 + 8B692BE42EB4E21700F51381 8BD95EA72E957B1200D77499 - 8B962AFD2E9AD2D8000EAC04 + 8B692BE52EB4E21700F51381 1CA23EDF0692099D00951B8B 1CA23EE00692099D00951B8B 1CA23EE10692099D00951B8B @@ -657,7 +657,7 @@ StatusbarIsVisible TimeStamp - 781898456.47562802 + 783606295.64856899 ToolbarConfigUserDefaultsMinorVersion 2 ToolbarDisplayMode @@ -674,11 +674,10 @@ 5 WindowOrderList - 8B962AFE2E9AD2D8000EAC04 /Users/christopherjohnson/Desktop/airwindows/plugins/MacAU/ConsoleX2Channel/ConsoleX2Channel.xcodeproj WindowString - 37 201 810 487 0 0 1440 878 + 9 258 810 487 0 0 1440 878 WindowToolsV3 diff --git a/plugins/MacSignedAU/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/project.pbxproj b/plugins/MacSignedAU/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/project.pbxproj index 509a07f1e..c7895e6b4 100755 --- a/plugins/MacSignedAU/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/project.pbxproj +++ b/plugins/MacSignedAU/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/project.pbxproj @@ -7,135 +7,135 @@ objects = { /* Begin PBXBuildFile section */ - 8B845C762E9DA85500AFF254 /* CAExtAudioFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845BEE2E9DA85500AFF254 /* CAExtAudioFile.h */; }; - 8B845C772E9DA85500AFF254 /* CACFMachPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845BEF2E9DA85500AFF254 /* CACFMachPort.h */; }; - 8B845C782E9DA85500AFF254 /* CABool.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845BF02E9DA85500AFF254 /* CABool.h */; }; - 8B845C792E9DA85500AFF254 /* CAComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845BF12E9DA85500AFF254 /* CAComponent.cpp */; }; - 8B845C7A2E9DA85500AFF254 /* CADebugger.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845BF22E9DA85500AFF254 /* CADebugger.h */; }; - 8B845C7B2E9DA85500AFF254 /* CACFNumber.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845BF32E9DA85500AFF254 /* CACFNumber.cpp */; }; - 8B845C7C2E9DA85500AFF254 /* CAGuard.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845BF42E9DA85500AFF254 /* CAGuard.h */; }; - 8B845C7D2E9DA85500AFF254 /* CAAtomic.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845BF52E9DA85500AFF254 /* CAAtomic.h */; }; - 8B845C7E2E9DA85500AFF254 /* CAStreamBasicDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845BF62E9DA85500AFF254 /* CAStreamBasicDescription.h */; }; - 8B845C7F2E9DA85500AFF254 /* CACFObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845BF72E9DA85500AFF254 /* CACFObject.h */; }; - 8B845C802E9DA85500AFF254 /* CAStreamRangedDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845BF82E9DA85500AFF254 /* CAStreamRangedDescription.h */; }; - 8B845C812E9DA85500AFF254 /* CATokenMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845BF92E9DA85500AFF254 /* CATokenMap.h */; }; - 8B845C822E9DA85500AFF254 /* CAComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845BFA2E9DA85500AFF254 /* CAComponent.h */; }; - 8B845C832E9DA85500AFF254 /* CAAudioBufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845BFB2E9DA85500AFF254 /* CAAudioBufferList.h */; }; - 8B845C842E9DA85500AFF254 /* CAAudioUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845BFC2E9DA85500AFF254 /* CAAudioUnit.h */; }; - 8B845C852E9DA85500AFF254 /* CAAUParameter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845BFD2E9DA85500AFF254 /* CAAUParameter.h */; }; - 8B845C862E9DA85500AFF254 /* CAException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845BFE2E9DA85500AFF254 /* CAException.h */; }; - 8B845C872E9DA85500AFF254 /* CAAUProcessor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845BFF2E9DA85500AFF254 /* CAAUProcessor.cpp */; }; - 8B845C882E9DA85500AFF254 /* CAAUProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C002E9DA85500AFF254 /* CAAUProcessor.h */; }; - 8B845C892E9DA85500AFF254 /* CAProcess.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C012E9DA85500AFF254 /* CAProcess.h */; }; - 8B845C8A2E9DA85500AFF254 /* CACFDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C022E9DA85500AFF254 /* CACFDictionary.h */; }; - 8B845C8B2E9DA85500AFF254 /* CAPThread.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C032E9DA85500AFF254 /* CAPThread.h */; }; - 8B845C8C2E9DA85500AFF254 /* CAAUParameter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845C042E9DA85500AFF254 /* CAAUParameter.cpp */; }; - 8B845C8D2E9DA85500AFF254 /* CAAudioTimeStamp.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C052E9DA85500AFF254 /* CAAudioTimeStamp.h */; }; - 8B845C8E2E9DA85500AFF254 /* CAFilePathUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845C062E9DA85500AFF254 /* CAFilePathUtils.cpp */; }; - 8B845C8F2E9DA85500AFF254 /* CAAudioValueRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C072E9DA85500AFF254 /* CAAudioValueRange.h */; }; - 8B845C902E9DA85500AFF254 /* CAVectorUnitTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C082E9DA85500AFF254 /* CAVectorUnitTypes.h */; }; - 8B845C912E9DA85500AFF254 /* CAAudioChannelLayoutObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845C092E9DA85500AFF254 /* CAAudioChannelLayoutObject.cpp */; }; - 8B845C922E9DA85500AFF254 /* CAGuard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845C0A2E9DA85500AFF254 /* CAGuard.cpp */; }; - 8B845C932E9DA85500AFF254 /* CACFNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C0B2E9DA85500AFF254 /* CACFNumber.h */; }; - 8B845C942E9DA85500AFF254 /* CACFDistributedNotification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845C0C2E9DA85500AFF254 /* CACFDistributedNotification.cpp */; }; - 8B845C952E9DA85500AFF254 /* CACFString.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C0D2E9DA85500AFF254 /* CACFString.h */; }; - 8B845C962E9DA85500AFF254 /* CAAUMIDIMapManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845C0E2E9DA85500AFF254 /* CAAUMIDIMapManager.cpp */; }; - 8B845C972E9DA85500AFF254 /* CAComponentDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845C0F2E9DA85500AFF254 /* CAComponentDescription.cpp */; }; - 8B845C982E9DA85500AFF254 /* CAHostTimeBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C102E9DA85500AFF254 /* CAHostTimeBase.h */; }; - 8B845C992E9DA85500AFF254 /* CADebugMacros.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845C112E9DA85500AFF254 /* CADebugMacros.cpp */; }; - 8B845C9A2E9DA85500AFF254 /* CAAudioFileFormats.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C122E9DA85500AFF254 /* CAAudioFileFormats.h */; }; - 8B845C9B2E9DA85500AFF254 /* CAAUMIDIMapManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C132E9DA85500AFF254 /* CAAUMIDIMapManager.h */; }; - 8B845C9C2E9DA85500AFF254 /* CACFDictionary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845C142E9DA85500AFF254 /* CACFDictionary.cpp */; }; - 8B845C9D2E9DA85500AFF254 /* CAMutex.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C152E9DA85500AFF254 /* CAMutex.h */; }; - 8B845C9E2E9DA85500AFF254 /* CACFString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845C162E9DA85500AFF254 /* CACFString.cpp */; }; - 8B845C9F2E9DA85500AFF254 /* CASettingsStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C172E9DA85500AFF254 /* CASettingsStorage.h */; }; - 8B845CA02E9DA85500AFF254 /* CADebugPrintf.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C182E9DA85500AFF254 /* CADebugPrintf.h */; }; - 8B845CA12E9DA85500AFF254 /* CAXException.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845C192E9DA85500AFF254 /* CAXException.cpp */; }; - 8B845CA22E9DA85500AFF254 /* CAAUMIDIMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C1A2E9DA85500AFF254 /* CAAUMIDIMap.h */; }; - 8B845CA32E9DA85500AFF254 /* AUParamInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C1B2E9DA85500AFF254 /* AUParamInfo.h */; }; - 8B845CA42E9DA85500AFF254 /* CABitOperations.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C1C2E9DA85500AFF254 /* CABitOperations.h */; }; - 8B845CA52E9DA85500AFF254 /* CACFPreferences.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845C1D2E9DA85500AFF254 /* CACFPreferences.cpp */; }; - 8B845CA62E9DA85500AFF254 /* CABundleLocker.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C1E2E9DA85500AFF254 /* CABundleLocker.h */; }; - 8B845CA72E9DA85500AFF254 /* CAPropertyAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C1F2E9DA85500AFF254 /* CAPropertyAddress.h */; }; - 8B845CA82E9DA85500AFF254 /* CAXException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C202E9DA85500AFF254 /* CAXException.h */; }; - 8B845CA92E9DA85500AFF254 /* CAAudioChannelLayout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845C212E9DA85500AFF254 /* CAAudioChannelLayout.cpp */; }; - 8B845CAA2E9DA85500AFF254 /* CAThreadSafeList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C222E9DA85500AFF254 /* CAThreadSafeList.h */; }; - 8B845CAB2E9DA85500AFF254 /* CAAudioUnitOutputCapturer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C232E9DA85500AFF254 /* CAAudioUnitOutputCapturer.h */; }; - 8B845CAC2E9DA85500AFF254 /* AUParamInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845C242E9DA85500AFF254 /* AUParamInfo.cpp */; }; - 8B845CAD2E9DA85500AFF254 /* CASharedLibrary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845C252E9DA85500AFF254 /* CASharedLibrary.cpp */; }; - 8B845CAE2E9DA85500AFF254 /* CAAUMIDIMap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845C262E9DA85500AFF254 /* CAAUMIDIMap.cpp */; }; - 8B845CAF2E9DA85500AFF254 /* CALogMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C272E9DA85500AFF254 /* CALogMacros.h */; }; - 8B845CB02E9DA85500AFF254 /* CACFMessagePort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845C282E9DA85500AFF254 /* CACFMessagePort.cpp */; }; - 8B845CB12E9DA85500AFF254 /* CARingBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C292E9DA85500AFF254 /* CARingBuffer.h */; }; - 8B845CB22E9DA85500AFF254 /* AUOutputBL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845C2A2E9DA85500AFF254 /* AUOutputBL.cpp */; }; - 8B845CB32E9DA85500AFF254 /* CABufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C2B2E9DA85500AFF254 /* CABufferList.h */; }; - 8B845CB42E9DA85500AFF254 /* CASharedLibrary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C2C2E9DA85500AFF254 /* CASharedLibrary.h */; }; - 8B845CB52E9DA85500AFF254 /* CACFData.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C2D2E9DA85500AFF254 /* CACFData.h */; }; - 8B845CB62E9DA85500AFF254 /* CAStreamRangedDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845C2E2E9DA85500AFF254 /* CAStreamRangedDescription.cpp */; }; - 8B845CB72E9DA85500AFF254 /* CAPThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845C2F2E9DA85500AFF254 /* CAPThread.cpp */; }; - 8B845CB82E9DA85500AFF254 /* CAAutoDisposer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C302E9DA85500AFF254 /* CAAutoDisposer.h */; }; - 8B845CB92E9DA85500AFF254 /* CACFPreferences.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C312E9DA85500AFF254 /* CACFPreferences.h */; }; - 8B845CBA2E9DA85500AFF254 /* CAVectorUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845C322E9DA85500AFF254 /* CAVectorUnit.cpp */; }; - 8B845CBB2E9DA85500AFF254 /* CAComponentDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C332E9DA85500AFF254 /* CAComponentDescription.h */; }; - 8B845CBC2E9DA85500AFF254 /* CADebugMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C342E9DA85500AFF254 /* CADebugMacros.h */; }; - 8B845CBD2E9DA85500AFF254 /* AUOutputBL.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C352E9DA85500AFF254 /* AUOutputBL.h */; }; - 8B845CBE2E9DA85500AFF254 /* CADebugPrintf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845C362E9DA85500AFF254 /* CADebugPrintf.cpp */; }; - 8B845CBF2E9DA85500AFF254 /* CARingBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845C372E9DA85500AFF254 /* CARingBuffer.cpp */; }; - 8B845CC02E9DA85500AFF254 /* CACFPlugIn.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C382E9DA85500AFF254 /* CACFPlugIn.h */; }; - 8B845CC12E9DA85500AFF254 /* CASettingsStorage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845C392E9DA85500AFF254 /* CASettingsStorage.cpp */; }; - 8B845CC22E9DA85500AFF254 /* CAMixMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C3A2E9DA85500AFF254 /* CAMixMap.h */; }; - 8B845CC32E9DA85500AFF254 /* CACFDistributedNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C3B2E9DA85500AFF254 /* CACFDistributedNotification.h */; }; - 8B845CC42E9DA85500AFF254 /* CAFilePathUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C3C2E9DA85500AFF254 /* CAFilePathUtils.h */; }; - 8B845CC52E9DA85500AFF254 /* CATink.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C3D2E9DA85500AFF254 /* CATink.h */; }; - 8B845CC62E9DA85500AFF254 /* CAStreamBasicDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845C3E2E9DA85500AFF254 /* CAStreamBasicDescription.cpp */; }; - 8B845CC72E9DA85500AFF254 /* CAAudioChannelLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C3F2E9DA85500AFF254 /* CAAudioChannelLayout.h */; }; - 8B845CC82E9DA85500AFF254 /* CAProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845C402E9DA85500AFF254 /* CAProcess.cpp */; }; - 8B845CC92E9DA85500AFF254 /* CAHostTimeBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845C412E9DA85500AFF254 /* CAHostTimeBase.cpp */; }; - 8B845CCA2E9DA85500AFF254 /* CAPersistence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845C422E9DA85500AFF254 /* CAPersistence.cpp */; }; - 8B845CCB2E9DA85500AFF254 /* CAAudioBufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845C432E9DA85500AFF254 /* CAAudioBufferList.cpp */; }; - 8B845CCC2E9DA85500AFF254 /* CAAudioTimeStamp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845C442E9DA85500AFF254 /* CAAudioTimeStamp.cpp */; }; - 8B845CCD2E9DA85500AFF254 /* CAVectorUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C452E9DA85500AFF254 /* CAVectorUnit.h */; }; - 8B845CCE2E9DA85500AFF254 /* CAByteOrder.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C462E9DA85500AFF254 /* CAByteOrder.h */; }; - 8B845CCF2E9DA85500AFF254 /* CACFArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C472E9DA85500AFF254 /* CACFArray.h */; }; - 8B845CD02E9DA85500AFF254 /* CAAtomicStack.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C482E9DA85500AFF254 /* CAAtomicStack.h */; }; - 8B845CD12E9DA85500AFF254 /* CAReferenceCounted.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C492E9DA85500AFF254 /* CAReferenceCounted.h */; }; - 8B845CD22E9DA85500AFF254 /* CACFMachPort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845C4A2E9DA85500AFF254 /* CACFMachPort.cpp */; }; - 8B845CD32E9DA85500AFF254 /* CABufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845C4B2E9DA85500AFF254 /* CABufferList.cpp */; }; - 8B845CD42E9DA85500AFF254 /* CAMutex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845C4C2E9DA85500AFF254 /* CAMutex.cpp */; }; - 8B845CD52E9DA85500AFF254 /* CADebugger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845C4D2E9DA85500AFF254 /* CADebugger.cpp */; }; - 8B845CD62E9DA85500AFF254 /* CABundleLocker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845C4E2E9DA85500AFF254 /* CABundleLocker.cpp */; }; - 8B845CD72E9DA85500AFF254 /* CAAudioFileFormats.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845C4F2E9DA85500AFF254 /* CAAudioFileFormats.cpp */; }; - 8B845CD82E9DA85500AFF254 /* CAMath.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C502E9DA85500AFF254 /* CAMath.h */; }; - 8B845CD92E9DA85500AFF254 /* CACFArray.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845C512E9DA85500AFF254 /* CACFArray.cpp */; }; - 8B845CDA2E9DA85500AFF254 /* CACFMessagePort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C522E9DA85500AFF254 /* CACFMessagePort.h */; }; - 8B845CDB2E9DA85500AFF254 /* CAAudioValueRange.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845C532E9DA85500AFF254 /* CAAudioValueRange.cpp */; }; - 8B845CDC2E9DA85500AFF254 /* CAAudioUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845C542E9DA85500AFF254 /* CAAudioUnit.cpp */; }; - 8B845CDD2E9DA85500AFF254 /* AUViewLocalizedStringKeys.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C582E9DA85500AFF254 /* AUViewLocalizedStringKeys.h */; }; - 8B845CDE2E9DA85500AFF254 /* ComponentBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845C5A2E9DA85500AFF254 /* ComponentBase.cpp */; }; - 8B845CDF2E9DA85500AFF254 /* AUScopeElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845C5B2E9DA85500AFF254 /* AUScopeElement.cpp */; }; - 8B845CE02E9DA85500AFF254 /* ComponentBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C5C2E9DA85500AFF254 /* ComponentBase.h */; }; - 8B845CE12E9DA85500AFF254 /* AUBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845C5D2E9DA85500AFF254 /* AUBase.cpp */; }; - 8B845CE22E9DA85500AFF254 /* AUInputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C5E2E9DA85500AFF254 /* AUInputElement.h */; }; - 8B845CE32E9DA85500AFF254 /* AUBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C5F2E9DA85500AFF254 /* AUBase.h */; }; - 8B845CE42E9DA85500AFF254 /* AUPlugInDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C602E9DA85500AFF254 /* AUPlugInDispatch.h */; }; - 8B845CE52E9DA85500AFF254 /* AUDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C612E9DA85500AFF254 /* AUDispatch.h */; }; - 8B845CE62E9DA85500AFF254 /* AUOutputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845C622E9DA85500AFF254 /* AUOutputElement.cpp */; }; - 8B845CE82E9DA85500AFF254 /* AUPlugInDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845C642E9DA85500AFF254 /* AUPlugInDispatch.cpp */; }; - 8B845CE92E9DA85500AFF254 /* AUOutputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C652E9DA85500AFF254 /* AUOutputElement.h */; }; - 8B845CEA2E9DA85500AFF254 /* AUDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845C662E9DA85500AFF254 /* AUDispatch.cpp */; }; - 8B845CEB2E9DA85500AFF254 /* AUScopeElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C672E9DA85500AFF254 /* AUScopeElement.h */; }; - 8B845CEC2E9DA85500AFF254 /* AUInputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845C682E9DA85500AFF254 /* AUInputElement.cpp */; }; - 8B845CED2E9DA85500AFF254 /* AUEffectBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845C6A2E9DA85500AFF254 /* AUEffectBase.cpp */; }; - 8B845CEE2E9DA85500AFF254 /* AUEffectBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C6B2E9DA85500AFF254 /* AUEffectBase.h */; }; - 8B845CEF2E9DA85500AFF254 /* AUTimestampGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C6D2E9DA85500AFF254 /* AUTimestampGenerator.h */; }; - 8B845CF02E9DA85500AFF254 /* AUBaseHelper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845C6E2E9DA85500AFF254 /* AUBaseHelper.cpp */; }; - 8B845CF12E9DA85500AFF254 /* AUSilentTimeout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C6F2E9DA85500AFF254 /* AUSilentTimeout.h */; }; - 8B845CF22E9DA85500AFF254 /* AUInputFormatConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C702E9DA85500AFF254 /* AUInputFormatConverter.h */; }; - 8B845CF32E9DA85500AFF254 /* AUTimestampGenerator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845C712E9DA85500AFF254 /* AUTimestampGenerator.cpp */; }; - 8B845CF42E9DA85500AFF254 /* AUBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845C722E9DA85500AFF254 /* AUBuffer.cpp */; }; - 8B845CF52E9DA85500AFF254 /* AUMIDIDefs.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C732E9DA85500AFF254 /* AUMIDIDefs.h */; }; - 8B845CF62E9DA85500AFF254 /* AUBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C742E9DA85500AFF254 /* AUBuffer.h */; }; - 8B845CF72E9DA85500AFF254 /* AUBaseHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845C752E9DA85500AFF254 /* AUBaseHelper.h */; }; + 8B7A483F2EB566A600B07840 /* CAExtAudioFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47B72EB566A600B07840 /* CAExtAudioFile.h */; }; + 8B7A48402EB566A600B07840 /* CACFMachPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47B82EB566A600B07840 /* CACFMachPort.h */; }; + 8B7A48412EB566A600B07840 /* CABool.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47B92EB566A600B07840 /* CABool.h */; }; + 8B7A48422EB566A600B07840 /* CAComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A47BA2EB566A600B07840 /* CAComponent.cpp */; }; + 8B7A48432EB566A600B07840 /* CADebugger.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47BB2EB566A600B07840 /* CADebugger.h */; }; + 8B7A48442EB566A600B07840 /* CACFNumber.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A47BC2EB566A600B07840 /* CACFNumber.cpp */; }; + 8B7A48452EB566A600B07840 /* CAGuard.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47BD2EB566A600B07840 /* CAGuard.h */; }; + 8B7A48462EB566A600B07840 /* CAAtomic.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47BE2EB566A600B07840 /* CAAtomic.h */; }; + 8B7A48472EB566A600B07840 /* CAStreamBasicDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47BF2EB566A600B07840 /* CAStreamBasicDescription.h */; }; + 8B7A48482EB566A600B07840 /* CACFObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47C02EB566A600B07840 /* CACFObject.h */; }; + 8B7A48492EB566A600B07840 /* CAStreamRangedDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47C12EB566A600B07840 /* CAStreamRangedDescription.h */; }; + 8B7A484A2EB566A600B07840 /* CATokenMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47C22EB566A600B07840 /* CATokenMap.h */; }; + 8B7A484B2EB566A600B07840 /* CAComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47C32EB566A600B07840 /* CAComponent.h */; }; + 8B7A484C2EB566A600B07840 /* CAAudioBufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47C42EB566A600B07840 /* CAAudioBufferList.h */; }; + 8B7A484D2EB566A600B07840 /* CAAudioUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47C52EB566A600B07840 /* CAAudioUnit.h */; }; + 8B7A484E2EB566A600B07840 /* CAAUParameter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47C62EB566A600B07840 /* CAAUParameter.h */; }; + 8B7A484F2EB566A600B07840 /* CAException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47C72EB566A600B07840 /* CAException.h */; }; + 8B7A48502EB566A600B07840 /* CAAUProcessor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A47C82EB566A600B07840 /* CAAUProcessor.cpp */; }; + 8B7A48512EB566A600B07840 /* CAAUProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47C92EB566A600B07840 /* CAAUProcessor.h */; }; + 8B7A48522EB566A600B07840 /* CAProcess.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47CA2EB566A600B07840 /* CAProcess.h */; }; + 8B7A48532EB566A600B07840 /* CACFDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47CB2EB566A600B07840 /* CACFDictionary.h */; }; + 8B7A48542EB566A600B07840 /* CAPThread.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47CC2EB566A600B07840 /* CAPThread.h */; }; + 8B7A48552EB566A600B07840 /* CAAUParameter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A47CD2EB566A600B07840 /* CAAUParameter.cpp */; }; + 8B7A48562EB566A600B07840 /* CAAudioTimeStamp.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47CE2EB566A600B07840 /* CAAudioTimeStamp.h */; }; + 8B7A48572EB566A600B07840 /* CAFilePathUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A47CF2EB566A600B07840 /* CAFilePathUtils.cpp */; }; + 8B7A48582EB566A600B07840 /* CAAudioValueRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47D02EB566A600B07840 /* CAAudioValueRange.h */; }; + 8B7A48592EB566A600B07840 /* CAVectorUnitTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47D12EB566A600B07840 /* CAVectorUnitTypes.h */; }; + 8B7A485A2EB566A600B07840 /* CAAudioChannelLayoutObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A47D22EB566A600B07840 /* CAAudioChannelLayoutObject.cpp */; }; + 8B7A485B2EB566A600B07840 /* CAGuard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A47D32EB566A600B07840 /* CAGuard.cpp */; }; + 8B7A485C2EB566A600B07840 /* CACFNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47D42EB566A600B07840 /* CACFNumber.h */; }; + 8B7A485D2EB566A600B07840 /* CACFDistributedNotification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A47D52EB566A600B07840 /* CACFDistributedNotification.cpp */; }; + 8B7A485E2EB566A600B07840 /* CACFString.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47D62EB566A600B07840 /* CACFString.h */; }; + 8B7A485F2EB566A600B07840 /* CAAUMIDIMapManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A47D72EB566A600B07840 /* CAAUMIDIMapManager.cpp */; }; + 8B7A48602EB566A600B07840 /* CAComponentDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A47D82EB566A600B07840 /* CAComponentDescription.cpp */; }; + 8B7A48612EB566A600B07840 /* CAHostTimeBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47D92EB566A600B07840 /* CAHostTimeBase.h */; }; + 8B7A48622EB566A600B07840 /* CADebugMacros.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A47DA2EB566A600B07840 /* CADebugMacros.cpp */; }; + 8B7A48632EB566A600B07840 /* CAAudioFileFormats.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47DB2EB566A600B07840 /* CAAudioFileFormats.h */; }; + 8B7A48642EB566A600B07840 /* CAAUMIDIMapManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47DC2EB566A600B07840 /* CAAUMIDIMapManager.h */; }; + 8B7A48652EB566A600B07840 /* CACFDictionary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A47DD2EB566A600B07840 /* CACFDictionary.cpp */; }; + 8B7A48662EB566A600B07840 /* CAMutex.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47DE2EB566A600B07840 /* CAMutex.h */; }; + 8B7A48672EB566A600B07840 /* CACFString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A47DF2EB566A600B07840 /* CACFString.cpp */; }; + 8B7A48682EB566A600B07840 /* CASettingsStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47E02EB566A600B07840 /* CASettingsStorage.h */; }; + 8B7A48692EB566A600B07840 /* CADebugPrintf.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47E12EB566A600B07840 /* CADebugPrintf.h */; }; + 8B7A486A2EB566A600B07840 /* CAXException.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A47E22EB566A600B07840 /* CAXException.cpp */; }; + 8B7A486B2EB566A600B07840 /* CAAUMIDIMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47E32EB566A600B07840 /* CAAUMIDIMap.h */; }; + 8B7A486C2EB566A600B07840 /* AUParamInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47E42EB566A600B07840 /* AUParamInfo.h */; }; + 8B7A486D2EB566A600B07840 /* CABitOperations.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47E52EB566A600B07840 /* CABitOperations.h */; }; + 8B7A486E2EB566A600B07840 /* CACFPreferences.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A47E62EB566A600B07840 /* CACFPreferences.cpp */; }; + 8B7A486F2EB566A600B07840 /* CABundleLocker.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47E72EB566A600B07840 /* CABundleLocker.h */; }; + 8B7A48702EB566A600B07840 /* CAPropertyAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47E82EB566A600B07840 /* CAPropertyAddress.h */; }; + 8B7A48712EB566A600B07840 /* CAXException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47E92EB566A600B07840 /* CAXException.h */; }; + 8B7A48722EB566A600B07840 /* CAAudioChannelLayout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A47EA2EB566A600B07840 /* CAAudioChannelLayout.cpp */; }; + 8B7A48732EB566A600B07840 /* CAThreadSafeList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47EB2EB566A600B07840 /* CAThreadSafeList.h */; }; + 8B7A48742EB566A600B07840 /* CAAudioUnitOutputCapturer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47EC2EB566A600B07840 /* CAAudioUnitOutputCapturer.h */; }; + 8B7A48752EB566A600B07840 /* AUParamInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A47ED2EB566A600B07840 /* AUParamInfo.cpp */; }; + 8B7A48762EB566A600B07840 /* CASharedLibrary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A47EE2EB566A600B07840 /* CASharedLibrary.cpp */; }; + 8B7A48772EB566A600B07840 /* CAAUMIDIMap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A47EF2EB566A600B07840 /* CAAUMIDIMap.cpp */; }; + 8B7A48782EB566A600B07840 /* CALogMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47F02EB566A600B07840 /* CALogMacros.h */; }; + 8B7A48792EB566A600B07840 /* CACFMessagePort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A47F12EB566A600B07840 /* CACFMessagePort.cpp */; }; + 8B7A487A2EB566A600B07840 /* CARingBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47F22EB566A600B07840 /* CARingBuffer.h */; }; + 8B7A487B2EB566A600B07840 /* AUOutputBL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A47F32EB566A600B07840 /* AUOutputBL.cpp */; }; + 8B7A487C2EB566A600B07840 /* CABufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47F42EB566A600B07840 /* CABufferList.h */; }; + 8B7A487D2EB566A600B07840 /* CASharedLibrary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47F52EB566A600B07840 /* CASharedLibrary.h */; }; + 8B7A487E2EB566A600B07840 /* CACFData.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47F62EB566A600B07840 /* CACFData.h */; }; + 8B7A487F2EB566A600B07840 /* CAStreamRangedDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A47F72EB566A600B07840 /* CAStreamRangedDescription.cpp */; }; + 8B7A48802EB566A600B07840 /* CAPThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A47F82EB566A600B07840 /* CAPThread.cpp */; }; + 8B7A48812EB566A600B07840 /* CAAutoDisposer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47F92EB566A600B07840 /* CAAutoDisposer.h */; }; + 8B7A48822EB566A600B07840 /* CACFPreferences.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47FA2EB566A600B07840 /* CACFPreferences.h */; }; + 8B7A48832EB566A600B07840 /* CAVectorUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A47FB2EB566A600B07840 /* CAVectorUnit.cpp */; }; + 8B7A48842EB566A600B07840 /* CAComponentDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47FC2EB566A600B07840 /* CAComponentDescription.h */; }; + 8B7A48852EB566A600B07840 /* CADebugMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47FD2EB566A600B07840 /* CADebugMacros.h */; }; + 8B7A48862EB566A600B07840 /* AUOutputBL.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A47FE2EB566A600B07840 /* AUOutputBL.h */; }; + 8B7A48872EB566A600B07840 /* CADebugPrintf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A47FF2EB566A600B07840 /* CADebugPrintf.cpp */; }; + 8B7A48882EB566A600B07840 /* CARingBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A48002EB566A600B07840 /* CARingBuffer.cpp */; }; + 8B7A48892EB566A600B07840 /* CACFPlugIn.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48012EB566A600B07840 /* CACFPlugIn.h */; }; + 8B7A488A2EB566A600B07840 /* CASettingsStorage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A48022EB566A600B07840 /* CASettingsStorage.cpp */; }; + 8B7A488B2EB566A600B07840 /* CAMixMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48032EB566A600B07840 /* CAMixMap.h */; }; + 8B7A488C2EB566A600B07840 /* CACFDistributedNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48042EB566A600B07840 /* CACFDistributedNotification.h */; }; + 8B7A488D2EB566A600B07840 /* CAFilePathUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48052EB566A600B07840 /* CAFilePathUtils.h */; }; + 8B7A488E2EB566A600B07840 /* CATink.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48062EB566A600B07840 /* CATink.h */; }; + 8B7A488F2EB566A600B07840 /* CAStreamBasicDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A48072EB566A600B07840 /* CAStreamBasicDescription.cpp */; }; + 8B7A48902EB566A600B07840 /* CAAudioChannelLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48082EB566A600B07840 /* CAAudioChannelLayout.h */; }; + 8B7A48912EB566A600B07840 /* CAProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A48092EB566A600B07840 /* CAProcess.cpp */; }; + 8B7A48922EB566A600B07840 /* CAHostTimeBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A480A2EB566A600B07840 /* CAHostTimeBase.cpp */; }; + 8B7A48932EB566A600B07840 /* CAPersistence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A480B2EB566A600B07840 /* CAPersistence.cpp */; }; + 8B7A48942EB566A600B07840 /* CAAudioBufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A480C2EB566A600B07840 /* CAAudioBufferList.cpp */; }; + 8B7A48952EB566A600B07840 /* CAAudioTimeStamp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A480D2EB566A600B07840 /* CAAudioTimeStamp.cpp */; }; + 8B7A48962EB566A600B07840 /* CAVectorUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A480E2EB566A600B07840 /* CAVectorUnit.h */; }; + 8B7A48972EB566A600B07840 /* CAByteOrder.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A480F2EB566A600B07840 /* CAByteOrder.h */; }; + 8B7A48982EB566A600B07840 /* CACFArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48102EB566A600B07840 /* CACFArray.h */; }; + 8B7A48992EB566A600B07840 /* CAAtomicStack.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48112EB566A600B07840 /* CAAtomicStack.h */; }; + 8B7A489A2EB566A600B07840 /* CAReferenceCounted.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48122EB566A600B07840 /* CAReferenceCounted.h */; }; + 8B7A489B2EB566A600B07840 /* CACFMachPort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A48132EB566A600B07840 /* CACFMachPort.cpp */; }; + 8B7A489C2EB566A600B07840 /* CABufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A48142EB566A600B07840 /* CABufferList.cpp */; }; + 8B7A489D2EB566A600B07840 /* CAMutex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A48152EB566A600B07840 /* CAMutex.cpp */; }; + 8B7A489E2EB566A600B07840 /* CADebugger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A48162EB566A600B07840 /* CADebugger.cpp */; }; + 8B7A489F2EB566A600B07840 /* CABundleLocker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A48172EB566A600B07840 /* CABundleLocker.cpp */; }; + 8B7A48A02EB566A600B07840 /* CAAudioFileFormats.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A48182EB566A600B07840 /* CAAudioFileFormats.cpp */; }; + 8B7A48A12EB566A600B07840 /* CAMath.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48192EB566A600B07840 /* CAMath.h */; }; + 8B7A48A22EB566A600B07840 /* CACFArray.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A481A2EB566A600B07840 /* CACFArray.cpp */; }; + 8B7A48A32EB566A600B07840 /* CACFMessagePort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A481B2EB566A600B07840 /* CACFMessagePort.h */; }; + 8B7A48A42EB566A600B07840 /* CAAudioValueRange.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A481C2EB566A600B07840 /* CAAudioValueRange.cpp */; }; + 8B7A48A52EB566A600B07840 /* CAAudioUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A481D2EB566A600B07840 /* CAAudioUnit.cpp */; }; + 8B7A48A62EB566A600B07840 /* AUViewLocalizedStringKeys.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48212EB566A600B07840 /* AUViewLocalizedStringKeys.h */; }; + 8B7A48A72EB566A600B07840 /* ComponentBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A48232EB566A600B07840 /* ComponentBase.cpp */; }; + 8B7A48A82EB566A600B07840 /* AUScopeElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A48242EB566A600B07840 /* AUScopeElement.cpp */; }; + 8B7A48A92EB566A600B07840 /* ComponentBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48252EB566A600B07840 /* ComponentBase.h */; }; + 8B7A48AA2EB566A600B07840 /* AUBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A48262EB566A600B07840 /* AUBase.cpp */; }; + 8B7A48AB2EB566A600B07840 /* AUInputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48272EB566A600B07840 /* AUInputElement.h */; }; + 8B7A48AC2EB566A600B07840 /* AUBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48282EB566A600B07840 /* AUBase.h */; }; + 8B7A48AD2EB566A600B07840 /* AUPlugInDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48292EB566A600B07840 /* AUPlugInDispatch.h */; }; + 8B7A48AE2EB566A600B07840 /* AUDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A482A2EB566A600B07840 /* AUDispatch.h */; }; + 8B7A48AF2EB566A600B07840 /* AUOutputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A482B2EB566A600B07840 /* AUOutputElement.cpp */; }; + 8B7A48B12EB566A600B07840 /* AUPlugInDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A482D2EB566A600B07840 /* AUPlugInDispatch.cpp */; }; + 8B7A48B22EB566A600B07840 /* AUOutputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A482E2EB566A600B07840 /* AUOutputElement.h */; }; + 8B7A48B32EB566A600B07840 /* AUDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A482F2EB566A600B07840 /* AUDispatch.cpp */; }; + 8B7A48B42EB566A600B07840 /* AUScopeElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48302EB566A600B07840 /* AUScopeElement.h */; }; + 8B7A48B52EB566A600B07840 /* AUInputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A48312EB566A600B07840 /* AUInputElement.cpp */; }; + 8B7A48B62EB566A600B07840 /* AUEffectBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A48332EB566A600B07840 /* AUEffectBase.cpp */; }; + 8B7A48B72EB566A600B07840 /* AUEffectBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48342EB566A600B07840 /* AUEffectBase.h */; }; + 8B7A48B82EB566A600B07840 /* AUTimestampGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48362EB566A600B07840 /* AUTimestampGenerator.h */; }; + 8B7A48B92EB566A600B07840 /* AUBaseHelper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A48372EB566A600B07840 /* AUBaseHelper.cpp */; }; + 8B7A48BA2EB566A600B07840 /* AUSilentTimeout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48382EB566A600B07840 /* AUSilentTimeout.h */; }; + 8B7A48BB2EB566A600B07840 /* AUInputFormatConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48392EB566A600B07840 /* AUInputFormatConverter.h */; }; + 8B7A48BC2EB566A600B07840 /* AUTimestampGenerator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A483A2EB566A600B07840 /* AUTimestampGenerator.cpp */; }; + 8B7A48BD2EB566A600B07840 /* AUBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A483B2EB566A600B07840 /* AUBuffer.cpp */; }; + 8B7A48BE2EB566A600B07840 /* AUMIDIDefs.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A483C2EB566A600B07840 /* AUMIDIDefs.h */; }; + 8B7A48BF2EB566A600B07840 /* AUBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A483D2EB566A600B07840 /* AUBuffer.h */; }; + 8B7A48C02EB566A600B07840 /* AUBaseHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A483E2EB566A600B07840 /* AUBaseHelper.h */; }; 8BA05A6B0720730100365D66 /* ConsoleX2Channel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* ConsoleX2Channel.cpp */; }; 8BA05A6E0720730100365D66 /* ConsoleX2ChannelVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* ConsoleX2ChannelVersion.h */; }; 8BA05AFC072074E100365D66 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8BA05AF9072074E100365D66 /* AudioToolbox.framework */; }; @@ -147,137 +147,137 @@ /* Begin PBXFileReference section */ 8B5C7FBF076FB2C200A15F61 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = ""; }; - 8B845BEE2E9DA85500AFF254 /* CAExtAudioFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAExtAudioFile.h; sourceTree = ""; }; - 8B845BEF2E9DA85500AFF254 /* CACFMachPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMachPort.h; sourceTree = ""; }; - 8B845BF02E9DA85500AFF254 /* CABool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABool.h; sourceTree = ""; }; - 8B845BF12E9DA85500AFF254 /* CAComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponent.cpp; sourceTree = ""; }; - 8B845BF22E9DA85500AFF254 /* CADebugger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugger.h; sourceTree = ""; }; - 8B845BF32E9DA85500AFF254 /* CACFNumber.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFNumber.cpp; sourceTree = ""; }; - 8B845BF42E9DA85500AFF254 /* CAGuard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAGuard.h; sourceTree = ""; }; - 8B845BF52E9DA85500AFF254 /* CAAtomic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomic.h; sourceTree = ""; }; - 8B845BF62E9DA85500AFF254 /* CAStreamBasicDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamBasicDescription.h; sourceTree = ""; }; - 8B845BF72E9DA85500AFF254 /* CACFObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFObject.h; sourceTree = ""; }; - 8B845BF82E9DA85500AFF254 /* CAStreamRangedDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamRangedDescription.h; sourceTree = ""; }; - 8B845BF92E9DA85500AFF254 /* CATokenMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATokenMap.h; sourceTree = ""; }; - 8B845BFA2E9DA85500AFF254 /* CAComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponent.h; sourceTree = ""; }; - 8B845BFB2E9DA85500AFF254 /* CAAudioBufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioBufferList.h; sourceTree = ""; }; - 8B845BFC2E9DA85500AFF254 /* CAAudioUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnit.h; sourceTree = ""; }; - 8B845BFD2E9DA85500AFF254 /* CAAUParameter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUParameter.h; sourceTree = ""; }; - 8B845BFE2E9DA85500AFF254 /* CAException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAException.h; sourceTree = ""; }; - 8B845BFF2E9DA85500AFF254 /* CAAUProcessor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUProcessor.cpp; sourceTree = ""; }; - 8B845C002E9DA85500AFF254 /* CAAUProcessor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUProcessor.h; sourceTree = ""; }; - 8B845C012E9DA85500AFF254 /* CAProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAProcess.h; sourceTree = ""; }; - 8B845C022E9DA85500AFF254 /* CACFDictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDictionary.h; sourceTree = ""; }; - 8B845C032E9DA85500AFF254 /* CAPThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPThread.h; sourceTree = ""; }; - 8B845C042E9DA85500AFF254 /* CAAUParameter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUParameter.cpp; sourceTree = ""; }; - 8B845C052E9DA85500AFF254 /* CAAudioTimeStamp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioTimeStamp.h; sourceTree = ""; }; - 8B845C062E9DA85500AFF254 /* CAFilePathUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAFilePathUtils.cpp; sourceTree = ""; }; - 8B845C072E9DA85500AFF254 /* CAAudioValueRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioValueRange.h; sourceTree = ""; }; - 8B845C082E9DA85500AFF254 /* CAVectorUnitTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnitTypes.h; sourceTree = ""; }; - 8B845C092E9DA85500AFF254 /* CAAudioChannelLayoutObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayoutObject.cpp; sourceTree = ""; }; - 8B845C0A2E9DA85500AFF254 /* CAGuard.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAGuard.cpp; sourceTree = ""; }; - 8B845C0B2E9DA85500AFF254 /* CACFNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFNumber.h; sourceTree = ""; }; - 8B845C0C2E9DA85500AFF254 /* CACFDistributedNotification.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDistributedNotification.cpp; sourceTree = ""; }; - 8B845C0D2E9DA85500AFF254 /* CACFString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFString.h; sourceTree = ""; }; - 8B845C0E2E9DA85500AFF254 /* CAAUMIDIMapManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMapManager.cpp; sourceTree = ""; }; - 8B845C0F2E9DA85500AFF254 /* CAComponentDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponentDescription.cpp; sourceTree = ""; }; - 8B845C102E9DA85500AFF254 /* CAHostTimeBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAHostTimeBase.h; sourceTree = ""; }; - 8B845C112E9DA85500AFF254 /* CADebugMacros.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugMacros.cpp; sourceTree = ""; }; - 8B845C122E9DA85500AFF254 /* CAAudioFileFormats.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioFileFormats.h; sourceTree = ""; }; - 8B845C132E9DA85500AFF254 /* CAAUMIDIMapManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMapManager.h; sourceTree = ""; }; - 8B845C142E9DA85500AFF254 /* CACFDictionary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDictionary.cpp; sourceTree = ""; }; - 8B845C152E9DA85500AFF254 /* CAMutex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMutex.h; sourceTree = ""; }; - 8B845C162E9DA85500AFF254 /* CACFString.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFString.cpp; sourceTree = ""; }; - 8B845C172E9DA85500AFF254 /* CASettingsStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASettingsStorage.h; sourceTree = ""; }; - 8B845C182E9DA85500AFF254 /* CADebugPrintf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugPrintf.h; sourceTree = ""; }; - 8B845C192E9DA85500AFF254 /* CAXException.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAXException.cpp; sourceTree = ""; }; - 8B845C1A2E9DA85500AFF254 /* CAAUMIDIMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMap.h; sourceTree = ""; }; - 8B845C1B2E9DA85500AFF254 /* AUParamInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUParamInfo.h; sourceTree = ""; }; - 8B845C1C2E9DA85500AFF254 /* CABitOperations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABitOperations.h; sourceTree = ""; }; - 8B845C1D2E9DA85500AFF254 /* CACFPreferences.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFPreferences.cpp; sourceTree = ""; }; - 8B845C1E2E9DA85500AFF254 /* CABundleLocker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABundleLocker.h; sourceTree = ""; }; - 8B845C1F2E9DA85500AFF254 /* CAPropertyAddress.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPropertyAddress.h; sourceTree = ""; }; - 8B845C202E9DA85500AFF254 /* CAXException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAXException.h; sourceTree = ""; }; - 8B845C212E9DA85500AFF254 /* CAAudioChannelLayout.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayout.cpp; sourceTree = ""; }; - 8B845C222E9DA85500AFF254 /* CAThreadSafeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAThreadSafeList.h; sourceTree = ""; }; - 8B845C232E9DA85500AFF254 /* CAAudioUnitOutputCapturer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnitOutputCapturer.h; sourceTree = ""; }; - 8B845C242E9DA85500AFF254 /* AUParamInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUParamInfo.cpp; sourceTree = ""; }; - 8B845C252E9DA85500AFF254 /* CASharedLibrary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASharedLibrary.cpp; sourceTree = ""; }; - 8B845C262E9DA85500AFF254 /* CAAUMIDIMap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMap.cpp; sourceTree = ""; }; - 8B845C272E9DA85500AFF254 /* CALogMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CALogMacros.h; sourceTree = ""; }; - 8B845C282E9DA85500AFF254 /* CACFMessagePort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMessagePort.cpp; sourceTree = ""; }; - 8B845C292E9DA85500AFF254 /* CARingBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CARingBuffer.h; sourceTree = ""; }; - 8B845C2A2E9DA85500AFF254 /* AUOutputBL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputBL.cpp; sourceTree = ""; }; - 8B845C2B2E9DA85500AFF254 /* CABufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABufferList.h; sourceTree = ""; }; - 8B845C2C2E9DA85500AFF254 /* CASharedLibrary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASharedLibrary.h; sourceTree = ""; }; - 8B845C2D2E9DA85500AFF254 /* CACFData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFData.h; sourceTree = ""; }; - 8B845C2E2E9DA85500AFF254 /* CAStreamRangedDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamRangedDescription.cpp; sourceTree = ""; }; - 8B845C2F2E9DA85500AFF254 /* CAPThread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPThread.cpp; sourceTree = ""; }; - 8B845C302E9DA85500AFF254 /* CAAutoDisposer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAutoDisposer.h; sourceTree = ""; }; - 8B845C312E9DA85500AFF254 /* CACFPreferences.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPreferences.h; sourceTree = ""; }; - 8B845C322E9DA85500AFF254 /* CAVectorUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAVectorUnit.cpp; sourceTree = ""; }; - 8B845C332E9DA85500AFF254 /* CAComponentDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponentDescription.h; sourceTree = ""; }; - 8B845C342E9DA85500AFF254 /* CADebugMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugMacros.h; sourceTree = ""; }; - 8B845C352E9DA85500AFF254 /* AUOutputBL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputBL.h; sourceTree = ""; }; - 8B845C362E9DA85500AFF254 /* CADebugPrintf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugPrintf.cpp; sourceTree = ""; }; - 8B845C372E9DA85500AFF254 /* CARingBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CARingBuffer.cpp; sourceTree = ""; }; - 8B845C382E9DA85500AFF254 /* CACFPlugIn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPlugIn.h; sourceTree = ""; }; - 8B845C392E9DA85500AFF254 /* CASettingsStorage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASettingsStorage.cpp; sourceTree = ""; }; - 8B845C3A2E9DA85500AFF254 /* CAMixMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMixMap.h; sourceTree = ""; }; - 8B845C3B2E9DA85500AFF254 /* CACFDistributedNotification.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDistributedNotification.h; sourceTree = ""; }; - 8B845C3C2E9DA85500AFF254 /* CAFilePathUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAFilePathUtils.h; sourceTree = ""; }; - 8B845C3D2E9DA85500AFF254 /* CATink.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATink.h; sourceTree = ""; }; - 8B845C3E2E9DA85500AFF254 /* CAStreamBasicDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamBasicDescription.cpp; sourceTree = ""; }; - 8B845C3F2E9DA85500AFF254 /* CAAudioChannelLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioChannelLayout.h; sourceTree = ""; }; - 8B845C402E9DA85500AFF254 /* CAProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAProcess.cpp; sourceTree = ""; }; - 8B845C412E9DA85500AFF254 /* CAHostTimeBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAHostTimeBase.cpp; sourceTree = ""; }; - 8B845C422E9DA85500AFF254 /* CAPersistence.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPersistence.cpp; sourceTree = ""; }; - 8B845C432E9DA85500AFF254 /* CAAudioBufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioBufferList.cpp; sourceTree = ""; }; - 8B845C442E9DA85500AFF254 /* CAAudioTimeStamp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioTimeStamp.cpp; sourceTree = ""; }; - 8B845C452E9DA85500AFF254 /* CAVectorUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnit.h; sourceTree = ""; }; - 8B845C462E9DA85500AFF254 /* CAByteOrder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAByteOrder.h; sourceTree = ""; }; - 8B845C472E9DA85500AFF254 /* CACFArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFArray.h; sourceTree = ""; }; - 8B845C482E9DA85500AFF254 /* CAAtomicStack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomicStack.h; sourceTree = ""; }; - 8B845C492E9DA85500AFF254 /* CAReferenceCounted.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAReferenceCounted.h; sourceTree = ""; }; - 8B845C4A2E9DA85500AFF254 /* CACFMachPort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMachPort.cpp; sourceTree = ""; }; - 8B845C4B2E9DA85500AFF254 /* CABufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABufferList.cpp; sourceTree = ""; }; - 8B845C4C2E9DA85500AFF254 /* CAMutex.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAMutex.cpp; sourceTree = ""; }; - 8B845C4D2E9DA85500AFF254 /* CADebugger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugger.cpp; sourceTree = ""; }; - 8B845C4E2E9DA85500AFF254 /* CABundleLocker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABundleLocker.cpp; sourceTree = ""; }; - 8B845C4F2E9DA85500AFF254 /* CAAudioFileFormats.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioFileFormats.cpp; sourceTree = ""; }; - 8B845C502E9DA85500AFF254 /* CAMath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMath.h; sourceTree = ""; }; - 8B845C512E9DA85500AFF254 /* CACFArray.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFArray.cpp; sourceTree = ""; }; - 8B845C522E9DA85500AFF254 /* CACFMessagePort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMessagePort.h; sourceTree = ""; }; - 8B845C532E9DA85500AFF254 /* CAAudioValueRange.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioValueRange.cpp; sourceTree = ""; }; - 8B845C542E9DA85500AFF254 /* CAAudioUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioUnit.cpp; sourceTree = ""; }; - 8B845C582E9DA85500AFF254 /* AUViewLocalizedStringKeys.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUViewLocalizedStringKeys.h; sourceTree = ""; }; - 8B845C5A2E9DA85500AFF254 /* ComponentBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ComponentBase.cpp; sourceTree = ""; }; - 8B845C5B2E9DA85500AFF254 /* AUScopeElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUScopeElement.cpp; sourceTree = ""; }; - 8B845C5C2E9DA85500AFF254 /* ComponentBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ComponentBase.h; sourceTree = ""; }; - 8B845C5D2E9DA85500AFF254 /* AUBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBase.cpp; sourceTree = ""; }; - 8B845C5E2E9DA85500AFF254 /* AUInputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputElement.h; sourceTree = ""; }; - 8B845C5F2E9DA85500AFF254 /* AUBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBase.h; sourceTree = ""; }; - 8B845C602E9DA85500AFF254 /* AUPlugInDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUPlugInDispatch.h; sourceTree = ""; }; - 8B845C612E9DA85500AFF254 /* AUDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUDispatch.h; sourceTree = ""; }; - 8B845C622E9DA85500AFF254 /* AUOutputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputElement.cpp; sourceTree = ""; }; - 8B845C632E9DA85500AFF254 /* AUResources.r */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; path = AUResources.r; sourceTree = ""; }; - 8B845C642E9DA85500AFF254 /* AUPlugInDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUPlugInDispatch.cpp; sourceTree = ""; }; - 8B845C652E9DA85500AFF254 /* AUOutputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputElement.h; sourceTree = ""; }; - 8B845C662E9DA85500AFF254 /* AUDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUDispatch.cpp; sourceTree = ""; }; - 8B845C672E9DA85500AFF254 /* AUScopeElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUScopeElement.h; sourceTree = ""; }; - 8B845C682E9DA85500AFF254 /* AUInputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUInputElement.cpp; sourceTree = ""; }; - 8B845C6A2E9DA85500AFF254 /* AUEffectBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUEffectBase.cpp; sourceTree = ""; }; - 8B845C6B2E9DA85500AFF254 /* AUEffectBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUEffectBase.h; sourceTree = ""; }; - 8B845C6D2E9DA85500AFF254 /* AUTimestampGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUTimestampGenerator.h; sourceTree = ""; }; - 8B845C6E2E9DA85500AFF254 /* AUBaseHelper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBaseHelper.cpp; sourceTree = ""; }; - 8B845C6F2E9DA85500AFF254 /* AUSilentTimeout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUSilentTimeout.h; sourceTree = ""; }; - 8B845C702E9DA85500AFF254 /* AUInputFormatConverter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputFormatConverter.h; sourceTree = ""; }; - 8B845C712E9DA85500AFF254 /* AUTimestampGenerator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUTimestampGenerator.cpp; sourceTree = ""; }; - 8B845C722E9DA85500AFF254 /* AUBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBuffer.cpp; sourceTree = ""; }; - 8B845C732E9DA85500AFF254 /* AUMIDIDefs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUMIDIDefs.h; sourceTree = ""; }; - 8B845C742E9DA85500AFF254 /* AUBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBuffer.h; sourceTree = ""; }; - 8B845C752E9DA85500AFF254 /* AUBaseHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBaseHelper.h; sourceTree = ""; }; - 8B845CF82E9DA8F000AFF254 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; + 8B7A47B72EB566A600B07840 /* CAExtAudioFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAExtAudioFile.h; sourceTree = ""; }; + 8B7A47B82EB566A600B07840 /* CACFMachPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMachPort.h; sourceTree = ""; }; + 8B7A47B92EB566A600B07840 /* CABool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABool.h; sourceTree = ""; }; + 8B7A47BA2EB566A600B07840 /* CAComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponent.cpp; sourceTree = ""; }; + 8B7A47BB2EB566A600B07840 /* CADebugger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugger.h; sourceTree = ""; }; + 8B7A47BC2EB566A600B07840 /* CACFNumber.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFNumber.cpp; sourceTree = ""; }; + 8B7A47BD2EB566A600B07840 /* CAGuard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAGuard.h; sourceTree = ""; }; + 8B7A47BE2EB566A600B07840 /* CAAtomic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomic.h; sourceTree = ""; }; + 8B7A47BF2EB566A600B07840 /* CAStreamBasicDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamBasicDescription.h; sourceTree = ""; }; + 8B7A47C02EB566A600B07840 /* CACFObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFObject.h; sourceTree = ""; }; + 8B7A47C12EB566A600B07840 /* CAStreamRangedDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamRangedDescription.h; sourceTree = ""; }; + 8B7A47C22EB566A600B07840 /* CATokenMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATokenMap.h; sourceTree = ""; }; + 8B7A47C32EB566A600B07840 /* CAComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponent.h; sourceTree = ""; }; + 8B7A47C42EB566A600B07840 /* CAAudioBufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioBufferList.h; sourceTree = ""; }; + 8B7A47C52EB566A600B07840 /* CAAudioUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnit.h; sourceTree = ""; }; + 8B7A47C62EB566A600B07840 /* CAAUParameter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUParameter.h; sourceTree = ""; }; + 8B7A47C72EB566A600B07840 /* CAException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAException.h; sourceTree = ""; }; + 8B7A47C82EB566A600B07840 /* CAAUProcessor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUProcessor.cpp; sourceTree = ""; }; + 8B7A47C92EB566A600B07840 /* CAAUProcessor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUProcessor.h; sourceTree = ""; }; + 8B7A47CA2EB566A600B07840 /* CAProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAProcess.h; sourceTree = ""; }; + 8B7A47CB2EB566A600B07840 /* CACFDictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDictionary.h; sourceTree = ""; }; + 8B7A47CC2EB566A600B07840 /* CAPThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPThread.h; sourceTree = ""; }; + 8B7A47CD2EB566A600B07840 /* CAAUParameter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUParameter.cpp; sourceTree = ""; }; + 8B7A47CE2EB566A600B07840 /* CAAudioTimeStamp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioTimeStamp.h; sourceTree = ""; }; + 8B7A47CF2EB566A600B07840 /* CAFilePathUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAFilePathUtils.cpp; sourceTree = ""; }; + 8B7A47D02EB566A600B07840 /* CAAudioValueRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioValueRange.h; sourceTree = ""; }; + 8B7A47D12EB566A600B07840 /* CAVectorUnitTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnitTypes.h; sourceTree = ""; }; + 8B7A47D22EB566A600B07840 /* CAAudioChannelLayoutObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayoutObject.cpp; sourceTree = ""; }; + 8B7A47D32EB566A600B07840 /* CAGuard.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAGuard.cpp; sourceTree = ""; }; + 8B7A47D42EB566A600B07840 /* CACFNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFNumber.h; sourceTree = ""; }; + 8B7A47D52EB566A600B07840 /* CACFDistributedNotification.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDistributedNotification.cpp; sourceTree = ""; }; + 8B7A47D62EB566A600B07840 /* CACFString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFString.h; sourceTree = ""; }; + 8B7A47D72EB566A600B07840 /* CAAUMIDIMapManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMapManager.cpp; sourceTree = ""; }; + 8B7A47D82EB566A600B07840 /* CAComponentDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponentDescription.cpp; sourceTree = ""; }; + 8B7A47D92EB566A600B07840 /* CAHostTimeBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAHostTimeBase.h; sourceTree = ""; }; + 8B7A47DA2EB566A600B07840 /* CADebugMacros.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugMacros.cpp; sourceTree = ""; }; + 8B7A47DB2EB566A600B07840 /* CAAudioFileFormats.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioFileFormats.h; sourceTree = ""; }; + 8B7A47DC2EB566A600B07840 /* CAAUMIDIMapManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMapManager.h; sourceTree = ""; }; + 8B7A47DD2EB566A600B07840 /* CACFDictionary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDictionary.cpp; sourceTree = ""; }; + 8B7A47DE2EB566A600B07840 /* CAMutex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMutex.h; sourceTree = ""; }; + 8B7A47DF2EB566A600B07840 /* CACFString.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFString.cpp; sourceTree = ""; }; + 8B7A47E02EB566A600B07840 /* CASettingsStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASettingsStorage.h; sourceTree = ""; }; + 8B7A47E12EB566A600B07840 /* CADebugPrintf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugPrintf.h; sourceTree = ""; }; + 8B7A47E22EB566A600B07840 /* CAXException.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAXException.cpp; sourceTree = ""; }; + 8B7A47E32EB566A600B07840 /* CAAUMIDIMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMap.h; sourceTree = ""; }; + 8B7A47E42EB566A600B07840 /* AUParamInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUParamInfo.h; sourceTree = ""; }; + 8B7A47E52EB566A600B07840 /* CABitOperations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABitOperations.h; sourceTree = ""; }; + 8B7A47E62EB566A600B07840 /* CACFPreferences.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFPreferences.cpp; sourceTree = ""; }; + 8B7A47E72EB566A600B07840 /* CABundleLocker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABundleLocker.h; sourceTree = ""; }; + 8B7A47E82EB566A600B07840 /* CAPropertyAddress.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPropertyAddress.h; sourceTree = ""; }; + 8B7A47E92EB566A600B07840 /* CAXException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAXException.h; sourceTree = ""; }; + 8B7A47EA2EB566A600B07840 /* CAAudioChannelLayout.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayout.cpp; sourceTree = ""; }; + 8B7A47EB2EB566A600B07840 /* CAThreadSafeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAThreadSafeList.h; sourceTree = ""; }; + 8B7A47EC2EB566A600B07840 /* CAAudioUnitOutputCapturer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnitOutputCapturer.h; sourceTree = ""; }; + 8B7A47ED2EB566A600B07840 /* AUParamInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUParamInfo.cpp; sourceTree = ""; }; + 8B7A47EE2EB566A600B07840 /* CASharedLibrary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASharedLibrary.cpp; sourceTree = ""; }; + 8B7A47EF2EB566A600B07840 /* CAAUMIDIMap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMap.cpp; sourceTree = ""; }; + 8B7A47F02EB566A600B07840 /* CALogMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CALogMacros.h; sourceTree = ""; }; + 8B7A47F12EB566A600B07840 /* CACFMessagePort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMessagePort.cpp; sourceTree = ""; }; + 8B7A47F22EB566A600B07840 /* CARingBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CARingBuffer.h; sourceTree = ""; }; + 8B7A47F32EB566A600B07840 /* AUOutputBL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputBL.cpp; sourceTree = ""; }; + 8B7A47F42EB566A600B07840 /* CABufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABufferList.h; sourceTree = ""; }; + 8B7A47F52EB566A600B07840 /* CASharedLibrary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASharedLibrary.h; sourceTree = ""; }; + 8B7A47F62EB566A600B07840 /* CACFData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFData.h; sourceTree = ""; }; + 8B7A47F72EB566A600B07840 /* CAStreamRangedDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamRangedDescription.cpp; sourceTree = ""; }; + 8B7A47F82EB566A600B07840 /* CAPThread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPThread.cpp; sourceTree = ""; }; + 8B7A47F92EB566A600B07840 /* CAAutoDisposer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAutoDisposer.h; sourceTree = ""; }; + 8B7A47FA2EB566A600B07840 /* CACFPreferences.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPreferences.h; sourceTree = ""; }; + 8B7A47FB2EB566A600B07840 /* CAVectorUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAVectorUnit.cpp; sourceTree = ""; }; + 8B7A47FC2EB566A600B07840 /* CAComponentDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponentDescription.h; sourceTree = ""; }; + 8B7A47FD2EB566A600B07840 /* CADebugMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugMacros.h; sourceTree = ""; }; + 8B7A47FE2EB566A600B07840 /* AUOutputBL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputBL.h; sourceTree = ""; }; + 8B7A47FF2EB566A600B07840 /* CADebugPrintf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugPrintf.cpp; sourceTree = ""; }; + 8B7A48002EB566A600B07840 /* CARingBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CARingBuffer.cpp; sourceTree = ""; }; + 8B7A48012EB566A600B07840 /* CACFPlugIn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPlugIn.h; sourceTree = ""; }; + 8B7A48022EB566A600B07840 /* CASettingsStorage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASettingsStorage.cpp; sourceTree = ""; }; + 8B7A48032EB566A600B07840 /* CAMixMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMixMap.h; sourceTree = ""; }; + 8B7A48042EB566A600B07840 /* CACFDistributedNotification.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDistributedNotification.h; sourceTree = ""; }; + 8B7A48052EB566A600B07840 /* CAFilePathUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAFilePathUtils.h; sourceTree = ""; }; + 8B7A48062EB566A600B07840 /* CATink.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATink.h; sourceTree = ""; }; + 8B7A48072EB566A600B07840 /* CAStreamBasicDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamBasicDescription.cpp; sourceTree = ""; }; + 8B7A48082EB566A600B07840 /* CAAudioChannelLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioChannelLayout.h; sourceTree = ""; }; + 8B7A48092EB566A600B07840 /* CAProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAProcess.cpp; sourceTree = ""; }; + 8B7A480A2EB566A600B07840 /* CAHostTimeBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAHostTimeBase.cpp; sourceTree = ""; }; + 8B7A480B2EB566A600B07840 /* CAPersistence.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPersistence.cpp; sourceTree = ""; }; + 8B7A480C2EB566A600B07840 /* CAAudioBufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioBufferList.cpp; sourceTree = ""; }; + 8B7A480D2EB566A600B07840 /* CAAudioTimeStamp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioTimeStamp.cpp; sourceTree = ""; }; + 8B7A480E2EB566A600B07840 /* CAVectorUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnit.h; sourceTree = ""; }; + 8B7A480F2EB566A600B07840 /* CAByteOrder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAByteOrder.h; sourceTree = ""; }; + 8B7A48102EB566A600B07840 /* CACFArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFArray.h; sourceTree = ""; }; + 8B7A48112EB566A600B07840 /* CAAtomicStack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomicStack.h; sourceTree = ""; }; + 8B7A48122EB566A600B07840 /* CAReferenceCounted.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAReferenceCounted.h; sourceTree = ""; }; + 8B7A48132EB566A600B07840 /* CACFMachPort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMachPort.cpp; sourceTree = ""; }; + 8B7A48142EB566A600B07840 /* CABufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABufferList.cpp; sourceTree = ""; }; + 8B7A48152EB566A600B07840 /* CAMutex.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAMutex.cpp; sourceTree = ""; }; + 8B7A48162EB566A600B07840 /* CADebugger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugger.cpp; sourceTree = ""; }; + 8B7A48172EB566A600B07840 /* CABundleLocker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABundleLocker.cpp; sourceTree = ""; }; + 8B7A48182EB566A600B07840 /* CAAudioFileFormats.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioFileFormats.cpp; sourceTree = ""; }; + 8B7A48192EB566A600B07840 /* CAMath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMath.h; sourceTree = ""; }; + 8B7A481A2EB566A600B07840 /* CACFArray.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFArray.cpp; sourceTree = ""; }; + 8B7A481B2EB566A600B07840 /* CACFMessagePort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMessagePort.h; sourceTree = ""; }; + 8B7A481C2EB566A600B07840 /* CAAudioValueRange.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioValueRange.cpp; sourceTree = ""; }; + 8B7A481D2EB566A600B07840 /* CAAudioUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioUnit.cpp; sourceTree = ""; }; + 8B7A48212EB566A600B07840 /* AUViewLocalizedStringKeys.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUViewLocalizedStringKeys.h; sourceTree = ""; }; + 8B7A48232EB566A600B07840 /* ComponentBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ComponentBase.cpp; sourceTree = ""; }; + 8B7A48242EB566A600B07840 /* AUScopeElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUScopeElement.cpp; sourceTree = ""; }; + 8B7A48252EB566A600B07840 /* ComponentBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ComponentBase.h; sourceTree = ""; }; + 8B7A48262EB566A600B07840 /* AUBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBase.cpp; sourceTree = ""; }; + 8B7A48272EB566A600B07840 /* AUInputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputElement.h; sourceTree = ""; }; + 8B7A48282EB566A600B07840 /* AUBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBase.h; sourceTree = ""; }; + 8B7A48292EB566A600B07840 /* AUPlugInDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUPlugInDispatch.h; sourceTree = ""; }; + 8B7A482A2EB566A600B07840 /* AUDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUDispatch.h; sourceTree = ""; }; + 8B7A482B2EB566A600B07840 /* AUOutputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputElement.cpp; sourceTree = ""; }; + 8B7A482C2EB566A600B07840 /* AUResources.r */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; path = AUResources.r; sourceTree = ""; }; + 8B7A482D2EB566A600B07840 /* AUPlugInDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUPlugInDispatch.cpp; sourceTree = ""; }; + 8B7A482E2EB566A600B07840 /* AUOutputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputElement.h; sourceTree = ""; }; + 8B7A482F2EB566A600B07840 /* AUDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUDispatch.cpp; sourceTree = ""; }; + 8B7A48302EB566A600B07840 /* AUScopeElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUScopeElement.h; sourceTree = ""; }; + 8B7A48312EB566A600B07840 /* AUInputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUInputElement.cpp; sourceTree = ""; }; + 8B7A48332EB566A600B07840 /* AUEffectBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUEffectBase.cpp; sourceTree = ""; }; + 8B7A48342EB566A600B07840 /* AUEffectBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUEffectBase.h; sourceTree = ""; }; + 8B7A48362EB566A600B07840 /* AUTimestampGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUTimestampGenerator.h; sourceTree = ""; }; + 8B7A48372EB566A600B07840 /* AUBaseHelper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBaseHelper.cpp; sourceTree = ""; }; + 8B7A48382EB566A600B07840 /* AUSilentTimeout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUSilentTimeout.h; sourceTree = ""; }; + 8B7A48392EB566A600B07840 /* AUInputFormatConverter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputFormatConverter.h; sourceTree = ""; }; + 8B7A483A2EB566A600B07840 /* AUTimestampGenerator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUTimestampGenerator.cpp; sourceTree = ""; }; + 8B7A483B2EB566A600B07840 /* AUBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBuffer.cpp; sourceTree = ""; }; + 8B7A483C2EB566A600B07840 /* AUMIDIDefs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUMIDIDefs.h; sourceTree = ""; }; + 8B7A483D2EB566A600B07840 /* AUBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBuffer.h; sourceTree = ""; }; + 8B7A483E2EB566A600B07840 /* AUBaseHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBaseHelper.h; sourceTree = ""; }; + 8B7A48C12EB5681800B07840 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; 8BA05A660720730100365D66 /* ConsoleX2Channel.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ConsoleX2Channel.cpp; sourceTree = ""; }; 8BA05A670720730100365D66 /* ConsoleX2Channel.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = ConsoleX2Channel.exp; sourceTree = ""; }; 8BA05A680720730100365D66 /* ConsoleX2Channel.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = ConsoleX2Channel.r; sourceTree = ""; }; @@ -338,7 +338,7 @@ 08FB77ADFE841716C02AAC07 /* Source */ = { isa = PBXGroup; children = ( - 8B845BEC2E9DA85500AFF254 /* CA_SDK */, + 8B7A47B52EB566A600B07840 /* CA_SDK */, 8BA05A56072072A900365D66 /* AU Source */, ); name = Source; @@ -352,196 +352,196 @@ name = Products; sourceTree = ""; }; - 8B845BEC2E9DA85500AFF254 /* CA_SDK */ = { + 8B7A47B52EB566A600B07840 /* CA_SDK */ = { isa = PBXGroup; children = ( - 8B845BED2E9DA85500AFF254 /* PublicUtility */, - 8B845C552E9DA85500AFF254 /* AudioUnits */, + 8B7A47B62EB566A600B07840 /* PublicUtility */, + 8B7A481E2EB566A600B07840 /* AudioUnits */, ); name = CA_SDK; path = ../../../../CA_SDK; sourceTree = ""; }; - 8B845BED2E9DA85500AFF254 /* PublicUtility */ = { + 8B7A47B62EB566A600B07840 /* PublicUtility */ = { isa = PBXGroup; children = ( - 8B845BEE2E9DA85500AFF254 /* CAExtAudioFile.h */, - 8B845BEF2E9DA85500AFF254 /* CACFMachPort.h */, - 8B845BF02E9DA85500AFF254 /* CABool.h */, - 8B845BF12E9DA85500AFF254 /* CAComponent.cpp */, - 8B845BF22E9DA85500AFF254 /* CADebugger.h */, - 8B845BF32E9DA85500AFF254 /* CACFNumber.cpp */, - 8B845BF42E9DA85500AFF254 /* CAGuard.h */, - 8B845BF52E9DA85500AFF254 /* CAAtomic.h */, - 8B845BF62E9DA85500AFF254 /* CAStreamBasicDescription.h */, - 8B845BF72E9DA85500AFF254 /* CACFObject.h */, - 8B845BF82E9DA85500AFF254 /* CAStreamRangedDescription.h */, - 8B845BF92E9DA85500AFF254 /* CATokenMap.h */, - 8B845BFA2E9DA85500AFF254 /* CAComponent.h */, - 8B845BFB2E9DA85500AFF254 /* CAAudioBufferList.h */, - 8B845BFC2E9DA85500AFF254 /* CAAudioUnit.h */, - 8B845BFD2E9DA85500AFF254 /* CAAUParameter.h */, - 8B845BFE2E9DA85500AFF254 /* CAException.h */, - 8B845BFF2E9DA85500AFF254 /* CAAUProcessor.cpp */, - 8B845C002E9DA85500AFF254 /* CAAUProcessor.h */, - 8B845C012E9DA85500AFF254 /* CAProcess.h */, - 8B845C022E9DA85500AFF254 /* CACFDictionary.h */, - 8B845C032E9DA85500AFF254 /* CAPThread.h */, - 8B845C042E9DA85500AFF254 /* CAAUParameter.cpp */, - 8B845C052E9DA85500AFF254 /* CAAudioTimeStamp.h */, - 8B845C062E9DA85500AFF254 /* CAFilePathUtils.cpp */, - 8B845C072E9DA85500AFF254 /* CAAudioValueRange.h */, - 8B845C082E9DA85500AFF254 /* CAVectorUnitTypes.h */, - 8B845C092E9DA85500AFF254 /* CAAudioChannelLayoutObject.cpp */, - 8B845C0A2E9DA85500AFF254 /* CAGuard.cpp */, - 8B845C0B2E9DA85500AFF254 /* CACFNumber.h */, - 8B845C0C2E9DA85500AFF254 /* CACFDistributedNotification.cpp */, - 8B845C0D2E9DA85500AFF254 /* CACFString.h */, - 8B845C0E2E9DA85500AFF254 /* CAAUMIDIMapManager.cpp */, - 8B845C0F2E9DA85500AFF254 /* CAComponentDescription.cpp */, - 8B845C102E9DA85500AFF254 /* CAHostTimeBase.h */, - 8B845C112E9DA85500AFF254 /* CADebugMacros.cpp */, - 8B845C122E9DA85500AFF254 /* CAAudioFileFormats.h */, - 8B845C132E9DA85500AFF254 /* CAAUMIDIMapManager.h */, - 8B845C142E9DA85500AFF254 /* CACFDictionary.cpp */, - 8B845C152E9DA85500AFF254 /* CAMutex.h */, - 8B845C162E9DA85500AFF254 /* CACFString.cpp */, - 8B845C172E9DA85500AFF254 /* CASettingsStorage.h */, - 8B845C182E9DA85500AFF254 /* CADebugPrintf.h */, - 8B845C192E9DA85500AFF254 /* CAXException.cpp */, - 8B845C1A2E9DA85500AFF254 /* CAAUMIDIMap.h */, - 8B845C1B2E9DA85500AFF254 /* AUParamInfo.h */, - 8B845C1C2E9DA85500AFF254 /* CABitOperations.h */, - 8B845C1D2E9DA85500AFF254 /* CACFPreferences.cpp */, - 8B845C1E2E9DA85500AFF254 /* CABundleLocker.h */, - 8B845C1F2E9DA85500AFF254 /* CAPropertyAddress.h */, - 8B845C202E9DA85500AFF254 /* CAXException.h */, - 8B845C212E9DA85500AFF254 /* CAAudioChannelLayout.cpp */, - 8B845C222E9DA85500AFF254 /* CAThreadSafeList.h */, - 8B845C232E9DA85500AFF254 /* CAAudioUnitOutputCapturer.h */, - 8B845C242E9DA85500AFF254 /* AUParamInfo.cpp */, - 8B845C252E9DA85500AFF254 /* CASharedLibrary.cpp */, - 8B845C262E9DA85500AFF254 /* CAAUMIDIMap.cpp */, - 8B845C272E9DA85500AFF254 /* CALogMacros.h */, - 8B845C282E9DA85500AFF254 /* CACFMessagePort.cpp */, - 8B845C292E9DA85500AFF254 /* CARingBuffer.h */, - 8B845C2A2E9DA85500AFF254 /* AUOutputBL.cpp */, - 8B845C2B2E9DA85500AFF254 /* CABufferList.h */, - 8B845C2C2E9DA85500AFF254 /* CASharedLibrary.h */, - 8B845C2D2E9DA85500AFF254 /* CACFData.h */, - 8B845C2E2E9DA85500AFF254 /* CAStreamRangedDescription.cpp */, - 8B845C2F2E9DA85500AFF254 /* CAPThread.cpp */, - 8B845C302E9DA85500AFF254 /* CAAutoDisposer.h */, - 8B845C312E9DA85500AFF254 /* CACFPreferences.h */, - 8B845C322E9DA85500AFF254 /* CAVectorUnit.cpp */, - 8B845C332E9DA85500AFF254 /* CAComponentDescription.h */, - 8B845C342E9DA85500AFF254 /* CADebugMacros.h */, - 8B845C352E9DA85500AFF254 /* AUOutputBL.h */, - 8B845C362E9DA85500AFF254 /* CADebugPrintf.cpp */, - 8B845C372E9DA85500AFF254 /* CARingBuffer.cpp */, - 8B845C382E9DA85500AFF254 /* CACFPlugIn.h */, - 8B845C392E9DA85500AFF254 /* CASettingsStorage.cpp */, - 8B845C3A2E9DA85500AFF254 /* CAMixMap.h */, - 8B845C3B2E9DA85500AFF254 /* CACFDistributedNotification.h */, - 8B845C3C2E9DA85500AFF254 /* CAFilePathUtils.h */, - 8B845C3D2E9DA85500AFF254 /* CATink.h */, - 8B845C3E2E9DA85500AFF254 /* CAStreamBasicDescription.cpp */, - 8B845C3F2E9DA85500AFF254 /* CAAudioChannelLayout.h */, - 8B845C402E9DA85500AFF254 /* CAProcess.cpp */, - 8B845C412E9DA85500AFF254 /* CAHostTimeBase.cpp */, - 8B845C422E9DA85500AFF254 /* CAPersistence.cpp */, - 8B845C432E9DA85500AFF254 /* CAAudioBufferList.cpp */, - 8B845C442E9DA85500AFF254 /* CAAudioTimeStamp.cpp */, - 8B845C452E9DA85500AFF254 /* CAVectorUnit.h */, - 8B845C462E9DA85500AFF254 /* CAByteOrder.h */, - 8B845C472E9DA85500AFF254 /* CACFArray.h */, - 8B845C482E9DA85500AFF254 /* CAAtomicStack.h */, - 8B845C492E9DA85500AFF254 /* CAReferenceCounted.h */, - 8B845C4A2E9DA85500AFF254 /* CACFMachPort.cpp */, - 8B845C4B2E9DA85500AFF254 /* CABufferList.cpp */, - 8B845C4C2E9DA85500AFF254 /* CAMutex.cpp */, - 8B845C4D2E9DA85500AFF254 /* CADebugger.cpp */, - 8B845C4E2E9DA85500AFF254 /* CABundleLocker.cpp */, - 8B845C4F2E9DA85500AFF254 /* CAAudioFileFormats.cpp */, - 8B845C502E9DA85500AFF254 /* CAMath.h */, - 8B845C512E9DA85500AFF254 /* CACFArray.cpp */, - 8B845C522E9DA85500AFF254 /* CACFMessagePort.h */, - 8B845C532E9DA85500AFF254 /* CAAudioValueRange.cpp */, - 8B845C542E9DA85500AFF254 /* CAAudioUnit.cpp */, + 8B7A47B72EB566A600B07840 /* CAExtAudioFile.h */, + 8B7A47B82EB566A600B07840 /* CACFMachPort.h */, + 8B7A47B92EB566A600B07840 /* CABool.h */, + 8B7A47BA2EB566A600B07840 /* CAComponent.cpp */, + 8B7A47BB2EB566A600B07840 /* CADebugger.h */, + 8B7A47BC2EB566A600B07840 /* CACFNumber.cpp */, + 8B7A47BD2EB566A600B07840 /* CAGuard.h */, + 8B7A47BE2EB566A600B07840 /* CAAtomic.h */, + 8B7A47BF2EB566A600B07840 /* CAStreamBasicDescription.h */, + 8B7A47C02EB566A600B07840 /* CACFObject.h */, + 8B7A47C12EB566A600B07840 /* CAStreamRangedDescription.h */, + 8B7A47C22EB566A600B07840 /* CATokenMap.h */, + 8B7A47C32EB566A600B07840 /* CAComponent.h */, + 8B7A47C42EB566A600B07840 /* CAAudioBufferList.h */, + 8B7A47C52EB566A600B07840 /* CAAudioUnit.h */, + 8B7A47C62EB566A600B07840 /* CAAUParameter.h */, + 8B7A47C72EB566A600B07840 /* CAException.h */, + 8B7A47C82EB566A600B07840 /* CAAUProcessor.cpp */, + 8B7A47C92EB566A600B07840 /* CAAUProcessor.h */, + 8B7A47CA2EB566A600B07840 /* CAProcess.h */, + 8B7A47CB2EB566A600B07840 /* CACFDictionary.h */, + 8B7A47CC2EB566A600B07840 /* CAPThread.h */, + 8B7A47CD2EB566A600B07840 /* CAAUParameter.cpp */, + 8B7A47CE2EB566A600B07840 /* CAAudioTimeStamp.h */, + 8B7A47CF2EB566A600B07840 /* CAFilePathUtils.cpp */, + 8B7A47D02EB566A600B07840 /* CAAudioValueRange.h */, + 8B7A47D12EB566A600B07840 /* CAVectorUnitTypes.h */, + 8B7A47D22EB566A600B07840 /* CAAudioChannelLayoutObject.cpp */, + 8B7A47D32EB566A600B07840 /* CAGuard.cpp */, + 8B7A47D42EB566A600B07840 /* CACFNumber.h */, + 8B7A47D52EB566A600B07840 /* CACFDistributedNotification.cpp */, + 8B7A47D62EB566A600B07840 /* CACFString.h */, + 8B7A47D72EB566A600B07840 /* CAAUMIDIMapManager.cpp */, + 8B7A47D82EB566A600B07840 /* CAComponentDescription.cpp */, + 8B7A47D92EB566A600B07840 /* CAHostTimeBase.h */, + 8B7A47DA2EB566A600B07840 /* CADebugMacros.cpp */, + 8B7A47DB2EB566A600B07840 /* CAAudioFileFormats.h */, + 8B7A47DC2EB566A600B07840 /* CAAUMIDIMapManager.h */, + 8B7A47DD2EB566A600B07840 /* CACFDictionary.cpp */, + 8B7A47DE2EB566A600B07840 /* CAMutex.h */, + 8B7A47DF2EB566A600B07840 /* CACFString.cpp */, + 8B7A47E02EB566A600B07840 /* CASettingsStorage.h */, + 8B7A47E12EB566A600B07840 /* CADebugPrintf.h */, + 8B7A47E22EB566A600B07840 /* CAXException.cpp */, + 8B7A47E32EB566A600B07840 /* CAAUMIDIMap.h */, + 8B7A47E42EB566A600B07840 /* AUParamInfo.h */, + 8B7A47E52EB566A600B07840 /* CABitOperations.h */, + 8B7A47E62EB566A600B07840 /* CACFPreferences.cpp */, + 8B7A47E72EB566A600B07840 /* CABundleLocker.h */, + 8B7A47E82EB566A600B07840 /* CAPropertyAddress.h */, + 8B7A47E92EB566A600B07840 /* CAXException.h */, + 8B7A47EA2EB566A600B07840 /* CAAudioChannelLayout.cpp */, + 8B7A47EB2EB566A600B07840 /* CAThreadSafeList.h */, + 8B7A47EC2EB566A600B07840 /* CAAudioUnitOutputCapturer.h */, + 8B7A47ED2EB566A600B07840 /* AUParamInfo.cpp */, + 8B7A47EE2EB566A600B07840 /* CASharedLibrary.cpp */, + 8B7A47EF2EB566A600B07840 /* CAAUMIDIMap.cpp */, + 8B7A47F02EB566A600B07840 /* CALogMacros.h */, + 8B7A47F12EB566A600B07840 /* CACFMessagePort.cpp */, + 8B7A47F22EB566A600B07840 /* CARingBuffer.h */, + 8B7A47F32EB566A600B07840 /* AUOutputBL.cpp */, + 8B7A47F42EB566A600B07840 /* CABufferList.h */, + 8B7A47F52EB566A600B07840 /* CASharedLibrary.h */, + 8B7A47F62EB566A600B07840 /* CACFData.h */, + 8B7A47F72EB566A600B07840 /* CAStreamRangedDescription.cpp */, + 8B7A47F82EB566A600B07840 /* CAPThread.cpp */, + 8B7A47F92EB566A600B07840 /* CAAutoDisposer.h */, + 8B7A47FA2EB566A600B07840 /* CACFPreferences.h */, + 8B7A47FB2EB566A600B07840 /* CAVectorUnit.cpp */, + 8B7A47FC2EB566A600B07840 /* CAComponentDescription.h */, + 8B7A47FD2EB566A600B07840 /* CADebugMacros.h */, + 8B7A47FE2EB566A600B07840 /* AUOutputBL.h */, + 8B7A47FF2EB566A600B07840 /* CADebugPrintf.cpp */, + 8B7A48002EB566A600B07840 /* CARingBuffer.cpp */, + 8B7A48012EB566A600B07840 /* CACFPlugIn.h */, + 8B7A48022EB566A600B07840 /* CASettingsStorage.cpp */, + 8B7A48032EB566A600B07840 /* CAMixMap.h */, + 8B7A48042EB566A600B07840 /* CACFDistributedNotification.h */, + 8B7A48052EB566A600B07840 /* CAFilePathUtils.h */, + 8B7A48062EB566A600B07840 /* CATink.h */, + 8B7A48072EB566A600B07840 /* CAStreamBasicDescription.cpp */, + 8B7A48082EB566A600B07840 /* CAAudioChannelLayout.h */, + 8B7A48092EB566A600B07840 /* CAProcess.cpp */, + 8B7A480A2EB566A600B07840 /* CAHostTimeBase.cpp */, + 8B7A480B2EB566A600B07840 /* CAPersistence.cpp */, + 8B7A480C2EB566A600B07840 /* CAAudioBufferList.cpp */, + 8B7A480D2EB566A600B07840 /* CAAudioTimeStamp.cpp */, + 8B7A480E2EB566A600B07840 /* CAVectorUnit.h */, + 8B7A480F2EB566A600B07840 /* CAByteOrder.h */, + 8B7A48102EB566A600B07840 /* CACFArray.h */, + 8B7A48112EB566A600B07840 /* CAAtomicStack.h */, + 8B7A48122EB566A600B07840 /* CAReferenceCounted.h */, + 8B7A48132EB566A600B07840 /* CACFMachPort.cpp */, + 8B7A48142EB566A600B07840 /* CABufferList.cpp */, + 8B7A48152EB566A600B07840 /* CAMutex.cpp */, + 8B7A48162EB566A600B07840 /* CADebugger.cpp */, + 8B7A48172EB566A600B07840 /* CABundleLocker.cpp */, + 8B7A48182EB566A600B07840 /* CAAudioFileFormats.cpp */, + 8B7A48192EB566A600B07840 /* CAMath.h */, + 8B7A481A2EB566A600B07840 /* CACFArray.cpp */, + 8B7A481B2EB566A600B07840 /* CACFMessagePort.h */, + 8B7A481C2EB566A600B07840 /* CAAudioValueRange.cpp */, + 8B7A481D2EB566A600B07840 /* CAAudioUnit.cpp */, ); path = PublicUtility; sourceTree = ""; }; - 8B845C552E9DA85500AFF254 /* AudioUnits */ = { + 8B7A481E2EB566A600B07840 /* AudioUnits */ = { isa = PBXGroup; children = ( - 8B845C562E9DA85500AFF254 /* AUPublic */, + 8B7A481F2EB566A600B07840 /* AUPublic */, ); path = AudioUnits; sourceTree = ""; }; - 8B845C562E9DA85500AFF254 /* AUPublic */ = { + 8B7A481F2EB566A600B07840 /* AUPublic */ = { isa = PBXGroup; children = ( - 8B845C572E9DA85500AFF254 /* AUViewBase */, - 8B845C592E9DA85500AFF254 /* AUBase */, - 8B845C692E9DA85500AFF254 /* OtherBases */, - 8B845C6C2E9DA85500AFF254 /* Utility */, + 8B7A48202EB566A600B07840 /* AUViewBase */, + 8B7A48222EB566A600B07840 /* AUBase */, + 8B7A48322EB566A600B07840 /* OtherBases */, + 8B7A48352EB566A600B07840 /* Utility */, ); path = AUPublic; sourceTree = ""; }; - 8B845C572E9DA85500AFF254 /* AUViewBase */ = { + 8B7A48202EB566A600B07840 /* AUViewBase */ = { isa = PBXGroup; children = ( - 8B845C582E9DA85500AFF254 /* AUViewLocalizedStringKeys.h */, + 8B7A48212EB566A600B07840 /* AUViewLocalizedStringKeys.h */, ); path = AUViewBase; sourceTree = ""; }; - 8B845C592E9DA85500AFF254 /* AUBase */ = { + 8B7A48222EB566A600B07840 /* AUBase */ = { isa = PBXGroup; children = ( - 8B845C5A2E9DA85500AFF254 /* ComponentBase.cpp */, - 8B845C5B2E9DA85500AFF254 /* AUScopeElement.cpp */, - 8B845C5C2E9DA85500AFF254 /* ComponentBase.h */, - 8B845C5D2E9DA85500AFF254 /* AUBase.cpp */, - 8B845C5E2E9DA85500AFF254 /* AUInputElement.h */, - 8B845C5F2E9DA85500AFF254 /* AUBase.h */, - 8B845C602E9DA85500AFF254 /* AUPlugInDispatch.h */, - 8B845C612E9DA85500AFF254 /* AUDispatch.h */, - 8B845C622E9DA85500AFF254 /* AUOutputElement.cpp */, - 8B845C632E9DA85500AFF254 /* AUResources.r */, - 8B845C642E9DA85500AFF254 /* AUPlugInDispatch.cpp */, - 8B845C652E9DA85500AFF254 /* AUOutputElement.h */, - 8B845C662E9DA85500AFF254 /* AUDispatch.cpp */, - 8B845C672E9DA85500AFF254 /* AUScopeElement.h */, - 8B845C682E9DA85500AFF254 /* AUInputElement.cpp */, + 8B7A48232EB566A600B07840 /* ComponentBase.cpp */, + 8B7A48242EB566A600B07840 /* AUScopeElement.cpp */, + 8B7A48252EB566A600B07840 /* ComponentBase.h */, + 8B7A48262EB566A600B07840 /* AUBase.cpp */, + 8B7A48272EB566A600B07840 /* AUInputElement.h */, + 8B7A48282EB566A600B07840 /* AUBase.h */, + 8B7A48292EB566A600B07840 /* AUPlugInDispatch.h */, + 8B7A482A2EB566A600B07840 /* AUDispatch.h */, + 8B7A482B2EB566A600B07840 /* AUOutputElement.cpp */, + 8B7A482C2EB566A600B07840 /* AUResources.r */, + 8B7A482D2EB566A600B07840 /* AUPlugInDispatch.cpp */, + 8B7A482E2EB566A600B07840 /* AUOutputElement.h */, + 8B7A482F2EB566A600B07840 /* AUDispatch.cpp */, + 8B7A48302EB566A600B07840 /* AUScopeElement.h */, + 8B7A48312EB566A600B07840 /* AUInputElement.cpp */, ); path = AUBase; sourceTree = ""; }; - 8B845C692E9DA85500AFF254 /* OtherBases */ = { + 8B7A48322EB566A600B07840 /* OtherBases */ = { isa = PBXGroup; children = ( - 8B845C6A2E9DA85500AFF254 /* AUEffectBase.cpp */, - 8B845C6B2E9DA85500AFF254 /* AUEffectBase.h */, + 8B7A48332EB566A600B07840 /* AUEffectBase.cpp */, + 8B7A48342EB566A600B07840 /* AUEffectBase.h */, ); path = OtherBases; sourceTree = ""; }; - 8B845C6C2E9DA85500AFF254 /* Utility */ = { + 8B7A48352EB566A600B07840 /* Utility */ = { isa = PBXGroup; children = ( - 8B845C6D2E9DA85500AFF254 /* AUTimestampGenerator.h */, - 8B845C6E2E9DA85500AFF254 /* AUBaseHelper.cpp */, - 8B845C6F2E9DA85500AFF254 /* AUSilentTimeout.h */, - 8B845C702E9DA85500AFF254 /* AUInputFormatConverter.h */, - 8B845C712E9DA85500AFF254 /* AUTimestampGenerator.cpp */, - 8B845C722E9DA85500AFF254 /* AUBuffer.cpp */, - 8B845C732E9DA85500AFF254 /* AUMIDIDefs.h */, - 8B845C742E9DA85500AFF254 /* AUBuffer.h */, - 8B845C752E9DA85500AFF254 /* AUBaseHelper.h */, + 8B7A48362EB566A600B07840 /* AUTimestampGenerator.h */, + 8B7A48372EB566A600B07840 /* AUBaseHelper.cpp */, + 8B7A48382EB566A600B07840 /* AUSilentTimeout.h */, + 8B7A48392EB566A600B07840 /* AUInputFormatConverter.h */, + 8B7A483A2EB566A600B07840 /* AUTimestampGenerator.cpp */, + 8B7A483B2EB566A600B07840 /* AUBuffer.cpp */, + 8B7A483C2EB566A600B07840 /* AUMIDIDefs.h */, + 8B7A483D2EB566A600B07840 /* AUBuffer.h */, + 8B7A483E2EB566A600B07840 /* AUBaseHelper.h */, ); path = Utility; sourceTree = ""; @@ -565,84 +565,84 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 8B845CA62E9DA85500AFF254 /* CABundleLocker.h in Headers */, - 8B845CC72E9DA85500AFF254 /* CAAudioChannelLayout.h in Headers */, - 8B845CBD2E9DA85500AFF254 /* AUOutputBL.h in Headers */, - 8B845C982E9DA85500AFF254 /* CAHostTimeBase.h in Headers */, - 8B845CE02E9DA85500AFF254 /* ComponentBase.h in Headers */, - 8B845CD02E9DA85500AFF254 /* CAAtomicStack.h in Headers */, - 8B845C8D2E9DA85500AFF254 /* CAAudioTimeStamp.h in Headers */, - 8B845CAA2E9DA85500AFF254 /* CAThreadSafeList.h in Headers */, - 8B845C852E9DA85500AFF254 /* CAAUParameter.h in Headers */, - 8B845CF72E9DA85500AFF254 /* AUBaseHelper.h in Headers */, - 8B845CEF2E9DA85500AFF254 /* AUTimestampGenerator.h in Headers */, - 8B845CA02E9DA85500AFF254 /* CADebugPrintf.h in Headers */, - 8B845CDA2E9DA85500AFF254 /* CACFMessagePort.h in Headers */, - 8B845C882E9DA85500AFF254 /* CAAUProcessor.h in Headers */, - 8B845C842E9DA85500AFF254 /* CAAudioUnit.h in Headers */, - 8B845CDD2E9DA85500AFF254 /* AUViewLocalizedStringKeys.h in Headers */, - 8B845CC32E9DA85500AFF254 /* CACFDistributedNotification.h in Headers */, - 8B845C822E9DA85500AFF254 /* CAComponent.h in Headers */, - 8B845C902E9DA85500AFF254 /* CAVectorUnitTypes.h in Headers */, + 8B7A486F2EB566A600B07840 /* CABundleLocker.h in Headers */, + 8B7A48902EB566A600B07840 /* CAAudioChannelLayout.h in Headers */, + 8B7A48862EB566A600B07840 /* AUOutputBL.h in Headers */, + 8B7A48612EB566A600B07840 /* CAHostTimeBase.h in Headers */, + 8B7A48A92EB566A600B07840 /* ComponentBase.h in Headers */, + 8B7A48992EB566A600B07840 /* CAAtomicStack.h in Headers */, + 8B7A48562EB566A600B07840 /* CAAudioTimeStamp.h in Headers */, + 8B7A48732EB566A600B07840 /* CAThreadSafeList.h in Headers */, + 8B7A484E2EB566A600B07840 /* CAAUParameter.h in Headers */, + 8B7A48C02EB566A600B07840 /* AUBaseHelper.h in Headers */, + 8B7A48B82EB566A600B07840 /* AUTimestampGenerator.h in Headers */, + 8B7A48692EB566A600B07840 /* CADebugPrintf.h in Headers */, + 8B7A48A32EB566A600B07840 /* CACFMessagePort.h in Headers */, + 8B7A48512EB566A600B07840 /* CAAUProcessor.h in Headers */, + 8B7A484D2EB566A600B07840 /* CAAudioUnit.h in Headers */, + 8B7A48A62EB566A600B07840 /* AUViewLocalizedStringKeys.h in Headers */, + 8B7A488C2EB566A600B07840 /* CACFDistributedNotification.h in Headers */, + 8B7A484B2EB566A600B07840 /* CAComponent.h in Headers */, + 8B7A48592EB566A600B07840 /* CAVectorUnitTypes.h in Headers */, 8BA05A6E0720730100365D66 /* ConsoleX2ChannelVersion.h in Headers */, - 8B845CC42E9DA85500AFF254 /* CAFilePathUtils.h in Headers */, - 8B845C862E9DA85500AFF254 /* CAException.h in Headers */, - 8B845C7D2E9DA85500AFF254 /* CAAtomic.h in Headers */, - 8B845C7C2E9DA85500AFF254 /* CAGuard.h in Headers */, - 8B845CE22E9DA85500AFF254 /* AUInputElement.h in Headers */, - 8B845CB92E9DA85500AFF254 /* CACFPreferences.h in Headers */, - 8B845CCE2E9DA85500AFF254 /* CAByteOrder.h in Headers */, - 8B845CB12E9DA85500AFF254 /* CARingBuffer.h in Headers */, - 8B845C782E9DA85500AFF254 /* CABool.h in Headers */, - 8B845C9D2E9DA85500AFF254 /* CAMutex.h in Headers */, - 8B845CE32E9DA85500AFF254 /* AUBase.h in Headers */, + 8B7A488D2EB566A600B07840 /* CAFilePathUtils.h in Headers */, + 8B7A484F2EB566A600B07840 /* CAException.h in Headers */, + 8B7A48462EB566A600B07840 /* CAAtomic.h in Headers */, + 8B7A48452EB566A600B07840 /* CAGuard.h in Headers */, + 8B7A48AB2EB566A600B07840 /* AUInputElement.h in Headers */, + 8B7A48822EB566A600B07840 /* CACFPreferences.h in Headers */, + 8B7A48972EB566A600B07840 /* CAByteOrder.h in Headers */, + 8B7A487A2EB566A600B07840 /* CARingBuffer.h in Headers */, + 8B7A48412EB566A600B07840 /* CABool.h in Headers */, + 8B7A48662EB566A600B07840 /* CAMutex.h in Headers */, + 8B7A48AC2EB566A600B07840 /* AUBase.h in Headers */, 8BC6025C073B072D006C4272 /* ConsoleX2Channel.h in Headers */, - 8B845C952E9DA85500AFF254 /* CACFString.h in Headers */, - 8B845CB42E9DA85500AFF254 /* CASharedLibrary.h in Headers */, - 8B845C812E9DA85500AFF254 /* CATokenMap.h in Headers */, - 8B845C762E9DA85500AFF254 /* CAExtAudioFile.h in Headers */, - 8B845C8B2E9DA85500AFF254 /* CAPThread.h in Headers */, - 8B845CA72E9DA85500AFF254 /* CAPropertyAddress.h in Headers */, - 8B845CD12E9DA85500AFF254 /* CAReferenceCounted.h in Headers */, - 8B845CF62E9DA85500AFF254 /* AUBuffer.h in Headers */, - 8B845CD82E9DA85500AFF254 /* CAMath.h in Headers */, - 8B845CB82E9DA85500AFF254 /* CAAutoDisposer.h in Headers */, - 8B845C7F2E9DA85500AFF254 /* CACFObject.h in Headers */, - 8B845C9F2E9DA85500AFF254 /* CASettingsStorage.h in Headers */, - 8B845CA82E9DA85500AFF254 /* CAXException.h in Headers */, - 8B845CC52E9DA85500AFF254 /* CATink.h in Headers */, - 8B845CF22E9DA85500AFF254 /* AUInputFormatConverter.h in Headers */, - 8B845CCD2E9DA85500AFF254 /* CAVectorUnit.h in Headers */, - 8B845C892E9DA85500AFF254 /* CAProcess.h in Headers */, - 8B845C8F2E9DA85500AFF254 /* CAAudioValueRange.h in Headers */, - 8B845CA42E9DA85500AFF254 /* CABitOperations.h in Headers */, - 8B845C9A2E9DA85500AFF254 /* CAAudioFileFormats.h in Headers */, - 8B845C932E9DA85500AFF254 /* CACFNumber.h in Headers */, - 8B845CAB2E9DA85500AFF254 /* CAAudioUnitOutputCapturer.h in Headers */, - 8B845CBC2E9DA85500AFF254 /* CADebugMacros.h in Headers */, - 8B845CF52E9DA85500AFF254 /* AUMIDIDefs.h in Headers */, - 8B845CB52E9DA85500AFF254 /* CACFData.h in Headers */, - 8B845C7E2E9DA85500AFF254 /* CAStreamBasicDescription.h in Headers */, - 8B845CE42E9DA85500AFF254 /* AUPlugInDispatch.h in Headers */, - 8B845C802E9DA85500AFF254 /* CAStreamRangedDescription.h in Headers */, - 8B845CC02E9DA85500AFF254 /* CACFPlugIn.h in Headers */, - 8B845C832E9DA85500AFF254 /* CAAudioBufferList.h in Headers */, - 8B845C9B2E9DA85500AFF254 /* CAAUMIDIMapManager.h in Headers */, - 8B845CEE2E9DA85500AFF254 /* AUEffectBase.h in Headers */, - 8B845C8A2E9DA85500AFF254 /* CACFDictionary.h in Headers */, - 8B845CEB2E9DA85500AFF254 /* AUScopeElement.h in Headers */, - 8B845CBB2E9DA85500AFF254 /* CAComponentDescription.h in Headers */, - 8B845CF12E9DA85500AFF254 /* AUSilentTimeout.h in Headers */, - 8B845CB32E9DA85500AFF254 /* CABufferList.h in Headers */, - 8B845CE52E9DA85500AFF254 /* AUDispatch.h in Headers */, - 8B845CE92E9DA85500AFF254 /* AUOutputElement.h in Headers */, - 8B845CAF2E9DA85500AFF254 /* CALogMacros.h in Headers */, - 8B845CA32E9DA85500AFF254 /* AUParamInfo.h in Headers */, - 8B845CC22E9DA85500AFF254 /* CAMixMap.h in Headers */, - 8B845CCF2E9DA85500AFF254 /* CACFArray.h in Headers */, - 8B845C772E9DA85500AFF254 /* CACFMachPort.h in Headers */, - 8B845CA22E9DA85500AFF254 /* CAAUMIDIMap.h in Headers */, - 8B845C7A2E9DA85500AFF254 /* CADebugger.h in Headers */, + 8B7A485E2EB566A600B07840 /* CACFString.h in Headers */, + 8B7A487D2EB566A600B07840 /* CASharedLibrary.h in Headers */, + 8B7A484A2EB566A600B07840 /* CATokenMap.h in Headers */, + 8B7A483F2EB566A600B07840 /* CAExtAudioFile.h in Headers */, + 8B7A48542EB566A600B07840 /* CAPThread.h in Headers */, + 8B7A48702EB566A600B07840 /* CAPropertyAddress.h in Headers */, + 8B7A489A2EB566A600B07840 /* CAReferenceCounted.h in Headers */, + 8B7A48BF2EB566A600B07840 /* AUBuffer.h in Headers */, + 8B7A48A12EB566A600B07840 /* CAMath.h in Headers */, + 8B7A48812EB566A600B07840 /* CAAutoDisposer.h in Headers */, + 8B7A48482EB566A600B07840 /* CACFObject.h in Headers */, + 8B7A48682EB566A600B07840 /* CASettingsStorage.h in Headers */, + 8B7A48712EB566A600B07840 /* CAXException.h in Headers */, + 8B7A488E2EB566A600B07840 /* CATink.h in Headers */, + 8B7A48BB2EB566A600B07840 /* AUInputFormatConverter.h in Headers */, + 8B7A48962EB566A600B07840 /* CAVectorUnit.h in Headers */, + 8B7A48522EB566A600B07840 /* CAProcess.h in Headers */, + 8B7A48582EB566A600B07840 /* CAAudioValueRange.h in Headers */, + 8B7A486D2EB566A600B07840 /* CABitOperations.h in Headers */, + 8B7A48632EB566A600B07840 /* CAAudioFileFormats.h in Headers */, + 8B7A485C2EB566A600B07840 /* CACFNumber.h in Headers */, + 8B7A48742EB566A600B07840 /* CAAudioUnitOutputCapturer.h in Headers */, + 8B7A48852EB566A600B07840 /* CADebugMacros.h in Headers */, + 8B7A48BE2EB566A600B07840 /* AUMIDIDefs.h in Headers */, + 8B7A487E2EB566A600B07840 /* CACFData.h in Headers */, + 8B7A48472EB566A600B07840 /* CAStreamBasicDescription.h in Headers */, + 8B7A48AD2EB566A600B07840 /* AUPlugInDispatch.h in Headers */, + 8B7A48492EB566A600B07840 /* CAStreamRangedDescription.h in Headers */, + 8B7A48892EB566A600B07840 /* CACFPlugIn.h in Headers */, + 8B7A484C2EB566A600B07840 /* CAAudioBufferList.h in Headers */, + 8B7A48642EB566A600B07840 /* CAAUMIDIMapManager.h in Headers */, + 8B7A48B72EB566A600B07840 /* AUEffectBase.h in Headers */, + 8B7A48532EB566A600B07840 /* CACFDictionary.h in Headers */, + 8B7A48B42EB566A600B07840 /* AUScopeElement.h in Headers */, + 8B7A48842EB566A600B07840 /* CAComponentDescription.h in Headers */, + 8B7A48BA2EB566A600B07840 /* AUSilentTimeout.h in Headers */, + 8B7A487C2EB566A600B07840 /* CABufferList.h in Headers */, + 8B7A48AE2EB566A600B07840 /* AUDispatch.h in Headers */, + 8B7A48B22EB566A600B07840 /* AUOutputElement.h in Headers */, + 8B7A48782EB566A600B07840 /* CALogMacros.h in Headers */, + 8B7A486C2EB566A600B07840 /* AUParamInfo.h in Headers */, + 8B7A488B2EB566A600B07840 /* CAMixMap.h in Headers */, + 8B7A48982EB566A600B07840 /* CACFArray.h in Headers */, + 8B7A48402EB566A600B07840 /* CACFMachPort.h in Headers */, + 8B7A486B2EB566A600B07840 /* CAAUMIDIMap.h in Headers */, + 8B7A48432EB566A600B07840 /* CADebugger.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -712,60 +712,60 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 8B845CB22E9DA85500AFF254 /* AUOutputBL.cpp in Sources */, - 8B845CD72E9DA85500AFF254 /* CAAudioFileFormats.cpp in Sources */, - 8B845CC92E9DA85500AFF254 /* CAHostTimeBase.cpp in Sources */, - 8B845CA12E9DA85500AFF254 /* CAXException.cpp in Sources */, - 8B845CCB2E9DA85500AFF254 /* CAAudioBufferList.cpp in Sources */, - 8B845C8E2E9DA85500AFF254 /* CAFilePathUtils.cpp in Sources */, - 8B845C8C2E9DA85500AFF254 /* CAAUParameter.cpp in Sources */, - 8B845CAE2E9DA85500AFF254 /* CAAUMIDIMap.cpp in Sources */, - 8B845CDB2E9DA85500AFF254 /* CAAudioValueRange.cpp in Sources */, - 8B845CEA2E9DA85500AFF254 /* AUDispatch.cpp in Sources */, - 8B845CA52E9DA85500AFF254 /* CACFPreferences.cpp in Sources */, - 8B845CE82E9DA85500AFF254 /* AUPlugInDispatch.cpp in Sources */, - 8B845C872E9DA85500AFF254 /* CAAUProcessor.cpp in Sources */, - 8B845C9C2E9DA85500AFF254 /* CACFDictionary.cpp in Sources */, - 8B845CF02E9DA85500AFF254 /* AUBaseHelper.cpp in Sources */, - 8B845CD52E9DA85500AFF254 /* CADebugger.cpp in Sources */, - 8B845CA92E9DA85500AFF254 /* CAAudioChannelLayout.cpp in Sources */, - 8B845CAC2E9DA85500AFF254 /* AUParamInfo.cpp in Sources */, - 8B845CCA2E9DA85500AFF254 /* CAPersistence.cpp in Sources */, - 8B845CBE2E9DA85500AFF254 /* CADebugPrintf.cpp in Sources */, - 8B845CF32E9DA85500AFF254 /* AUTimestampGenerator.cpp in Sources */, - 8B845CC62E9DA85500AFF254 /* CAStreamBasicDescription.cpp in Sources */, - 8B845C962E9DA85500AFF254 /* CAAUMIDIMapManager.cpp in Sources */, - 8B845CC12E9DA85500AFF254 /* CASettingsStorage.cpp in Sources */, - 8B845CE62E9DA85500AFF254 /* AUOutputElement.cpp in Sources */, - 8B845C922E9DA85500AFF254 /* CAGuard.cpp in Sources */, + 8B7A487B2EB566A600B07840 /* AUOutputBL.cpp in Sources */, + 8B7A48A02EB566A600B07840 /* CAAudioFileFormats.cpp in Sources */, + 8B7A48922EB566A600B07840 /* CAHostTimeBase.cpp in Sources */, + 8B7A486A2EB566A600B07840 /* CAXException.cpp in Sources */, + 8B7A48942EB566A600B07840 /* CAAudioBufferList.cpp in Sources */, + 8B7A48572EB566A600B07840 /* CAFilePathUtils.cpp in Sources */, + 8B7A48552EB566A600B07840 /* CAAUParameter.cpp in Sources */, + 8B7A48772EB566A600B07840 /* CAAUMIDIMap.cpp in Sources */, + 8B7A48A42EB566A600B07840 /* CAAudioValueRange.cpp in Sources */, + 8B7A48B32EB566A600B07840 /* AUDispatch.cpp in Sources */, + 8B7A486E2EB566A600B07840 /* CACFPreferences.cpp in Sources */, + 8B7A48B12EB566A600B07840 /* AUPlugInDispatch.cpp in Sources */, + 8B7A48502EB566A600B07840 /* CAAUProcessor.cpp in Sources */, + 8B7A48652EB566A600B07840 /* CACFDictionary.cpp in Sources */, + 8B7A48B92EB566A600B07840 /* AUBaseHelper.cpp in Sources */, + 8B7A489E2EB566A600B07840 /* CADebugger.cpp in Sources */, + 8B7A48722EB566A600B07840 /* CAAudioChannelLayout.cpp in Sources */, + 8B7A48752EB566A600B07840 /* AUParamInfo.cpp in Sources */, + 8B7A48932EB566A600B07840 /* CAPersistence.cpp in Sources */, + 8B7A48872EB566A600B07840 /* CADebugPrintf.cpp in Sources */, + 8B7A48BC2EB566A600B07840 /* AUTimestampGenerator.cpp in Sources */, + 8B7A488F2EB566A600B07840 /* CAStreamBasicDescription.cpp in Sources */, + 8B7A485F2EB566A600B07840 /* CAAUMIDIMapManager.cpp in Sources */, + 8B7A488A2EB566A600B07840 /* CASettingsStorage.cpp in Sources */, + 8B7A48AF2EB566A600B07840 /* AUOutputElement.cpp in Sources */, + 8B7A485B2EB566A600B07840 /* CAGuard.cpp in Sources */, 8BA05A6B0720730100365D66 /* ConsoleX2Channel.cpp in Sources */, - 8B845CD42E9DA85500AFF254 /* CAMutex.cpp in Sources */, - 8B845CED2E9DA85500AFF254 /* AUEffectBase.cpp in Sources */, - 8B845CD22E9DA85500AFF254 /* CACFMachPort.cpp in Sources */, - 8B845CE12E9DA85500AFF254 /* AUBase.cpp in Sources */, - 8B845CAD2E9DA85500AFF254 /* CASharedLibrary.cpp in Sources */, - 8B845C942E9DA85500AFF254 /* CACFDistributedNotification.cpp in Sources */, - 8B845C972E9DA85500AFF254 /* CAComponentDescription.cpp in Sources */, - 8B845C9E2E9DA85500AFF254 /* CACFString.cpp in Sources */, - 8B845CDE2E9DA85500AFF254 /* ComponentBase.cpp in Sources */, - 8B845CBF2E9DA85500AFF254 /* CARingBuffer.cpp in Sources */, - 8B845CDF2E9DA85500AFF254 /* AUScopeElement.cpp in Sources */, - 8B845CDC2E9DA85500AFF254 /* CAAudioUnit.cpp in Sources */, - 8B845CD92E9DA85500AFF254 /* CACFArray.cpp in Sources */, - 8B845CD62E9DA85500AFF254 /* CABundleLocker.cpp in Sources */, - 8B845CC82E9DA85500AFF254 /* CAProcess.cpp in Sources */, - 8B845CB62E9DA85500AFF254 /* CAStreamRangedDescription.cpp in Sources */, - 8B845CB72E9DA85500AFF254 /* CAPThread.cpp in Sources */, - 8B845C792E9DA85500AFF254 /* CAComponent.cpp in Sources */, - 8B845C912E9DA85500AFF254 /* CAAudioChannelLayoutObject.cpp in Sources */, - 8B845CCC2E9DA85500AFF254 /* CAAudioTimeStamp.cpp in Sources */, - 8B845CD32E9DA85500AFF254 /* CABufferList.cpp in Sources */, - 8B845CB02E9DA85500AFF254 /* CACFMessagePort.cpp in Sources */, - 8B845CBA2E9DA85500AFF254 /* CAVectorUnit.cpp in Sources */, - 8B845CEC2E9DA85500AFF254 /* AUInputElement.cpp in Sources */, - 8B845CF42E9DA85500AFF254 /* AUBuffer.cpp in Sources */, - 8B845C992E9DA85500AFF254 /* CADebugMacros.cpp in Sources */, - 8B845C7B2E9DA85500AFF254 /* CACFNumber.cpp in Sources */, + 8B7A489D2EB566A600B07840 /* CAMutex.cpp in Sources */, + 8B7A48B62EB566A600B07840 /* AUEffectBase.cpp in Sources */, + 8B7A489B2EB566A600B07840 /* CACFMachPort.cpp in Sources */, + 8B7A48AA2EB566A600B07840 /* AUBase.cpp in Sources */, + 8B7A48762EB566A600B07840 /* CASharedLibrary.cpp in Sources */, + 8B7A485D2EB566A600B07840 /* CACFDistributedNotification.cpp in Sources */, + 8B7A48602EB566A600B07840 /* CAComponentDescription.cpp in Sources */, + 8B7A48672EB566A600B07840 /* CACFString.cpp in Sources */, + 8B7A48A72EB566A600B07840 /* ComponentBase.cpp in Sources */, + 8B7A48882EB566A600B07840 /* CARingBuffer.cpp in Sources */, + 8B7A48A82EB566A600B07840 /* AUScopeElement.cpp in Sources */, + 8B7A48A52EB566A600B07840 /* CAAudioUnit.cpp in Sources */, + 8B7A48A22EB566A600B07840 /* CACFArray.cpp in Sources */, + 8B7A489F2EB566A600B07840 /* CABundleLocker.cpp in Sources */, + 8B7A48912EB566A600B07840 /* CAProcess.cpp in Sources */, + 8B7A487F2EB566A600B07840 /* CAStreamRangedDescription.cpp in Sources */, + 8B7A48802EB566A600B07840 /* CAPThread.cpp in Sources */, + 8B7A48422EB566A600B07840 /* CAComponent.cpp in Sources */, + 8B7A485A2EB566A600B07840 /* CAAudioChannelLayoutObject.cpp in Sources */, + 8B7A48952EB566A600B07840 /* CAAudioTimeStamp.cpp in Sources */, + 8B7A489C2EB566A600B07840 /* CABufferList.cpp in Sources */, + 8B7A48792EB566A600B07840 /* CACFMessagePort.cpp in Sources */, + 8B7A48832EB566A600B07840 /* CAVectorUnit.cpp in Sources */, + 8B7A48B52EB566A600B07840 /* AUInputElement.cpp in Sources */, + 8B7A48BD2EB566A600B07840 /* AUBuffer.cpp in Sources */, + 8B7A48622EB566A600B07840 /* CADebugMacros.cpp in Sources */, + 8B7A48442EB566A600B07840 /* CACFNumber.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -775,7 +775,7 @@ 089C167DFE841241C02AAC07 /* InfoPlist.strings */ = { isa = PBXVariantGroup; children = ( - 8B845CF82E9DA8F000AFF254 /* en */, + 8B7A48C12EB5681800B07840 /* en */, ); name = InfoPlist.strings; sourceTree = ""; diff --git a/plugins/MacSignedAU/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacSignedAU/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate index 1ec80c4dc..ced6364e1 100644 Binary files a/plugins/MacSignedAU/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate and b/plugins/MacSignedAU/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/plugins/MacSignedAU/ConsoleX2Pre/ConsoleX2Pre.cpp b/plugins/MacSignedAU/ConsoleX2Pre/ConsoleX2Pre.cpp index e6629827b..6ed1485c1 100755 --- a/plugins/MacSignedAU/ConsoleX2Pre/ConsoleX2Pre.cpp +++ b/plugins/MacSignedAU/ConsoleX2Pre/ConsoleX2Pre.cpp @@ -75,6 +75,7 @@ ConsoleX2Pre::ConsoleX2Pre(AudioUnit component) SetParameter(kParam_N, kDefaultValue_ParamN ); SetParameter(kParam_O, kDefaultValue_ParamO ); SetParameter(kParam_P, kDefaultValue_ParamP ); + SetParameter(kParam_Q, kDefaultValue_ParamQ ); #if AU_DEBUG_DISPATCHER mDebugDispatcher = new AUDebugDispatcher (this); @@ -113,10 +114,9 @@ ComponentResult ConsoleX2Pre::GetParameterInfo(AudioUnitScope inScope, { case kParam_A: AUBase::FillInParameterName (outParameterInfo, kParameterAName, false); - outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit; - outParameterInfo.unitName = kParameterAUnit; - outParameterInfo.minValue = 0.0; - outParameterInfo.maxValue = 1.0; + outParameterInfo.unit = kAudioUnitParameterUnit_Indexed; + outParameterInfo.minValue = 0; + outParameterInfo.maxValue = 4; outParameterInfo.defaultValue = kDefaultValue_ParamA; break; case kParam_B: @@ -128,7 +128,8 @@ ComponentResult ConsoleX2Pre::GetParameterInfo(AudioUnitScope inScope, break; case kParam_C: AUBase::FillInParameterName (outParameterInfo, kParameterCName, false); - outParameterInfo.unit = kAudioUnitParameterUnit_Generic; + outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit; + outParameterInfo.unitName = kParameterCUnit; outParameterInfo.minValue = 0.0; outParameterInfo.maxValue = 1.0; outParameterInfo.defaultValue = kDefaultValue_ParamC; @@ -142,8 +143,7 @@ ComponentResult ConsoleX2Pre::GetParameterInfo(AudioUnitScope inScope, break; case kParam_E: AUBase::FillInParameterName (outParameterInfo, kParameterEName, false); - outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit; - outParameterInfo.unitName = kParameterEUnit; + outParameterInfo.unit = kAudioUnitParameterUnit_Generic; outParameterInfo.minValue = 0.0; outParameterInfo.maxValue = 1.0; outParameterInfo.defaultValue = kDefaultValue_ParamE; @@ -157,7 +157,8 @@ ComponentResult ConsoleX2Pre::GetParameterInfo(AudioUnitScope inScope, break; case kParam_G: AUBase::FillInParameterName (outParameterInfo, kParameterGName, false); - outParameterInfo.unit = kAudioUnitParameterUnit_Generic; + outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit; + outParameterInfo.unitName = kParameterGUnit; outParameterInfo.minValue = 0.0; outParameterInfo.maxValue = 1.0; outParameterInfo.defaultValue = kDefaultValue_ParamG; @@ -171,8 +172,7 @@ ComponentResult ConsoleX2Pre::GetParameterInfo(AudioUnitScope inScope, break; case kParam_I: AUBase::FillInParameterName (outParameterInfo, kParameterIName, false); - outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit; - outParameterInfo.unitName = kParameterIUnit; + outParameterInfo.unit = kAudioUnitParameterUnit_Generic; outParameterInfo.minValue = 0.0; outParameterInfo.maxValue = 1.0; outParameterInfo.defaultValue = kDefaultValue_ParamI; @@ -186,7 +186,8 @@ ComponentResult ConsoleX2Pre::GetParameterInfo(AudioUnitScope inScope, break; case kParam_K: AUBase::FillInParameterName (outParameterInfo, kParameterKName, false); - outParameterInfo.unit = kAudioUnitParameterUnit_Generic; + outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit; + outParameterInfo.unitName = kParameterKUnit; outParameterInfo.minValue = 0.0; outParameterInfo.maxValue = 1.0; outParameterInfo.defaultValue = kDefaultValue_ParamK; @@ -200,9 +201,8 @@ ComponentResult ConsoleX2Pre::GetParameterInfo(AudioUnitScope inScope, break; case kParam_M: AUBase::FillInParameterName (outParameterInfo, kParameterMName, false); - outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit; - outParameterInfo.unitName = kParameterMUnit; - outParameterInfo.minValue = 0.0; + outParameterInfo.unit = kAudioUnitParameterUnit_Generic; + outParameterInfo.minValue = 0.0; outParameterInfo.maxValue = 1.0; outParameterInfo.defaultValue = kDefaultValue_ParamM; break; @@ -228,7 +228,14 @@ ComponentResult ConsoleX2Pre::GetParameterInfo(AudioUnitScope inScope, outParameterInfo.maxValue = 1.0; outParameterInfo.defaultValue = kDefaultValue_ParamP; break; - default: + case kParam_Q: + AUBase::FillInParameterName (outParameterInfo, kParameterQName, false); + outParameterInfo.unit = kAudioUnitParameterUnit_Generic; + outParameterInfo.minValue = 0.0; + outParameterInfo.maxValue = 1.0; + outParameterInfo.defaultValue = kDefaultValue_ParamQ; + break; + default: result = kAudioUnitErr_InvalidParameter; break; } @@ -324,9 +331,20 @@ void ConsoleX2Pre::ConsoleX2PreKernel::Reset() 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; + inTrimA = 0.5; inTrimB = 0.5; + fpd = 1.0; while (fpd < 16386) fpd = rand()*UINT32_MAX; } @@ -345,20 +363,33 @@ void ConsoleX2Pre::ConsoleX2PreKernel::Process( const Float32 *inSourceP, double overallscale = 1.0; overallscale /= 44100.0; overallscale *= GetSampleRate(); - - double trebleGain = (GetParameter( kParam_A )-0.5)*2.0; + int spacing = floor(overallscale*2.0); + if (spacing < 2) spacing = 2; if (spacing > 32) spacing = 32; + + double moreTapeHack = (GetParameter( kParam_B )*2.0)+1.0; + switch ((int)GetParameter( kParam_A )){ + case 0: moreTapeHack *= 0.5; break; + case 1: break; + case 2: moreTapeHack *= 2.0; break; + case 3: moreTapeHack *= 4.0; break; + case 4: moreTapeHack *= 8.0; break; + } + double moreDiscontinuity = fmax(pow(GetParameter( kParam_B )*0.42,3.0)*overallscale,0.00001); + //Discontapeity + + double trebleGain = (GetParameter( kParam_C )-0.5)*2.0; trebleGain = 1.0+(trebleGain*fabs(trebleGain)*fabs(trebleGain)); - double highmidGain = (GetParameter( kParam_B )-0.5)*2.0; + double highmidGain = (GetParameter( kParam_D )-0.5)*2.0; highmidGain = 1.0+(highmidGain*fabs(highmidGain)*fabs(highmidGain)); - double lowmidGain = (GetParameter( kParam_C )-0.5)*2.0; + double lowmidGain = (GetParameter( kParam_E )-0.5)*2.0; lowmidGain = 1.0+(lowmidGain*fabs(lowmidGain)*fabs(lowmidGain)); - double bassGain = (GetParameter( kParam_D )-0.5)*2.0; + double bassGain = (GetParameter( kParam_F )-0.5)*2.0; bassGain = 1.0+(bassGain*fabs(bassGain)*fabs(bassGain)); - double trebleRef = GetParameter( kParam_E )-0.5; - double highmidRef = GetParameter( kParam_F )-0.5; - double lowmidRef = GetParameter( kParam_G )-0.5; - double bassRef = GetParameter( kParam_H )-0.5; + double trebleRef = GetParameter( kParam_G )-0.5; + double highmidRef = GetParameter( kParam_H )-0.5; + double lowmidRef = GetParameter( kParam_I )-0.5; + double bassRef = GetParameter( kParam_J )-0.5; double highF = 0.75 + ((trebleRef+trebleRef+trebleRef+highmidRef)*0.125); double bassF = 0.25 + ((lowmidRef+bassRef+bassRef+bassRef)*0.125); double midF = (highF*0.5) + (bassF*0.5) + ((highmidRef+lowmidRef)*0.125); @@ -371,8 +402,8 @@ void ConsoleX2Pre::ConsoleX2PreKernel::Process( const Float32 *inSourceP, highC[biq_freq] = highB[biq_freq] = highA[biq_freq] = fmax(fmin(highA[biq_freq],0.4999),0.00025); double highFreq = pow(highF,3)*20000.0; double omega = 2.0*M_PI*(highFreq/GetSampleRate()); - double K = 2.0-cos(omega); - double highCoef = -sqrt((K*K)-1.0)+K; + double biqK = 2.0-cos(omega); + double highCoef = -sqrt((biqK*biqK)-1.0)+biqK; highA[biq_reso] = 2.24697960 * highQ; highB[biq_reso] = 0.80193774 * highQ; highC[biq_reso] = 0.55495813 * highQ; @@ -381,8 +412,8 @@ void ConsoleX2Pre::ConsoleX2PreKernel::Process( const Float32 *inSourceP, midC[biq_freq] = midB[biq_freq] = midA[biq_freq] = fmax(fmin(midA[biq_freq],0.4999),0.00025); double midFreq = pow(midF,3)*20000.0; omega = 2.0*M_PI*(midFreq/GetSampleRate()); - K = 2.0-cos(omega); - double midCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double midCoef = -sqrt((biqK*biqK)-1.0)+biqK; midA[biq_reso] = 2.24697960 * midQ; midB[biq_reso] = 0.80193774 * midQ; midC[biq_reso] = 0.55495813 * midQ; @@ -391,102 +422,158 @@ void ConsoleX2Pre::ConsoleX2PreKernel::Process( const Float32 *inSourceP, lowC[biq_freq] = lowB[biq_freq] = lowA[biq_freq] = fmax(fmin(lowA[biq_freq],0.4999),0.00025); double lowFreq = pow(bassF,3)*20000.0; omega = 2.0*M_PI*(lowFreq/GetSampleRate()); - K = 2.0-cos(omega); - double lowCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double lowCoef = -sqrt((biqK*biqK)-1.0)+biqK; lowA[biq_reso] = 2.24697960 * lowQ; lowB[biq_reso] = 0.80193774 * lowQ; lowC[biq_reso] = 0.55495813 * lowQ; - K = tan(M_PI * highA[biq_freq]); - double norm = 1.0 / (1.0 + K / highA[biq_reso] + K * K); - highA[biq_a0] = K * K * norm; + biqK = tan(M_PI * highA[biq_freq]); + double norm = 1.0 / (1.0 + biqK / highA[biq_reso] + biqK * biqK); + highA[biq_a0] = biqK * biqK * norm; highA[biq_a1] = 2.0 * highA[biq_a0]; highA[biq_a2] = highA[biq_a0]; - highA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highA[biq_b2] = (1.0 - K / highA[biq_reso] + K * K) * norm; - K = tan(M_PI * highB[biq_freq]); - norm = 1.0 / (1.0 + K / highB[biq_reso] + K * K); - highB[biq_a0] = K * K * norm; + highA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highA[biq_b2] = (1.0 - biqK / highA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highB[biq_freq]); + norm = 1.0 / (1.0 + biqK / highB[biq_reso] + biqK * biqK); + highB[biq_a0] = biqK * biqK * norm; highB[biq_a1] = 2.0 * highB[biq_a0]; highB[biq_a2] = highB[biq_a0]; - highB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highB[biq_b2] = (1.0 - K / highB[biq_reso] + K * K) * norm; - K = tan(M_PI * highC[biq_freq]); - norm = 1.0 / (1.0 + K / highC[biq_reso] + K * K); - highC[biq_a0] = K * K * norm; + highB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highB[biq_b2] = (1.0 - biqK / highB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highC[biq_freq]); + norm = 1.0 / (1.0 + biqK / highC[biq_reso] + biqK * biqK); + highC[biq_a0] = biqK * biqK * norm; highC[biq_a1] = 2.0 * highC[biq_a0]; highC[biq_a2] = highC[biq_a0]; - highC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highC[biq_b2] = (1.0 - K / highC[biq_reso] + K * K) * norm; + highC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highC[biq_b2] = (1.0 - biqK / highC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * midA[biq_freq]); - norm = 1.0 / (1.0 + K / midA[biq_reso] + K * K); - midA[biq_a0] = K * K * norm; + biqK = tan(M_PI * midA[biq_freq]); + norm = 1.0 / (1.0 + biqK / midA[biq_reso] + biqK * biqK); + midA[biq_a0] = biqK * biqK * norm; midA[biq_a1] = 2.0 * midA[biq_a0]; midA[biq_a2] = midA[biq_a0]; - midA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midA[biq_b2] = (1.0 - K / midA[biq_reso] + K * K) * norm; - K = tan(M_PI * midB[biq_freq]); - norm = 1.0 / (1.0 + K / midB[biq_reso] + K * K); - midB[biq_a0] = K * K * norm; + midA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midA[biq_b2] = (1.0 - biqK / midA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midB[biq_freq]); + norm = 1.0 / (1.0 + biqK / midB[biq_reso] + biqK * biqK); + midB[biq_a0] = biqK * biqK * norm; midB[biq_a1] = 2.0 * midB[biq_a0]; midB[biq_a2] = midB[biq_a0]; - midB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midB[biq_b2] = (1.0 - K / midB[biq_reso] + K * K) * norm; - K = tan(M_PI * midC[biq_freq]); - norm = 1.0 / (1.0 + K / midC[biq_reso] + K * K); - midC[biq_a0] = K * K * norm; + midB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midB[biq_b2] = (1.0 - biqK / midB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midC[biq_freq]); + norm = 1.0 / (1.0 + biqK / midC[biq_reso] + biqK * biqK); + midC[biq_a0] = biqK * biqK * norm; midC[biq_a1] = 2.0 * midC[biq_a0]; midC[biq_a2] = midC[biq_a0]; - midC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midC[biq_b2] = (1.0 - K / midC[biq_reso] + K * K) * norm; + midC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midC[biq_b2] = (1.0 - biqK / midC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * lowA[biq_freq]); - norm = 1.0 / (1.0 + K / lowA[biq_reso] + K * K); - lowA[biq_a0] = K * K * norm; + biqK = tan(M_PI * lowA[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowA[biq_reso] + biqK * biqK); + lowA[biq_a0] = biqK * biqK * norm; lowA[biq_a1] = 2.0 * lowA[biq_a0]; lowA[biq_a2] = lowA[biq_a0]; - lowA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowA[biq_b2] = (1.0 - K / lowA[biq_reso] + K * K) * norm; - K = tan(M_PI * lowB[biq_freq]); - norm = 1.0 / (1.0 + K / lowB[biq_reso] + K * K); - lowB[biq_a0] = K * K * norm; + lowA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowA[biq_b2] = (1.0 - biqK / lowA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowB[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowB[biq_reso] + biqK * biqK); + lowB[biq_a0] = biqK * biqK * norm; lowB[biq_a1] = 2.0 * lowB[biq_a0]; lowB[biq_a2] = lowB[biq_a0]; - lowB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowB[biq_b2] = (1.0 - K / lowB[biq_reso] + K * K) * norm; - K = tan(M_PI * lowC[biq_freq]); - norm = 1.0 / (1.0 + K / lowC[biq_reso] + K * K); - lowC[biq_a0] = K * K * norm; + lowB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowB[biq_b2] = (1.0 - biqK / lowB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowC[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowC[biq_reso] + biqK * biqK); + lowC[biq_a0] = biqK * biqK * norm; lowC[biq_a1] = 2.0 * lowC[biq_a0]; lowC[biq_a2] = lowC[biq_a0]; - lowC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowC[biq_b2] = (1.0 - K / lowC[biq_reso] + K * K) * norm; + lowC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowC[biq_b2] = (1.0 - biqK / lowC[biq_reso] + biqK * biqK) * norm; //SmoothEQ2 - double bezCThresh = pow(1.0-GetParameter( kParam_I ), 6.0) * 8.0; - double bezRez = pow(1.0-GetParameter( kParam_J ), 8.0) / overallscale; - double sloRez = pow(1.0-GetParameter( kParam_K ),12.0) / overallscale; + double bezCThresh = pow(1.0-GetParameter( kParam_K ), 6.0) * 8.0; + double bezRez = pow(1.0-GetParameter( kParam_L ), 8.0) / overallscale; + double sloRez = pow(1.0-GetParameter( kParam_M ),12.0) / overallscale; sloRez = fmin(fmax(sloRez-(bezRez*0.5),0.00001),1.0); bezRez = fmin(fmax(bezRez,0.0001),1.0); - double gate = pow(pow(GetParameter( kParam_L ),4.0),sqrt(bezCThresh+1.0)); + double gate = pow(pow(GetParameter( kParam_N ),4.0),sqrt(bezCThresh+1.0)); //Dynamics2 - lFreqA = lFreqB; lFreqB = pow(fmax(GetParameter( kParam_M ),0.002),overallscale); //the lowpass - hFreqA = hFreqB; hFreqB = pow(GetParameter( kParam_N ),overallscale+2.0); //the highpass + lFreqA = lFreqB; lFreqB = pow(fmax(GetParameter( kParam_O ),0.002),overallscale); //the lowpass + hFreqA = hFreqB; hFreqB = pow(GetParameter( kParam_P ),overallscale+2.0); //the highpass //Cabs2 - double moreDiscontinuity = fmax(pow(GetParameter( kParam_O )*0.42,3.0)*overallscale,0.00001); - double moreTapeHack = (GetParameter( kParam_O )*1.4152481)+1.2; - //Discontapeity - - inTrimA = inTrimB; inTrimB = GetParameter( kParam_P )*2.0; + inTrimA = inTrimB; inTrimB = GetParameter( kParam_Q )*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 + double trebleL = inputSampleL; double outSample = (trebleL * highA[biq_a0]) + highA[biq_sL1]; highA[biq_sL1] = (trebleL * highA[biq_a1]) - (outSample * highA[biq_b1]) + highA[biq_sL2]; @@ -592,7 +679,6 @@ void ConsoleX2Pre::ConsoleX2PreKernel::Process( const Float32 *inSourceP, double CBAMax = fmax(CBASL,CBAFL); if (CBAMax > 0.0) CBAMax = 1.0/CBAMax; double CBAFade = ((CBASL*-CBAMax)+(CBAFL*CBAMax)+1.0)*0.5; - if (bezCThresh > 0.0) inputSampleL *= 1.0-(fmin(((CBASL*(1.0-CBAFade))+(CBAFL*CBAFade))*bezCThresh,1.0)); if (bezGate < 1.0 && gate > 0.0) inputSampleL *= bezGate; @@ -637,40 +723,12 @@ void ConsoleX2Pre::ConsoleX2PreKernel::Process( const Float32 *inSourceP, } //Cabs2 - //begin Discontinuity section - inputSampleL *= moreDiscontinuity; - dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5); - dBaPosL = fmin(dBaPosL,1.0); - int dBdly = floor(dBaPosL*dscBuf); - double dBi = (dBaPosL*dscBuf)-dBdly; - inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi; - dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0; - inputSampleL /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleL = fmax(fmin(inputSampleL*moreTapeHack,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.9239; - //end TapeHack section - //Discontapeity - 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 pan section, and smoothed fader gain + //applies smoothed fader gain //begin 32 bit floating point dither int expon; frexpf((float)inputSampleL, &expon); diff --git a/plugins/MacSignedAU/ConsoleX2Pre/ConsoleX2Pre.h b/plugins/MacSignedAU/ConsoleX2Pre/ConsoleX2Pre.h index e97402628..87cb61544 100755 --- a/plugins/MacSignedAU/ConsoleX2Pre/ConsoleX2Pre.h +++ b/plugins/MacSignedAU/ConsoleX2Pre/ConsoleX2Pre.h @@ -54,44 +54,45 @@ #pragma mark ____ConsoleX2Pre Parameters // parameters -static const float kDefaultValue_ParamA = 0.5; -static const float kDefaultValue_ParamB = 0.5; +static const int kDefaultValue_ParamA = 1; +static const float kDefaultValue_ParamB = 0.0; static const float kDefaultValue_ParamC = 0.5; static const float kDefaultValue_ParamD = 0.5; static const float kDefaultValue_ParamE = 0.5; static const float kDefaultValue_ParamF = 0.5; static const float kDefaultValue_ParamG = 0.5; static const float kDefaultValue_ParamH = 0.5; -static const float kDefaultValue_ParamI = 1.0; +static const float kDefaultValue_ParamI = 0.5; static const float kDefaultValue_ParamJ = 0.5; -static const float kDefaultValue_ParamK = 0.5; -static const float kDefaultValue_ParamL = 0.0; -static const float kDefaultValue_ParamM = 1.0; +static const float kDefaultValue_ParamK = 1.0; +static const float kDefaultValue_ParamL = 0.5; +static const float kDefaultValue_ParamM = 0.5; static const float kDefaultValue_ParamN = 0.0; -static const float kDefaultValue_ParamO = 0.0; -static const float kDefaultValue_ParamP = 0.5; +static const float kDefaultValue_ParamO = 1.0; +static const float kDefaultValue_ParamP = 0.0; +static const float kDefaultValue_ParamQ = 0.5; -static CFStringRef kParameterAUnit = CFSTR("eq"); -static CFStringRef kParameterAName = CFSTR("High"); -static CFStringRef kParameterBName = CFSTR("HMid"); -static CFStringRef kParameterCName = CFSTR("LMid"); -static CFStringRef kParameterDName = CFSTR("Bass"); -static CFStringRef kParameterEUnit = CFSTR("freq"); -static CFStringRef kParameterEName = CFSTR("HighF"); -static CFStringRef kParameterFName = CFSTR("HMidF"); -static CFStringRef kParameterGName = CFSTR("LMidF"); -static CFStringRef kParameterHName = CFSTR("BassF"); -static CFStringRef kParameterIUnit = CFSTR("dyn"); -static CFStringRef kParameterIName = CFSTR("Thresh"); -static CFStringRef kParameterJName = CFSTR("Attack"); -static CFStringRef kParameterKName = CFSTR("Release"); -static CFStringRef kParameterLName = CFSTR("Gate"); -static CFStringRef kParameterMUnit = CFSTR("fltr"); -static CFStringRef kParameterMName = CFSTR("Lowpass"); -static CFStringRef kParameterNName = CFSTR("Hipass"); -static CFStringRef kParameterOUnit = CFSTR("+"); -static CFStringRef kParameterOName = CFSTR("More"); -static CFStringRef kParameterPName = CFSTR("Fader"); +static CFStringRef kParameterAName = CFSTR("Trim"); +static CFStringRef kParameterBName = CFSTR("More"); +static CFStringRef kParameterCUnit = CFSTR("eq"); +static CFStringRef kParameterCName = CFSTR("High"); +static CFStringRef kParameterDName = CFSTR("HMid"); +static CFStringRef kParameterEName = CFSTR("LMid"); +static CFStringRef kParameterFName = CFSTR("Bass"); +static CFStringRef kParameterGUnit = CFSTR("freq"); +static CFStringRef kParameterGName = CFSTR("HighF"); +static CFStringRef kParameterHName = CFSTR("HMidF"); +static CFStringRef kParameterIName = CFSTR("LMidF"); +static CFStringRef kParameterJName = CFSTR("BassF"); +static CFStringRef kParameterKUnit = CFSTR("dyn"); +static CFStringRef kParameterKName = CFSTR("Thresh"); +static CFStringRef kParameterLName = CFSTR("Attack"); +static CFStringRef kParameterMName = CFSTR("Release"); +static CFStringRef kParameterNName = CFSTR("Gate"); +static CFStringRef kParameterOUnit = CFSTR("fltr"); +static CFStringRef kParameterOName = CFSTR("Lowpass"); +static CFStringRef kParameterPName = CFSTR("Hipass"); +static CFStringRef kParameterQName = CFSTR("Fader"); enum { kParam_A =0, @@ -110,8 +111,9 @@ enum { kParam_N =13, kParam_O =14, kParam_P =15, + kParam_Q =16, //Add your parameters here... - kNumberOfParameters=16 + kNumberOfParameters=17 }; const int dscBuf = 256; @@ -238,6 +240,16 @@ public: 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; diff --git a/plugins/MacSignedAU/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/christopherjohnson.pbxuser b/plugins/MacSignedAU/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/christopherjohnson.pbxuser index 239488e18..a8111bca7 100755 --- a/plugins/MacSignedAU/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/christopherjohnson.pbxuser +++ b/plugins/MacSignedAU/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/christopherjohnson.pbxuser @@ -12,7 +12,7 @@ PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; PBXFileTableDataSourceColumnWidthsKey = ( 20, - 292, + 167, 20, 48, 43, @@ -51,82 +51,71 @@ PBXFileDataSource_Warnings_ColumnID, ); }; - PBXPerProjectTemplateStateSaveDate = 781916083; - PBXWorkspaceStateSaveDate = 781916083; + PBXPerProjectTemplateStateSaveDate = 783603927; + PBXWorkspaceStateSaveDate = 783603927; }; perUserProjectItems = { - 8B962AF02E9AD2C4000EAC04 /* PBXTextBookmark */ = 8B962AF02E9AD2C4000EAC04 /* PBXTextBookmark */; - 8B962B712E9AD519000EAC04 /* PBXTextBookmark */ = 8B962B712E9AD519000EAC04 /* PBXTextBookmark */; - 8B962B722E9AD519000EAC04 /* PBXTextBookmark */ = 8B962B722E9AD519000EAC04 /* PBXTextBookmark */; - 8B962BEF2E9B17D7000EAC04 /* PBXTextBookmark */ = 8B962BEF2E9B17D7000EAC04 /* PBXTextBookmark */; + 8B692B762EB4D66E00F51381 /* PBXTextBookmark */ = 8B692B762EB4D66E00F51381 /* PBXTextBookmark */; + 8B692BBF2EB4DCD400F51381 /* PBXTextBookmark */ = 8B692BBF2EB4DCD400F51381 /* PBXTextBookmark */; + 8BC5BE482EB1697700031C01 /* PBXTextBookmark */ = 8BC5BE482EB1697700031C01 /* PBXTextBookmark */; 8BD964C72E95AA0700D77499 /* PlistBookmark */ = 8BD964C72E95AA0700D77499 /* PlistBookmark */; }; sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */; userBuildSettings = { }; }; - 8B962AF02E9AD2C4000EAC04 /* PBXTextBookmark */ = { + 8B692B762EB4D66E00F51381 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 8BA05A660720730100365D66 /* ConsoleX2Pre.cpp */; + name = "ConsoleX2Pre.cpp: 698"; + rLen = 0; + rLoc = 31458; + rType = 0; + vrLen = 66; + vrLoc = 3; + }; + 8B692BBF2EB4DCD400F51381 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 8BA05A660720730100365D66 /* ConsoleX2Pre.cpp */; + name = "ConsoleX2Pre.cpp: 698"; + rLen = 0; + rLoc = 31458; + rType = 0; + vrLen = 40; + vrLoc = 29; + }; + 8BA05A660720730100365D66 /* ConsoleX2Pre.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1065, 13572}}"; + sepNavSelRange = "{31458, 0}"; + sepNavVisRange = "{29, 40}"; + sepNavWindowFrame = "{{19, 92}, {1066, 786}}"; + }; + }; + 8BA05A690720730100365D66 /* ConsoleX2PreVersion.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {426, 1116}}"; + sepNavSelRange = "{2927, 0}"; + sepNavVisRange = "{3, 306}"; + sepNavWindowFrame = "{{61, 45}, {1066, 786}}"; + }; + }; + 8BC5BE482EB1697700031C01 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 8BA05A690720730100365D66 /* ConsoleX2PreVersion.h */; name = "ConsoleX2PreVersion.h: 54"; rLen = 0; rLoc = 2927; rType = 0; - vrLen = 134; - vrLoc = 2847; - }; - 8B962B712E9AD519000EAC04 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 8BC6025B073B072D006C4272 /* ConsoleX2Pre.h */; - name = "ConsoleX2Pre.h: 94"; - rLen = 0; - rLoc = 4648; - rType = 0; - vrLen = 54; - vrLoc = 4648; - }; - 8B962B722E9AD519000EAC04 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 8BA05A660720730100365D66 /* ConsoleX2Pre.cpp */; - name = "ConsoleX2Pre.cpp: 612"; - rLen = 0; - rLoc = 27730; - rType = 0; - vrLen = 66; - vrLoc = 27634; - }; - 8B962BEF2E9B17D7000EAC04 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 8BA05A660720730100365D66 /* ConsoleX2Pre.cpp */; - name = "ConsoleX2Pre.cpp: 612"; - rLen = 0; - rLoc = 27730; - rType = 0; - vrLen = 20; - vrLoc = 27680; - }; - 8BA05A660720730100365D66 /* ConsoleX2Pre.cpp */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1065, 12510}}"; - sepNavSelRange = "{27730, 0}"; - sepNavVisRange = "{27680, 20}"; - sepNavWindowFrame = "{{374, 88}, {1066, 786}}"; - }; - }; - 8BA05A690720730100365D66 /* ConsoleX2PreVersion.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {696, 1296}}"; - sepNavSelRange = "{2927, 0}"; - sepNavVisRange = "{2847, 134}"; - sepNavWindowFrame = "{{61, 45}, {1066, 786}}"; - }; + vrLen = 306; + vrLoc = 3; }; 8BC6025B073B072D006C4272 /* ConsoleX2Pre.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {498, 4572}}"; - sepNavSelRange = "{4648, 0}"; - sepNavVisRange = "{4648, 54}"; - sepNavWindowFrame = "{{374, 63}, {1066, 786}}"; + sepNavIntBoundsRect = "{{0, 0}, {1146, 4734}}"; + sepNavSelRange = "{8318, 0}"; + sepNavVisRange = "{3264, 1603}"; + sepNavWindowFrame = "{{7, 38}, {657, 832}}"; }; }; 8BD3CCB8148830B20062E48C /* Source Control */ = { diff --git a/plugins/MacSignedAU/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacSignedAU/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/christopherjohnson.perspectivev3 index dc6068c70..4f1aebcde 100755 --- a/plugins/MacSignedAU/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/christopherjohnson.perspectivev3 +++ b/plugins/MacSignedAU/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/christopherjohnson.perspectivev3 @@ -225,8 +225,8 @@ PerspectiveWidths - 841 - 841 + 716 + 716 Perspectives @@ -302,14 +302,14 @@ PBXSmartGroupTreeModuleOutlineStateSelectionKey - 4 + 3 2 1 0 PBXSmartGroupTreeModuleOutlineStateVisibleRectKey - {{0, 0}, {288, 595}} + {{0, 0}, {288, 452}} PBXTopSmartGroupGIDs @@ -319,14 +319,14 @@ GeometryConfiguration Frame - {{0, 0}, {305, 613}} + {{0, 0}, {305, 470}} GroupTreeTableConfiguration MainColumn 288 RubberWindowFrame - 599 187 841 654 0 0 1440 878 + 25 209 716 511 0 0 1440 878 Module PBXSmartGroupTreeModule @@ -354,13 +354,12 @@ _historyCapacity 0 bookmark - 8B962BEF2E9B17D7000EAC04 + 8B692BBF2EB4DCD400F51381 history 8BD964C72E95AA0700D77499 - 8B962AF02E9AD2C4000EAC04 - 8B962B712E9AD519000EAC04 - 8B962B722E9AD519000EAC04 + 8BC5BE482EB1697700031C01 + 8B692B762EB4D66E00F51381 SplitCount @@ -374,18 +373,18 @@ GeometryConfiguration Frame - {{0, 0}, {531, 49}} + {{0, 0}, {406, 94}} RubberWindowFrame - 599 187 841 654 0 0 1440 878 + 25 209 716 511 0 0 1440 878 Module PBXNavigatorGroup Proportion - 49pt + 94pt Proportion - 559pt + 371pt Tabs @@ -399,9 +398,9 @@ GeometryConfiguration Frame - {{10, 27}, {531, 532}} + {{10, 27}, {406, 344}} RubberWindowFrame - 599 187 841 654 0 0 1440 878 + 25 209 716 511 0 0 1440 878 Module XCDetailModule @@ -455,7 +454,7 @@ GeometryConfiguration Frame - {{10, 27}, {531, 445}} + {{10, 27}, {406, 438}} Module PBXBuildResultsModule @@ -464,7 +463,7 @@ Proportion - 531pt + 406pt Name @@ -483,11 +482,11 @@ TableOfContents - 8B962BF02E9B17D7000EAC04 + 8B692B8A2EB4D8DA00F51381 1CA23ED40692098700951B8B - 8B962BF12E9B17D7000EAC04 + 8B692B8B2EB4D8DA00F51381 8BD7274A1D46E5A5000176F0 - 8B962BF22E9B17D7000EAC04 + 8B692B8C2EB4D8DA00F51381 1CA23EDF0692099D00951B8B 1CA23EE00692099D00951B8B 1CA23EE10692099D00951B8B @@ -660,7 +659,7 @@ StatusbarIsVisible TimeStamp - 781916119.01407897 + 783604948.76098895 ToolbarConfigUserDefaultsMinorVersion 2 ToolbarDisplayMode @@ -677,11 +676,10 @@ 5 WindowOrderList - 8B962BF32E9B17D7000EAC04 /Users/christopherjohnson/Desktop/airwindows/plugins/MacAU/ConsoleX2Pre/ConsoleX2Pre.xcodeproj WindowString - 599 187 841 654 0 0 1440 878 + 25 209 716 511 0 0 1440 878 WindowToolsV3 diff --git a/plugins/MacSignedAU/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/project.pbxproj b/plugins/MacSignedAU/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/project.pbxproj index f28aa1292..f473a3b1a 100755 --- a/plugins/MacSignedAU/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/project.pbxproj +++ b/plugins/MacSignedAU/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/project.pbxproj @@ -7,135 +7,135 @@ objects = { /* Begin PBXBuildFile section */ - 8B845D832E9DA93100AFF254 /* CAExtAudioFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845CFB2E9DA93100AFF254 /* CAExtAudioFile.h */; }; - 8B845D842E9DA93100AFF254 /* CACFMachPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845CFC2E9DA93100AFF254 /* CACFMachPort.h */; }; - 8B845D852E9DA93100AFF254 /* CABool.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845CFD2E9DA93100AFF254 /* CABool.h */; }; - 8B845D862E9DA93100AFF254 /* CAComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845CFE2E9DA93100AFF254 /* CAComponent.cpp */; }; - 8B845D872E9DA93100AFF254 /* CADebugger.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845CFF2E9DA93100AFF254 /* CADebugger.h */; }; - 8B845D882E9DA93100AFF254 /* CACFNumber.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845D002E9DA93100AFF254 /* CACFNumber.cpp */; }; - 8B845D892E9DA93100AFF254 /* CAGuard.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D012E9DA93100AFF254 /* CAGuard.h */; }; - 8B845D8A2E9DA93100AFF254 /* CAAtomic.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D022E9DA93100AFF254 /* CAAtomic.h */; }; - 8B845D8B2E9DA93100AFF254 /* CAStreamBasicDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D032E9DA93100AFF254 /* CAStreamBasicDescription.h */; }; - 8B845D8C2E9DA93100AFF254 /* CACFObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D042E9DA93100AFF254 /* CACFObject.h */; }; - 8B845D8D2E9DA93100AFF254 /* CAStreamRangedDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D052E9DA93100AFF254 /* CAStreamRangedDescription.h */; }; - 8B845D8E2E9DA93100AFF254 /* CATokenMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D062E9DA93100AFF254 /* CATokenMap.h */; }; - 8B845D8F2E9DA93100AFF254 /* CAComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D072E9DA93100AFF254 /* CAComponent.h */; }; - 8B845D902E9DA93100AFF254 /* CAAudioBufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D082E9DA93100AFF254 /* CAAudioBufferList.h */; }; - 8B845D912E9DA93100AFF254 /* CAAudioUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D092E9DA93100AFF254 /* CAAudioUnit.h */; }; - 8B845D922E9DA93100AFF254 /* CAAUParameter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D0A2E9DA93100AFF254 /* CAAUParameter.h */; }; - 8B845D932E9DA93100AFF254 /* CAException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D0B2E9DA93100AFF254 /* CAException.h */; }; - 8B845D942E9DA93100AFF254 /* CAAUProcessor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845D0C2E9DA93100AFF254 /* CAAUProcessor.cpp */; }; - 8B845D952E9DA93100AFF254 /* CAAUProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D0D2E9DA93100AFF254 /* CAAUProcessor.h */; }; - 8B845D962E9DA93100AFF254 /* CAProcess.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D0E2E9DA93100AFF254 /* CAProcess.h */; }; - 8B845D972E9DA93100AFF254 /* CACFDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D0F2E9DA93100AFF254 /* CACFDictionary.h */; }; - 8B845D982E9DA93100AFF254 /* CAPThread.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D102E9DA93100AFF254 /* CAPThread.h */; }; - 8B845D992E9DA93100AFF254 /* CAAUParameter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845D112E9DA93100AFF254 /* CAAUParameter.cpp */; }; - 8B845D9A2E9DA93100AFF254 /* CAAudioTimeStamp.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D122E9DA93100AFF254 /* CAAudioTimeStamp.h */; }; - 8B845D9B2E9DA93100AFF254 /* CAFilePathUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845D132E9DA93100AFF254 /* CAFilePathUtils.cpp */; }; - 8B845D9C2E9DA93100AFF254 /* CAAudioValueRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D142E9DA93100AFF254 /* CAAudioValueRange.h */; }; - 8B845D9D2E9DA93100AFF254 /* CAVectorUnitTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D152E9DA93100AFF254 /* CAVectorUnitTypes.h */; }; - 8B845D9E2E9DA93100AFF254 /* CAAudioChannelLayoutObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845D162E9DA93100AFF254 /* CAAudioChannelLayoutObject.cpp */; }; - 8B845D9F2E9DA93100AFF254 /* CAGuard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845D172E9DA93100AFF254 /* CAGuard.cpp */; }; - 8B845DA02E9DA93100AFF254 /* CACFNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D182E9DA93100AFF254 /* CACFNumber.h */; }; - 8B845DA12E9DA93100AFF254 /* CACFDistributedNotification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845D192E9DA93100AFF254 /* CACFDistributedNotification.cpp */; }; - 8B845DA22E9DA93100AFF254 /* CACFString.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D1A2E9DA93100AFF254 /* CACFString.h */; }; - 8B845DA32E9DA93100AFF254 /* CAAUMIDIMapManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845D1B2E9DA93100AFF254 /* CAAUMIDIMapManager.cpp */; }; - 8B845DA42E9DA93100AFF254 /* CAComponentDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845D1C2E9DA93100AFF254 /* CAComponentDescription.cpp */; }; - 8B845DA52E9DA93100AFF254 /* CAHostTimeBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D1D2E9DA93100AFF254 /* CAHostTimeBase.h */; }; - 8B845DA62E9DA93100AFF254 /* CADebugMacros.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845D1E2E9DA93100AFF254 /* CADebugMacros.cpp */; }; - 8B845DA72E9DA93100AFF254 /* CAAudioFileFormats.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D1F2E9DA93100AFF254 /* CAAudioFileFormats.h */; }; - 8B845DA82E9DA93100AFF254 /* CAAUMIDIMapManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D202E9DA93100AFF254 /* CAAUMIDIMapManager.h */; }; - 8B845DA92E9DA93100AFF254 /* CACFDictionary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845D212E9DA93100AFF254 /* CACFDictionary.cpp */; }; - 8B845DAA2E9DA93100AFF254 /* CAMutex.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D222E9DA93100AFF254 /* CAMutex.h */; }; - 8B845DAB2E9DA93100AFF254 /* CACFString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845D232E9DA93100AFF254 /* CACFString.cpp */; }; - 8B845DAC2E9DA93100AFF254 /* CASettingsStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D242E9DA93100AFF254 /* CASettingsStorage.h */; }; - 8B845DAD2E9DA93100AFF254 /* CADebugPrintf.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D252E9DA93100AFF254 /* CADebugPrintf.h */; }; - 8B845DAE2E9DA93100AFF254 /* CAXException.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845D262E9DA93100AFF254 /* CAXException.cpp */; }; - 8B845DAF2E9DA93100AFF254 /* CAAUMIDIMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D272E9DA93100AFF254 /* CAAUMIDIMap.h */; }; - 8B845DB02E9DA93100AFF254 /* AUParamInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D282E9DA93100AFF254 /* AUParamInfo.h */; }; - 8B845DB12E9DA93100AFF254 /* CABitOperations.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D292E9DA93100AFF254 /* CABitOperations.h */; }; - 8B845DB22E9DA93100AFF254 /* CACFPreferences.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845D2A2E9DA93100AFF254 /* CACFPreferences.cpp */; }; - 8B845DB32E9DA93100AFF254 /* CABundleLocker.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D2B2E9DA93100AFF254 /* CABundleLocker.h */; }; - 8B845DB42E9DA93100AFF254 /* CAPropertyAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D2C2E9DA93100AFF254 /* CAPropertyAddress.h */; }; - 8B845DB52E9DA93100AFF254 /* CAXException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D2D2E9DA93100AFF254 /* CAXException.h */; }; - 8B845DB62E9DA93100AFF254 /* CAAudioChannelLayout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845D2E2E9DA93100AFF254 /* CAAudioChannelLayout.cpp */; }; - 8B845DB72E9DA93100AFF254 /* CAThreadSafeList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D2F2E9DA93100AFF254 /* CAThreadSafeList.h */; }; - 8B845DB82E9DA93100AFF254 /* CAAudioUnitOutputCapturer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D302E9DA93100AFF254 /* CAAudioUnitOutputCapturer.h */; }; - 8B845DB92E9DA93100AFF254 /* AUParamInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845D312E9DA93100AFF254 /* AUParamInfo.cpp */; }; - 8B845DBA2E9DA93100AFF254 /* CASharedLibrary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845D322E9DA93100AFF254 /* CASharedLibrary.cpp */; }; - 8B845DBB2E9DA93100AFF254 /* CAAUMIDIMap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845D332E9DA93100AFF254 /* CAAUMIDIMap.cpp */; }; - 8B845DBC2E9DA93100AFF254 /* CALogMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D342E9DA93100AFF254 /* CALogMacros.h */; }; - 8B845DBD2E9DA93100AFF254 /* CACFMessagePort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845D352E9DA93100AFF254 /* CACFMessagePort.cpp */; }; - 8B845DBE2E9DA93100AFF254 /* CARingBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D362E9DA93100AFF254 /* CARingBuffer.h */; }; - 8B845DBF2E9DA93100AFF254 /* AUOutputBL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845D372E9DA93100AFF254 /* AUOutputBL.cpp */; }; - 8B845DC02E9DA93100AFF254 /* CABufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D382E9DA93100AFF254 /* CABufferList.h */; }; - 8B845DC12E9DA93100AFF254 /* CASharedLibrary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D392E9DA93100AFF254 /* CASharedLibrary.h */; }; - 8B845DC22E9DA93100AFF254 /* CACFData.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D3A2E9DA93100AFF254 /* CACFData.h */; }; - 8B845DC32E9DA93100AFF254 /* CAStreamRangedDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845D3B2E9DA93100AFF254 /* CAStreamRangedDescription.cpp */; }; - 8B845DC42E9DA93100AFF254 /* CAPThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845D3C2E9DA93100AFF254 /* CAPThread.cpp */; }; - 8B845DC52E9DA93100AFF254 /* CAAutoDisposer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D3D2E9DA93100AFF254 /* CAAutoDisposer.h */; }; - 8B845DC62E9DA93100AFF254 /* CACFPreferences.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D3E2E9DA93100AFF254 /* CACFPreferences.h */; }; - 8B845DC72E9DA93100AFF254 /* CAVectorUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845D3F2E9DA93100AFF254 /* CAVectorUnit.cpp */; }; - 8B845DC82E9DA93100AFF254 /* CAComponentDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D402E9DA93100AFF254 /* CAComponentDescription.h */; }; - 8B845DC92E9DA93100AFF254 /* CADebugMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D412E9DA93100AFF254 /* CADebugMacros.h */; }; - 8B845DCA2E9DA93100AFF254 /* AUOutputBL.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D422E9DA93100AFF254 /* AUOutputBL.h */; }; - 8B845DCB2E9DA93100AFF254 /* CADebugPrintf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845D432E9DA93100AFF254 /* CADebugPrintf.cpp */; }; - 8B845DCC2E9DA93100AFF254 /* CARingBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845D442E9DA93100AFF254 /* CARingBuffer.cpp */; }; - 8B845DCD2E9DA93100AFF254 /* CACFPlugIn.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D452E9DA93100AFF254 /* CACFPlugIn.h */; }; - 8B845DCE2E9DA93100AFF254 /* CASettingsStorage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845D462E9DA93100AFF254 /* CASettingsStorage.cpp */; }; - 8B845DCF2E9DA93100AFF254 /* CAMixMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D472E9DA93100AFF254 /* CAMixMap.h */; }; - 8B845DD02E9DA93100AFF254 /* CACFDistributedNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D482E9DA93100AFF254 /* CACFDistributedNotification.h */; }; - 8B845DD12E9DA93100AFF254 /* CAFilePathUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D492E9DA93100AFF254 /* CAFilePathUtils.h */; }; - 8B845DD22E9DA93100AFF254 /* CATink.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D4A2E9DA93100AFF254 /* CATink.h */; }; - 8B845DD32E9DA93100AFF254 /* CAStreamBasicDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845D4B2E9DA93100AFF254 /* CAStreamBasicDescription.cpp */; }; - 8B845DD42E9DA93100AFF254 /* CAAudioChannelLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D4C2E9DA93100AFF254 /* CAAudioChannelLayout.h */; }; - 8B845DD52E9DA93100AFF254 /* CAProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845D4D2E9DA93100AFF254 /* CAProcess.cpp */; }; - 8B845DD62E9DA93100AFF254 /* CAHostTimeBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845D4E2E9DA93100AFF254 /* CAHostTimeBase.cpp */; }; - 8B845DD72E9DA93100AFF254 /* CAPersistence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845D4F2E9DA93100AFF254 /* CAPersistence.cpp */; }; - 8B845DD82E9DA93100AFF254 /* CAAudioBufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845D502E9DA93100AFF254 /* CAAudioBufferList.cpp */; }; - 8B845DD92E9DA93100AFF254 /* CAAudioTimeStamp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845D512E9DA93100AFF254 /* CAAudioTimeStamp.cpp */; }; - 8B845DDA2E9DA93100AFF254 /* CAVectorUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D522E9DA93100AFF254 /* CAVectorUnit.h */; }; - 8B845DDB2E9DA93100AFF254 /* CAByteOrder.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D532E9DA93100AFF254 /* CAByteOrder.h */; }; - 8B845DDC2E9DA93100AFF254 /* CACFArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D542E9DA93100AFF254 /* CACFArray.h */; }; - 8B845DDD2E9DA93100AFF254 /* CAAtomicStack.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D552E9DA93100AFF254 /* CAAtomicStack.h */; }; - 8B845DDE2E9DA93100AFF254 /* CAReferenceCounted.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D562E9DA93100AFF254 /* CAReferenceCounted.h */; }; - 8B845DDF2E9DA93100AFF254 /* CACFMachPort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845D572E9DA93100AFF254 /* CACFMachPort.cpp */; }; - 8B845DE02E9DA93100AFF254 /* CABufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845D582E9DA93100AFF254 /* CABufferList.cpp */; }; - 8B845DE12E9DA93100AFF254 /* CAMutex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845D592E9DA93100AFF254 /* CAMutex.cpp */; }; - 8B845DE22E9DA93100AFF254 /* CADebugger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845D5A2E9DA93100AFF254 /* CADebugger.cpp */; }; - 8B845DE32E9DA93100AFF254 /* CABundleLocker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845D5B2E9DA93100AFF254 /* CABundleLocker.cpp */; }; - 8B845DE42E9DA93100AFF254 /* CAAudioFileFormats.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845D5C2E9DA93100AFF254 /* CAAudioFileFormats.cpp */; }; - 8B845DE52E9DA93100AFF254 /* CAMath.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D5D2E9DA93100AFF254 /* CAMath.h */; }; - 8B845DE62E9DA93100AFF254 /* CACFArray.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845D5E2E9DA93100AFF254 /* CACFArray.cpp */; }; - 8B845DE72E9DA93100AFF254 /* CACFMessagePort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D5F2E9DA93100AFF254 /* CACFMessagePort.h */; }; - 8B845DE82E9DA93100AFF254 /* CAAudioValueRange.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845D602E9DA93100AFF254 /* CAAudioValueRange.cpp */; }; - 8B845DE92E9DA93100AFF254 /* CAAudioUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845D612E9DA93100AFF254 /* CAAudioUnit.cpp */; }; - 8B845DEA2E9DA93100AFF254 /* AUViewLocalizedStringKeys.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D652E9DA93100AFF254 /* AUViewLocalizedStringKeys.h */; }; - 8B845DEB2E9DA93100AFF254 /* ComponentBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845D672E9DA93100AFF254 /* ComponentBase.cpp */; }; - 8B845DEC2E9DA93100AFF254 /* AUScopeElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845D682E9DA93100AFF254 /* AUScopeElement.cpp */; }; - 8B845DED2E9DA93100AFF254 /* ComponentBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D692E9DA93100AFF254 /* ComponentBase.h */; }; - 8B845DEE2E9DA93100AFF254 /* AUBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845D6A2E9DA93100AFF254 /* AUBase.cpp */; }; - 8B845DEF2E9DA93100AFF254 /* AUInputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D6B2E9DA93100AFF254 /* AUInputElement.h */; }; - 8B845DF02E9DA93100AFF254 /* AUBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D6C2E9DA93100AFF254 /* AUBase.h */; }; - 8B845DF12E9DA93100AFF254 /* AUPlugInDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D6D2E9DA93100AFF254 /* AUPlugInDispatch.h */; }; - 8B845DF22E9DA93100AFF254 /* AUDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D6E2E9DA93100AFF254 /* AUDispatch.h */; }; - 8B845DF32E9DA93100AFF254 /* AUOutputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845D6F2E9DA93100AFF254 /* AUOutputElement.cpp */; }; - 8B845DF52E9DA93100AFF254 /* AUPlugInDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845D712E9DA93100AFF254 /* AUPlugInDispatch.cpp */; }; - 8B845DF62E9DA93100AFF254 /* AUOutputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D722E9DA93100AFF254 /* AUOutputElement.h */; }; - 8B845DF72E9DA93100AFF254 /* AUDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845D732E9DA93100AFF254 /* AUDispatch.cpp */; }; - 8B845DF82E9DA93100AFF254 /* AUScopeElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D742E9DA93100AFF254 /* AUScopeElement.h */; }; - 8B845DF92E9DA93100AFF254 /* AUInputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845D752E9DA93100AFF254 /* AUInputElement.cpp */; }; - 8B845DFA2E9DA93100AFF254 /* AUEffectBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845D772E9DA93100AFF254 /* AUEffectBase.cpp */; }; - 8B845DFB2E9DA93100AFF254 /* AUEffectBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D782E9DA93100AFF254 /* AUEffectBase.h */; }; - 8B845DFC2E9DA93100AFF254 /* AUTimestampGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D7A2E9DA93100AFF254 /* AUTimestampGenerator.h */; }; - 8B845DFD2E9DA93100AFF254 /* AUBaseHelper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845D7B2E9DA93100AFF254 /* AUBaseHelper.cpp */; }; - 8B845DFE2E9DA93100AFF254 /* AUSilentTimeout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D7C2E9DA93100AFF254 /* AUSilentTimeout.h */; }; - 8B845DFF2E9DA93100AFF254 /* AUInputFormatConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D7D2E9DA93100AFF254 /* AUInputFormatConverter.h */; }; - 8B845E002E9DA93100AFF254 /* AUTimestampGenerator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845D7E2E9DA93100AFF254 /* AUTimestampGenerator.cpp */; }; - 8B845E012E9DA93100AFF254 /* AUBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B845D7F2E9DA93100AFF254 /* AUBuffer.cpp */; }; - 8B845E022E9DA93100AFF254 /* AUMIDIDefs.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D802E9DA93100AFF254 /* AUMIDIDefs.h */; }; - 8B845E032E9DA93100AFF254 /* AUBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D812E9DA93100AFF254 /* AUBuffer.h */; }; - 8B845E042E9DA93100AFF254 /* AUBaseHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B845D822E9DA93100AFF254 /* AUBaseHelper.h */; }; + 8B7A494C2EB5689800B07840 /* CAExtAudioFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48C42EB5689800B07840 /* CAExtAudioFile.h */; }; + 8B7A494D2EB5689800B07840 /* CACFMachPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48C52EB5689800B07840 /* CACFMachPort.h */; }; + 8B7A494E2EB5689800B07840 /* CABool.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48C62EB5689800B07840 /* CABool.h */; }; + 8B7A494F2EB5689800B07840 /* CAComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A48C72EB5689800B07840 /* CAComponent.cpp */; }; + 8B7A49502EB5689800B07840 /* CADebugger.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48C82EB5689800B07840 /* CADebugger.h */; }; + 8B7A49512EB5689800B07840 /* CACFNumber.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A48C92EB5689800B07840 /* CACFNumber.cpp */; }; + 8B7A49522EB5689800B07840 /* CAGuard.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48CA2EB5689800B07840 /* CAGuard.h */; }; + 8B7A49532EB5689800B07840 /* CAAtomic.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48CB2EB5689800B07840 /* CAAtomic.h */; }; + 8B7A49542EB5689800B07840 /* CAStreamBasicDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48CC2EB5689800B07840 /* CAStreamBasicDescription.h */; }; + 8B7A49552EB5689800B07840 /* CACFObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48CD2EB5689800B07840 /* CACFObject.h */; }; + 8B7A49562EB5689800B07840 /* CAStreamRangedDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48CE2EB5689800B07840 /* CAStreamRangedDescription.h */; }; + 8B7A49572EB5689800B07840 /* CATokenMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48CF2EB5689800B07840 /* CATokenMap.h */; }; + 8B7A49582EB5689800B07840 /* CAComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48D02EB5689800B07840 /* CAComponent.h */; }; + 8B7A49592EB5689800B07840 /* CAAudioBufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48D12EB5689800B07840 /* CAAudioBufferList.h */; }; + 8B7A495A2EB5689800B07840 /* CAAudioUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48D22EB5689800B07840 /* CAAudioUnit.h */; }; + 8B7A495B2EB5689800B07840 /* CAAUParameter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48D32EB5689800B07840 /* CAAUParameter.h */; }; + 8B7A495C2EB5689800B07840 /* CAException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48D42EB5689800B07840 /* CAException.h */; }; + 8B7A495D2EB5689800B07840 /* CAAUProcessor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A48D52EB5689800B07840 /* CAAUProcessor.cpp */; }; + 8B7A495E2EB5689800B07840 /* CAAUProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48D62EB5689800B07840 /* CAAUProcessor.h */; }; + 8B7A495F2EB5689800B07840 /* CAProcess.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48D72EB5689800B07840 /* CAProcess.h */; }; + 8B7A49602EB5689800B07840 /* CACFDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48D82EB5689800B07840 /* CACFDictionary.h */; }; + 8B7A49612EB5689800B07840 /* CAPThread.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48D92EB5689800B07840 /* CAPThread.h */; }; + 8B7A49622EB5689800B07840 /* CAAUParameter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A48DA2EB5689800B07840 /* CAAUParameter.cpp */; }; + 8B7A49632EB5689800B07840 /* CAAudioTimeStamp.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48DB2EB5689800B07840 /* CAAudioTimeStamp.h */; }; + 8B7A49642EB5689800B07840 /* CAFilePathUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A48DC2EB5689800B07840 /* CAFilePathUtils.cpp */; }; + 8B7A49652EB5689800B07840 /* CAAudioValueRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48DD2EB5689800B07840 /* CAAudioValueRange.h */; }; + 8B7A49662EB5689800B07840 /* CAVectorUnitTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48DE2EB5689800B07840 /* CAVectorUnitTypes.h */; }; + 8B7A49672EB5689800B07840 /* CAAudioChannelLayoutObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A48DF2EB5689800B07840 /* CAAudioChannelLayoutObject.cpp */; }; + 8B7A49682EB5689800B07840 /* CAGuard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A48E02EB5689800B07840 /* CAGuard.cpp */; }; + 8B7A49692EB5689800B07840 /* CACFNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48E12EB5689800B07840 /* CACFNumber.h */; }; + 8B7A496A2EB5689800B07840 /* CACFDistributedNotification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A48E22EB5689800B07840 /* CACFDistributedNotification.cpp */; }; + 8B7A496B2EB5689800B07840 /* CACFString.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48E32EB5689800B07840 /* CACFString.h */; }; + 8B7A496C2EB5689800B07840 /* CAAUMIDIMapManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A48E42EB5689800B07840 /* CAAUMIDIMapManager.cpp */; }; + 8B7A496D2EB5689800B07840 /* CAComponentDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A48E52EB5689800B07840 /* CAComponentDescription.cpp */; }; + 8B7A496E2EB5689800B07840 /* CAHostTimeBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48E62EB5689800B07840 /* CAHostTimeBase.h */; }; + 8B7A496F2EB5689800B07840 /* CADebugMacros.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A48E72EB5689800B07840 /* CADebugMacros.cpp */; }; + 8B7A49702EB5689800B07840 /* CAAudioFileFormats.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48E82EB5689800B07840 /* CAAudioFileFormats.h */; }; + 8B7A49712EB5689800B07840 /* CAAUMIDIMapManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48E92EB5689800B07840 /* CAAUMIDIMapManager.h */; }; + 8B7A49722EB5689800B07840 /* CACFDictionary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A48EA2EB5689800B07840 /* CACFDictionary.cpp */; }; + 8B7A49732EB5689800B07840 /* CAMutex.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48EB2EB5689800B07840 /* CAMutex.h */; }; + 8B7A49742EB5689800B07840 /* CACFString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A48EC2EB5689800B07840 /* CACFString.cpp */; }; + 8B7A49752EB5689800B07840 /* CASettingsStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48ED2EB5689800B07840 /* CASettingsStorage.h */; }; + 8B7A49762EB5689800B07840 /* CADebugPrintf.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48EE2EB5689800B07840 /* CADebugPrintf.h */; }; + 8B7A49772EB5689800B07840 /* CAXException.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A48EF2EB5689800B07840 /* CAXException.cpp */; }; + 8B7A49782EB5689800B07840 /* CAAUMIDIMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48F02EB5689800B07840 /* CAAUMIDIMap.h */; }; + 8B7A49792EB5689800B07840 /* AUParamInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48F12EB5689800B07840 /* AUParamInfo.h */; }; + 8B7A497A2EB5689800B07840 /* CABitOperations.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48F22EB5689800B07840 /* CABitOperations.h */; }; + 8B7A497B2EB5689800B07840 /* CACFPreferences.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A48F32EB5689800B07840 /* CACFPreferences.cpp */; }; + 8B7A497C2EB5689800B07840 /* CABundleLocker.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48F42EB5689800B07840 /* CABundleLocker.h */; }; + 8B7A497D2EB5689800B07840 /* CAPropertyAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48F52EB5689800B07840 /* CAPropertyAddress.h */; }; + 8B7A497E2EB5689800B07840 /* CAXException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48F62EB5689800B07840 /* CAXException.h */; }; + 8B7A497F2EB5689800B07840 /* CAAudioChannelLayout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A48F72EB5689800B07840 /* CAAudioChannelLayout.cpp */; }; + 8B7A49802EB5689800B07840 /* CAThreadSafeList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48F82EB5689800B07840 /* CAThreadSafeList.h */; }; + 8B7A49812EB5689800B07840 /* CAAudioUnitOutputCapturer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48F92EB5689800B07840 /* CAAudioUnitOutputCapturer.h */; }; + 8B7A49822EB5689800B07840 /* AUParamInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A48FA2EB5689800B07840 /* AUParamInfo.cpp */; }; + 8B7A49832EB5689800B07840 /* CASharedLibrary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A48FB2EB5689800B07840 /* CASharedLibrary.cpp */; }; + 8B7A49842EB5689800B07840 /* CAAUMIDIMap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A48FC2EB5689800B07840 /* CAAUMIDIMap.cpp */; }; + 8B7A49852EB5689800B07840 /* CALogMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48FD2EB5689800B07840 /* CALogMacros.h */; }; + 8B7A49862EB5689800B07840 /* CACFMessagePort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A48FE2EB5689800B07840 /* CACFMessagePort.cpp */; }; + 8B7A49872EB5689800B07840 /* CARingBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A48FF2EB5689800B07840 /* CARingBuffer.h */; }; + 8B7A49882EB5689800B07840 /* AUOutputBL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A49002EB5689800B07840 /* AUOutputBL.cpp */; }; + 8B7A49892EB5689800B07840 /* CABufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49012EB5689800B07840 /* CABufferList.h */; }; + 8B7A498A2EB5689800B07840 /* CASharedLibrary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49022EB5689800B07840 /* CASharedLibrary.h */; }; + 8B7A498B2EB5689800B07840 /* CACFData.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49032EB5689800B07840 /* CACFData.h */; }; + 8B7A498C2EB5689800B07840 /* CAStreamRangedDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A49042EB5689800B07840 /* CAStreamRangedDescription.cpp */; }; + 8B7A498D2EB5689800B07840 /* CAPThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A49052EB5689800B07840 /* CAPThread.cpp */; }; + 8B7A498E2EB5689800B07840 /* CAAutoDisposer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49062EB5689800B07840 /* CAAutoDisposer.h */; }; + 8B7A498F2EB5689800B07840 /* CACFPreferences.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49072EB5689800B07840 /* CACFPreferences.h */; }; + 8B7A49902EB5689800B07840 /* CAVectorUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A49082EB5689800B07840 /* CAVectorUnit.cpp */; }; + 8B7A49912EB5689800B07840 /* CAComponentDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49092EB5689800B07840 /* CAComponentDescription.h */; }; + 8B7A49922EB5689800B07840 /* CADebugMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A490A2EB5689800B07840 /* CADebugMacros.h */; }; + 8B7A49932EB5689800B07840 /* AUOutputBL.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A490B2EB5689800B07840 /* AUOutputBL.h */; }; + 8B7A49942EB5689800B07840 /* CADebugPrintf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A490C2EB5689800B07840 /* CADebugPrintf.cpp */; }; + 8B7A49952EB5689800B07840 /* CARingBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A490D2EB5689800B07840 /* CARingBuffer.cpp */; }; + 8B7A49962EB5689800B07840 /* CACFPlugIn.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A490E2EB5689800B07840 /* CACFPlugIn.h */; }; + 8B7A49972EB5689800B07840 /* CASettingsStorage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A490F2EB5689800B07840 /* CASettingsStorage.cpp */; }; + 8B7A49982EB5689800B07840 /* CAMixMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49102EB5689800B07840 /* CAMixMap.h */; }; + 8B7A49992EB5689800B07840 /* CACFDistributedNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49112EB5689800B07840 /* CACFDistributedNotification.h */; }; + 8B7A499A2EB5689800B07840 /* CAFilePathUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49122EB5689800B07840 /* CAFilePathUtils.h */; }; + 8B7A499B2EB5689800B07840 /* CATink.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49132EB5689800B07840 /* CATink.h */; }; + 8B7A499C2EB5689800B07840 /* CAStreamBasicDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A49142EB5689800B07840 /* CAStreamBasicDescription.cpp */; }; + 8B7A499D2EB5689800B07840 /* CAAudioChannelLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49152EB5689800B07840 /* CAAudioChannelLayout.h */; }; + 8B7A499E2EB5689800B07840 /* CAProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A49162EB5689800B07840 /* CAProcess.cpp */; }; + 8B7A499F2EB5689800B07840 /* CAHostTimeBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A49172EB5689800B07840 /* CAHostTimeBase.cpp */; }; + 8B7A49A02EB5689800B07840 /* CAPersistence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A49182EB5689800B07840 /* CAPersistence.cpp */; }; + 8B7A49A12EB5689800B07840 /* CAAudioBufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A49192EB5689800B07840 /* CAAudioBufferList.cpp */; }; + 8B7A49A22EB5689800B07840 /* CAAudioTimeStamp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A491A2EB5689800B07840 /* CAAudioTimeStamp.cpp */; }; + 8B7A49A32EB5689800B07840 /* CAVectorUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A491B2EB5689800B07840 /* CAVectorUnit.h */; }; + 8B7A49A42EB5689800B07840 /* CAByteOrder.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A491C2EB5689800B07840 /* CAByteOrder.h */; }; + 8B7A49A52EB5689800B07840 /* CACFArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A491D2EB5689800B07840 /* CACFArray.h */; }; + 8B7A49A62EB5689800B07840 /* CAAtomicStack.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A491E2EB5689800B07840 /* CAAtomicStack.h */; }; + 8B7A49A72EB5689800B07840 /* CAReferenceCounted.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A491F2EB5689800B07840 /* CAReferenceCounted.h */; }; + 8B7A49A82EB5689800B07840 /* CACFMachPort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A49202EB5689800B07840 /* CACFMachPort.cpp */; }; + 8B7A49A92EB5689800B07840 /* CABufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A49212EB5689800B07840 /* CABufferList.cpp */; }; + 8B7A49AA2EB5689800B07840 /* CAMutex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A49222EB5689800B07840 /* CAMutex.cpp */; }; + 8B7A49AB2EB5689800B07840 /* CADebugger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A49232EB5689800B07840 /* CADebugger.cpp */; }; + 8B7A49AC2EB5689800B07840 /* CABundleLocker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A49242EB5689800B07840 /* CABundleLocker.cpp */; }; + 8B7A49AD2EB5689800B07840 /* CAAudioFileFormats.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A49252EB5689800B07840 /* CAAudioFileFormats.cpp */; }; + 8B7A49AE2EB5689800B07840 /* CAMath.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49262EB5689800B07840 /* CAMath.h */; }; + 8B7A49AF2EB5689800B07840 /* CACFArray.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A49272EB5689800B07840 /* CACFArray.cpp */; }; + 8B7A49B02EB5689800B07840 /* CACFMessagePort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49282EB5689800B07840 /* CACFMessagePort.h */; }; + 8B7A49B12EB5689800B07840 /* CAAudioValueRange.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A49292EB5689800B07840 /* CAAudioValueRange.cpp */; }; + 8B7A49B22EB5689800B07840 /* CAAudioUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A492A2EB5689800B07840 /* CAAudioUnit.cpp */; }; + 8B7A49B32EB5689800B07840 /* AUViewLocalizedStringKeys.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A492E2EB5689800B07840 /* AUViewLocalizedStringKeys.h */; }; + 8B7A49B42EB5689800B07840 /* ComponentBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A49302EB5689800B07840 /* ComponentBase.cpp */; }; + 8B7A49B52EB5689800B07840 /* AUScopeElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A49312EB5689800B07840 /* AUScopeElement.cpp */; }; + 8B7A49B62EB5689800B07840 /* ComponentBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49322EB5689800B07840 /* ComponentBase.h */; }; + 8B7A49B72EB5689800B07840 /* AUBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A49332EB5689800B07840 /* AUBase.cpp */; }; + 8B7A49B82EB5689800B07840 /* AUInputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49342EB5689800B07840 /* AUInputElement.h */; }; + 8B7A49B92EB5689800B07840 /* AUBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49352EB5689800B07840 /* AUBase.h */; }; + 8B7A49BA2EB5689800B07840 /* AUPlugInDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49362EB5689800B07840 /* AUPlugInDispatch.h */; }; + 8B7A49BB2EB5689800B07840 /* AUDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49372EB5689800B07840 /* AUDispatch.h */; }; + 8B7A49BC2EB5689800B07840 /* AUOutputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A49382EB5689800B07840 /* AUOutputElement.cpp */; }; + 8B7A49BE2EB5689800B07840 /* AUPlugInDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A493A2EB5689800B07840 /* AUPlugInDispatch.cpp */; }; + 8B7A49BF2EB5689800B07840 /* AUOutputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A493B2EB5689800B07840 /* AUOutputElement.h */; }; + 8B7A49C02EB5689800B07840 /* AUDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A493C2EB5689800B07840 /* AUDispatch.cpp */; }; + 8B7A49C12EB5689800B07840 /* AUScopeElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A493D2EB5689800B07840 /* AUScopeElement.h */; }; + 8B7A49C22EB5689800B07840 /* AUInputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A493E2EB5689800B07840 /* AUInputElement.cpp */; }; + 8B7A49C32EB5689800B07840 /* AUEffectBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A49402EB5689800B07840 /* AUEffectBase.cpp */; }; + 8B7A49C42EB5689800B07840 /* AUEffectBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49412EB5689800B07840 /* AUEffectBase.h */; }; + 8B7A49C52EB5689800B07840 /* AUTimestampGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49432EB5689800B07840 /* AUTimestampGenerator.h */; }; + 8B7A49C62EB5689800B07840 /* AUBaseHelper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A49442EB5689800B07840 /* AUBaseHelper.cpp */; }; + 8B7A49C72EB5689800B07840 /* AUSilentTimeout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49452EB5689800B07840 /* AUSilentTimeout.h */; }; + 8B7A49C82EB5689800B07840 /* AUInputFormatConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49462EB5689800B07840 /* AUInputFormatConverter.h */; }; + 8B7A49C92EB5689800B07840 /* AUTimestampGenerator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A49472EB5689800B07840 /* AUTimestampGenerator.cpp */; }; + 8B7A49CA2EB5689800B07840 /* AUBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A49482EB5689800B07840 /* AUBuffer.cpp */; }; + 8B7A49CB2EB5689800B07840 /* AUMIDIDefs.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49492EB5689800B07840 /* AUMIDIDefs.h */; }; + 8B7A49CC2EB5689800B07840 /* AUBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A494A2EB5689800B07840 /* AUBuffer.h */; }; + 8B7A49CD2EB5689800B07840 /* AUBaseHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A494B2EB5689800B07840 /* AUBaseHelper.h */; }; 8BA05A6B0720730100365D66 /* ConsoleX2Pre.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* ConsoleX2Pre.cpp */; }; 8BA05A6E0720730100365D66 /* ConsoleX2PreVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* ConsoleX2PreVersion.h */; }; 8BA05AFC072074E100365D66 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8BA05AF9072074E100365D66 /* AudioToolbox.framework */; }; @@ -147,137 +147,137 @@ /* Begin PBXFileReference section */ 8B5C7FBF076FB2C200A15F61 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = ""; }; - 8B845CFB2E9DA93100AFF254 /* CAExtAudioFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAExtAudioFile.h; sourceTree = ""; }; - 8B845CFC2E9DA93100AFF254 /* CACFMachPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMachPort.h; sourceTree = ""; }; - 8B845CFD2E9DA93100AFF254 /* CABool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABool.h; sourceTree = ""; }; - 8B845CFE2E9DA93100AFF254 /* CAComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponent.cpp; sourceTree = ""; }; - 8B845CFF2E9DA93100AFF254 /* CADebugger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugger.h; sourceTree = ""; }; - 8B845D002E9DA93100AFF254 /* CACFNumber.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFNumber.cpp; sourceTree = ""; }; - 8B845D012E9DA93100AFF254 /* CAGuard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAGuard.h; sourceTree = ""; }; - 8B845D022E9DA93100AFF254 /* CAAtomic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomic.h; sourceTree = ""; }; - 8B845D032E9DA93100AFF254 /* CAStreamBasicDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamBasicDescription.h; sourceTree = ""; }; - 8B845D042E9DA93100AFF254 /* CACFObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFObject.h; sourceTree = ""; }; - 8B845D052E9DA93100AFF254 /* CAStreamRangedDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamRangedDescription.h; sourceTree = ""; }; - 8B845D062E9DA93100AFF254 /* CATokenMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATokenMap.h; sourceTree = ""; }; - 8B845D072E9DA93100AFF254 /* CAComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponent.h; sourceTree = ""; }; - 8B845D082E9DA93100AFF254 /* CAAudioBufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioBufferList.h; sourceTree = ""; }; - 8B845D092E9DA93100AFF254 /* CAAudioUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnit.h; sourceTree = ""; }; - 8B845D0A2E9DA93100AFF254 /* CAAUParameter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUParameter.h; sourceTree = ""; }; - 8B845D0B2E9DA93100AFF254 /* CAException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAException.h; sourceTree = ""; }; - 8B845D0C2E9DA93100AFF254 /* CAAUProcessor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUProcessor.cpp; sourceTree = ""; }; - 8B845D0D2E9DA93100AFF254 /* CAAUProcessor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUProcessor.h; sourceTree = ""; }; - 8B845D0E2E9DA93100AFF254 /* CAProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAProcess.h; sourceTree = ""; }; - 8B845D0F2E9DA93100AFF254 /* CACFDictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDictionary.h; sourceTree = ""; }; - 8B845D102E9DA93100AFF254 /* CAPThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPThread.h; sourceTree = ""; }; - 8B845D112E9DA93100AFF254 /* CAAUParameter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUParameter.cpp; sourceTree = ""; }; - 8B845D122E9DA93100AFF254 /* CAAudioTimeStamp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioTimeStamp.h; sourceTree = ""; }; - 8B845D132E9DA93100AFF254 /* CAFilePathUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAFilePathUtils.cpp; sourceTree = ""; }; - 8B845D142E9DA93100AFF254 /* CAAudioValueRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioValueRange.h; sourceTree = ""; }; - 8B845D152E9DA93100AFF254 /* CAVectorUnitTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnitTypes.h; sourceTree = ""; }; - 8B845D162E9DA93100AFF254 /* CAAudioChannelLayoutObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayoutObject.cpp; sourceTree = ""; }; - 8B845D172E9DA93100AFF254 /* CAGuard.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAGuard.cpp; sourceTree = ""; }; - 8B845D182E9DA93100AFF254 /* CACFNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFNumber.h; sourceTree = ""; }; - 8B845D192E9DA93100AFF254 /* CACFDistributedNotification.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDistributedNotification.cpp; sourceTree = ""; }; - 8B845D1A2E9DA93100AFF254 /* CACFString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFString.h; sourceTree = ""; }; - 8B845D1B2E9DA93100AFF254 /* CAAUMIDIMapManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMapManager.cpp; sourceTree = ""; }; - 8B845D1C2E9DA93100AFF254 /* CAComponentDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponentDescription.cpp; sourceTree = ""; }; - 8B845D1D2E9DA93100AFF254 /* CAHostTimeBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAHostTimeBase.h; sourceTree = ""; }; - 8B845D1E2E9DA93100AFF254 /* CADebugMacros.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugMacros.cpp; sourceTree = ""; }; - 8B845D1F2E9DA93100AFF254 /* CAAudioFileFormats.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioFileFormats.h; sourceTree = ""; }; - 8B845D202E9DA93100AFF254 /* CAAUMIDIMapManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMapManager.h; sourceTree = ""; }; - 8B845D212E9DA93100AFF254 /* CACFDictionary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDictionary.cpp; sourceTree = ""; }; - 8B845D222E9DA93100AFF254 /* CAMutex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMutex.h; sourceTree = ""; }; - 8B845D232E9DA93100AFF254 /* CACFString.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFString.cpp; sourceTree = ""; }; - 8B845D242E9DA93100AFF254 /* CASettingsStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASettingsStorage.h; sourceTree = ""; }; - 8B845D252E9DA93100AFF254 /* CADebugPrintf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugPrintf.h; sourceTree = ""; }; - 8B845D262E9DA93100AFF254 /* CAXException.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAXException.cpp; sourceTree = ""; }; - 8B845D272E9DA93100AFF254 /* CAAUMIDIMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMap.h; sourceTree = ""; }; - 8B845D282E9DA93100AFF254 /* AUParamInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUParamInfo.h; sourceTree = ""; }; - 8B845D292E9DA93100AFF254 /* CABitOperations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABitOperations.h; sourceTree = ""; }; - 8B845D2A2E9DA93100AFF254 /* CACFPreferences.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFPreferences.cpp; sourceTree = ""; }; - 8B845D2B2E9DA93100AFF254 /* CABundleLocker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABundleLocker.h; sourceTree = ""; }; - 8B845D2C2E9DA93100AFF254 /* CAPropertyAddress.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPropertyAddress.h; sourceTree = ""; }; - 8B845D2D2E9DA93100AFF254 /* CAXException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAXException.h; sourceTree = ""; }; - 8B845D2E2E9DA93100AFF254 /* CAAudioChannelLayout.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayout.cpp; sourceTree = ""; }; - 8B845D2F2E9DA93100AFF254 /* CAThreadSafeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAThreadSafeList.h; sourceTree = ""; }; - 8B845D302E9DA93100AFF254 /* CAAudioUnitOutputCapturer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnitOutputCapturer.h; sourceTree = ""; }; - 8B845D312E9DA93100AFF254 /* AUParamInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUParamInfo.cpp; sourceTree = ""; }; - 8B845D322E9DA93100AFF254 /* CASharedLibrary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASharedLibrary.cpp; sourceTree = ""; }; - 8B845D332E9DA93100AFF254 /* CAAUMIDIMap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMap.cpp; sourceTree = ""; }; - 8B845D342E9DA93100AFF254 /* CALogMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CALogMacros.h; sourceTree = ""; }; - 8B845D352E9DA93100AFF254 /* CACFMessagePort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMessagePort.cpp; sourceTree = ""; }; - 8B845D362E9DA93100AFF254 /* CARingBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CARingBuffer.h; sourceTree = ""; }; - 8B845D372E9DA93100AFF254 /* AUOutputBL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputBL.cpp; sourceTree = ""; }; - 8B845D382E9DA93100AFF254 /* CABufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABufferList.h; sourceTree = ""; }; - 8B845D392E9DA93100AFF254 /* CASharedLibrary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASharedLibrary.h; sourceTree = ""; }; - 8B845D3A2E9DA93100AFF254 /* CACFData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFData.h; sourceTree = ""; }; - 8B845D3B2E9DA93100AFF254 /* CAStreamRangedDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamRangedDescription.cpp; sourceTree = ""; }; - 8B845D3C2E9DA93100AFF254 /* CAPThread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPThread.cpp; sourceTree = ""; }; - 8B845D3D2E9DA93100AFF254 /* CAAutoDisposer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAutoDisposer.h; sourceTree = ""; }; - 8B845D3E2E9DA93100AFF254 /* CACFPreferences.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPreferences.h; sourceTree = ""; }; - 8B845D3F2E9DA93100AFF254 /* CAVectorUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAVectorUnit.cpp; sourceTree = ""; }; - 8B845D402E9DA93100AFF254 /* CAComponentDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponentDescription.h; sourceTree = ""; }; - 8B845D412E9DA93100AFF254 /* CADebugMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugMacros.h; sourceTree = ""; }; - 8B845D422E9DA93100AFF254 /* AUOutputBL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputBL.h; sourceTree = ""; }; - 8B845D432E9DA93100AFF254 /* CADebugPrintf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugPrintf.cpp; sourceTree = ""; }; - 8B845D442E9DA93100AFF254 /* CARingBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CARingBuffer.cpp; sourceTree = ""; }; - 8B845D452E9DA93100AFF254 /* CACFPlugIn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPlugIn.h; sourceTree = ""; }; - 8B845D462E9DA93100AFF254 /* CASettingsStorage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASettingsStorage.cpp; sourceTree = ""; }; - 8B845D472E9DA93100AFF254 /* CAMixMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMixMap.h; sourceTree = ""; }; - 8B845D482E9DA93100AFF254 /* CACFDistributedNotification.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDistributedNotification.h; sourceTree = ""; }; - 8B845D492E9DA93100AFF254 /* CAFilePathUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAFilePathUtils.h; sourceTree = ""; }; - 8B845D4A2E9DA93100AFF254 /* CATink.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATink.h; sourceTree = ""; }; - 8B845D4B2E9DA93100AFF254 /* CAStreamBasicDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamBasicDescription.cpp; sourceTree = ""; }; - 8B845D4C2E9DA93100AFF254 /* CAAudioChannelLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioChannelLayout.h; sourceTree = ""; }; - 8B845D4D2E9DA93100AFF254 /* CAProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAProcess.cpp; sourceTree = ""; }; - 8B845D4E2E9DA93100AFF254 /* CAHostTimeBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAHostTimeBase.cpp; sourceTree = ""; }; - 8B845D4F2E9DA93100AFF254 /* CAPersistence.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPersistence.cpp; sourceTree = ""; }; - 8B845D502E9DA93100AFF254 /* CAAudioBufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioBufferList.cpp; sourceTree = ""; }; - 8B845D512E9DA93100AFF254 /* CAAudioTimeStamp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioTimeStamp.cpp; sourceTree = ""; }; - 8B845D522E9DA93100AFF254 /* CAVectorUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnit.h; sourceTree = ""; }; - 8B845D532E9DA93100AFF254 /* CAByteOrder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAByteOrder.h; sourceTree = ""; }; - 8B845D542E9DA93100AFF254 /* CACFArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFArray.h; sourceTree = ""; }; - 8B845D552E9DA93100AFF254 /* CAAtomicStack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomicStack.h; sourceTree = ""; }; - 8B845D562E9DA93100AFF254 /* CAReferenceCounted.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAReferenceCounted.h; sourceTree = ""; }; - 8B845D572E9DA93100AFF254 /* CACFMachPort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMachPort.cpp; sourceTree = ""; }; - 8B845D582E9DA93100AFF254 /* CABufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABufferList.cpp; sourceTree = ""; }; - 8B845D592E9DA93100AFF254 /* CAMutex.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAMutex.cpp; sourceTree = ""; }; - 8B845D5A2E9DA93100AFF254 /* CADebugger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugger.cpp; sourceTree = ""; }; - 8B845D5B2E9DA93100AFF254 /* CABundleLocker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABundleLocker.cpp; sourceTree = ""; }; - 8B845D5C2E9DA93100AFF254 /* CAAudioFileFormats.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioFileFormats.cpp; sourceTree = ""; }; - 8B845D5D2E9DA93100AFF254 /* CAMath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMath.h; sourceTree = ""; }; - 8B845D5E2E9DA93100AFF254 /* CACFArray.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFArray.cpp; sourceTree = ""; }; - 8B845D5F2E9DA93100AFF254 /* CACFMessagePort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMessagePort.h; sourceTree = ""; }; - 8B845D602E9DA93100AFF254 /* CAAudioValueRange.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioValueRange.cpp; sourceTree = ""; }; - 8B845D612E9DA93100AFF254 /* CAAudioUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioUnit.cpp; sourceTree = ""; }; - 8B845D652E9DA93100AFF254 /* AUViewLocalizedStringKeys.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUViewLocalizedStringKeys.h; sourceTree = ""; }; - 8B845D672E9DA93100AFF254 /* ComponentBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ComponentBase.cpp; sourceTree = ""; }; - 8B845D682E9DA93100AFF254 /* AUScopeElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUScopeElement.cpp; sourceTree = ""; }; - 8B845D692E9DA93100AFF254 /* ComponentBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ComponentBase.h; sourceTree = ""; }; - 8B845D6A2E9DA93100AFF254 /* AUBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBase.cpp; sourceTree = ""; }; - 8B845D6B2E9DA93100AFF254 /* AUInputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputElement.h; sourceTree = ""; }; - 8B845D6C2E9DA93100AFF254 /* AUBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBase.h; sourceTree = ""; }; - 8B845D6D2E9DA93100AFF254 /* AUPlugInDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUPlugInDispatch.h; sourceTree = ""; }; - 8B845D6E2E9DA93100AFF254 /* AUDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUDispatch.h; sourceTree = ""; }; - 8B845D6F2E9DA93100AFF254 /* AUOutputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputElement.cpp; sourceTree = ""; }; - 8B845D702E9DA93100AFF254 /* AUResources.r */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; path = AUResources.r; sourceTree = ""; }; - 8B845D712E9DA93100AFF254 /* AUPlugInDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUPlugInDispatch.cpp; sourceTree = ""; }; - 8B845D722E9DA93100AFF254 /* AUOutputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputElement.h; sourceTree = ""; }; - 8B845D732E9DA93100AFF254 /* AUDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUDispatch.cpp; sourceTree = ""; }; - 8B845D742E9DA93100AFF254 /* AUScopeElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUScopeElement.h; sourceTree = ""; }; - 8B845D752E9DA93100AFF254 /* AUInputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUInputElement.cpp; sourceTree = ""; }; - 8B845D772E9DA93100AFF254 /* AUEffectBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUEffectBase.cpp; sourceTree = ""; }; - 8B845D782E9DA93100AFF254 /* AUEffectBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUEffectBase.h; sourceTree = ""; }; - 8B845D7A2E9DA93100AFF254 /* AUTimestampGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUTimestampGenerator.h; sourceTree = ""; }; - 8B845D7B2E9DA93100AFF254 /* AUBaseHelper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBaseHelper.cpp; sourceTree = ""; }; - 8B845D7C2E9DA93100AFF254 /* AUSilentTimeout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUSilentTimeout.h; sourceTree = ""; }; - 8B845D7D2E9DA93100AFF254 /* AUInputFormatConverter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputFormatConverter.h; sourceTree = ""; }; - 8B845D7E2E9DA93100AFF254 /* AUTimestampGenerator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUTimestampGenerator.cpp; sourceTree = ""; }; - 8B845D7F2E9DA93100AFF254 /* AUBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBuffer.cpp; sourceTree = ""; }; - 8B845D802E9DA93100AFF254 /* AUMIDIDefs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUMIDIDefs.h; sourceTree = ""; }; - 8B845D812E9DA93100AFF254 /* AUBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBuffer.h; sourceTree = ""; }; - 8B845D822E9DA93100AFF254 /* AUBaseHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBaseHelper.h; sourceTree = ""; }; - 8B845E052E9DAA2400AFF254 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; + 8B7A48C42EB5689800B07840 /* CAExtAudioFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAExtAudioFile.h; sourceTree = ""; }; + 8B7A48C52EB5689800B07840 /* CACFMachPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMachPort.h; sourceTree = ""; }; + 8B7A48C62EB5689800B07840 /* CABool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABool.h; sourceTree = ""; }; + 8B7A48C72EB5689800B07840 /* CAComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponent.cpp; sourceTree = ""; }; + 8B7A48C82EB5689800B07840 /* CADebugger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugger.h; sourceTree = ""; }; + 8B7A48C92EB5689800B07840 /* CACFNumber.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFNumber.cpp; sourceTree = ""; }; + 8B7A48CA2EB5689800B07840 /* CAGuard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAGuard.h; sourceTree = ""; }; + 8B7A48CB2EB5689800B07840 /* CAAtomic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomic.h; sourceTree = ""; }; + 8B7A48CC2EB5689800B07840 /* CAStreamBasicDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamBasicDescription.h; sourceTree = ""; }; + 8B7A48CD2EB5689800B07840 /* CACFObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFObject.h; sourceTree = ""; }; + 8B7A48CE2EB5689800B07840 /* CAStreamRangedDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamRangedDescription.h; sourceTree = ""; }; + 8B7A48CF2EB5689800B07840 /* CATokenMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATokenMap.h; sourceTree = ""; }; + 8B7A48D02EB5689800B07840 /* CAComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponent.h; sourceTree = ""; }; + 8B7A48D12EB5689800B07840 /* CAAudioBufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioBufferList.h; sourceTree = ""; }; + 8B7A48D22EB5689800B07840 /* CAAudioUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnit.h; sourceTree = ""; }; + 8B7A48D32EB5689800B07840 /* CAAUParameter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUParameter.h; sourceTree = ""; }; + 8B7A48D42EB5689800B07840 /* CAException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAException.h; sourceTree = ""; }; + 8B7A48D52EB5689800B07840 /* CAAUProcessor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUProcessor.cpp; sourceTree = ""; }; + 8B7A48D62EB5689800B07840 /* CAAUProcessor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUProcessor.h; sourceTree = ""; }; + 8B7A48D72EB5689800B07840 /* CAProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAProcess.h; sourceTree = ""; }; + 8B7A48D82EB5689800B07840 /* CACFDictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDictionary.h; sourceTree = ""; }; + 8B7A48D92EB5689800B07840 /* CAPThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPThread.h; sourceTree = ""; }; + 8B7A48DA2EB5689800B07840 /* CAAUParameter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUParameter.cpp; sourceTree = ""; }; + 8B7A48DB2EB5689800B07840 /* CAAudioTimeStamp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioTimeStamp.h; sourceTree = ""; }; + 8B7A48DC2EB5689800B07840 /* CAFilePathUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAFilePathUtils.cpp; sourceTree = ""; }; + 8B7A48DD2EB5689800B07840 /* CAAudioValueRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioValueRange.h; sourceTree = ""; }; + 8B7A48DE2EB5689800B07840 /* CAVectorUnitTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnitTypes.h; sourceTree = ""; }; + 8B7A48DF2EB5689800B07840 /* CAAudioChannelLayoutObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayoutObject.cpp; sourceTree = ""; }; + 8B7A48E02EB5689800B07840 /* CAGuard.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAGuard.cpp; sourceTree = ""; }; + 8B7A48E12EB5689800B07840 /* CACFNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFNumber.h; sourceTree = ""; }; + 8B7A48E22EB5689800B07840 /* CACFDistributedNotification.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDistributedNotification.cpp; sourceTree = ""; }; + 8B7A48E32EB5689800B07840 /* CACFString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFString.h; sourceTree = ""; }; + 8B7A48E42EB5689800B07840 /* CAAUMIDIMapManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMapManager.cpp; sourceTree = ""; }; + 8B7A48E52EB5689800B07840 /* CAComponentDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponentDescription.cpp; sourceTree = ""; }; + 8B7A48E62EB5689800B07840 /* CAHostTimeBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAHostTimeBase.h; sourceTree = ""; }; + 8B7A48E72EB5689800B07840 /* CADebugMacros.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugMacros.cpp; sourceTree = ""; }; + 8B7A48E82EB5689800B07840 /* CAAudioFileFormats.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioFileFormats.h; sourceTree = ""; }; + 8B7A48E92EB5689800B07840 /* CAAUMIDIMapManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMapManager.h; sourceTree = ""; }; + 8B7A48EA2EB5689800B07840 /* CACFDictionary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDictionary.cpp; sourceTree = ""; }; + 8B7A48EB2EB5689800B07840 /* CAMutex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMutex.h; sourceTree = ""; }; + 8B7A48EC2EB5689800B07840 /* CACFString.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFString.cpp; sourceTree = ""; }; + 8B7A48ED2EB5689800B07840 /* CASettingsStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASettingsStorage.h; sourceTree = ""; }; + 8B7A48EE2EB5689800B07840 /* CADebugPrintf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugPrintf.h; sourceTree = ""; }; + 8B7A48EF2EB5689800B07840 /* CAXException.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAXException.cpp; sourceTree = ""; }; + 8B7A48F02EB5689800B07840 /* CAAUMIDIMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMap.h; sourceTree = ""; }; + 8B7A48F12EB5689800B07840 /* AUParamInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUParamInfo.h; sourceTree = ""; }; + 8B7A48F22EB5689800B07840 /* CABitOperations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABitOperations.h; sourceTree = ""; }; + 8B7A48F32EB5689800B07840 /* CACFPreferences.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFPreferences.cpp; sourceTree = ""; }; + 8B7A48F42EB5689800B07840 /* CABundleLocker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABundleLocker.h; sourceTree = ""; }; + 8B7A48F52EB5689800B07840 /* CAPropertyAddress.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPropertyAddress.h; sourceTree = ""; }; + 8B7A48F62EB5689800B07840 /* CAXException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAXException.h; sourceTree = ""; }; + 8B7A48F72EB5689800B07840 /* CAAudioChannelLayout.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayout.cpp; sourceTree = ""; }; + 8B7A48F82EB5689800B07840 /* CAThreadSafeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAThreadSafeList.h; sourceTree = ""; }; + 8B7A48F92EB5689800B07840 /* CAAudioUnitOutputCapturer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnitOutputCapturer.h; sourceTree = ""; }; + 8B7A48FA2EB5689800B07840 /* AUParamInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUParamInfo.cpp; sourceTree = ""; }; + 8B7A48FB2EB5689800B07840 /* CASharedLibrary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASharedLibrary.cpp; sourceTree = ""; }; + 8B7A48FC2EB5689800B07840 /* CAAUMIDIMap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMap.cpp; sourceTree = ""; }; + 8B7A48FD2EB5689800B07840 /* CALogMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CALogMacros.h; sourceTree = ""; }; + 8B7A48FE2EB5689800B07840 /* CACFMessagePort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMessagePort.cpp; sourceTree = ""; }; + 8B7A48FF2EB5689800B07840 /* CARingBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CARingBuffer.h; sourceTree = ""; }; + 8B7A49002EB5689800B07840 /* AUOutputBL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputBL.cpp; sourceTree = ""; }; + 8B7A49012EB5689800B07840 /* CABufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABufferList.h; sourceTree = ""; }; + 8B7A49022EB5689800B07840 /* CASharedLibrary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASharedLibrary.h; sourceTree = ""; }; + 8B7A49032EB5689800B07840 /* CACFData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFData.h; sourceTree = ""; }; + 8B7A49042EB5689800B07840 /* CAStreamRangedDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamRangedDescription.cpp; sourceTree = ""; }; + 8B7A49052EB5689800B07840 /* CAPThread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPThread.cpp; sourceTree = ""; }; + 8B7A49062EB5689800B07840 /* CAAutoDisposer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAutoDisposer.h; sourceTree = ""; }; + 8B7A49072EB5689800B07840 /* CACFPreferences.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPreferences.h; sourceTree = ""; }; + 8B7A49082EB5689800B07840 /* CAVectorUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAVectorUnit.cpp; sourceTree = ""; }; + 8B7A49092EB5689800B07840 /* CAComponentDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponentDescription.h; sourceTree = ""; }; + 8B7A490A2EB5689800B07840 /* CADebugMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugMacros.h; sourceTree = ""; }; + 8B7A490B2EB5689800B07840 /* AUOutputBL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputBL.h; sourceTree = ""; }; + 8B7A490C2EB5689800B07840 /* CADebugPrintf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugPrintf.cpp; sourceTree = ""; }; + 8B7A490D2EB5689800B07840 /* CARingBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CARingBuffer.cpp; sourceTree = ""; }; + 8B7A490E2EB5689800B07840 /* CACFPlugIn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPlugIn.h; sourceTree = ""; }; + 8B7A490F2EB5689800B07840 /* CASettingsStorage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASettingsStorage.cpp; sourceTree = ""; }; + 8B7A49102EB5689800B07840 /* CAMixMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMixMap.h; sourceTree = ""; }; + 8B7A49112EB5689800B07840 /* CACFDistributedNotification.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDistributedNotification.h; sourceTree = ""; }; + 8B7A49122EB5689800B07840 /* CAFilePathUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAFilePathUtils.h; sourceTree = ""; }; + 8B7A49132EB5689800B07840 /* CATink.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATink.h; sourceTree = ""; }; + 8B7A49142EB5689800B07840 /* CAStreamBasicDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamBasicDescription.cpp; sourceTree = ""; }; + 8B7A49152EB5689800B07840 /* CAAudioChannelLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioChannelLayout.h; sourceTree = ""; }; + 8B7A49162EB5689800B07840 /* CAProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAProcess.cpp; sourceTree = ""; }; + 8B7A49172EB5689800B07840 /* CAHostTimeBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAHostTimeBase.cpp; sourceTree = ""; }; + 8B7A49182EB5689800B07840 /* CAPersistence.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPersistence.cpp; sourceTree = ""; }; + 8B7A49192EB5689800B07840 /* CAAudioBufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioBufferList.cpp; sourceTree = ""; }; + 8B7A491A2EB5689800B07840 /* CAAudioTimeStamp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioTimeStamp.cpp; sourceTree = ""; }; + 8B7A491B2EB5689800B07840 /* CAVectorUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnit.h; sourceTree = ""; }; + 8B7A491C2EB5689800B07840 /* CAByteOrder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAByteOrder.h; sourceTree = ""; }; + 8B7A491D2EB5689800B07840 /* CACFArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFArray.h; sourceTree = ""; }; + 8B7A491E2EB5689800B07840 /* CAAtomicStack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomicStack.h; sourceTree = ""; }; + 8B7A491F2EB5689800B07840 /* CAReferenceCounted.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAReferenceCounted.h; sourceTree = ""; }; + 8B7A49202EB5689800B07840 /* CACFMachPort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMachPort.cpp; sourceTree = ""; }; + 8B7A49212EB5689800B07840 /* CABufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABufferList.cpp; sourceTree = ""; }; + 8B7A49222EB5689800B07840 /* CAMutex.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAMutex.cpp; sourceTree = ""; }; + 8B7A49232EB5689800B07840 /* CADebugger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugger.cpp; sourceTree = ""; }; + 8B7A49242EB5689800B07840 /* CABundleLocker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABundleLocker.cpp; sourceTree = ""; }; + 8B7A49252EB5689800B07840 /* CAAudioFileFormats.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioFileFormats.cpp; sourceTree = ""; }; + 8B7A49262EB5689800B07840 /* CAMath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMath.h; sourceTree = ""; }; + 8B7A49272EB5689800B07840 /* CACFArray.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFArray.cpp; sourceTree = ""; }; + 8B7A49282EB5689800B07840 /* CACFMessagePort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMessagePort.h; sourceTree = ""; }; + 8B7A49292EB5689800B07840 /* CAAudioValueRange.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioValueRange.cpp; sourceTree = ""; }; + 8B7A492A2EB5689800B07840 /* CAAudioUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioUnit.cpp; sourceTree = ""; }; + 8B7A492E2EB5689800B07840 /* AUViewLocalizedStringKeys.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUViewLocalizedStringKeys.h; sourceTree = ""; }; + 8B7A49302EB5689800B07840 /* ComponentBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ComponentBase.cpp; sourceTree = ""; }; + 8B7A49312EB5689800B07840 /* AUScopeElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUScopeElement.cpp; sourceTree = ""; }; + 8B7A49322EB5689800B07840 /* ComponentBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ComponentBase.h; sourceTree = ""; }; + 8B7A49332EB5689800B07840 /* AUBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBase.cpp; sourceTree = ""; }; + 8B7A49342EB5689800B07840 /* AUInputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputElement.h; sourceTree = ""; }; + 8B7A49352EB5689800B07840 /* AUBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBase.h; sourceTree = ""; }; + 8B7A49362EB5689800B07840 /* AUPlugInDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUPlugInDispatch.h; sourceTree = ""; }; + 8B7A49372EB5689800B07840 /* AUDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUDispatch.h; sourceTree = ""; }; + 8B7A49382EB5689800B07840 /* AUOutputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputElement.cpp; sourceTree = ""; }; + 8B7A49392EB5689800B07840 /* AUResources.r */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; path = AUResources.r; sourceTree = ""; }; + 8B7A493A2EB5689800B07840 /* AUPlugInDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUPlugInDispatch.cpp; sourceTree = ""; }; + 8B7A493B2EB5689800B07840 /* AUOutputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputElement.h; sourceTree = ""; }; + 8B7A493C2EB5689800B07840 /* AUDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUDispatch.cpp; sourceTree = ""; }; + 8B7A493D2EB5689800B07840 /* AUScopeElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUScopeElement.h; sourceTree = ""; }; + 8B7A493E2EB5689800B07840 /* AUInputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUInputElement.cpp; sourceTree = ""; }; + 8B7A49402EB5689800B07840 /* AUEffectBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUEffectBase.cpp; sourceTree = ""; }; + 8B7A49412EB5689800B07840 /* AUEffectBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUEffectBase.h; sourceTree = ""; }; + 8B7A49432EB5689800B07840 /* AUTimestampGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUTimestampGenerator.h; sourceTree = ""; }; + 8B7A49442EB5689800B07840 /* AUBaseHelper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBaseHelper.cpp; sourceTree = ""; }; + 8B7A49452EB5689800B07840 /* AUSilentTimeout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUSilentTimeout.h; sourceTree = ""; }; + 8B7A49462EB5689800B07840 /* AUInputFormatConverter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputFormatConverter.h; sourceTree = ""; }; + 8B7A49472EB5689800B07840 /* AUTimestampGenerator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUTimestampGenerator.cpp; sourceTree = ""; }; + 8B7A49482EB5689800B07840 /* AUBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBuffer.cpp; sourceTree = ""; }; + 8B7A49492EB5689800B07840 /* AUMIDIDefs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUMIDIDefs.h; sourceTree = ""; }; + 8B7A494A2EB5689800B07840 /* AUBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBuffer.h; sourceTree = ""; }; + 8B7A494B2EB5689800B07840 /* AUBaseHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBaseHelper.h; sourceTree = ""; }; + 8B7A49CE2EB569B200B07840 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; 8BA05A660720730100365D66 /* ConsoleX2Pre.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ConsoleX2Pre.cpp; sourceTree = ""; }; 8BA05A670720730100365D66 /* ConsoleX2Pre.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = ConsoleX2Pre.exp; sourceTree = ""; }; 8BA05A680720730100365D66 /* ConsoleX2Pre.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = ConsoleX2Pre.r; sourceTree = ""; }; @@ -338,7 +338,7 @@ 08FB77ADFE841716C02AAC07 /* Source */ = { isa = PBXGroup; children = ( - 8B845CF92E9DA93100AFF254 /* CA_SDK */, + 8B7A48C22EB5689800B07840 /* CA_SDK */, 8BA05A56072072A900365D66 /* AU Source */, ); name = Source; @@ -352,196 +352,196 @@ name = Products; sourceTree = ""; }; - 8B845CF92E9DA93100AFF254 /* CA_SDK */ = { + 8B7A48C22EB5689800B07840 /* CA_SDK */ = { isa = PBXGroup; children = ( - 8B845CFA2E9DA93100AFF254 /* PublicUtility */, - 8B845D622E9DA93100AFF254 /* AudioUnits */, + 8B7A48C32EB5689800B07840 /* PublicUtility */, + 8B7A492B2EB5689800B07840 /* AudioUnits */, ); name = CA_SDK; path = ../../../../CA_SDK; sourceTree = ""; }; - 8B845CFA2E9DA93100AFF254 /* PublicUtility */ = { + 8B7A48C32EB5689800B07840 /* PublicUtility */ = { isa = PBXGroup; children = ( - 8B845CFB2E9DA93100AFF254 /* CAExtAudioFile.h */, - 8B845CFC2E9DA93100AFF254 /* CACFMachPort.h */, - 8B845CFD2E9DA93100AFF254 /* CABool.h */, - 8B845CFE2E9DA93100AFF254 /* CAComponent.cpp */, - 8B845CFF2E9DA93100AFF254 /* CADebugger.h */, - 8B845D002E9DA93100AFF254 /* CACFNumber.cpp */, - 8B845D012E9DA93100AFF254 /* CAGuard.h */, - 8B845D022E9DA93100AFF254 /* CAAtomic.h */, - 8B845D032E9DA93100AFF254 /* CAStreamBasicDescription.h */, - 8B845D042E9DA93100AFF254 /* CACFObject.h */, - 8B845D052E9DA93100AFF254 /* CAStreamRangedDescription.h */, - 8B845D062E9DA93100AFF254 /* CATokenMap.h */, - 8B845D072E9DA93100AFF254 /* CAComponent.h */, - 8B845D082E9DA93100AFF254 /* CAAudioBufferList.h */, - 8B845D092E9DA93100AFF254 /* CAAudioUnit.h */, - 8B845D0A2E9DA93100AFF254 /* CAAUParameter.h */, - 8B845D0B2E9DA93100AFF254 /* CAException.h */, - 8B845D0C2E9DA93100AFF254 /* CAAUProcessor.cpp */, - 8B845D0D2E9DA93100AFF254 /* CAAUProcessor.h */, - 8B845D0E2E9DA93100AFF254 /* CAProcess.h */, - 8B845D0F2E9DA93100AFF254 /* CACFDictionary.h */, - 8B845D102E9DA93100AFF254 /* CAPThread.h */, - 8B845D112E9DA93100AFF254 /* CAAUParameter.cpp */, - 8B845D122E9DA93100AFF254 /* CAAudioTimeStamp.h */, - 8B845D132E9DA93100AFF254 /* CAFilePathUtils.cpp */, - 8B845D142E9DA93100AFF254 /* CAAudioValueRange.h */, - 8B845D152E9DA93100AFF254 /* CAVectorUnitTypes.h */, - 8B845D162E9DA93100AFF254 /* CAAudioChannelLayoutObject.cpp */, - 8B845D172E9DA93100AFF254 /* CAGuard.cpp */, - 8B845D182E9DA93100AFF254 /* CACFNumber.h */, - 8B845D192E9DA93100AFF254 /* CACFDistributedNotification.cpp */, - 8B845D1A2E9DA93100AFF254 /* CACFString.h */, - 8B845D1B2E9DA93100AFF254 /* CAAUMIDIMapManager.cpp */, - 8B845D1C2E9DA93100AFF254 /* CAComponentDescription.cpp */, - 8B845D1D2E9DA93100AFF254 /* CAHostTimeBase.h */, - 8B845D1E2E9DA93100AFF254 /* CADebugMacros.cpp */, - 8B845D1F2E9DA93100AFF254 /* CAAudioFileFormats.h */, - 8B845D202E9DA93100AFF254 /* CAAUMIDIMapManager.h */, - 8B845D212E9DA93100AFF254 /* CACFDictionary.cpp */, - 8B845D222E9DA93100AFF254 /* CAMutex.h */, - 8B845D232E9DA93100AFF254 /* CACFString.cpp */, - 8B845D242E9DA93100AFF254 /* CASettingsStorage.h */, - 8B845D252E9DA93100AFF254 /* CADebugPrintf.h */, - 8B845D262E9DA93100AFF254 /* CAXException.cpp */, - 8B845D272E9DA93100AFF254 /* CAAUMIDIMap.h */, - 8B845D282E9DA93100AFF254 /* AUParamInfo.h */, - 8B845D292E9DA93100AFF254 /* CABitOperations.h */, - 8B845D2A2E9DA93100AFF254 /* CACFPreferences.cpp */, - 8B845D2B2E9DA93100AFF254 /* CABundleLocker.h */, - 8B845D2C2E9DA93100AFF254 /* CAPropertyAddress.h */, - 8B845D2D2E9DA93100AFF254 /* CAXException.h */, - 8B845D2E2E9DA93100AFF254 /* CAAudioChannelLayout.cpp */, - 8B845D2F2E9DA93100AFF254 /* CAThreadSafeList.h */, - 8B845D302E9DA93100AFF254 /* CAAudioUnitOutputCapturer.h */, - 8B845D312E9DA93100AFF254 /* AUParamInfo.cpp */, - 8B845D322E9DA93100AFF254 /* CASharedLibrary.cpp */, - 8B845D332E9DA93100AFF254 /* CAAUMIDIMap.cpp */, - 8B845D342E9DA93100AFF254 /* CALogMacros.h */, - 8B845D352E9DA93100AFF254 /* CACFMessagePort.cpp */, - 8B845D362E9DA93100AFF254 /* CARingBuffer.h */, - 8B845D372E9DA93100AFF254 /* AUOutputBL.cpp */, - 8B845D382E9DA93100AFF254 /* CABufferList.h */, - 8B845D392E9DA93100AFF254 /* CASharedLibrary.h */, - 8B845D3A2E9DA93100AFF254 /* CACFData.h */, - 8B845D3B2E9DA93100AFF254 /* CAStreamRangedDescription.cpp */, - 8B845D3C2E9DA93100AFF254 /* CAPThread.cpp */, - 8B845D3D2E9DA93100AFF254 /* CAAutoDisposer.h */, - 8B845D3E2E9DA93100AFF254 /* CACFPreferences.h */, - 8B845D3F2E9DA93100AFF254 /* CAVectorUnit.cpp */, - 8B845D402E9DA93100AFF254 /* CAComponentDescription.h */, - 8B845D412E9DA93100AFF254 /* CADebugMacros.h */, - 8B845D422E9DA93100AFF254 /* AUOutputBL.h */, - 8B845D432E9DA93100AFF254 /* CADebugPrintf.cpp */, - 8B845D442E9DA93100AFF254 /* CARingBuffer.cpp */, - 8B845D452E9DA93100AFF254 /* CACFPlugIn.h */, - 8B845D462E9DA93100AFF254 /* CASettingsStorage.cpp */, - 8B845D472E9DA93100AFF254 /* CAMixMap.h */, - 8B845D482E9DA93100AFF254 /* CACFDistributedNotification.h */, - 8B845D492E9DA93100AFF254 /* CAFilePathUtils.h */, - 8B845D4A2E9DA93100AFF254 /* CATink.h */, - 8B845D4B2E9DA93100AFF254 /* CAStreamBasicDescription.cpp */, - 8B845D4C2E9DA93100AFF254 /* CAAudioChannelLayout.h */, - 8B845D4D2E9DA93100AFF254 /* CAProcess.cpp */, - 8B845D4E2E9DA93100AFF254 /* CAHostTimeBase.cpp */, - 8B845D4F2E9DA93100AFF254 /* CAPersistence.cpp */, - 8B845D502E9DA93100AFF254 /* CAAudioBufferList.cpp */, - 8B845D512E9DA93100AFF254 /* CAAudioTimeStamp.cpp */, - 8B845D522E9DA93100AFF254 /* CAVectorUnit.h */, - 8B845D532E9DA93100AFF254 /* CAByteOrder.h */, - 8B845D542E9DA93100AFF254 /* CACFArray.h */, - 8B845D552E9DA93100AFF254 /* CAAtomicStack.h */, - 8B845D562E9DA93100AFF254 /* CAReferenceCounted.h */, - 8B845D572E9DA93100AFF254 /* CACFMachPort.cpp */, - 8B845D582E9DA93100AFF254 /* CABufferList.cpp */, - 8B845D592E9DA93100AFF254 /* CAMutex.cpp */, - 8B845D5A2E9DA93100AFF254 /* CADebugger.cpp */, - 8B845D5B2E9DA93100AFF254 /* CABundleLocker.cpp */, - 8B845D5C2E9DA93100AFF254 /* CAAudioFileFormats.cpp */, - 8B845D5D2E9DA93100AFF254 /* CAMath.h */, - 8B845D5E2E9DA93100AFF254 /* CACFArray.cpp */, - 8B845D5F2E9DA93100AFF254 /* CACFMessagePort.h */, - 8B845D602E9DA93100AFF254 /* CAAudioValueRange.cpp */, - 8B845D612E9DA93100AFF254 /* CAAudioUnit.cpp */, + 8B7A48C42EB5689800B07840 /* CAExtAudioFile.h */, + 8B7A48C52EB5689800B07840 /* CACFMachPort.h */, + 8B7A48C62EB5689800B07840 /* CABool.h */, + 8B7A48C72EB5689800B07840 /* CAComponent.cpp */, + 8B7A48C82EB5689800B07840 /* CADebugger.h */, + 8B7A48C92EB5689800B07840 /* CACFNumber.cpp */, + 8B7A48CA2EB5689800B07840 /* CAGuard.h */, + 8B7A48CB2EB5689800B07840 /* CAAtomic.h */, + 8B7A48CC2EB5689800B07840 /* CAStreamBasicDescription.h */, + 8B7A48CD2EB5689800B07840 /* CACFObject.h */, + 8B7A48CE2EB5689800B07840 /* CAStreamRangedDescription.h */, + 8B7A48CF2EB5689800B07840 /* CATokenMap.h */, + 8B7A48D02EB5689800B07840 /* CAComponent.h */, + 8B7A48D12EB5689800B07840 /* CAAudioBufferList.h */, + 8B7A48D22EB5689800B07840 /* CAAudioUnit.h */, + 8B7A48D32EB5689800B07840 /* CAAUParameter.h */, + 8B7A48D42EB5689800B07840 /* CAException.h */, + 8B7A48D52EB5689800B07840 /* CAAUProcessor.cpp */, + 8B7A48D62EB5689800B07840 /* CAAUProcessor.h */, + 8B7A48D72EB5689800B07840 /* CAProcess.h */, + 8B7A48D82EB5689800B07840 /* CACFDictionary.h */, + 8B7A48D92EB5689800B07840 /* CAPThread.h */, + 8B7A48DA2EB5689800B07840 /* CAAUParameter.cpp */, + 8B7A48DB2EB5689800B07840 /* CAAudioTimeStamp.h */, + 8B7A48DC2EB5689800B07840 /* CAFilePathUtils.cpp */, + 8B7A48DD2EB5689800B07840 /* CAAudioValueRange.h */, + 8B7A48DE2EB5689800B07840 /* CAVectorUnitTypes.h */, + 8B7A48DF2EB5689800B07840 /* CAAudioChannelLayoutObject.cpp */, + 8B7A48E02EB5689800B07840 /* CAGuard.cpp */, + 8B7A48E12EB5689800B07840 /* CACFNumber.h */, + 8B7A48E22EB5689800B07840 /* CACFDistributedNotification.cpp */, + 8B7A48E32EB5689800B07840 /* CACFString.h */, + 8B7A48E42EB5689800B07840 /* CAAUMIDIMapManager.cpp */, + 8B7A48E52EB5689800B07840 /* CAComponentDescription.cpp */, + 8B7A48E62EB5689800B07840 /* CAHostTimeBase.h */, + 8B7A48E72EB5689800B07840 /* CADebugMacros.cpp */, + 8B7A48E82EB5689800B07840 /* CAAudioFileFormats.h */, + 8B7A48E92EB5689800B07840 /* CAAUMIDIMapManager.h */, + 8B7A48EA2EB5689800B07840 /* CACFDictionary.cpp */, + 8B7A48EB2EB5689800B07840 /* CAMutex.h */, + 8B7A48EC2EB5689800B07840 /* CACFString.cpp */, + 8B7A48ED2EB5689800B07840 /* CASettingsStorage.h */, + 8B7A48EE2EB5689800B07840 /* CADebugPrintf.h */, + 8B7A48EF2EB5689800B07840 /* CAXException.cpp */, + 8B7A48F02EB5689800B07840 /* CAAUMIDIMap.h */, + 8B7A48F12EB5689800B07840 /* AUParamInfo.h */, + 8B7A48F22EB5689800B07840 /* CABitOperations.h */, + 8B7A48F32EB5689800B07840 /* CACFPreferences.cpp */, + 8B7A48F42EB5689800B07840 /* CABundleLocker.h */, + 8B7A48F52EB5689800B07840 /* CAPropertyAddress.h */, + 8B7A48F62EB5689800B07840 /* CAXException.h */, + 8B7A48F72EB5689800B07840 /* CAAudioChannelLayout.cpp */, + 8B7A48F82EB5689800B07840 /* CAThreadSafeList.h */, + 8B7A48F92EB5689800B07840 /* CAAudioUnitOutputCapturer.h */, + 8B7A48FA2EB5689800B07840 /* AUParamInfo.cpp */, + 8B7A48FB2EB5689800B07840 /* CASharedLibrary.cpp */, + 8B7A48FC2EB5689800B07840 /* CAAUMIDIMap.cpp */, + 8B7A48FD2EB5689800B07840 /* CALogMacros.h */, + 8B7A48FE2EB5689800B07840 /* CACFMessagePort.cpp */, + 8B7A48FF2EB5689800B07840 /* CARingBuffer.h */, + 8B7A49002EB5689800B07840 /* AUOutputBL.cpp */, + 8B7A49012EB5689800B07840 /* CABufferList.h */, + 8B7A49022EB5689800B07840 /* CASharedLibrary.h */, + 8B7A49032EB5689800B07840 /* CACFData.h */, + 8B7A49042EB5689800B07840 /* CAStreamRangedDescription.cpp */, + 8B7A49052EB5689800B07840 /* CAPThread.cpp */, + 8B7A49062EB5689800B07840 /* CAAutoDisposer.h */, + 8B7A49072EB5689800B07840 /* CACFPreferences.h */, + 8B7A49082EB5689800B07840 /* CAVectorUnit.cpp */, + 8B7A49092EB5689800B07840 /* CAComponentDescription.h */, + 8B7A490A2EB5689800B07840 /* CADebugMacros.h */, + 8B7A490B2EB5689800B07840 /* AUOutputBL.h */, + 8B7A490C2EB5689800B07840 /* CADebugPrintf.cpp */, + 8B7A490D2EB5689800B07840 /* CARingBuffer.cpp */, + 8B7A490E2EB5689800B07840 /* CACFPlugIn.h */, + 8B7A490F2EB5689800B07840 /* CASettingsStorage.cpp */, + 8B7A49102EB5689800B07840 /* CAMixMap.h */, + 8B7A49112EB5689800B07840 /* CACFDistributedNotification.h */, + 8B7A49122EB5689800B07840 /* CAFilePathUtils.h */, + 8B7A49132EB5689800B07840 /* CATink.h */, + 8B7A49142EB5689800B07840 /* CAStreamBasicDescription.cpp */, + 8B7A49152EB5689800B07840 /* CAAudioChannelLayout.h */, + 8B7A49162EB5689800B07840 /* CAProcess.cpp */, + 8B7A49172EB5689800B07840 /* CAHostTimeBase.cpp */, + 8B7A49182EB5689800B07840 /* CAPersistence.cpp */, + 8B7A49192EB5689800B07840 /* CAAudioBufferList.cpp */, + 8B7A491A2EB5689800B07840 /* CAAudioTimeStamp.cpp */, + 8B7A491B2EB5689800B07840 /* CAVectorUnit.h */, + 8B7A491C2EB5689800B07840 /* CAByteOrder.h */, + 8B7A491D2EB5689800B07840 /* CACFArray.h */, + 8B7A491E2EB5689800B07840 /* CAAtomicStack.h */, + 8B7A491F2EB5689800B07840 /* CAReferenceCounted.h */, + 8B7A49202EB5689800B07840 /* CACFMachPort.cpp */, + 8B7A49212EB5689800B07840 /* CABufferList.cpp */, + 8B7A49222EB5689800B07840 /* CAMutex.cpp */, + 8B7A49232EB5689800B07840 /* CADebugger.cpp */, + 8B7A49242EB5689800B07840 /* CABundleLocker.cpp */, + 8B7A49252EB5689800B07840 /* CAAudioFileFormats.cpp */, + 8B7A49262EB5689800B07840 /* CAMath.h */, + 8B7A49272EB5689800B07840 /* CACFArray.cpp */, + 8B7A49282EB5689800B07840 /* CACFMessagePort.h */, + 8B7A49292EB5689800B07840 /* CAAudioValueRange.cpp */, + 8B7A492A2EB5689800B07840 /* CAAudioUnit.cpp */, ); path = PublicUtility; sourceTree = ""; }; - 8B845D622E9DA93100AFF254 /* AudioUnits */ = { + 8B7A492B2EB5689800B07840 /* AudioUnits */ = { isa = PBXGroup; children = ( - 8B845D632E9DA93100AFF254 /* AUPublic */, + 8B7A492C2EB5689800B07840 /* AUPublic */, ); path = AudioUnits; sourceTree = ""; }; - 8B845D632E9DA93100AFF254 /* AUPublic */ = { + 8B7A492C2EB5689800B07840 /* AUPublic */ = { isa = PBXGroup; children = ( - 8B845D642E9DA93100AFF254 /* AUViewBase */, - 8B845D662E9DA93100AFF254 /* AUBase */, - 8B845D762E9DA93100AFF254 /* OtherBases */, - 8B845D792E9DA93100AFF254 /* Utility */, + 8B7A492D2EB5689800B07840 /* AUViewBase */, + 8B7A492F2EB5689800B07840 /* AUBase */, + 8B7A493F2EB5689800B07840 /* OtherBases */, + 8B7A49422EB5689800B07840 /* Utility */, ); path = AUPublic; sourceTree = ""; }; - 8B845D642E9DA93100AFF254 /* AUViewBase */ = { + 8B7A492D2EB5689800B07840 /* AUViewBase */ = { isa = PBXGroup; children = ( - 8B845D652E9DA93100AFF254 /* AUViewLocalizedStringKeys.h */, + 8B7A492E2EB5689800B07840 /* AUViewLocalizedStringKeys.h */, ); path = AUViewBase; sourceTree = ""; }; - 8B845D662E9DA93100AFF254 /* AUBase */ = { + 8B7A492F2EB5689800B07840 /* AUBase */ = { isa = PBXGroup; children = ( - 8B845D672E9DA93100AFF254 /* ComponentBase.cpp */, - 8B845D682E9DA93100AFF254 /* AUScopeElement.cpp */, - 8B845D692E9DA93100AFF254 /* ComponentBase.h */, - 8B845D6A2E9DA93100AFF254 /* AUBase.cpp */, - 8B845D6B2E9DA93100AFF254 /* AUInputElement.h */, - 8B845D6C2E9DA93100AFF254 /* AUBase.h */, - 8B845D6D2E9DA93100AFF254 /* AUPlugInDispatch.h */, - 8B845D6E2E9DA93100AFF254 /* AUDispatch.h */, - 8B845D6F2E9DA93100AFF254 /* AUOutputElement.cpp */, - 8B845D702E9DA93100AFF254 /* AUResources.r */, - 8B845D712E9DA93100AFF254 /* AUPlugInDispatch.cpp */, - 8B845D722E9DA93100AFF254 /* AUOutputElement.h */, - 8B845D732E9DA93100AFF254 /* AUDispatch.cpp */, - 8B845D742E9DA93100AFF254 /* AUScopeElement.h */, - 8B845D752E9DA93100AFF254 /* AUInputElement.cpp */, + 8B7A49302EB5689800B07840 /* ComponentBase.cpp */, + 8B7A49312EB5689800B07840 /* AUScopeElement.cpp */, + 8B7A49322EB5689800B07840 /* ComponentBase.h */, + 8B7A49332EB5689800B07840 /* AUBase.cpp */, + 8B7A49342EB5689800B07840 /* AUInputElement.h */, + 8B7A49352EB5689800B07840 /* AUBase.h */, + 8B7A49362EB5689800B07840 /* AUPlugInDispatch.h */, + 8B7A49372EB5689800B07840 /* AUDispatch.h */, + 8B7A49382EB5689800B07840 /* AUOutputElement.cpp */, + 8B7A49392EB5689800B07840 /* AUResources.r */, + 8B7A493A2EB5689800B07840 /* AUPlugInDispatch.cpp */, + 8B7A493B2EB5689800B07840 /* AUOutputElement.h */, + 8B7A493C2EB5689800B07840 /* AUDispatch.cpp */, + 8B7A493D2EB5689800B07840 /* AUScopeElement.h */, + 8B7A493E2EB5689800B07840 /* AUInputElement.cpp */, ); path = AUBase; sourceTree = ""; }; - 8B845D762E9DA93100AFF254 /* OtherBases */ = { + 8B7A493F2EB5689800B07840 /* OtherBases */ = { isa = PBXGroup; children = ( - 8B845D772E9DA93100AFF254 /* AUEffectBase.cpp */, - 8B845D782E9DA93100AFF254 /* AUEffectBase.h */, + 8B7A49402EB5689800B07840 /* AUEffectBase.cpp */, + 8B7A49412EB5689800B07840 /* AUEffectBase.h */, ); path = OtherBases; sourceTree = ""; }; - 8B845D792E9DA93100AFF254 /* Utility */ = { + 8B7A49422EB5689800B07840 /* Utility */ = { isa = PBXGroup; children = ( - 8B845D7A2E9DA93100AFF254 /* AUTimestampGenerator.h */, - 8B845D7B2E9DA93100AFF254 /* AUBaseHelper.cpp */, - 8B845D7C2E9DA93100AFF254 /* AUSilentTimeout.h */, - 8B845D7D2E9DA93100AFF254 /* AUInputFormatConverter.h */, - 8B845D7E2E9DA93100AFF254 /* AUTimestampGenerator.cpp */, - 8B845D7F2E9DA93100AFF254 /* AUBuffer.cpp */, - 8B845D802E9DA93100AFF254 /* AUMIDIDefs.h */, - 8B845D812E9DA93100AFF254 /* AUBuffer.h */, - 8B845D822E9DA93100AFF254 /* AUBaseHelper.h */, + 8B7A49432EB5689800B07840 /* AUTimestampGenerator.h */, + 8B7A49442EB5689800B07840 /* AUBaseHelper.cpp */, + 8B7A49452EB5689800B07840 /* AUSilentTimeout.h */, + 8B7A49462EB5689800B07840 /* AUInputFormatConverter.h */, + 8B7A49472EB5689800B07840 /* AUTimestampGenerator.cpp */, + 8B7A49482EB5689800B07840 /* AUBuffer.cpp */, + 8B7A49492EB5689800B07840 /* AUMIDIDefs.h */, + 8B7A494A2EB5689800B07840 /* AUBuffer.h */, + 8B7A494B2EB5689800B07840 /* AUBaseHelper.h */, ); path = Utility; sourceTree = ""; @@ -565,84 +565,84 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 8B845DB32E9DA93100AFF254 /* CABundleLocker.h in Headers */, - 8B845DD42E9DA93100AFF254 /* CAAudioChannelLayout.h in Headers */, - 8B845DCA2E9DA93100AFF254 /* AUOutputBL.h in Headers */, - 8B845DA52E9DA93100AFF254 /* CAHostTimeBase.h in Headers */, - 8B845DED2E9DA93100AFF254 /* ComponentBase.h in Headers */, - 8B845DDD2E9DA93100AFF254 /* CAAtomicStack.h in Headers */, - 8B845D9A2E9DA93100AFF254 /* CAAudioTimeStamp.h in Headers */, - 8B845DB72E9DA93100AFF254 /* CAThreadSafeList.h in Headers */, - 8B845D922E9DA93100AFF254 /* CAAUParameter.h in Headers */, - 8B845E042E9DA93100AFF254 /* AUBaseHelper.h in Headers */, - 8B845DFC2E9DA93100AFF254 /* AUTimestampGenerator.h in Headers */, - 8B845DAD2E9DA93100AFF254 /* CADebugPrintf.h in Headers */, - 8B845DE72E9DA93100AFF254 /* CACFMessagePort.h in Headers */, - 8B845D952E9DA93100AFF254 /* CAAUProcessor.h in Headers */, - 8B845D912E9DA93100AFF254 /* CAAudioUnit.h in Headers */, - 8B845DEA2E9DA93100AFF254 /* AUViewLocalizedStringKeys.h in Headers */, - 8B845DD02E9DA93100AFF254 /* CACFDistributedNotification.h in Headers */, - 8B845D8F2E9DA93100AFF254 /* CAComponent.h in Headers */, - 8B845D9D2E9DA93100AFF254 /* CAVectorUnitTypes.h in Headers */, + 8B7A497C2EB5689800B07840 /* CABundleLocker.h in Headers */, + 8B7A499D2EB5689800B07840 /* CAAudioChannelLayout.h in Headers */, + 8B7A49932EB5689800B07840 /* AUOutputBL.h in Headers */, + 8B7A496E2EB5689800B07840 /* CAHostTimeBase.h in Headers */, + 8B7A49B62EB5689800B07840 /* ComponentBase.h in Headers */, + 8B7A49A62EB5689800B07840 /* CAAtomicStack.h in Headers */, + 8B7A49632EB5689800B07840 /* CAAudioTimeStamp.h in Headers */, + 8B7A49802EB5689800B07840 /* CAThreadSafeList.h in Headers */, + 8B7A495B2EB5689800B07840 /* CAAUParameter.h in Headers */, + 8B7A49CD2EB5689800B07840 /* AUBaseHelper.h in Headers */, + 8B7A49C52EB5689800B07840 /* AUTimestampGenerator.h in Headers */, + 8B7A49762EB5689800B07840 /* CADebugPrintf.h in Headers */, + 8B7A49B02EB5689800B07840 /* CACFMessagePort.h in Headers */, + 8B7A495E2EB5689800B07840 /* CAAUProcessor.h in Headers */, + 8B7A495A2EB5689800B07840 /* CAAudioUnit.h in Headers */, + 8B7A49B32EB5689800B07840 /* AUViewLocalizedStringKeys.h in Headers */, + 8B7A49992EB5689800B07840 /* CACFDistributedNotification.h in Headers */, + 8B7A49582EB5689800B07840 /* CAComponent.h in Headers */, + 8B7A49662EB5689800B07840 /* CAVectorUnitTypes.h in Headers */, 8BA05A6E0720730100365D66 /* ConsoleX2PreVersion.h in Headers */, - 8B845DD12E9DA93100AFF254 /* CAFilePathUtils.h in Headers */, - 8B845D932E9DA93100AFF254 /* CAException.h in Headers */, - 8B845D8A2E9DA93100AFF254 /* CAAtomic.h in Headers */, - 8B845D892E9DA93100AFF254 /* CAGuard.h in Headers */, - 8B845DEF2E9DA93100AFF254 /* AUInputElement.h in Headers */, - 8B845DC62E9DA93100AFF254 /* CACFPreferences.h in Headers */, - 8B845DDB2E9DA93100AFF254 /* CAByteOrder.h in Headers */, - 8B845DBE2E9DA93100AFF254 /* CARingBuffer.h in Headers */, - 8B845D852E9DA93100AFF254 /* CABool.h in Headers */, - 8B845DAA2E9DA93100AFF254 /* CAMutex.h in Headers */, - 8B845DF02E9DA93100AFF254 /* AUBase.h in Headers */, + 8B7A499A2EB5689800B07840 /* CAFilePathUtils.h in Headers */, + 8B7A495C2EB5689800B07840 /* CAException.h in Headers */, + 8B7A49532EB5689800B07840 /* CAAtomic.h in Headers */, + 8B7A49522EB5689800B07840 /* CAGuard.h in Headers */, + 8B7A49B82EB5689800B07840 /* AUInputElement.h in Headers */, + 8B7A498F2EB5689800B07840 /* CACFPreferences.h in Headers */, + 8B7A49A42EB5689800B07840 /* CAByteOrder.h in Headers */, + 8B7A49872EB5689800B07840 /* CARingBuffer.h in Headers */, + 8B7A494E2EB5689800B07840 /* CABool.h in Headers */, + 8B7A49732EB5689800B07840 /* CAMutex.h in Headers */, + 8B7A49B92EB5689800B07840 /* AUBase.h in Headers */, 8BC6025C073B072D006C4272 /* ConsoleX2Pre.h in Headers */, - 8B845DA22E9DA93100AFF254 /* CACFString.h in Headers */, - 8B845DC12E9DA93100AFF254 /* CASharedLibrary.h in Headers */, - 8B845D8E2E9DA93100AFF254 /* CATokenMap.h in Headers */, - 8B845D832E9DA93100AFF254 /* CAExtAudioFile.h in Headers */, - 8B845D982E9DA93100AFF254 /* CAPThread.h in Headers */, - 8B845DB42E9DA93100AFF254 /* CAPropertyAddress.h in Headers */, - 8B845DDE2E9DA93100AFF254 /* CAReferenceCounted.h in Headers */, - 8B845E032E9DA93100AFF254 /* AUBuffer.h in Headers */, - 8B845DE52E9DA93100AFF254 /* CAMath.h in Headers */, - 8B845DC52E9DA93100AFF254 /* CAAutoDisposer.h in Headers */, - 8B845D8C2E9DA93100AFF254 /* CACFObject.h in Headers */, - 8B845DAC2E9DA93100AFF254 /* CASettingsStorage.h in Headers */, - 8B845DB52E9DA93100AFF254 /* CAXException.h in Headers */, - 8B845DD22E9DA93100AFF254 /* CATink.h in Headers */, - 8B845DFF2E9DA93100AFF254 /* AUInputFormatConverter.h in Headers */, - 8B845DDA2E9DA93100AFF254 /* CAVectorUnit.h in Headers */, - 8B845D962E9DA93100AFF254 /* CAProcess.h in Headers */, - 8B845D9C2E9DA93100AFF254 /* CAAudioValueRange.h in Headers */, - 8B845DB12E9DA93100AFF254 /* CABitOperations.h in Headers */, - 8B845DA72E9DA93100AFF254 /* CAAudioFileFormats.h in Headers */, - 8B845DA02E9DA93100AFF254 /* CACFNumber.h in Headers */, - 8B845DB82E9DA93100AFF254 /* CAAudioUnitOutputCapturer.h in Headers */, - 8B845DC92E9DA93100AFF254 /* CADebugMacros.h in Headers */, - 8B845E022E9DA93100AFF254 /* AUMIDIDefs.h in Headers */, - 8B845DC22E9DA93100AFF254 /* CACFData.h in Headers */, - 8B845D8B2E9DA93100AFF254 /* CAStreamBasicDescription.h in Headers */, - 8B845DF12E9DA93100AFF254 /* AUPlugInDispatch.h in Headers */, - 8B845D8D2E9DA93100AFF254 /* CAStreamRangedDescription.h in Headers */, - 8B845DCD2E9DA93100AFF254 /* CACFPlugIn.h in Headers */, - 8B845D902E9DA93100AFF254 /* CAAudioBufferList.h in Headers */, - 8B845DA82E9DA93100AFF254 /* CAAUMIDIMapManager.h in Headers */, - 8B845DFB2E9DA93100AFF254 /* AUEffectBase.h in Headers */, - 8B845D972E9DA93100AFF254 /* CACFDictionary.h in Headers */, - 8B845DF82E9DA93100AFF254 /* AUScopeElement.h in Headers */, - 8B845DC82E9DA93100AFF254 /* CAComponentDescription.h in Headers */, - 8B845DFE2E9DA93100AFF254 /* AUSilentTimeout.h in Headers */, - 8B845DC02E9DA93100AFF254 /* CABufferList.h in Headers */, - 8B845DF22E9DA93100AFF254 /* AUDispatch.h in Headers */, - 8B845DF62E9DA93100AFF254 /* AUOutputElement.h in Headers */, - 8B845DBC2E9DA93100AFF254 /* CALogMacros.h in Headers */, - 8B845DB02E9DA93100AFF254 /* AUParamInfo.h in Headers */, - 8B845DCF2E9DA93100AFF254 /* CAMixMap.h in Headers */, - 8B845DDC2E9DA93100AFF254 /* CACFArray.h in Headers */, - 8B845D842E9DA93100AFF254 /* CACFMachPort.h in Headers */, - 8B845DAF2E9DA93100AFF254 /* CAAUMIDIMap.h in Headers */, - 8B845D872E9DA93100AFF254 /* CADebugger.h in Headers */, + 8B7A496B2EB5689800B07840 /* CACFString.h in Headers */, + 8B7A498A2EB5689800B07840 /* CASharedLibrary.h in Headers */, + 8B7A49572EB5689800B07840 /* CATokenMap.h in Headers */, + 8B7A494C2EB5689800B07840 /* CAExtAudioFile.h in Headers */, + 8B7A49612EB5689800B07840 /* CAPThread.h in Headers */, + 8B7A497D2EB5689800B07840 /* CAPropertyAddress.h in Headers */, + 8B7A49A72EB5689800B07840 /* CAReferenceCounted.h in Headers */, + 8B7A49CC2EB5689800B07840 /* AUBuffer.h in Headers */, + 8B7A49AE2EB5689800B07840 /* CAMath.h in Headers */, + 8B7A498E2EB5689800B07840 /* CAAutoDisposer.h in Headers */, + 8B7A49552EB5689800B07840 /* CACFObject.h in Headers */, + 8B7A49752EB5689800B07840 /* CASettingsStorage.h in Headers */, + 8B7A497E2EB5689800B07840 /* CAXException.h in Headers */, + 8B7A499B2EB5689800B07840 /* CATink.h in Headers */, + 8B7A49C82EB5689800B07840 /* AUInputFormatConverter.h in Headers */, + 8B7A49A32EB5689800B07840 /* CAVectorUnit.h in Headers */, + 8B7A495F2EB5689800B07840 /* CAProcess.h in Headers */, + 8B7A49652EB5689800B07840 /* CAAudioValueRange.h in Headers */, + 8B7A497A2EB5689800B07840 /* CABitOperations.h in Headers */, + 8B7A49702EB5689800B07840 /* CAAudioFileFormats.h in Headers */, + 8B7A49692EB5689800B07840 /* CACFNumber.h in Headers */, + 8B7A49812EB5689800B07840 /* CAAudioUnitOutputCapturer.h in Headers */, + 8B7A49922EB5689800B07840 /* CADebugMacros.h in Headers */, + 8B7A49CB2EB5689800B07840 /* AUMIDIDefs.h in Headers */, + 8B7A498B2EB5689800B07840 /* CACFData.h in Headers */, + 8B7A49542EB5689800B07840 /* CAStreamBasicDescription.h in Headers */, + 8B7A49BA2EB5689800B07840 /* AUPlugInDispatch.h in Headers */, + 8B7A49562EB5689800B07840 /* CAStreamRangedDescription.h in Headers */, + 8B7A49962EB5689800B07840 /* CACFPlugIn.h in Headers */, + 8B7A49592EB5689800B07840 /* CAAudioBufferList.h in Headers */, + 8B7A49712EB5689800B07840 /* CAAUMIDIMapManager.h in Headers */, + 8B7A49C42EB5689800B07840 /* AUEffectBase.h in Headers */, + 8B7A49602EB5689800B07840 /* CACFDictionary.h in Headers */, + 8B7A49C12EB5689800B07840 /* AUScopeElement.h in Headers */, + 8B7A49912EB5689800B07840 /* CAComponentDescription.h in Headers */, + 8B7A49C72EB5689800B07840 /* AUSilentTimeout.h in Headers */, + 8B7A49892EB5689800B07840 /* CABufferList.h in Headers */, + 8B7A49BB2EB5689800B07840 /* AUDispatch.h in Headers */, + 8B7A49BF2EB5689800B07840 /* AUOutputElement.h in Headers */, + 8B7A49852EB5689800B07840 /* CALogMacros.h in Headers */, + 8B7A49792EB5689800B07840 /* AUParamInfo.h in Headers */, + 8B7A49982EB5689800B07840 /* CAMixMap.h in Headers */, + 8B7A49A52EB5689800B07840 /* CACFArray.h in Headers */, + 8B7A494D2EB5689800B07840 /* CACFMachPort.h in Headers */, + 8B7A49782EB5689800B07840 /* CAAUMIDIMap.h in Headers */, + 8B7A49502EB5689800B07840 /* CADebugger.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -681,11 +681,11 @@ developmentRegion = en; hasScannedForEncodings = 1; knownRegions = ( + ja, de, en, - Base, - ja, fr, + Base, ); mainGroup = 089C166AFE841209C02AAC07 /* ConsoleX2Pre */; projectDirPath = ""; @@ -712,60 +712,60 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 8B845DBF2E9DA93100AFF254 /* AUOutputBL.cpp in Sources */, - 8B845DE42E9DA93100AFF254 /* CAAudioFileFormats.cpp in Sources */, - 8B845DD62E9DA93100AFF254 /* CAHostTimeBase.cpp in Sources */, - 8B845DAE2E9DA93100AFF254 /* CAXException.cpp in Sources */, - 8B845DD82E9DA93100AFF254 /* CAAudioBufferList.cpp in Sources */, - 8B845D9B2E9DA93100AFF254 /* CAFilePathUtils.cpp in Sources */, - 8B845D992E9DA93100AFF254 /* CAAUParameter.cpp in Sources */, - 8B845DBB2E9DA93100AFF254 /* CAAUMIDIMap.cpp in Sources */, - 8B845DE82E9DA93100AFF254 /* CAAudioValueRange.cpp in Sources */, - 8B845DF72E9DA93100AFF254 /* AUDispatch.cpp in Sources */, - 8B845DB22E9DA93100AFF254 /* CACFPreferences.cpp in Sources */, - 8B845DF52E9DA93100AFF254 /* AUPlugInDispatch.cpp in Sources */, - 8B845D942E9DA93100AFF254 /* CAAUProcessor.cpp in Sources */, - 8B845DA92E9DA93100AFF254 /* CACFDictionary.cpp in Sources */, - 8B845DFD2E9DA93100AFF254 /* AUBaseHelper.cpp in Sources */, - 8B845DE22E9DA93100AFF254 /* CADebugger.cpp in Sources */, - 8B845DB62E9DA93100AFF254 /* CAAudioChannelLayout.cpp in Sources */, - 8B845DB92E9DA93100AFF254 /* AUParamInfo.cpp in Sources */, - 8B845DD72E9DA93100AFF254 /* CAPersistence.cpp in Sources */, - 8B845DCB2E9DA93100AFF254 /* CADebugPrintf.cpp in Sources */, - 8B845E002E9DA93100AFF254 /* AUTimestampGenerator.cpp in Sources */, - 8B845DD32E9DA93100AFF254 /* CAStreamBasicDescription.cpp in Sources */, - 8B845DA32E9DA93100AFF254 /* CAAUMIDIMapManager.cpp in Sources */, - 8B845DCE2E9DA93100AFF254 /* CASettingsStorage.cpp in Sources */, - 8B845DF32E9DA93100AFF254 /* AUOutputElement.cpp in Sources */, - 8B845D9F2E9DA93100AFF254 /* CAGuard.cpp in Sources */, + 8B7A49882EB5689800B07840 /* AUOutputBL.cpp in Sources */, + 8B7A49AD2EB5689800B07840 /* CAAudioFileFormats.cpp in Sources */, + 8B7A499F2EB5689800B07840 /* CAHostTimeBase.cpp in Sources */, + 8B7A49772EB5689800B07840 /* CAXException.cpp in Sources */, + 8B7A49A12EB5689800B07840 /* CAAudioBufferList.cpp in Sources */, + 8B7A49642EB5689800B07840 /* CAFilePathUtils.cpp in Sources */, + 8B7A49622EB5689800B07840 /* CAAUParameter.cpp in Sources */, + 8B7A49842EB5689800B07840 /* CAAUMIDIMap.cpp in Sources */, + 8B7A49B12EB5689800B07840 /* CAAudioValueRange.cpp in Sources */, + 8B7A49C02EB5689800B07840 /* AUDispatch.cpp in Sources */, + 8B7A497B2EB5689800B07840 /* CACFPreferences.cpp in Sources */, + 8B7A49BE2EB5689800B07840 /* AUPlugInDispatch.cpp in Sources */, + 8B7A495D2EB5689800B07840 /* CAAUProcessor.cpp in Sources */, + 8B7A49722EB5689800B07840 /* CACFDictionary.cpp in Sources */, + 8B7A49C62EB5689800B07840 /* AUBaseHelper.cpp in Sources */, + 8B7A49AB2EB5689800B07840 /* CADebugger.cpp in Sources */, + 8B7A497F2EB5689800B07840 /* CAAudioChannelLayout.cpp in Sources */, + 8B7A49822EB5689800B07840 /* AUParamInfo.cpp in Sources */, + 8B7A49A02EB5689800B07840 /* CAPersistence.cpp in Sources */, + 8B7A49942EB5689800B07840 /* CADebugPrintf.cpp in Sources */, + 8B7A49C92EB5689800B07840 /* AUTimestampGenerator.cpp in Sources */, + 8B7A499C2EB5689800B07840 /* CAStreamBasicDescription.cpp in Sources */, + 8B7A496C2EB5689800B07840 /* CAAUMIDIMapManager.cpp in Sources */, + 8B7A49972EB5689800B07840 /* CASettingsStorage.cpp in Sources */, + 8B7A49BC2EB5689800B07840 /* AUOutputElement.cpp in Sources */, + 8B7A49682EB5689800B07840 /* CAGuard.cpp in Sources */, 8BA05A6B0720730100365D66 /* ConsoleX2Pre.cpp in Sources */, - 8B845DE12E9DA93100AFF254 /* CAMutex.cpp in Sources */, - 8B845DFA2E9DA93100AFF254 /* AUEffectBase.cpp in Sources */, - 8B845DDF2E9DA93100AFF254 /* CACFMachPort.cpp in Sources */, - 8B845DEE2E9DA93100AFF254 /* AUBase.cpp in Sources */, - 8B845DBA2E9DA93100AFF254 /* CASharedLibrary.cpp in Sources */, - 8B845DA12E9DA93100AFF254 /* CACFDistributedNotification.cpp in Sources */, - 8B845DA42E9DA93100AFF254 /* CAComponentDescription.cpp in Sources */, - 8B845DAB2E9DA93100AFF254 /* CACFString.cpp in Sources */, - 8B845DEB2E9DA93100AFF254 /* ComponentBase.cpp in Sources */, - 8B845DCC2E9DA93100AFF254 /* CARingBuffer.cpp in Sources */, - 8B845DEC2E9DA93100AFF254 /* AUScopeElement.cpp in Sources */, - 8B845DE92E9DA93100AFF254 /* CAAudioUnit.cpp in Sources */, - 8B845DE62E9DA93100AFF254 /* CACFArray.cpp in Sources */, - 8B845DE32E9DA93100AFF254 /* CABundleLocker.cpp in Sources */, - 8B845DD52E9DA93100AFF254 /* CAProcess.cpp in Sources */, - 8B845DC32E9DA93100AFF254 /* CAStreamRangedDescription.cpp in Sources */, - 8B845DC42E9DA93100AFF254 /* CAPThread.cpp in Sources */, - 8B845D862E9DA93100AFF254 /* CAComponent.cpp in Sources */, - 8B845D9E2E9DA93100AFF254 /* CAAudioChannelLayoutObject.cpp in Sources */, - 8B845DD92E9DA93100AFF254 /* CAAudioTimeStamp.cpp in Sources */, - 8B845DE02E9DA93100AFF254 /* CABufferList.cpp in Sources */, - 8B845DBD2E9DA93100AFF254 /* CACFMessagePort.cpp in Sources */, - 8B845DC72E9DA93100AFF254 /* CAVectorUnit.cpp in Sources */, - 8B845DF92E9DA93100AFF254 /* AUInputElement.cpp in Sources */, - 8B845E012E9DA93100AFF254 /* AUBuffer.cpp in Sources */, - 8B845DA62E9DA93100AFF254 /* CADebugMacros.cpp in Sources */, - 8B845D882E9DA93100AFF254 /* CACFNumber.cpp in Sources */, + 8B7A49AA2EB5689800B07840 /* CAMutex.cpp in Sources */, + 8B7A49C32EB5689800B07840 /* AUEffectBase.cpp in Sources */, + 8B7A49A82EB5689800B07840 /* CACFMachPort.cpp in Sources */, + 8B7A49B72EB5689800B07840 /* AUBase.cpp in Sources */, + 8B7A49832EB5689800B07840 /* CASharedLibrary.cpp in Sources */, + 8B7A496A2EB5689800B07840 /* CACFDistributedNotification.cpp in Sources */, + 8B7A496D2EB5689800B07840 /* CAComponentDescription.cpp in Sources */, + 8B7A49742EB5689800B07840 /* CACFString.cpp in Sources */, + 8B7A49B42EB5689800B07840 /* ComponentBase.cpp in Sources */, + 8B7A49952EB5689800B07840 /* CARingBuffer.cpp in Sources */, + 8B7A49B52EB5689800B07840 /* AUScopeElement.cpp in Sources */, + 8B7A49B22EB5689800B07840 /* CAAudioUnit.cpp in Sources */, + 8B7A49AF2EB5689800B07840 /* CACFArray.cpp in Sources */, + 8B7A49AC2EB5689800B07840 /* CABundleLocker.cpp in Sources */, + 8B7A499E2EB5689800B07840 /* CAProcess.cpp in Sources */, + 8B7A498C2EB5689800B07840 /* CAStreamRangedDescription.cpp in Sources */, + 8B7A498D2EB5689800B07840 /* CAPThread.cpp in Sources */, + 8B7A494F2EB5689800B07840 /* CAComponent.cpp in Sources */, + 8B7A49672EB5689800B07840 /* CAAudioChannelLayoutObject.cpp in Sources */, + 8B7A49A22EB5689800B07840 /* CAAudioTimeStamp.cpp in Sources */, + 8B7A49A92EB5689800B07840 /* CABufferList.cpp in Sources */, + 8B7A49862EB5689800B07840 /* CACFMessagePort.cpp in Sources */, + 8B7A49902EB5689800B07840 /* CAVectorUnit.cpp in Sources */, + 8B7A49C22EB5689800B07840 /* AUInputElement.cpp in Sources */, + 8B7A49CA2EB5689800B07840 /* AUBuffer.cpp in Sources */, + 8B7A496F2EB5689800B07840 /* CADebugMacros.cpp in Sources */, + 8B7A49512EB5689800B07840 /* CACFNumber.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -775,7 +775,7 @@ 089C167DFE841241C02AAC07 /* InfoPlist.strings */ = { isa = PBXVariantGroup; children = ( - 8B845E052E9DAA2400AFF254 /* en */, + 8B7A49CE2EB569B200B07840 /* en */, ); name = InfoPlist.strings; sourceTree = ""; diff --git a/plugins/MacSignedAU/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacSignedAU/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate index 9487e83b5..6efa55424 100644 Binary files a/plugins/MacSignedAU/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate and b/plugins/MacSignedAU/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/plugins/MacSignedAU/X2Buss/Info.plist b/plugins/MacSignedAU/X2Buss/Info.plist new file mode 100755 index 000000000..5336567d2 --- /dev/null +++ b/plugins/MacSignedAU/X2Buss/Info.plist @@ -0,0 +1,47 @@ + + + + + AudioComponents + + + description + ${PRODUCT_NAME:identifier} AU + factoryFunction + ${PRODUCT_NAME:identifier}Factory + manufacturer + Dthr + name + Airwindows: ${PRODUCT_NAME:identifier} + subtype + x2bs + type + aufx + version + 65536 + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PROJECTNAMEASIDENTIFIER} + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0 + CFBundleSignature + Dthr + CFBundleVersion + 1.0 + CSResourcesFileMapped + + + diff --git a/plugins/MacSignedAU/X2Buss/StarterAU_Prefix.pch b/plugins/MacSignedAU/X2Buss/StarterAU_Prefix.pch new file mode 100755 index 000000000..c03b5f684 --- /dev/null +++ b/plugins/MacSignedAU/X2Buss/StarterAU_Prefix.pch @@ -0,0 +1,5 @@ +// +// Prefix header for all source files of the '«PROJECTNAMEASIDENTIFIER»' target in the '«PROJECTNAMEASIDENTIFIER»' project. +// + +#include diff --git a/plugins/MacSignedAU/X2Buss/X2Buss.cpp b/plugins/MacSignedAU/X2Buss/X2Buss.cpp new file mode 100755 index 000000000..78173fe54 --- /dev/null +++ b/plugins/MacSignedAU/X2Buss/X2Buss.cpp @@ -0,0 +1,751 @@ +/* +* File: X2Buss.cpp +* +* Version: 1.0 +* +* Created: 10/31/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. +* +*/ +/*============================================================================= + X2Buss.cpp + +=============================================================================*/ +#include "X2Buss.h" + + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +AUDIOCOMPONENT_ENTRY(AUBaseFactory, X2Buss) + + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// X2Buss::X2Buss +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +X2Buss::X2Buss(AudioUnit component) + : AUEffectBase(component) +{ + CreateElements(); + Globals()->UseIndexedParameters(kNumberOfParameters); + SetParameter(kParam_A, kDefaultValue_ParamA ); + SetParameter(kParam_B, kDefaultValue_ParamB ); + SetParameter(kParam_C, kDefaultValue_ParamC ); + SetParameter(kParam_D, kDefaultValue_ParamD ); + SetParameter(kParam_E, kDefaultValue_ParamE ); + SetParameter(kParam_F, kDefaultValue_ParamF ); + SetParameter(kParam_G, kDefaultValue_ParamG ); + SetParameter(kParam_H, kDefaultValue_ParamH ); + SetParameter(kParam_I, kDefaultValue_ParamI ); + SetParameter(kParam_J, kDefaultValue_ParamJ ); + +#if AU_DEBUG_DISPATCHER + mDebugDispatcher = new AUDebugDispatcher (this); +#endif + +} + + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// X2Buss::GetParameterValueStrings +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +ComponentResult X2Buss::GetParameterValueStrings(AudioUnitScope inScope, + AudioUnitParameterID inParameterID, + CFArrayRef * outStrings) +{ + + return kAudioUnitErr_InvalidProperty; +} + + + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// X2Buss::GetParameterInfo +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +ComponentResult X2Buss::GetParameterInfo(AudioUnitScope inScope, + AudioUnitParameterID inParameterID, + AudioUnitParameterInfo &outParameterInfo ) +{ + ComponentResult result = noErr; + + outParameterInfo.flags = kAudioUnitParameterFlag_IsWritable + | kAudioUnitParameterFlag_IsReadable; + + if (inScope == kAudioUnitScope_Global) { + switch(inParameterID) + { + case kParam_A: + AUBase::FillInParameterName (outParameterInfo, kParameterAName, false); + outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit; + outParameterInfo.unitName = kParameterAUnit; + outParameterInfo.minValue = 0.0; + outParameterInfo.maxValue = 1.0; + outParameterInfo.defaultValue = kDefaultValue_ParamA; + break; + case kParam_B: + AUBase::FillInParameterName (outParameterInfo, kParameterBName, false); + outParameterInfo.unit = kAudioUnitParameterUnit_Generic; + outParameterInfo.minValue = 0.0; + outParameterInfo.maxValue = 1.0; + outParameterInfo.defaultValue = kDefaultValue_ParamB; + break; + case kParam_C: + AUBase::FillInParameterName (outParameterInfo, kParameterCName, false); + outParameterInfo.unit = kAudioUnitParameterUnit_Generic; + outParameterInfo.minValue = 0.0; + outParameterInfo.maxValue = 1.0; + outParameterInfo.defaultValue = kDefaultValue_ParamC; + break; + case kParam_D: + AUBase::FillInParameterName (outParameterInfo, kParameterDName, false); + outParameterInfo.unit = kAudioUnitParameterUnit_Generic; + outParameterInfo.minValue = 0.0; + outParameterInfo.maxValue = 1.0; + outParameterInfo.defaultValue = kDefaultValue_ParamD; + break; + case kParam_E: + AUBase::FillInParameterName (outParameterInfo, kParameterEName, false); + outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit; + outParameterInfo.unitName = kParameterEUnit; + outParameterInfo.minValue = 0.0; + outParameterInfo.maxValue = 1.0; + outParameterInfo.defaultValue = kDefaultValue_ParamE; + break; + case kParam_F: + AUBase::FillInParameterName (outParameterInfo, kParameterFName, false); + outParameterInfo.unit = kAudioUnitParameterUnit_Generic; + outParameterInfo.minValue = 0.0; + outParameterInfo.maxValue = 1.0; + outParameterInfo.defaultValue = kDefaultValue_ParamF; + break; + case kParam_G: + AUBase::FillInParameterName (outParameterInfo, kParameterGName, false); + outParameterInfo.unit = kAudioUnitParameterUnit_Generic; + outParameterInfo.minValue = 0.0; + outParameterInfo.maxValue = 1.0; + outParameterInfo.defaultValue = kDefaultValue_ParamG; + break; + case kParam_H: + AUBase::FillInParameterName (outParameterInfo, kParameterHName, false); + outParameterInfo.unit = kAudioUnitParameterUnit_Generic; + outParameterInfo.minValue = 0.0; + outParameterInfo.maxValue = 1.0; + outParameterInfo.defaultValue = kDefaultValue_ParamH; + break; + case kParam_I: + AUBase::FillInParameterName (outParameterInfo, kParameterIName, false); + outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit; + outParameterInfo.unitName = kParameterIUnit; + outParameterInfo.minValue = 0.0; + outParameterInfo.maxValue = 1.0; + outParameterInfo.defaultValue = kDefaultValue_ParamI; + break; + case kParam_J: + AUBase::FillInParameterName (outParameterInfo, kParameterJName, false); + outParameterInfo.unit = kAudioUnitParameterUnit_Generic; + outParameterInfo.minValue = 0.0; + outParameterInfo.maxValue = 1.0; + outParameterInfo.defaultValue = kDefaultValue_ParamJ; + break; + default: + result = kAudioUnitErr_InvalidParameter; + break; + } + } else { + result = kAudioUnitErr_InvalidParameter; + } + + + + return result; +} + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// X2Buss::GetPropertyInfo +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +ComponentResult X2Buss::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 X2Buss::SupportedNumChannels(const AUChannelInfo ** outInfo) +{ + if (outInfo != NULL) + { + static AUChannelInfo info; + info.inChannels = 2; + info.outChannels = 2; + *outInfo = &info; + } + + return 1; +} + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// X2Buss::GetProperty +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +ComponentResult X2Buss::GetProperty( AudioUnitPropertyID inID, + AudioUnitScope inScope, + AudioUnitElement inElement, + void * outData ) +{ + return AUEffectBase::GetProperty (inID, inScope, inElement, outData); +} + +// X2Buss::Initialize +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +ComponentResult X2Buss::Initialize() +{ + ComponentResult result = AUEffectBase::Initialize(); + if (result == noErr) + Reset(kAudioUnitScope_Global, 0); + return result; +} + +#pragma mark ____X2BussEffectKernel + + + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// X2Buss::X2BussKernel::Reset() +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +ComponentResult X2Buss::Reset(AudioUnitScope inScope, AudioUnitElement inElement) +{ + for (int x = 0; x < biq_total; x++) { + highA[x] = 0.0; + highB[x] = 0.0; + highC[x] = 0.0; + midA[x] = 0.0; + midB[x] = 0.0; + midC[x] = 0.0; + lowA[x] = 0.0; + lowB[x] = 0.0; + lowC[x] = 0.0; + } + highLIIR = 0.0; + highRIIR = 0.0; + midLIIR = 0.0; + midRIIR = 0.0; + lowLIIR = 0.0; + lowRIIR = 0.0; + //SmoothEQ2 + + for (int x = 0; x < bez_total; x++) {bezCompF[x] = 0.0;bezCompS[x] = 0.0;} + bezCompF[bez_cycle] = 1.0; bezMaxF = 0.0; + bezCompS[bez_cycle] = 1.0; + //Dynamics2 + + 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 + + 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; +} + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// X2Buss::ProcessBufferLists +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +OSStatus X2Buss::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_A )-0.5)*2.0; + trebleGain = 1.0+(trebleGain*fabs(trebleGain)*fabs(trebleGain)); + double highmidGain = (GetParameter( kParam_B )-0.5)*2.0; + highmidGain = 1.0+(highmidGain*fabs(highmidGain)*fabs(highmidGain)); + double lowmidGain = (GetParameter( kParam_C )-0.5)*2.0; + lowmidGain = 1.0+(lowmidGain*fabs(lowmidGain)*fabs(lowmidGain)); + double bassGain = (GetParameter( kParam_D )-0.5)*2.0; + bassGain = 1.0+(bassGain*fabs(bassGain)*fabs(bassGain)); + + double trebleRef = GetParameter( kParam_E )-0.5; + double highmidRef = GetParameter( kParam_F )-0.5; + double lowmidRef = GetParameter( kParam_G )-0.5; + double bassRef = GetParameter( kParam_H )-0.5; + double highF = 0.75 + ((trebleRef+trebleRef+trebleRef+highmidRef)*0.125); + double bassF = 0.25 + ((lowmidRef+bassRef+bassRef+bassRef)*0.125); + double midF = (highF*0.5) + (bassF*0.5) + ((highmidRef+lowmidRef)*0.125); + + double highQ = fmax(fmin(1.0+(highmidRef-trebleRef),4.0),0.125); + double midQ = fmax(fmin(1.0+(lowmidRef-highmidRef),4.0),0.125); + double lowQ = fmax(fmin(1.0+(bassRef-lowmidRef),4.0),0.125); + + highA[biq_freq] = ((pow(highF,3)*20000.0)/GetSampleRate()); + highC[biq_freq] = highB[biq_freq] = highA[biq_freq] = fmax(fmin(highA[biq_freq],0.4999),0.00025); + double highFreq = pow(highF,3)*20000.0; + double omega = 2.0*M_PI*(highFreq/GetSampleRate()); + double biqK = 2.0-cos(omega); + double highCoef = -sqrt((biqK*biqK)-1.0)+biqK; + highA[biq_reso] = 2.24697960 * highQ; + highB[biq_reso] = 0.80193774 * highQ; + highC[biq_reso] = 0.55495813 * highQ; + + midA[biq_freq] = ((pow(midF,3)*20000.0)/GetSampleRate()); + midC[biq_freq] = midB[biq_freq] = midA[biq_freq] = fmax(fmin(midA[biq_freq],0.4999),0.00025); + double midFreq = pow(midF,3)*20000.0; + omega = 2.0*M_PI*(midFreq/GetSampleRate()); + biqK = 2.0-cos(omega); + double midCoef = -sqrt((biqK*biqK)-1.0)+biqK; + midA[biq_reso] = 2.24697960 * midQ; + midB[biq_reso] = 0.80193774 * midQ; + midC[biq_reso] = 0.55495813 * midQ; + + lowA[biq_freq] = ((pow(bassF,3)*20000.0)/GetSampleRate()); + lowC[biq_freq] = lowB[biq_freq] = lowA[biq_freq] = fmax(fmin(lowA[biq_freq],0.4999),0.00025); + double lowFreq = pow(bassF,3)*20000.0; + omega = 2.0*M_PI*(lowFreq/GetSampleRate()); + biqK = 2.0-cos(omega); + double lowCoef = -sqrt((biqK*biqK)-1.0)+biqK; + lowA[biq_reso] = 2.24697960 * lowQ; + lowB[biq_reso] = 0.80193774 * lowQ; + lowC[biq_reso] = 0.55495813 * lowQ; + + biqK = tan(M_PI * highA[biq_freq]); + double norm = 1.0 / (1.0 + biqK / highA[biq_reso] + biqK * biqK); + highA[biq_a0] = biqK * biqK * norm; + highA[biq_a1] = 2.0 * highA[biq_a0]; + highA[biq_a2] = highA[biq_a0]; + highA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highA[biq_b2] = (1.0 - biqK / highA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highB[biq_freq]); + norm = 1.0 / (1.0 + biqK / highB[biq_reso] + biqK * biqK); + highB[biq_a0] = biqK * biqK * norm; + highB[biq_a1] = 2.0 * highB[biq_a0]; + highB[biq_a2] = highB[biq_a0]; + highB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highB[biq_b2] = (1.0 - biqK / highB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highC[biq_freq]); + norm = 1.0 / (1.0 + biqK / highC[biq_reso] + biqK * biqK); + highC[biq_a0] = biqK * biqK * norm; + highC[biq_a1] = 2.0 * highC[biq_a0]; + highC[biq_a2] = highC[biq_a0]; + highC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highC[biq_b2] = (1.0 - biqK / highC[biq_reso] + biqK * biqK) * norm; + + biqK = tan(M_PI * midA[biq_freq]); + norm = 1.0 / (1.0 + biqK / midA[biq_reso] + biqK * biqK); + midA[biq_a0] = biqK * biqK * norm; + midA[biq_a1] = 2.0 * midA[biq_a0]; + midA[biq_a2] = midA[biq_a0]; + midA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midA[biq_b2] = (1.0 - biqK / midA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midB[biq_freq]); + norm = 1.0 / (1.0 + biqK / midB[biq_reso] + biqK * biqK); + midB[biq_a0] = biqK * biqK * norm; + midB[biq_a1] = 2.0 * midB[biq_a0]; + midB[biq_a2] = midB[biq_a0]; + midB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midB[biq_b2] = (1.0 - biqK / midB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midC[biq_freq]); + norm = 1.0 / (1.0 + biqK / midC[biq_reso] + biqK * biqK); + midC[biq_a0] = biqK * biqK * norm; + midC[biq_a1] = 2.0 * midC[biq_a0]; + midC[biq_a2] = midC[biq_a0]; + midC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midC[biq_b2] = (1.0 - biqK / midC[biq_reso] + biqK * biqK) * norm; + + biqK = tan(M_PI * lowA[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowA[biq_reso] + biqK * biqK); + lowA[biq_a0] = biqK * biqK * norm; + lowA[biq_a1] = 2.0 * lowA[biq_a0]; + lowA[biq_a2] = lowA[biq_a0]; + lowA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowA[biq_b2] = (1.0 - biqK / lowA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowB[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowB[biq_reso] + biqK * biqK); + lowB[biq_a0] = biqK * biqK * norm; + lowB[biq_a1] = 2.0 * lowB[biq_a0]; + lowB[biq_a2] = lowB[biq_a0]; + lowB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowB[biq_b2] = (1.0 - biqK / lowB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowC[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowC[biq_reso] + biqK * biqK); + lowC[biq_a0] = biqK * biqK * norm; + lowC[biq_a1] = 2.0 * lowC[biq_a0]; + lowC[biq_a2] = lowC[biq_a0]; + lowC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowC[biq_b2] = (1.0 - biqK / lowC[biq_reso] + biqK * biqK) * norm; + //SmoothEQ2 + + double bezCThresh = pow(1.0-GetParameter( kParam_I ), 6.0) * 8.0; + double bezRez = pow(1.0-GetParameter( kParam_I ), 12.360679774997898) / overallscale; + double sloRez = pow(1.0-GetParameter( kParam_I ),10.0) / overallscale; + sloRez = fmin(fmax(sloRez,0.00001),1.0); + bezRez = fmin(fmax(bezRez,0.00001),1.0); + //Dynamics2 + + inTrimA = inTrimB; inTrimB = GetParameter( kParam_J )*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; + + 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)); + + double trebleL = inputSampleL; + double outSample = (trebleL * highA[biq_a0]) + highA[biq_sL1]; + highA[biq_sL1] = (trebleL * highA[biq_a1]) - (outSample * highA[biq_b1]) + highA[biq_sL2]; + highA[biq_sL2] = (trebleL * highA[biq_a2]) - (outSample * highA[biq_b2]); + double highmidL = outSample; trebleL -= highmidL; + + outSample = (highmidL * midA[biq_a0]) + midA[biq_sL1]; + midA[biq_sL1] = (highmidL * midA[biq_a1]) - (outSample * midA[biq_b1]) + midA[biq_sL2]; + midA[biq_sL2] = (highmidL * midA[biq_a2]) - (outSample * midA[biq_b2]); + double lowmidL = outSample; highmidL -= lowmidL; + + outSample = (lowmidL * lowA[biq_a0]) + lowA[biq_sL1]; + lowA[biq_sL1] = (lowmidL * lowA[biq_a1]) - (outSample * lowA[biq_b1]) + lowA[biq_sL2]; + lowA[biq_sL2] = (lowmidL * lowA[biq_a2]) - (outSample * lowA[biq_b2]); + double bassL = outSample; lowmidL -= bassL; + + trebleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain); + //first stage of three crossovers + + outSample = (trebleL * highB[biq_a0]) + highB[biq_sL1]; + highB[biq_sL1] = (trebleL * highB[biq_a1]) - (outSample * highB[biq_b1]) + highB[biq_sL2]; + highB[biq_sL2] = (trebleL * highB[biq_a2]) - (outSample * highB[biq_b2]); + highmidL = outSample; trebleL -= highmidL; + + outSample = (highmidL * midB[biq_a0]) + midB[biq_sL1]; + midB[biq_sL1] = (highmidL * midB[biq_a1]) - (outSample * midB[biq_b1]) + midB[biq_sL2]; + midB[biq_sL2] = (highmidL * midB[biq_a2]) - (outSample * midB[biq_b2]); + lowmidL = outSample; highmidL -= lowmidL; + + outSample = (lowmidL * lowB[biq_a0]) + lowB[biq_sL1]; + lowB[biq_sL1] = (lowmidL * lowB[biq_a1]) - (outSample * lowB[biq_b1]) + lowB[biq_sL2]; + lowB[biq_sL2] = (lowmidL * lowB[biq_a2]) - (outSample * lowB[biq_b2]); + bassL = outSample; lowmidL -= bassL; + + trebleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain); + //second stage of three crossovers + + outSample = (trebleL * highC[biq_a0]) + highC[biq_sL1]; + highC[biq_sL1] = (trebleL * highC[biq_a1]) - (outSample * highC[biq_b1]) + highC[biq_sL2]; + highC[biq_sL2] = (trebleL * highC[biq_a2]) - (outSample * highC[biq_b2]); + highmidL = outSample; trebleL -= highmidL; + + outSample = (highmidL * midC[biq_a0]) + midC[biq_sL1]; + midC[biq_sL1] = (highmidL * midC[biq_a1]) - (outSample * midC[biq_b1]) + midC[biq_sL2]; + midC[biq_sL2] = (highmidL * midC[biq_a2]) - (outSample * midC[biq_b2]); + lowmidL = outSample; highmidL -= lowmidL; + + outSample = (lowmidL * lowC[biq_a0]) + lowC[biq_sL1]; + lowC[biq_sL1] = (lowmidL * lowC[biq_a1]) - (outSample * lowC[biq_b1]) + lowC[biq_sL2]; + lowC[biq_sL2] = (lowmidL * lowC[biq_a2]) - (outSample * lowC[biq_b2]); + bassL = outSample; lowmidL -= bassL; + + trebleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain); + //third stage of three crossovers + + highLIIR = (highLIIR*highCoef) + (trebleL*(1.0-highCoef)); + highmidL = highLIIR; trebleL -= highmidL; + + midLIIR = (midLIIR*midCoef) + (highmidL*(1.0-midCoef)); + lowmidL = midLIIR; highmidL -= lowmidL; + + lowLIIR = (lowLIIR*lowCoef) + (lowmidL*(1.0-lowCoef)); + bassL = lowLIIR; lowmidL -= bassL; + + inputSampleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain); + //fourth stage of three crossovers is the exponential filters + + + double trebleR = inputSampleR; + outSample = (trebleR * highA[biq_a0]) + highA[biq_sR1]; + highA[biq_sR1] = (trebleR * highA[biq_a1]) - (outSample * highA[biq_b1]) + highA[biq_sR2]; + highA[biq_sR2] = (trebleR * highA[biq_a2]) - (outSample * highA[biq_b2]); + double highmidR = outSample; trebleR -= highmidR; + + outSample = (highmidR * midA[biq_a0]) + midA[biq_sR1]; + midA[biq_sR1] = (highmidR * midA[biq_a1]) - (outSample * midA[biq_b1]) + midA[biq_sR2]; + midA[biq_sR2] = (highmidR * midA[biq_a2]) - (outSample * midA[biq_b2]); + double lowmidR = outSample; highmidR -= lowmidR; + + outSample = (lowmidR * lowA[biq_a0]) + lowA[biq_sR1]; + lowA[biq_sR1] = (lowmidR * lowA[biq_a1]) - (outSample * lowA[biq_b1]) + lowA[biq_sR2]; + lowA[biq_sR2] = (lowmidR * lowA[biq_a2]) - (outSample * lowA[biq_b2]); + double bassR = outSample; lowmidR -= bassR; + + trebleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain); + //first stage of three crossovers + + outSample = (trebleR * highB[biq_a0]) + highB[biq_sR1]; + highB[biq_sR1] = (trebleR * highB[biq_a1]) - (outSample * highB[biq_b1]) + highB[biq_sR2]; + highB[biq_sR2] = (trebleR * highB[biq_a2]) - (outSample * highB[biq_b2]); + highmidR = outSample; trebleR -= highmidR; + + outSample = (highmidR * midB[biq_a0]) + midB[biq_sR1]; + midB[biq_sR1] = (highmidR * midB[biq_a1]) - (outSample * midB[biq_b1]) + midB[biq_sR2]; + midB[biq_sR2] = (highmidR * midB[biq_a2]) - (outSample * midB[biq_b2]); + lowmidR = outSample; highmidR -= lowmidR; + + outSample = (lowmidR * lowB[biq_a0]) + lowB[biq_sR1]; + lowB[biq_sR1] = (lowmidR * lowB[biq_a1]) - (outSample * lowB[biq_b1]) + lowB[biq_sR2]; + lowB[biq_sR2] = (lowmidR * lowB[biq_a2]) - (outSample * lowB[biq_b2]); + bassR = outSample; lowmidR -= bassR; + + trebleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain); + //second stage of three crossovers + + outSample = (trebleR * highC[biq_a0]) + highC[biq_sR1]; + highC[biq_sR1] = (trebleR * highC[biq_a1]) - (outSample * highC[biq_b1]) + highC[biq_sR2]; + highC[biq_sR2] = (trebleR * highC[biq_a2]) - (outSample * highC[biq_b2]); + highmidR = outSample; trebleR -= highmidR; + + outSample = (highmidR * midC[biq_a0]) + midC[biq_sR1]; + midC[biq_sR1] = (highmidR * midC[biq_a1]) - (outSample * midC[biq_b1]) + midC[biq_sR2]; + midC[biq_sR2] = (highmidR * midC[biq_a2]) - (outSample * midC[biq_b2]); + lowmidR = outSample; highmidR -= lowmidR; + + outSample = (lowmidR * lowC[biq_a0]) + lowC[biq_sR1]; + lowC[biq_sR1] = (lowmidR * lowC[biq_a1]) - (outSample * lowC[biq_b1]) + lowC[biq_sR2]; + lowC[biq_sR2] = (lowmidR * lowC[biq_a2]) - (outSample * lowC[biq_b2]); + bassR = outSample; lowmidR -= bassR; + + trebleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain); + //third stage of three crossovers + + highRIIR = (highRIIR*highCoef) + (trebleR*(1.0-highCoef)); + highmidR = highRIIR; trebleR -= highmidR; + + midRIIR = (midRIIR*midCoef) + (highmidR*(1.0-midCoef)); + lowmidR = midRIIR; highmidR -= lowmidR; + + lowRIIR = (lowRIIR*lowCoef) + (lowmidR*(1.0-lowCoef)); + bassR = lowRIIR; lowmidR -= bassR; + + inputSampleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain); + //fourth stage of three crossovers is the exponential filters + //SmoothEQ2 + + if (bezCThresh > 0.0) { + inputSampleL *= ((bezCThresh*0.5)+1.0); + inputSampleR *= ((bezCThresh*0.5)+1.0); + } + + bezCompF[bez_cycle] += bezRez; + bezCompF[bez_SampL] += (fabs(inputSampleL) * bezRez); + bezCompF[bez_SampR] += (fabs(inputSampleR) * bezRez); + bezMaxF = fmax(bezMaxF,fmax(fabs(inputSampleL),fabs(inputSampleR))); + + if (bezCompF[bez_cycle] > 1.0) { + bezCompF[bez_cycle] -= 1.0; + bezCompF[bez_CL] = bezCompF[bez_BL]; + bezCompF[bez_BL] = bezCompF[bez_AL]; + bezCompF[bez_AL] = bezCompF[bez_SampL]; + bezCompF[bez_SampL] = 0.0; + bezCompF[bez_CR] = bezCompF[bez_BR]; + bezCompF[bez_BR] = bezCompF[bez_AR]; + bezCompF[bez_AR] = bezCompF[bez_SampR]; + bezCompF[bez_SampR] = 0.0; + bezMaxF = 0.0; + } + bezCompS[bez_cycle] += sloRez; + bezCompS[bez_SampL] += (fabs(inputSampleL) * sloRez); //note: SampL is a control voltage + bezCompS[bez_SampR] += (fabs(inputSampleR) * sloRez); //note: SampR is a control voltage + if (bezCompS[bez_cycle] > 1.0) { + bezCompS[bez_cycle] -= 1.0; + bezCompS[bez_CL] = bezCompS[bez_BL]; + bezCompS[bez_BL] = bezCompS[bez_AL]; + bezCompS[bez_AL] = bezCompS[bez_SampL]; + bezCompS[bez_SampL] = 0.0; + bezCompS[bez_CR] = bezCompS[bez_BR]; + bezCompS[bez_BR] = bezCompS[bez_AR]; + bezCompS[bez_AR] = bezCompS[bez_SampR]; + bezCompS[bez_SampR] = 0.0; + } + double CBFL = (bezCompF[bez_CL]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_BL]*bezCompF[bez_cycle]); + double BAFL = (bezCompF[bez_BL]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_AL]*bezCompF[bez_cycle]); + double CBAFL = (bezCompF[bez_BL]+(CBFL*(1.0-bezCompF[bez_cycle]))+(BAFL*bezCompF[bez_cycle]))*0.5; + double CBSL = (bezCompS[bez_CL]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_BL]*bezCompS[bez_cycle]); + double BASL = (bezCompS[bez_BL]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_AL]*bezCompS[bez_cycle]); + double CBASL = (bezCompS[bez_BL]+(CBSL*(1.0-bezCompS[bez_cycle]))+(BASL*bezCompS[bez_cycle]))*0.5; + double CBAMax = fmax(CBASL,CBAFL); if (CBAMax > 0.0) CBAMax = 1.0/CBAMax; + double CBAFade = ((CBASL*-CBAMax)+(CBAFL*CBAMax)+1.0)*0.5; + if (bezCThresh > 0.0) inputSampleL *= 1.0-(fmin(((CBASL*(1.0-CBAFade))+(CBAFL*CBAFade))*bezCThresh,1.0)); + + double CBFR = (bezCompF[bez_CR]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_BR]*bezCompF[bez_cycle]); + double BAFR = (bezCompF[bez_BR]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_AR]*bezCompF[bez_cycle]); + double CBAFR = (bezCompF[bez_BR]+(CBFR*(1.0-bezCompF[bez_cycle]))+(BAFR*bezCompF[bez_cycle]))*0.5; + double CBSR = (bezCompS[bez_CR]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_BR]*bezCompS[bez_cycle]); + double BASR = (bezCompS[bez_BR]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_AR]*bezCompS[bez_cycle]); + double CBASR = (bezCompS[bez_BR]+(CBSR*(1.0-bezCompS[bez_cycle]))+(BASR*bezCompS[bez_cycle]))*0.5; + CBAMax = fmax(CBASR,CBAFR); if (CBAMax > 0.0) CBAMax = 1.0/CBAMax; + CBAFade = ((CBASR*-CBAMax)+(CBAFR*CBAMax)+1.0)*0.5; + if (bezCThresh > 0.0) inputSampleR *= 1.0-(fmin(((CBASR*(1.0-CBAFade))+(CBAFR*CBAFade))*bezCThresh,1.0)); + //Dynamics2 + + const double temp = (double)nSampleFrames/inFramesToProcess; + 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 * gain; + inputSampleR = inputSampleR * 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 + //Discontapeity + + //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; +} + diff --git a/plugins/MacSignedAU/X2Buss/X2Buss.exp b/plugins/MacSignedAU/X2Buss/X2Buss.exp new file mode 100755 index 000000000..8b7242e4d --- /dev/null +++ b/plugins/MacSignedAU/X2Buss/X2Buss.exp @@ -0,0 +1,2 @@ +_X2BussEntry +_X2BussFactory diff --git a/plugins/MacSignedAU/X2Buss/X2Buss.h b/plugins/MacSignedAU/X2Buss/X2Buss.h new file mode 100755 index 000000000..44c66a82d --- /dev/null +++ b/plugins/MacSignedAU/X2Buss/X2Buss.h @@ -0,0 +1,222 @@ +/* +* File: X2Buss.h +* +* Version: 1.0 +* +* Created: 10/31/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 "X2BussVersion.h" + +#if AU_DEBUG_DISPATCHER + #include "AUDebugDispatcher.h" +#endif + + +#ifndef __X2Buss_h__ +#define __X2Buss_h__ + + +#pragma mark ____X2Buss Parameters + +// parameters +static const float kDefaultValue_ParamA = 0.5; +static const float kDefaultValue_ParamB = 0.5; +static const float kDefaultValue_ParamC = 0.5; +static const float kDefaultValue_ParamD = 0.5; +static const float kDefaultValue_ParamE = 0.5; +static const float kDefaultValue_ParamF = 0.5; +static const float kDefaultValue_ParamG = 0.5; +static const float kDefaultValue_ParamH = 0.5; +static const float kDefaultValue_ParamI = 1.0; +static const float kDefaultValue_ParamJ = 0.5; + +static CFStringRef kParameterAUnit = CFSTR("eq"); +static CFStringRef kParameterAName = CFSTR("High"); +static CFStringRef kParameterBName = CFSTR("HMid"); +static CFStringRef kParameterCName = CFSTR("LMid"); +static CFStringRef kParameterDName = CFSTR("Bass"); +static CFStringRef kParameterEUnit = CFSTR("freq"); +static CFStringRef kParameterEName = CFSTR("HighF"); +static CFStringRef kParameterFName = CFSTR("HMidF"); +static CFStringRef kParameterGName = CFSTR("LMidF"); +static CFStringRef kParameterHName = CFSTR("BassF"); +static CFStringRef kParameterIUnit = CFSTR("dyn"); +static CFStringRef kParameterIName = CFSTR("Thresh"); +static CFStringRef kParameterJName = CFSTR("Fader"); + +enum { + kParam_A =0, + kParam_B =1, + kParam_C =2, + kParam_D =3, + kParam_E =4, + kParam_F =5, + kParam_G =6, + kParam_H =7, + kParam_I =8, + kParam_J =9, + //Add your parameters here... + kNumberOfParameters=10 +}; + +#pragma mark ____X2Buss +class X2Buss : public AUEffectBase +{ +public: + X2Buss(AudioUnit component); +#if AU_DEBUG_DISPATCHER + virtual ~X2Buss () { 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 kX2BussVersion; } + + 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 bessel filter, stereo + double highA[biq_total]; + double highB[biq_total]; + double highC[biq_total]; + double highLIIR; + double highRIIR; + + double midA[biq_total]; + double midB[biq_total]; + double midC[biq_total]; + double midLIIR; + double midRIIR; + + double lowA[biq_total]; + double lowB[biq_total]; + double lowC[biq_total]; + double lowLIIR; + double lowRIIR; + //SmoothEQ2 + + enum { + bez_AL, + bez_BL, + bez_CL, + bez_InL, + bez_UnInL, + bez_SampL, + bez_AR, + bez_BR, + bez_CR, + bez_InR, + bez_UnInR, + bez_SampR, + bez_cycle, + bez_total + }; //the new undersampling. bez signifies the bezier curve reconstruction + double bezCompF[bez_total]; + double bezMaxF; + double bezCompS[bez_total]; + //Dynamics2 + + 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; +}; + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + +#endif \ No newline at end of file diff --git a/plugins/MacSignedAU/X2Buss/X2Buss.r b/plugins/MacSignedAU/X2Buss/X2Buss.r new file mode 100755 index 000000000..a7248b528 --- /dev/null +++ b/plugins/MacSignedAU/X2Buss/X2Buss.r @@ -0,0 +1,61 @@ +/* +* File: X2Buss.r +* +* Version: 1.0 +* +* Created: 10/31/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 + +#include "X2BussVersion.h" + +// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description +#define kAudioUnitResID_X2Buss 1000 + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ X2Buss~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +#define RES_ID kAudioUnitResID_X2Buss +#define COMP_TYPE kAudioUnitType_Effect +#define COMP_SUBTYPE X2Buss_COMP_SUBTYPE +#define COMP_MANUF X2Buss_COMP_MANF + +#define VERSION kX2BussVersion +#define NAME "Airwindows: X2Buss" +#define DESCRIPTION "X2Buss AU" +#define ENTRY_POINT "X2BussEntry" + +#include "AUResources.r" \ No newline at end of file diff --git a/plugins/MacSignedAU/X2Buss/X2Buss.xcodeproj/christopherjohnson.mode1v3 b/plugins/MacSignedAU/X2Buss/X2Buss.xcodeproj/christopherjohnson.mode1v3 new file mode 100755 index 000000000..61450416d --- /dev/null +++ b/plugins/MacSignedAU/X2Buss/X2Buss.xcodeproj/christopherjohnson.mode1v3 @@ -0,0 +1,1359 @@ + + + + + ActivePerspectiveName + Project + AllowedModules + + + BundleLoadPath + + MaxInstances + n + Module + PBXSmartGroupTreeModule + Name + Groups and Files Outline View + + + BundleLoadPath + + MaxInstances + n + Module + PBXNavigatorGroup + Name + Editor + + + BundleLoadPath + + MaxInstances + n + Module + XCTaskListModule + Name + Task List + + + BundleLoadPath + + MaxInstances + n + Module + XCDetailModule + Name + File and Smart Group Detail Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXBuildResultsModule + Name + Detailed Build Results Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXProjectFindModule + Name + Project Batch Find Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCProjectFormatConflictsModule + Name + Project Format Conflicts List + + + BundleLoadPath + + MaxInstances + n + Module + PBXBookmarksModule + Name + Bookmarks Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXClassBrowserModule + Name + Class Browser + + + BundleLoadPath + + MaxInstances + n + Module + PBXCVSModule + Name + Source Code Control Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXDebugBreakpointsModule + Name + Debug Breakpoints Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCDockableInspector + Name + Inspector + + + BundleLoadPath + + MaxInstances + n + Module + PBXOpenQuicklyModule + Name + Open Quickly Tool + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugSessionModule + Name + Debugger + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugCLIModule + Name + Debug Console + + + BundleLoadPath + + MaxInstances + n + Module + XCSnapshotModule + Name + Snapshots Tool + + + BundlePath + /Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources + Description + DefaultDescriptionKey + DockingSystemVisible + + Extension + mode1v3 + FavBarConfig + + PBXProjectModuleGUID + 8BD3CCBC148831C90062E48C + XCBarModuleItemNames + + XCBarModuleItems + + + FirstTimeWindowDisplayed + + Identifier + com.apple.perspectives.project.mode1v3 + MajorVersion + 33 + MinorVersion + 0 + Name + Default + Notifications + + OpenEditors + + PerspectiveWidths + + -1 + -1 + + Perspectives + + + ChosenToolbarItems + + active-combo-popup + action + build + debugger-enable-breakpoints + get-info + com.apple.pbx.toolbar.searchfield + + ControllerClassBaseName + + IconName + WindowOfProjectWithEditor + Identifier + perspective.project + IsVertical + + Layout + + + BecomeActive + + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 1C37FABC05509CD000000102 + 1C37FABC05539CD112110102 + E2644B35053B69B200211256 + 1C37FABC04509CD000100104 + 1CC0EA4004350EF90044410B + 1CC0EA4004350EF90041110B + + PBXProjectModuleGUID + 1CE0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + yes + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 299 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 089C166AFE841209C02AAC07 + 08FB77ADFE841716C02AAC07 + 8BA05A7D072073D200365D66 + 8BA05A7E072073D200365D66 + 1C37FBAC04509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 6 + 5 + 4 + 1 + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {299, 445}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + + XCSharingToken + com.apple.Xcode.GFSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {316, 463}} + GroupTreeTableConfiguration + + MainColumn + 299 + + RubberWindowFrame + 18 337 788 504 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 316pt + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CE0B20306471E060097A5F4 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CE0B20406471E060097A5F4 + + SplitCount + 1 + + StatusBarVisibility + + + GeometryConfiguration + + Frame + {{0, 0}, {467, 0}} + RubberWindowFrame + 18 337 788 504 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 0pt + + + ContentConfiguration + + PBXProjectModuleGUID + 1CE0B20506471E060097A5F4 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{0, 5}, {467, 458}} + RubberWindowFrame + 18 337 788 504 0 0 1440 878 + + Module + XCDetailModule + Proportion + 458pt + + + Proportion + 467pt + + + Name + Project + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + XCModuleDock + PBXNavigatorGroup + XCDetailModule + + TableOfContents + + 8BDD47AA1A48BB8900FB2F61 + 1CE0B1FE06471DED0097A5F4 + 8BDD47AB1A48BB8900FB2F61 + 1CE0B20306471E060097A5F4 + 1CE0B20506471E060097A5F4 + + ToolbarConfigUserDefaultsMinorVersion + 2 + ToolbarConfiguration + xcode.toolbar.config.defaultV3 + + + ControllerClassBaseName + + IconName + WindowOfProject + Identifier + perspective.morph + IsVertical + 0 + Layout + + + BecomeActive + 1 + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 1C08E77C0454961000C914BD + 1C37FABC05509CD000000102 + 1C37FABC05539CD112110102 + E2644B35053B69B200211256 + 1C37FABC04509CD000100104 + 1CC0EA4004350EF90044410B + 1CC0EA4004350EF90041110B + + PBXProjectModuleGUID + 11E0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + yes + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 186 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 29B97314FDCFA39411CA2CEA + 1C37FABC05509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {186, 337}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + 1 + XCSharingToken + com.apple.Xcode.GFSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {203, 355}} + GroupTreeTableConfiguration + + MainColumn + 186 + + RubberWindowFrame + 373 269 690 397 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 100% + + + Name + Morph + PreferredWidth + 300 + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + + TableOfContents + + 11E0B1FE06471DED0097A5F4 + + ToolbarConfiguration + xcode.toolbar.config.default.shortV3 + + + PerspectivesBarVisible + + ShelfIsVisible + + SourceDescription + file at '/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecificationMode1.xcperspec' + StatusbarIsVisible + + TimeStamp + 0.0 + ToolbarConfigUserDefaultsMinorVersion + 2 + ToolbarDisplayMode + 1 + ToolbarIsVisible + + ToolbarSizeMode + 2 + Type + Perspectives + UpdateMessage + The Default Workspace in this version of Xcode now includes support to hide and show the detail view (what has been referred to as the "Metro-Morph" feature). You must discard your current Default Workspace settings and update to the latest Default Workspace in order to gain this feature. Do you wish to update to the latest Workspace defaults for project '%@'? + WindowJustification + 5 + WindowOrderList + + 8BD3CCBD148831C90062E48C + /Developer/Library/Xcode/Project Templates/System Plug-in/Audio Unit Effect/Audio Unit Effect with Cocoa View/StarterAU.xcodeproj + + WindowString + 18 337 788 504 0 0 1440 878 + WindowToolsV3 + + + FirstTimeWindowDisplayed + + Identifier + windowTool.build + IsVertical + + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528F0623707200166675 + PBXProjectModuleLabel + + StatusBarVisibility + + + GeometryConfiguration + + Frame + {{0, 0}, {500, 218}} + RubberWindowFrame + 668 222 500 500 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 218pt + + + ContentConfiguration + + PBXProjectModuleGUID + XCMainBuildResultsModuleGUID + PBXProjectModuleLabel + Build Results + XCBuildResultsTrigger_Collapse + 1021 + XCBuildResultsTrigger_Open + 1011 + + GeometryConfiguration + + Frame + {{0, 223}, {500, 236}} + RubberWindowFrame + 668 222 500 500 0 0 1440 878 + + Module + PBXBuildResultsModule + Proportion + 236pt + + + Proportion + 459pt + + + Name + Build Results + ServiceClasses + + PBXBuildResultsModule + + StatusbarIsVisible + + TableOfContents + + 8BD3CCBD148831C90062E48C + 8BDD47AC1A48BB8900FB2F61 + 1CD0528F0623707200166675 + XCMainBuildResultsModuleGUID + + ToolbarConfiguration + xcode.toolbar.config.buildV3 + WindowContentMinSize + 486 300 + WindowString + 668 222 500 500 0 0 1440 878 + WindowToolGUID + 8BD3CCBD148831C90062E48C + WindowToolIsVisible + + + + Identifier + windowTool.debugger + Layout + + + Dock + + + ContentConfiguration + + Debugger + + HorizontalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {317, 164}} + {{317, 0}, {377, 164}} + + + VerticalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {694, 164}} + {{0, 164}, {694, 216}} + + + + LauncherConfigVersion + 8 + PBXProjectModuleGUID + 1C162984064C10D400B95A72 + PBXProjectModuleLabel + Debug - GLUTExamples (Underwater) + + GeometryConfiguration + + DebugConsoleDrawerSize + {100, 120} + DebugConsoleVisible + None + DebugConsoleWindowFrame + {{200, 200}, {500, 300}} + DebugSTDIOWindowFrame + {{200, 200}, {500, 300}} + Frame + {{0, 0}, {694, 380}} + RubberWindowFrame + 321 238 694 422 0 0 1440 878 + + Module + PBXDebugSessionModule + Proportion + 100% + + + Proportion + 100% + + + Name + Debugger + ServiceClasses + + PBXDebugSessionModule + + StatusbarIsVisible + 1 + TableOfContents + + 1CD10A99069EF8BA00B06720 + 1C0AD2AB069F1E9B00FABCE6 + 1C162984064C10D400B95A72 + 1C0AD2AC069F1E9B00FABCE6 + + ToolbarConfiguration + xcode.toolbar.config.debugV3 + WindowString + 321 238 694 422 0 0 1440 878 + WindowToolGUID + 1CD10A99069EF8BA00B06720 + WindowToolIsVisible + 0 + + + Identifier + windowTool.find + Layout + + + Dock + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CDD528C0622207200134675 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CD0528D0623707200166675 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {781, 167}} + RubberWindowFrame + 62 385 781 470 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 781pt + + + Proportion + 50% + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528E0623707200166675 + PBXProjectModuleLabel + Project Find + + GeometryConfiguration + + Frame + {{8, 0}, {773, 254}} + RubberWindowFrame + 62 385 781 470 0 0 1440 878 + + Module + PBXProjectFindModule + Proportion + 50% + + + Proportion + 428pt + + + Name + Project Find + ServiceClasses + + PBXProjectFindModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C530D57069F1CE1000CFCEE + 1C530D58069F1CE1000CFCEE + 1C530D59069F1CE1000CFCEE + 1CDD528C0622207200134675 + 1C530D5A069F1CE1000CFCEE + 1CE0B1FE06471DED0097A5F4 + 1CD0528E0623707200166675 + + WindowString + 62 385 781 470 0 0 1440 878 + WindowToolGUID + 1C530D57069F1CE1000CFCEE + WindowToolIsVisible + 0 + + + Identifier + MENUSEPARATOR + + + Identifier + windowTool.debuggerConsole + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAAC065D492600B07095 + PBXProjectModuleLabel + Debugger Console + + GeometryConfiguration + + Frame + {{0, 0}, {650, 250}} + RubberWindowFrame + 516 632 650 250 0 0 1680 1027 + + Module + PBXDebugCLIModule + Proportion + 209pt + + + Proportion + 209pt + + + Name + Debugger Console + ServiceClasses + + PBXDebugCLIModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C78EAAD065D492600B07095 + 1C78EAAE065D492600B07095 + 1C78EAAC065D492600B07095 + + ToolbarConfiguration + xcode.toolbar.config.consoleV3 + WindowString + 650 41 650 250 0 0 1280 1002 + WindowToolGUID + 1C78EAAD065D492600B07095 + WindowToolIsVisible + 0 + + + Identifier + windowTool.snapshots + Layout + + + Dock + + + Module + XCSnapshotModule + Proportion + 100% + + + Proportion + 100% + + + Name + Snapshots + ServiceClasses + + XCSnapshotModule + + StatusbarIsVisible + Yes + ToolbarConfiguration + xcode.toolbar.config.snapshots + WindowString + 315 824 300 550 0 0 1440 878 + WindowToolIsVisible + Yes + + + Identifier + windowTool.scm + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAB2065D492600B07095 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1C78EAB3065D492600B07095 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {452, 0}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + + Module + PBXNavigatorGroup + Proportion + 0pt + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD052920623707200166675 + PBXProjectModuleLabel + SCM + + GeometryConfiguration + + ConsoleFrame + {{0, 259}, {452, 0}} + Frame + {{0, 7}, {452, 259}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + TableConfiguration + + Status + 30 + FileName + 199 + Path + 197.0950012207031 + + TableFrame + {{0, 0}, {452, 250}} + + Module + PBXCVSModule + Proportion + 262pt + + + Proportion + 266pt + + + Name + SCM + ServiceClasses + + PBXCVSModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C78EAB4065D492600B07095 + 1C78EAB5065D492600B07095 + 1C78EAB2065D492600B07095 + 1CD052920623707200166675 + + ToolbarConfiguration + xcode.toolbar.config.scm + WindowString + 743 379 452 308 0 0 1280 1002 + + + Identifier + windowTool.breakpoints + IsVertical + 0 + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C77FABC04509CD000000102 + + PBXProjectModuleGUID + 1CE0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + no + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 168 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 1C77FABC04509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {168, 350}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + 0 + + GeometryConfiguration + + Frame + {{0, 0}, {185, 368}} + GroupTreeTableConfiguration + + MainColumn + 168 + + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 185pt + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA1AED706398EBD00589147 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{190, 0}, {554, 368}} + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + XCDetailModule + Proportion + 554pt + + + Proportion + 368pt + + + MajorVersion + 3 + MinorVersion + 0 + Name + Breakpoints + ServiceClasses + + PBXSmartGroupTreeModule + XCDetailModule + + StatusbarIsVisible + 1 + TableOfContents + + 1CDDB66807F98D9800BB5817 + 1CDDB66907F98D9800BB5817 + 1CE0B1FE06471DED0097A5F4 + 1CA1AED706398EBD00589147 + + ToolbarConfiguration + xcode.toolbar.config.breakpointsV3 + WindowString + 315 424 744 409 0 0 1440 878 + WindowToolGUID + 1CDDB66807F98D9800BB5817 + WindowToolIsVisible + 1 + + + Identifier + windowTool.debugAnimator + Layout + + + Dock + + + Module + PBXNavigatorGroup + Proportion + 100% + + + Proportion + 100% + + + Name + Debug Visualizer + ServiceClasses + + PBXNavigatorGroup + + StatusbarIsVisible + 1 + ToolbarConfiguration + xcode.toolbar.config.debugAnimatorV3 + WindowString + 100 100 700 500 0 0 1280 1002 + + + Identifier + windowTool.bookmarks + Layout + + + Dock + + + Module + PBXBookmarksModule + Proportion + 100% + + + Proportion + 100% + + + Name + Bookmarks + ServiceClasses + + PBXBookmarksModule + + StatusbarIsVisible + 0 + WindowString + 538 42 401 187 0 0 1280 1002 + + + Identifier + windowTool.projectFormatConflicts + Layout + + + Dock + + + Module + XCProjectFormatConflictsModule + Proportion + 100% + + + Proportion + 100% + + + Name + Project Format Conflicts + ServiceClasses + + XCProjectFormatConflictsModule + + StatusbarIsVisible + 0 + WindowContentMinSize + 450 300 + WindowString + 50 850 472 307 0 0 1440 877 + + + Identifier + windowTool.classBrowser + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + OptionsSetName + Hierarchy, all classes + PBXProjectModuleGUID + 1CA6456E063B45B4001379D8 + PBXProjectModuleLabel + Class Browser - NSObject + + GeometryConfiguration + + ClassesFrame + {{0, 0}, {374, 96}} + ClassesTreeTableConfiguration + + PBXClassNameColumnIdentifier + 208 + PBXClassBookColumnIdentifier + 22 + + Frame + {{0, 0}, {630, 331}} + MembersFrame + {{0, 105}, {374, 395}} + MembersTreeTableConfiguration + + PBXMemberTypeIconColumnIdentifier + 22 + PBXMemberNameColumnIdentifier + 216 + PBXMemberTypeColumnIdentifier + 97 + PBXMemberBookColumnIdentifier + 22 + + PBXModuleWindowStatusBarHidden2 + 1 + RubberWindowFrame + 385 179 630 352 0 0 1440 878 + + Module + PBXClassBrowserModule + Proportion + 332pt + + + Proportion + 332pt + + + Name + Class Browser + ServiceClasses + + PBXClassBrowserModule + + StatusbarIsVisible + 0 + TableOfContents + + 1C0AD2AF069F1E9B00FABCE6 + 1C0AD2B0069F1E9B00FABCE6 + 1CA6456E063B45B4001379D8 + + ToolbarConfiguration + xcode.toolbar.config.classbrowser + WindowString + 385 179 630 352 0 0 1440 878 + WindowToolGUID + 1C0AD2AF069F1E9B00FABCE6 + WindowToolIsVisible + 0 + + + Identifier + windowTool.refactoring + IncludeInToolsMenu + 0 + Layout + + + Dock + + + BecomeActive + 1 + GeometryConfiguration + + Frame + {0, 0}, {500, 335} + RubberWindowFrame + {0, 0}, {500, 335} + + Module + XCRefactoringModule + Proportion + 100% + + + Proportion + 100% + + + Name + Refactoring + ServiceClasses + + XCRefactoringModule + + WindowString + 200 200 500 356 0 0 1920 1200 + + + + diff --git a/plugins/MacSignedAU/X2Buss/X2Buss.xcodeproj/christopherjohnson.pbxuser b/plugins/MacSignedAU/X2Buss/X2Buss.xcodeproj/christopherjohnson.pbxuser new file mode 100755 index 000000000..1d4e53b68 --- /dev/null +++ b/plugins/MacSignedAU/X2Buss/X2Buss.xcodeproj/christopherjohnson.pbxuser @@ -0,0 +1,131 @@ +// !$*UTF8*$! +{ + 089C1669FE841209C02AAC07 /* Project object */ = { + activeBuildConfigurationName = Release; + activeTarget = 8D01CCC60486CAD60068D4B7 /* X2Buss */; + 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 = 783619103; + PBXWorkspaceStateSaveDate = 783619103; + }; + perUserProjectItems = { + 8B5C9E262EB515ED008B9860 /* PBXTextBookmark */ = 8B5C9E262EB515ED008B9860 /* PBXTextBookmark */; + 8B5C9E3E2EB516CF008B9860 /* PBXTextBookmark */ = 8B5C9E3E2EB516CF008B9860 /* PBXTextBookmark */; + }; + sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */; + userBuildSettings = { + }; + }; + 8B5C9E262EB515ED008B9860 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 8BC6025B073B072D006C4272 /* X2Buss.h */; + name = "X2Buss.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 62; + vrLoc = 0; + }; + 8B5C9E3E2EB516CF008B9860 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 8BC6025B073B072D006C4272 /* X2Buss.h */; + name = "X2Buss.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 62; + vrLoc = 0; + }; + 8BA05A660720730100365D66 /* X2Buss.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {903, 13608}}"; + sepNavSelRange = "{9006, 0}"; + sepNavVisRange = "{7185, 1986}"; + sepNavWindowFrame = "{{506, 48}, {912, 826}}"; + }; + }; + 8BA05A690720730100365D66 /* X2BussVersion.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1056, 1062}}"; + sepNavSelRange = "{2887, 0}"; + sepNavVisRange = "{965, 1985}"; + sepNavWindowFrame = "{{15, 47}, {912, 826}}"; + }; + }; + 8BA05A7F072073D200365D66 /* AUBase.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {516, 23430}}"; + sepNavSelRange = "{0, 0}"; + sepNavVisRange = "{0, 1336}"; + }; + }; + 8BC6025B073B072D006C4272 /* X2Buss.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {948, 3402}}"; + sepNavSelRange = "{0, 0}"; + sepNavVisRange = "{0, 62}"; + sepNavWindowFrame = "{{528, 52}, {912, 826}}"; + }; + }; + 8BD3CCB8148830B20062E48C /* Source Control */ = { + isa = PBXSourceControlManager; + fallbackIsa = XCSourceControlManager; + isSCMEnabled = 0; + scmConfiguration = { + repositoryNamesForRoots = { + "" = ""; + }; + }; + }; + 8BD3CCB9148830B20062E48C /* Code sense */ = { + isa = PBXCodeSenseManager; + indexTemplatePath = ""; + }; + 8D01CCC60486CAD60068D4B7 /* X2Buss */ = { + activeExec = 0; + }; +} diff --git a/plugins/MacSignedAU/X2Buss/X2Buss.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacSignedAU/X2Buss/X2Buss.xcodeproj/christopherjohnson.perspectivev3 new file mode 100755 index 000000000..f8765f23b --- /dev/null +++ b/plugins/MacSignedAU/X2Buss/X2Buss.xcodeproj/christopherjohnson.perspectivev3 @@ -0,0 +1,1481 @@ + + + + + ActivePerspectiveName + Project + AllowedModules + + + BundleLoadPath + + MaxInstances + n + Module + PBXSmartGroupTreeModule + Name + Groups and Files Outline View + + + BundleLoadPath + + MaxInstances + n + Module + PBXNavigatorGroup + Name + Editor + + + BundleLoadPath + + MaxInstances + n + Module + XCTaskListModule + Name + Task List + + + BundleLoadPath + + MaxInstances + n + Module + XCDetailModule + Name + File and Smart Group Detail Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXBuildResultsModule + Name + Detailed Build Results Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXProjectFindModule + Name + Project Batch Find Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCProjectFormatConflictsModule + Name + Project Format Conflicts List + + + BundleLoadPath + + MaxInstances + n + Module + PBXBookmarksModule + Name + Bookmarks Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXClassBrowserModule + Name + Class Browser + + + BundleLoadPath + + MaxInstances + n + Module + PBXCVSModule + Name + Source Code Control Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXDebugBreakpointsModule + Name + Debug Breakpoints Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCDockableInspector + Name + Inspector + + + BundleLoadPath + + MaxInstances + n + Module + PBXOpenQuicklyModule + Name + Open Quickly Tool + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugSessionModule + Name + Debugger + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugCLIModule + Name + Debug Console + + + BundleLoadPath + + MaxInstances + n + Module + XCSnapshotModule + Name + Snapshots Tool + + + BundlePath + /Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources + Description + AIODescriptionKey + DockingSystemVisible + + Extension + perspectivev3 + FavBarConfig + + PBXProjectModuleGUID + 8B5C9E422EB516CF008B9860 + XCBarModuleItemNames + + XCBarModuleItems + + + FirstTimeWindowDisplayed + + Identifier + com.apple.perspectives.project.defaultV3 + MajorVersion + 34 + MinorVersion + 0 + Name + All-In-One + Notifications + + + XCObserverAutoDisconnectKey + + XCObserverDefintionKey + + PBXStatusErrorsKey + 0 + + XCObserverFactoryKey + XCPerspectivesSpecificationIdentifier + XCObserverGUIDKey + XCObserverProjectIdentifier + XCObserverNotificationKey + PBXStatusBuildStateMessageNotification + XCObserverTargetKey + XCMainBuildResultsModuleGUID + XCObserverTriggerKey + awakenModuleWithObserver: + XCObserverValidationKey + + PBXStatusErrorsKey + 2 + + + + OpenEditors + + PerspectiveWidths + + 810 + 810 + + Perspectives + + + ChosenToolbarItems + + XCToolbarPerspectiveControl + NSToolbarSeparatorItem + active-combo-popup + action + NSToolbarFlexibleSpaceItem + debugger-enable-breakpoints + build-and-go + com.apple.ide.PBXToolbarStopButton + get-info + NSToolbarFlexibleSpaceItem + com.apple.pbx.toolbar.searchfield + + ControllerClassBaseName + + IconName + WindowOfProject + Identifier + perspective.project + IsVertical + + Layout + + + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 1C37FABC05509CD000000102 + 1C37FABC05539CD112110102 + E2644B35053B69B200211256 + 1C37FABC04509CD000100104 + 1CC0EA4004350EF90044410B + 1CC0EA4004350EF90041110B + 1C77FABC04509CD000000102 + + PBXProjectModuleGUID + 1CA23ED40692098700951B8B + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + yes + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 185 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 089C166AFE841209C02AAC07 + 08FB77ADFE841716C02AAC07 + 8BA05A56072072A900365D66 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 4 + 2 + 1 + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {185, 428}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + + + GeometryConfiguration + + Frame + {{0, 0}, {202, 446}} + GroupTreeTableConfiguration + + MainColumn + 185 + + RubberWindowFrame + 606 279 810 487 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 202pt + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 8B5C9E232EB515ED008B9860 + PBXProjectModuleLabel + X2Buss.h + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 8B5C9E242EB515ED008B9860 + PBXProjectModuleLabel + X2Buss.h + _historyCapacity + 0 + bookmark + 8B5C9E3E2EB516CF008B9860 + history + + 8B5C9E262EB515ED008B9860 + + + SplitCount + 1 + + StatusBarVisibility + + XCSharingToken + com.apple.Xcode.CommonNavigatorGroupSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {603, 132}} + RubberWindowFrame + 606 279 810 487 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 132pt + + + Proportion + 309pt + Tabs + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA23EDF0692099D00951B8B + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{10, 27}, {603, 282}} + + Module + XCDetailModule + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA23EE00692099D00951B8B + PBXProjectModuleLabel + Project Find + + GeometryConfiguration + + Frame + {{10, 31}, {603, 297}} + + Module + PBXProjectFindModule + + + ContentConfiguration + + PBXCVSModuleFilterTypeKey + 1032 + PBXProjectModuleGUID + 1CA23EE10692099D00951B8B + PBXProjectModuleLabel + SCM Results + + GeometryConfiguration + + Frame + {{10, 31}, {603, 297}} + + Module + PBXCVSModule + + + ContentConfiguration + + PBXProjectModuleGUID + XCMainBuildResultsModuleGUID + PBXProjectModuleLabel + Build Results + XCBuildResultsTrigger_Collapse + 1023 + XCBuildResultsTrigger_Open + 1012 + + GeometryConfiguration + + Frame + {{10, 27}, {603, 282}} + RubberWindowFrame + 606 279 810 487 0 0 1440 878 + + Module + PBXBuildResultsModule + + + + + Proportion + 603pt + + + Name + Project + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + XCModuleDock + PBXNavigatorGroup + XCDockableTabModule + XCDetailModule + PBXProjectFindModule + PBXCVSModule + PBXBuildResultsModule + + TableOfContents + + 8B5C9E3F2EB516CF008B9860 + 1CA23ED40692098700951B8B + 8B5C9E402EB516CF008B9860 + 8B5C9E232EB515ED008B9860 + 8B5C9E412EB516CF008B9860 + 1CA23EDF0692099D00951B8B + 1CA23EE00692099D00951B8B + 1CA23EE10692099D00951B8B + XCMainBuildResultsModuleGUID + + ToolbarConfigUserDefaultsMinorVersion + 2 + ToolbarConfiguration + xcode.toolbar.config.defaultV3 + + + ChosenToolbarItems + + XCToolbarPerspectiveControl + NSToolbarSeparatorItem + active-combo-popup + NSToolbarFlexibleSpaceItem + debugger-enable-breakpoints + build-and-go + com.apple.ide.PBXToolbarStopButton + debugger-restart-executable + debugger-pause + debugger-step-over + debugger-step-into + debugger-step-out + NSToolbarFlexibleSpaceItem + servicesModulebreakpoints + debugger-show-console-window + + ControllerClassBaseName + PBXDebugSessionModule + IconName + DebugTabIcon + Identifier + perspective.debug + IsVertical + 1 + Layout + + + ContentConfiguration + + PBXProjectModuleGUID + 1CCC7628064C1048000F2A68 + PBXProjectModuleLabel + Debugger Console + + GeometryConfiguration + + Frame + {{0, 0}, {810, 0}} + + Module + PBXDebugCLIModule + Proportion + 0% + + + ContentConfiguration + + Debugger + + HorizontalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {395, 213}} + {{395, 0}, {415, 213}} + + + VerticalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {810, 213}} + {{0, 213}, {810, 225}} + + + + LauncherConfigVersion + 8 + PBXProjectModuleGUID + 1CCC7629064C1048000F2A68 + PBXProjectModuleLabel + Debug + + GeometryConfiguration + + DebugConsoleDrawerSize + {100, 120} + DebugConsoleVisible + None + DebugConsoleWindowFrame + {{200, 200}, {500, 300}} + DebugSTDIOWindowFrame + {{200, 200}, {500, 300}} + Frame + {{0, 7}, {810, 438}} + + Module + PBXDebugSessionModule + Proportion + 443pt + + + Name + Debug + ServiceClasses + + XCModuleDock + XCModuleDock + PBXDebugCLIModule + PBXDebugSessionModule + XCConsole + + TableOfContents + + 1CC8E6A5069209BD00BB180A + 1CC8E6A6069209BD00BB180A + 1CCC7628064C1048000F2A68 + 1CCC7629064C1048000F2A68 + 1CC8E6A7069209BD00BB180A + + ToolbarConfiguration + xcode.toolbar.config.debugV3 + + + PerspectivesBarVisible + + ShelfIsVisible + + SourceDescription + file at '/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecification.xcperspec' + StatusbarIsVisible + + TimeStamp + 783619791.55329394 + ToolbarConfigUserDefaultsMinorVersion + 2 + ToolbarDisplayMode + 1 + ToolbarIsVisible + + ToolbarSizeMode + 2 + Type + Perspectives + UpdateMessage + + WindowJustification + 5 + WindowOrderList + + /Users/christopherjohnson/Desktop/X2Buss/X2Buss.xcodeproj + + WindowString + 606 279 810 487 0 0 1440 878 + WindowToolsV3 + + + Identifier + windowTool.debugger + Layout + + + Dock + + + ContentConfiguration + + Debugger + + HorizontalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {317, 164}} + {{317, 0}, {377, 164}} + + + VerticalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {694, 164}} + {{0, 164}, {694, 216}} + + + + LauncherConfigVersion + 8 + PBXProjectModuleGUID + 1C162984064C10D400B95A72 + PBXProjectModuleLabel + Debug - GLUTExamples (Underwater) + + GeometryConfiguration + + DebugConsoleDrawerSize + {100, 120} + DebugConsoleVisible + None + DebugConsoleWindowFrame + {{200, 200}, {500, 300}} + DebugSTDIOWindowFrame + {{200, 200}, {500, 300}} + Frame + {{0, 0}, {694, 380}} + RubberWindowFrame + 321 238 694 422 0 0 1440 878 + + Module + PBXDebugSessionModule + Proportion + 100% + + + Proportion + 100% + + + Name + Debugger + ServiceClasses + + PBXDebugSessionModule + + StatusbarIsVisible + 1 + TableOfContents + + 1CD10A99069EF8BA00B06720 + 1C0AD2AB069F1E9B00FABCE6 + 1C162984064C10D400B95A72 + 1C0AD2AC069F1E9B00FABCE6 + + ToolbarConfiguration + xcode.toolbar.config.debugV3 + WindowString + 321 238 694 422 0 0 1440 878 + WindowToolGUID + 1CD10A99069EF8BA00B06720 + WindowToolIsVisible + 0 + + + Identifier + windowTool.build + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528F0623707200166675 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CD052900623707200166675 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {500, 215}} + RubberWindowFrame + 192 257 500 500 0 0 1280 1002 + + Module + PBXNavigatorGroup + Proportion + 218pt + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + XCMainBuildResultsModuleGUID + PBXProjectModuleLabel + Build Results + + GeometryConfiguration + + Frame + {{0, 222}, {500, 236}} + RubberWindowFrame + 192 257 500 500 0 0 1280 1002 + + Module + PBXBuildResultsModule + Proportion + 236pt + + + Proportion + 458pt + + + Name + Build Results + ServiceClasses + + PBXBuildResultsModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C78EAA5065D492600B07095 + 1C78EAA6065D492600B07095 + 1CD0528F0623707200166675 + XCMainBuildResultsModuleGUID + + ToolbarConfiguration + xcode.toolbar.config.buildV3 + WindowString + 192 257 500 500 0 0 1280 1002 + + + Identifier + windowTool.find + Layout + + + Dock + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CDD528C0622207200134675 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CD0528D0623707200166675 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {781, 167}} + RubberWindowFrame + 62 385 781 470 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 781pt + + + Proportion + 50% + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528E0623707200166675 + PBXProjectModuleLabel + Project Find + + GeometryConfiguration + + Frame + {{8, 0}, {773, 254}} + RubberWindowFrame + 62 385 781 470 0 0 1440 878 + + Module + PBXProjectFindModule + Proportion + 50% + + + Proportion + 428pt + + + Name + Project Find + ServiceClasses + + PBXProjectFindModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C530D57069F1CE1000CFCEE + 1C530D58069F1CE1000CFCEE + 1C530D59069F1CE1000CFCEE + 1CDD528C0622207200134675 + 1C530D5A069F1CE1000CFCEE + 1CE0B1FE06471DED0097A5F4 + 1CD0528E0623707200166675 + + WindowString + 62 385 781 470 0 0 1440 878 + WindowToolGUID + 1C530D57069F1CE1000CFCEE + WindowToolIsVisible + 0 + + + Identifier + windowTool.snapshots + Layout + + + Dock + + + Module + XCSnapshotModule + Proportion + 100% + + + Proportion + 100% + + + Name + Snapshots + ServiceClasses + + XCSnapshotModule + + StatusbarIsVisible + Yes + ToolbarConfiguration + xcode.toolbar.config.snapshots + WindowString + 315 824 300 550 0 0 1440 878 + WindowToolIsVisible + Yes + + + Identifier + windowTool.debuggerConsole + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAAC065D492600B07095 + PBXProjectModuleLabel + Debugger Console + + GeometryConfiguration + + Frame + {{0, 0}, {700, 358}} + RubberWindowFrame + 149 87 700 400 0 0 1440 878 + + Module + PBXDebugCLIModule + Proportion + 358pt + + + Proportion + 358pt + + + Name + Debugger Console + ServiceClasses + + PBXDebugCLIModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C530D5B069F1CE1000CFCEE + 1C530D5C069F1CE1000CFCEE + 1C78EAAC065D492600B07095 + + ToolbarConfiguration + xcode.toolbar.config.consoleV3 + WindowString + 149 87 440 400 0 0 1440 878 + WindowToolGUID + 1C530D5B069F1CE1000CFCEE + WindowToolIsVisible + 0 + + + Identifier + windowTool.scm + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAB2065D492600B07095 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1C78EAB3065D492600B07095 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {452, 0}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + + Module + PBXNavigatorGroup + Proportion + 0pt + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD052920623707200166675 + PBXProjectModuleLabel + SCM + + GeometryConfiguration + + ConsoleFrame + {{0, 259}, {452, 0}} + Frame + {{0, 7}, {452, 259}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + TableConfiguration + + Status + 30 + FileName + 199 + Path + 197.09500122070312 + + TableFrame + {{0, 0}, {452, 250}} + + Module + PBXCVSModule + Proportion + 262pt + + + Proportion + 266pt + + + Name + SCM + ServiceClasses + + PBXCVSModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C78EAB4065D492600B07095 + 1C78EAB5065D492600B07095 + 1C78EAB2065D492600B07095 + 1CD052920623707200166675 + + ToolbarConfiguration + xcode.toolbar.config.scmV3 + WindowString + 743 379 452 308 0 0 1280 1002 + + + Identifier + windowTool.breakpoints + IsVertical + 0 + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C77FABC04509CD000000102 + + PBXProjectModuleGUID + 1CE0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + no + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 168 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 1C77FABC04509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {168, 350}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + 0 + + GeometryConfiguration + + Frame + {{0, 0}, {185, 368}} + GroupTreeTableConfiguration + + MainColumn + 168 + + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 185pt + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA1AED706398EBD00589147 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{190, 0}, {554, 368}} + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + XCDetailModule + Proportion + 554pt + + + Proportion + 368pt + + + MajorVersion + 3 + MinorVersion + 0 + Name + Breakpoints + ServiceClasses + + PBXSmartGroupTreeModule + XCDetailModule + + StatusbarIsVisible + 1 + TableOfContents + + 1CDDB66807F98D9800BB5817 + 1CDDB66907F98D9800BB5817 + 1CE0B1FE06471DED0097A5F4 + 1CA1AED706398EBD00589147 + + ToolbarConfiguration + xcode.toolbar.config.breakpointsV3 + WindowString + 315 424 744 409 0 0 1440 878 + WindowToolGUID + 1CDDB66807F98D9800BB5817 + WindowToolIsVisible + 1 + + + Identifier + windowTool.debugAnimator + Layout + + + Dock + + + Module + PBXNavigatorGroup + Proportion + 100% + + + Proportion + 100% + + + Name + Debug Visualizer + ServiceClasses + + PBXNavigatorGroup + + StatusbarIsVisible + 1 + ToolbarConfiguration + xcode.toolbar.config.debugAnimatorV3 + WindowString + 100 100 700 500 0 0 1280 1002 + + + Identifier + windowTool.bookmarks + Layout + + + Dock + + + Module + PBXBookmarksModule + Proportion + 166pt + + + Proportion + 166pt + + + Name + Bookmarks + ServiceClasses + + PBXBookmarksModule + + StatusbarIsVisible + 0 + WindowString + 538 42 401 187 0 0 1280 1002 + + + Identifier + windowTool.projectFormatConflicts + Layout + + + Dock + + + Module + XCProjectFormatConflictsModule + Proportion + 100% + + + Proportion + 100% + + + Name + Project Format Conflicts + ServiceClasses + + XCProjectFormatConflictsModule + + StatusbarIsVisible + 0 + WindowContentMinSize + 450 300 + WindowString + 50 850 472 307 0 0 1440 877 + + + Identifier + windowTool.classBrowser + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + OptionsSetName + Hierarchy, all classes + PBXProjectModuleGUID + 1CA6456E063B45B4001379D8 + PBXProjectModuleLabel + Class Browser - NSObject + + GeometryConfiguration + + ClassesFrame + {{0, 0}, {369, 96}} + ClassesTreeTableConfiguration + + PBXClassNameColumnIdentifier + 208 + PBXClassBookColumnIdentifier + 22 + + Frame + {{0, 0}, {616, 353}} + MembersFrame + {{0, 105}, {369, 395}} + MembersTreeTableConfiguration + + PBXMemberTypeIconColumnIdentifier + 22 + PBXMemberNameColumnIdentifier + 216 + PBXMemberTypeColumnIdentifier + 94 + PBXMemberBookColumnIdentifier + 22 + + PBXModuleWindowStatusBarHidden2 + 1 + RubberWindowFrame + 597 125 616 374 0 0 1280 1002 + + Module + PBXClassBrowserModule + Proportion + 354pt + + + Proportion + 354pt + + + Name + Class Browser + ServiceClasses + + PBXClassBrowserModule + + StatusbarIsVisible + 0 + TableOfContents + + 1C78EABA065D492600B07095 + 1C78EABB065D492600B07095 + 1CA6456E063B45B4001379D8 + + ToolbarConfiguration + xcode.toolbar.config.classbrowser + WindowString + 597 125 616 374 0 0 1280 1002 + + + Identifier + windowTool.refactoring + IncludeInToolsMenu + 0 + Layout + + + Dock + + + BecomeActive + 1 + GeometryConfiguration + + Frame + {0, 0}, {500, 335} + RubberWindowFrame + {0, 0}, {500, 335} + + Module + XCRefactoringModule + Proportion + 100% + + + Proportion + 100% + + + Name + Refactoring + ServiceClasses + + XCRefactoringModule + + WindowString + 200 200 500 356 0 0 1920 1200 + + + + diff --git a/plugins/MacSignedAU/X2Buss/X2Buss.xcodeproj/project.pbxproj b/plugins/MacSignedAU/X2Buss/X2Buss.xcodeproj/project.pbxproj new file mode 100755 index 000000000..598f3708b --- /dev/null +++ b/plugins/MacSignedAU/X2Buss/X2Buss.xcodeproj/project.pbxproj @@ -0,0 +1,965 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 8B7A4A592EB56A3300B07840 /* CAExtAudioFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49D12EB56A3300B07840 /* CAExtAudioFile.h */; }; + 8B7A4A5A2EB56A3300B07840 /* CACFMachPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49D22EB56A3300B07840 /* CACFMachPort.h */; }; + 8B7A4A5B2EB56A3300B07840 /* CABool.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49D32EB56A3300B07840 /* CABool.h */; }; + 8B7A4A5C2EB56A3300B07840 /* CAComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A49D42EB56A3300B07840 /* CAComponent.cpp */; }; + 8B7A4A5D2EB56A3300B07840 /* CADebugger.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49D52EB56A3300B07840 /* CADebugger.h */; }; + 8B7A4A5E2EB56A3300B07840 /* CACFNumber.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A49D62EB56A3300B07840 /* CACFNumber.cpp */; }; + 8B7A4A5F2EB56A3300B07840 /* CAGuard.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49D72EB56A3300B07840 /* CAGuard.h */; }; + 8B7A4A602EB56A3300B07840 /* CAAtomic.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49D82EB56A3300B07840 /* CAAtomic.h */; }; + 8B7A4A612EB56A3300B07840 /* CAStreamBasicDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49D92EB56A3300B07840 /* CAStreamBasicDescription.h */; }; + 8B7A4A622EB56A3300B07840 /* CACFObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49DA2EB56A3300B07840 /* CACFObject.h */; }; + 8B7A4A632EB56A3300B07840 /* CAStreamRangedDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49DB2EB56A3300B07840 /* CAStreamRangedDescription.h */; }; + 8B7A4A642EB56A3300B07840 /* CATokenMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49DC2EB56A3300B07840 /* CATokenMap.h */; }; + 8B7A4A652EB56A3300B07840 /* CAComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49DD2EB56A3300B07840 /* CAComponent.h */; }; + 8B7A4A662EB56A3300B07840 /* CAAudioBufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49DE2EB56A3300B07840 /* CAAudioBufferList.h */; }; + 8B7A4A672EB56A3300B07840 /* CAAudioUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49DF2EB56A3300B07840 /* CAAudioUnit.h */; }; + 8B7A4A682EB56A3300B07840 /* CAAUParameter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49E02EB56A3300B07840 /* CAAUParameter.h */; }; + 8B7A4A692EB56A3300B07840 /* CAException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49E12EB56A3300B07840 /* CAException.h */; }; + 8B7A4A6A2EB56A3300B07840 /* CAAUProcessor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A49E22EB56A3300B07840 /* CAAUProcessor.cpp */; }; + 8B7A4A6B2EB56A3300B07840 /* CAAUProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49E32EB56A3300B07840 /* CAAUProcessor.h */; }; + 8B7A4A6C2EB56A3300B07840 /* CAProcess.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49E42EB56A3300B07840 /* CAProcess.h */; }; + 8B7A4A6D2EB56A3300B07840 /* CACFDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49E52EB56A3300B07840 /* CACFDictionary.h */; }; + 8B7A4A6E2EB56A3300B07840 /* CAPThread.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49E62EB56A3300B07840 /* CAPThread.h */; }; + 8B7A4A6F2EB56A3300B07840 /* CAAUParameter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A49E72EB56A3300B07840 /* CAAUParameter.cpp */; }; + 8B7A4A702EB56A3300B07840 /* CAAudioTimeStamp.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49E82EB56A3300B07840 /* CAAudioTimeStamp.h */; }; + 8B7A4A712EB56A3300B07840 /* CAFilePathUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A49E92EB56A3300B07840 /* CAFilePathUtils.cpp */; }; + 8B7A4A722EB56A3300B07840 /* CAAudioValueRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49EA2EB56A3300B07840 /* CAAudioValueRange.h */; }; + 8B7A4A732EB56A3300B07840 /* CAVectorUnitTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49EB2EB56A3300B07840 /* CAVectorUnitTypes.h */; }; + 8B7A4A742EB56A3300B07840 /* CAAudioChannelLayoutObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A49EC2EB56A3300B07840 /* CAAudioChannelLayoutObject.cpp */; }; + 8B7A4A752EB56A3300B07840 /* CAGuard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A49ED2EB56A3300B07840 /* CAGuard.cpp */; }; + 8B7A4A762EB56A3300B07840 /* CACFNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49EE2EB56A3300B07840 /* CACFNumber.h */; }; + 8B7A4A772EB56A3300B07840 /* CACFDistributedNotification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A49EF2EB56A3300B07840 /* CACFDistributedNotification.cpp */; }; + 8B7A4A782EB56A3300B07840 /* CACFString.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49F02EB56A3300B07840 /* CACFString.h */; }; + 8B7A4A792EB56A3300B07840 /* CAAUMIDIMapManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A49F12EB56A3300B07840 /* CAAUMIDIMapManager.cpp */; }; + 8B7A4A7A2EB56A3300B07840 /* CAComponentDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A49F22EB56A3300B07840 /* CAComponentDescription.cpp */; }; + 8B7A4A7B2EB56A3300B07840 /* CAHostTimeBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49F32EB56A3300B07840 /* CAHostTimeBase.h */; }; + 8B7A4A7C2EB56A3300B07840 /* CADebugMacros.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A49F42EB56A3300B07840 /* CADebugMacros.cpp */; }; + 8B7A4A7D2EB56A3300B07840 /* CAAudioFileFormats.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49F52EB56A3300B07840 /* CAAudioFileFormats.h */; }; + 8B7A4A7E2EB56A3300B07840 /* CAAUMIDIMapManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49F62EB56A3300B07840 /* CAAUMIDIMapManager.h */; }; + 8B7A4A7F2EB56A3300B07840 /* CACFDictionary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A49F72EB56A3300B07840 /* CACFDictionary.cpp */; }; + 8B7A4A802EB56A3300B07840 /* CAMutex.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49F82EB56A3300B07840 /* CAMutex.h */; }; + 8B7A4A812EB56A3300B07840 /* CACFString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A49F92EB56A3300B07840 /* CACFString.cpp */; }; + 8B7A4A822EB56A3300B07840 /* CASettingsStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49FA2EB56A3300B07840 /* CASettingsStorage.h */; }; + 8B7A4A832EB56A3300B07840 /* CADebugPrintf.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49FB2EB56A3300B07840 /* CADebugPrintf.h */; }; + 8B7A4A842EB56A3300B07840 /* CAXException.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A49FC2EB56A3300B07840 /* CAXException.cpp */; }; + 8B7A4A852EB56A3300B07840 /* CAAUMIDIMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49FD2EB56A3300B07840 /* CAAUMIDIMap.h */; }; + 8B7A4A862EB56A3300B07840 /* AUParamInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49FE2EB56A3300B07840 /* AUParamInfo.h */; }; + 8B7A4A872EB56A3300B07840 /* CABitOperations.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A49FF2EB56A3300B07840 /* CABitOperations.h */; }; + 8B7A4A882EB56A3300B07840 /* CACFPreferences.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A4A002EB56A3300B07840 /* CACFPreferences.cpp */; }; + 8B7A4A892EB56A3300B07840 /* CABundleLocker.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4A012EB56A3300B07840 /* CABundleLocker.h */; }; + 8B7A4A8A2EB56A3300B07840 /* CAPropertyAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4A022EB56A3300B07840 /* CAPropertyAddress.h */; }; + 8B7A4A8B2EB56A3300B07840 /* CAXException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4A032EB56A3300B07840 /* CAXException.h */; }; + 8B7A4A8C2EB56A3300B07840 /* CAAudioChannelLayout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A4A042EB56A3300B07840 /* CAAudioChannelLayout.cpp */; }; + 8B7A4A8D2EB56A3300B07840 /* CAThreadSafeList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4A052EB56A3300B07840 /* CAThreadSafeList.h */; }; + 8B7A4A8E2EB56A3300B07840 /* CAAudioUnitOutputCapturer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4A062EB56A3300B07840 /* CAAudioUnitOutputCapturer.h */; }; + 8B7A4A8F2EB56A3300B07840 /* AUParamInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A4A072EB56A3300B07840 /* AUParamInfo.cpp */; }; + 8B7A4A902EB56A3300B07840 /* CASharedLibrary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A4A082EB56A3300B07840 /* CASharedLibrary.cpp */; }; + 8B7A4A912EB56A3300B07840 /* CAAUMIDIMap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A4A092EB56A3300B07840 /* CAAUMIDIMap.cpp */; }; + 8B7A4A922EB56A3300B07840 /* CALogMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4A0A2EB56A3300B07840 /* CALogMacros.h */; }; + 8B7A4A932EB56A3300B07840 /* CACFMessagePort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A4A0B2EB56A3300B07840 /* CACFMessagePort.cpp */; }; + 8B7A4A942EB56A3300B07840 /* CARingBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4A0C2EB56A3300B07840 /* CARingBuffer.h */; }; + 8B7A4A952EB56A3300B07840 /* AUOutputBL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A4A0D2EB56A3300B07840 /* AUOutputBL.cpp */; }; + 8B7A4A962EB56A3300B07840 /* CABufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4A0E2EB56A3300B07840 /* CABufferList.h */; }; + 8B7A4A972EB56A3300B07840 /* CASharedLibrary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4A0F2EB56A3300B07840 /* CASharedLibrary.h */; }; + 8B7A4A982EB56A3300B07840 /* CACFData.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4A102EB56A3300B07840 /* CACFData.h */; }; + 8B7A4A992EB56A3300B07840 /* CAStreamRangedDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A4A112EB56A3300B07840 /* CAStreamRangedDescription.cpp */; }; + 8B7A4A9A2EB56A3300B07840 /* CAPThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A4A122EB56A3300B07840 /* CAPThread.cpp */; }; + 8B7A4A9B2EB56A3300B07840 /* CAAutoDisposer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4A132EB56A3300B07840 /* CAAutoDisposer.h */; }; + 8B7A4A9C2EB56A3300B07840 /* CACFPreferences.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4A142EB56A3300B07840 /* CACFPreferences.h */; }; + 8B7A4A9D2EB56A3300B07840 /* CAVectorUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A4A152EB56A3300B07840 /* CAVectorUnit.cpp */; }; + 8B7A4A9E2EB56A3300B07840 /* CAComponentDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4A162EB56A3300B07840 /* CAComponentDescription.h */; }; + 8B7A4A9F2EB56A3300B07840 /* CADebugMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4A172EB56A3300B07840 /* CADebugMacros.h */; }; + 8B7A4AA02EB56A3300B07840 /* AUOutputBL.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4A182EB56A3300B07840 /* AUOutputBL.h */; }; + 8B7A4AA12EB56A3300B07840 /* CADebugPrintf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A4A192EB56A3300B07840 /* CADebugPrintf.cpp */; }; + 8B7A4AA22EB56A3300B07840 /* CARingBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A4A1A2EB56A3300B07840 /* CARingBuffer.cpp */; }; + 8B7A4AA32EB56A3300B07840 /* CACFPlugIn.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4A1B2EB56A3300B07840 /* CACFPlugIn.h */; }; + 8B7A4AA42EB56A3300B07840 /* CASettingsStorage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A4A1C2EB56A3300B07840 /* CASettingsStorage.cpp */; }; + 8B7A4AA52EB56A3300B07840 /* CAMixMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4A1D2EB56A3300B07840 /* CAMixMap.h */; }; + 8B7A4AA62EB56A3300B07840 /* CACFDistributedNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4A1E2EB56A3300B07840 /* CACFDistributedNotification.h */; }; + 8B7A4AA72EB56A3300B07840 /* CAFilePathUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4A1F2EB56A3300B07840 /* CAFilePathUtils.h */; }; + 8B7A4AA82EB56A3300B07840 /* CATink.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4A202EB56A3300B07840 /* CATink.h */; }; + 8B7A4AA92EB56A3300B07840 /* CAStreamBasicDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A4A212EB56A3300B07840 /* CAStreamBasicDescription.cpp */; }; + 8B7A4AAA2EB56A3300B07840 /* CAAudioChannelLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4A222EB56A3300B07840 /* CAAudioChannelLayout.h */; }; + 8B7A4AAB2EB56A3300B07840 /* CAProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A4A232EB56A3300B07840 /* CAProcess.cpp */; }; + 8B7A4AAC2EB56A3300B07840 /* CAHostTimeBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A4A242EB56A3300B07840 /* CAHostTimeBase.cpp */; }; + 8B7A4AAD2EB56A3300B07840 /* CAPersistence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A4A252EB56A3300B07840 /* CAPersistence.cpp */; }; + 8B7A4AAE2EB56A3300B07840 /* CAAudioBufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A4A262EB56A3300B07840 /* CAAudioBufferList.cpp */; }; + 8B7A4AAF2EB56A3300B07840 /* CAAudioTimeStamp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A4A272EB56A3300B07840 /* CAAudioTimeStamp.cpp */; }; + 8B7A4AB02EB56A3300B07840 /* CAVectorUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4A282EB56A3300B07840 /* CAVectorUnit.h */; }; + 8B7A4AB12EB56A3300B07840 /* CAByteOrder.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4A292EB56A3300B07840 /* CAByteOrder.h */; }; + 8B7A4AB22EB56A3300B07840 /* CACFArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4A2A2EB56A3300B07840 /* CACFArray.h */; }; + 8B7A4AB32EB56A3300B07840 /* CAAtomicStack.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4A2B2EB56A3300B07840 /* CAAtomicStack.h */; }; + 8B7A4AB42EB56A3300B07840 /* CAReferenceCounted.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4A2C2EB56A3300B07840 /* CAReferenceCounted.h */; }; + 8B7A4AB52EB56A3300B07840 /* CACFMachPort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A4A2D2EB56A3300B07840 /* CACFMachPort.cpp */; }; + 8B7A4AB62EB56A3300B07840 /* CABufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A4A2E2EB56A3300B07840 /* CABufferList.cpp */; }; + 8B7A4AB72EB56A3300B07840 /* CAMutex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A4A2F2EB56A3300B07840 /* CAMutex.cpp */; }; + 8B7A4AB82EB56A3300B07840 /* CADebugger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A4A302EB56A3300B07840 /* CADebugger.cpp */; }; + 8B7A4AB92EB56A3300B07840 /* CABundleLocker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A4A312EB56A3300B07840 /* CABundleLocker.cpp */; }; + 8B7A4ABA2EB56A3300B07840 /* CAAudioFileFormats.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A4A322EB56A3300B07840 /* CAAudioFileFormats.cpp */; }; + 8B7A4ABB2EB56A3300B07840 /* CAMath.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4A332EB56A3300B07840 /* CAMath.h */; }; + 8B7A4ABC2EB56A3300B07840 /* CACFArray.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A4A342EB56A3300B07840 /* CACFArray.cpp */; }; + 8B7A4ABD2EB56A3300B07840 /* CACFMessagePort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4A352EB56A3300B07840 /* CACFMessagePort.h */; }; + 8B7A4ABE2EB56A3300B07840 /* CAAudioValueRange.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A4A362EB56A3300B07840 /* CAAudioValueRange.cpp */; }; + 8B7A4ABF2EB56A3300B07840 /* CAAudioUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A4A372EB56A3300B07840 /* CAAudioUnit.cpp */; }; + 8B7A4AC02EB56A3300B07840 /* AUViewLocalizedStringKeys.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4A3B2EB56A3300B07840 /* AUViewLocalizedStringKeys.h */; }; + 8B7A4AC12EB56A3300B07840 /* ComponentBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A4A3D2EB56A3300B07840 /* ComponentBase.cpp */; }; + 8B7A4AC22EB56A3300B07840 /* AUScopeElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A4A3E2EB56A3300B07840 /* AUScopeElement.cpp */; }; + 8B7A4AC32EB56A3300B07840 /* ComponentBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4A3F2EB56A3300B07840 /* ComponentBase.h */; }; + 8B7A4AC42EB56A3300B07840 /* AUBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A4A402EB56A3300B07840 /* AUBase.cpp */; }; + 8B7A4AC52EB56A3300B07840 /* AUInputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4A412EB56A3300B07840 /* AUInputElement.h */; }; + 8B7A4AC62EB56A3300B07840 /* AUBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4A422EB56A3300B07840 /* AUBase.h */; }; + 8B7A4AC72EB56A3300B07840 /* AUPlugInDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4A432EB56A3300B07840 /* AUPlugInDispatch.h */; }; + 8B7A4AC82EB56A3300B07840 /* AUDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4A442EB56A3300B07840 /* AUDispatch.h */; }; + 8B7A4AC92EB56A3300B07840 /* AUOutputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A4A452EB56A3300B07840 /* AUOutputElement.cpp */; }; + 8B7A4ACB2EB56A3300B07840 /* AUPlugInDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A4A472EB56A3300B07840 /* AUPlugInDispatch.cpp */; }; + 8B7A4ACC2EB56A3400B07840 /* AUOutputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4A482EB56A3300B07840 /* AUOutputElement.h */; }; + 8B7A4ACD2EB56A3400B07840 /* AUDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A4A492EB56A3300B07840 /* AUDispatch.cpp */; }; + 8B7A4ACE2EB56A3400B07840 /* AUScopeElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4A4A2EB56A3300B07840 /* AUScopeElement.h */; }; + 8B7A4ACF2EB56A3400B07840 /* AUInputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A4A4B2EB56A3300B07840 /* AUInputElement.cpp */; }; + 8B7A4AD02EB56A3400B07840 /* AUEffectBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A4A4D2EB56A3300B07840 /* AUEffectBase.cpp */; }; + 8B7A4AD12EB56A3400B07840 /* AUEffectBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4A4E2EB56A3300B07840 /* AUEffectBase.h */; }; + 8B7A4AD22EB56A3400B07840 /* AUTimestampGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4A502EB56A3300B07840 /* AUTimestampGenerator.h */; }; + 8B7A4AD32EB56A3400B07840 /* AUBaseHelper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A4A512EB56A3300B07840 /* AUBaseHelper.cpp */; }; + 8B7A4AD42EB56A3400B07840 /* AUSilentTimeout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4A522EB56A3300B07840 /* AUSilentTimeout.h */; }; + 8B7A4AD52EB56A3400B07840 /* AUInputFormatConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4A532EB56A3300B07840 /* AUInputFormatConverter.h */; }; + 8B7A4AD62EB56A3400B07840 /* AUTimestampGenerator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A4A542EB56A3300B07840 /* AUTimestampGenerator.cpp */; }; + 8B7A4AD72EB56A3400B07840 /* AUBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A4A552EB56A3300B07840 /* AUBuffer.cpp */; }; + 8B7A4AD82EB56A3400B07840 /* AUMIDIDefs.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4A562EB56A3300B07840 /* AUMIDIDefs.h */; }; + 8B7A4AD92EB56A3400B07840 /* AUBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4A572EB56A3300B07840 /* AUBuffer.h */; }; + 8B7A4ADA2EB56A3400B07840 /* AUBaseHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4A582EB56A3300B07840 /* AUBaseHelper.h */; }; + 8BA05A6B0720730100365D66 /* X2Buss.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* X2Buss.cpp */; }; + 8BA05A6E0720730100365D66 /* X2BussVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* X2BussVersion.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 /* X2Buss.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* X2Buss.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 = ""; }; + 8B7A49D12EB56A3300B07840 /* CAExtAudioFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAExtAudioFile.h; sourceTree = ""; }; + 8B7A49D22EB56A3300B07840 /* CACFMachPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMachPort.h; sourceTree = ""; }; + 8B7A49D32EB56A3300B07840 /* CABool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABool.h; sourceTree = ""; }; + 8B7A49D42EB56A3300B07840 /* CAComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponent.cpp; sourceTree = ""; }; + 8B7A49D52EB56A3300B07840 /* CADebugger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugger.h; sourceTree = ""; }; + 8B7A49D62EB56A3300B07840 /* CACFNumber.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFNumber.cpp; sourceTree = ""; }; + 8B7A49D72EB56A3300B07840 /* CAGuard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAGuard.h; sourceTree = ""; }; + 8B7A49D82EB56A3300B07840 /* CAAtomic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomic.h; sourceTree = ""; }; + 8B7A49D92EB56A3300B07840 /* CAStreamBasicDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamBasicDescription.h; sourceTree = ""; }; + 8B7A49DA2EB56A3300B07840 /* CACFObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFObject.h; sourceTree = ""; }; + 8B7A49DB2EB56A3300B07840 /* CAStreamRangedDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamRangedDescription.h; sourceTree = ""; }; + 8B7A49DC2EB56A3300B07840 /* CATokenMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATokenMap.h; sourceTree = ""; }; + 8B7A49DD2EB56A3300B07840 /* CAComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponent.h; sourceTree = ""; }; + 8B7A49DE2EB56A3300B07840 /* CAAudioBufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioBufferList.h; sourceTree = ""; }; + 8B7A49DF2EB56A3300B07840 /* CAAudioUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnit.h; sourceTree = ""; }; + 8B7A49E02EB56A3300B07840 /* CAAUParameter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUParameter.h; sourceTree = ""; }; + 8B7A49E12EB56A3300B07840 /* CAException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAException.h; sourceTree = ""; }; + 8B7A49E22EB56A3300B07840 /* CAAUProcessor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUProcessor.cpp; sourceTree = ""; }; + 8B7A49E32EB56A3300B07840 /* CAAUProcessor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUProcessor.h; sourceTree = ""; }; + 8B7A49E42EB56A3300B07840 /* CAProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAProcess.h; sourceTree = ""; }; + 8B7A49E52EB56A3300B07840 /* CACFDictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDictionary.h; sourceTree = ""; }; + 8B7A49E62EB56A3300B07840 /* CAPThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPThread.h; sourceTree = ""; }; + 8B7A49E72EB56A3300B07840 /* CAAUParameter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUParameter.cpp; sourceTree = ""; }; + 8B7A49E82EB56A3300B07840 /* CAAudioTimeStamp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioTimeStamp.h; sourceTree = ""; }; + 8B7A49E92EB56A3300B07840 /* CAFilePathUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAFilePathUtils.cpp; sourceTree = ""; }; + 8B7A49EA2EB56A3300B07840 /* CAAudioValueRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioValueRange.h; sourceTree = ""; }; + 8B7A49EB2EB56A3300B07840 /* CAVectorUnitTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnitTypes.h; sourceTree = ""; }; + 8B7A49EC2EB56A3300B07840 /* CAAudioChannelLayoutObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayoutObject.cpp; sourceTree = ""; }; + 8B7A49ED2EB56A3300B07840 /* CAGuard.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAGuard.cpp; sourceTree = ""; }; + 8B7A49EE2EB56A3300B07840 /* CACFNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFNumber.h; sourceTree = ""; }; + 8B7A49EF2EB56A3300B07840 /* CACFDistributedNotification.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDistributedNotification.cpp; sourceTree = ""; }; + 8B7A49F02EB56A3300B07840 /* CACFString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFString.h; sourceTree = ""; }; + 8B7A49F12EB56A3300B07840 /* CAAUMIDIMapManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMapManager.cpp; sourceTree = ""; }; + 8B7A49F22EB56A3300B07840 /* CAComponentDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponentDescription.cpp; sourceTree = ""; }; + 8B7A49F32EB56A3300B07840 /* CAHostTimeBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAHostTimeBase.h; sourceTree = ""; }; + 8B7A49F42EB56A3300B07840 /* CADebugMacros.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugMacros.cpp; sourceTree = ""; }; + 8B7A49F52EB56A3300B07840 /* CAAudioFileFormats.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioFileFormats.h; sourceTree = ""; }; + 8B7A49F62EB56A3300B07840 /* CAAUMIDIMapManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMapManager.h; sourceTree = ""; }; + 8B7A49F72EB56A3300B07840 /* CACFDictionary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDictionary.cpp; sourceTree = ""; }; + 8B7A49F82EB56A3300B07840 /* CAMutex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMutex.h; sourceTree = ""; }; + 8B7A49F92EB56A3300B07840 /* CACFString.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFString.cpp; sourceTree = ""; }; + 8B7A49FA2EB56A3300B07840 /* CASettingsStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASettingsStorage.h; sourceTree = ""; }; + 8B7A49FB2EB56A3300B07840 /* CADebugPrintf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugPrintf.h; sourceTree = ""; }; + 8B7A49FC2EB56A3300B07840 /* CAXException.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAXException.cpp; sourceTree = ""; }; + 8B7A49FD2EB56A3300B07840 /* CAAUMIDIMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMap.h; sourceTree = ""; }; + 8B7A49FE2EB56A3300B07840 /* AUParamInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUParamInfo.h; sourceTree = ""; }; + 8B7A49FF2EB56A3300B07840 /* CABitOperations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABitOperations.h; sourceTree = ""; }; + 8B7A4A002EB56A3300B07840 /* CACFPreferences.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFPreferences.cpp; sourceTree = ""; }; + 8B7A4A012EB56A3300B07840 /* CABundleLocker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABundleLocker.h; sourceTree = ""; }; + 8B7A4A022EB56A3300B07840 /* CAPropertyAddress.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPropertyAddress.h; sourceTree = ""; }; + 8B7A4A032EB56A3300B07840 /* CAXException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAXException.h; sourceTree = ""; }; + 8B7A4A042EB56A3300B07840 /* CAAudioChannelLayout.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayout.cpp; sourceTree = ""; }; + 8B7A4A052EB56A3300B07840 /* CAThreadSafeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAThreadSafeList.h; sourceTree = ""; }; + 8B7A4A062EB56A3300B07840 /* CAAudioUnitOutputCapturer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnitOutputCapturer.h; sourceTree = ""; }; + 8B7A4A072EB56A3300B07840 /* AUParamInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUParamInfo.cpp; sourceTree = ""; }; + 8B7A4A082EB56A3300B07840 /* CASharedLibrary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASharedLibrary.cpp; sourceTree = ""; }; + 8B7A4A092EB56A3300B07840 /* CAAUMIDIMap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMap.cpp; sourceTree = ""; }; + 8B7A4A0A2EB56A3300B07840 /* CALogMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CALogMacros.h; sourceTree = ""; }; + 8B7A4A0B2EB56A3300B07840 /* CACFMessagePort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMessagePort.cpp; sourceTree = ""; }; + 8B7A4A0C2EB56A3300B07840 /* CARingBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CARingBuffer.h; sourceTree = ""; }; + 8B7A4A0D2EB56A3300B07840 /* AUOutputBL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputBL.cpp; sourceTree = ""; }; + 8B7A4A0E2EB56A3300B07840 /* CABufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABufferList.h; sourceTree = ""; }; + 8B7A4A0F2EB56A3300B07840 /* CASharedLibrary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASharedLibrary.h; sourceTree = ""; }; + 8B7A4A102EB56A3300B07840 /* CACFData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFData.h; sourceTree = ""; }; + 8B7A4A112EB56A3300B07840 /* CAStreamRangedDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamRangedDescription.cpp; sourceTree = ""; }; + 8B7A4A122EB56A3300B07840 /* CAPThread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPThread.cpp; sourceTree = ""; }; + 8B7A4A132EB56A3300B07840 /* CAAutoDisposer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAutoDisposer.h; sourceTree = ""; }; + 8B7A4A142EB56A3300B07840 /* CACFPreferences.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPreferences.h; sourceTree = ""; }; + 8B7A4A152EB56A3300B07840 /* CAVectorUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAVectorUnit.cpp; sourceTree = ""; }; + 8B7A4A162EB56A3300B07840 /* CAComponentDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponentDescription.h; sourceTree = ""; }; + 8B7A4A172EB56A3300B07840 /* CADebugMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugMacros.h; sourceTree = ""; }; + 8B7A4A182EB56A3300B07840 /* AUOutputBL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputBL.h; sourceTree = ""; }; + 8B7A4A192EB56A3300B07840 /* CADebugPrintf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugPrintf.cpp; sourceTree = ""; }; + 8B7A4A1A2EB56A3300B07840 /* CARingBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CARingBuffer.cpp; sourceTree = ""; }; + 8B7A4A1B2EB56A3300B07840 /* CACFPlugIn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPlugIn.h; sourceTree = ""; }; + 8B7A4A1C2EB56A3300B07840 /* CASettingsStorage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASettingsStorage.cpp; sourceTree = ""; }; + 8B7A4A1D2EB56A3300B07840 /* CAMixMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMixMap.h; sourceTree = ""; }; + 8B7A4A1E2EB56A3300B07840 /* CACFDistributedNotification.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDistributedNotification.h; sourceTree = ""; }; + 8B7A4A1F2EB56A3300B07840 /* CAFilePathUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAFilePathUtils.h; sourceTree = ""; }; + 8B7A4A202EB56A3300B07840 /* CATink.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATink.h; sourceTree = ""; }; + 8B7A4A212EB56A3300B07840 /* CAStreamBasicDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamBasicDescription.cpp; sourceTree = ""; }; + 8B7A4A222EB56A3300B07840 /* CAAudioChannelLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioChannelLayout.h; sourceTree = ""; }; + 8B7A4A232EB56A3300B07840 /* CAProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAProcess.cpp; sourceTree = ""; }; + 8B7A4A242EB56A3300B07840 /* CAHostTimeBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAHostTimeBase.cpp; sourceTree = ""; }; + 8B7A4A252EB56A3300B07840 /* CAPersistence.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPersistence.cpp; sourceTree = ""; }; + 8B7A4A262EB56A3300B07840 /* CAAudioBufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioBufferList.cpp; sourceTree = ""; }; + 8B7A4A272EB56A3300B07840 /* CAAudioTimeStamp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioTimeStamp.cpp; sourceTree = ""; }; + 8B7A4A282EB56A3300B07840 /* CAVectorUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnit.h; sourceTree = ""; }; + 8B7A4A292EB56A3300B07840 /* CAByteOrder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAByteOrder.h; sourceTree = ""; }; + 8B7A4A2A2EB56A3300B07840 /* CACFArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFArray.h; sourceTree = ""; }; + 8B7A4A2B2EB56A3300B07840 /* CAAtomicStack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomicStack.h; sourceTree = ""; }; + 8B7A4A2C2EB56A3300B07840 /* CAReferenceCounted.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAReferenceCounted.h; sourceTree = ""; }; + 8B7A4A2D2EB56A3300B07840 /* CACFMachPort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMachPort.cpp; sourceTree = ""; }; + 8B7A4A2E2EB56A3300B07840 /* CABufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABufferList.cpp; sourceTree = ""; }; + 8B7A4A2F2EB56A3300B07840 /* CAMutex.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAMutex.cpp; sourceTree = ""; }; + 8B7A4A302EB56A3300B07840 /* CADebugger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugger.cpp; sourceTree = ""; }; + 8B7A4A312EB56A3300B07840 /* CABundleLocker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABundleLocker.cpp; sourceTree = ""; }; + 8B7A4A322EB56A3300B07840 /* CAAudioFileFormats.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioFileFormats.cpp; sourceTree = ""; }; + 8B7A4A332EB56A3300B07840 /* CAMath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMath.h; sourceTree = ""; }; + 8B7A4A342EB56A3300B07840 /* CACFArray.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFArray.cpp; sourceTree = ""; }; + 8B7A4A352EB56A3300B07840 /* CACFMessagePort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMessagePort.h; sourceTree = ""; }; + 8B7A4A362EB56A3300B07840 /* CAAudioValueRange.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioValueRange.cpp; sourceTree = ""; }; + 8B7A4A372EB56A3300B07840 /* CAAudioUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioUnit.cpp; sourceTree = ""; }; + 8B7A4A3B2EB56A3300B07840 /* AUViewLocalizedStringKeys.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUViewLocalizedStringKeys.h; sourceTree = ""; }; + 8B7A4A3D2EB56A3300B07840 /* ComponentBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ComponentBase.cpp; sourceTree = ""; }; + 8B7A4A3E2EB56A3300B07840 /* AUScopeElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUScopeElement.cpp; sourceTree = ""; }; + 8B7A4A3F2EB56A3300B07840 /* ComponentBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ComponentBase.h; sourceTree = ""; }; + 8B7A4A402EB56A3300B07840 /* AUBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBase.cpp; sourceTree = ""; }; + 8B7A4A412EB56A3300B07840 /* AUInputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputElement.h; sourceTree = ""; }; + 8B7A4A422EB56A3300B07840 /* AUBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBase.h; sourceTree = ""; }; + 8B7A4A432EB56A3300B07840 /* AUPlugInDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUPlugInDispatch.h; sourceTree = ""; }; + 8B7A4A442EB56A3300B07840 /* AUDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUDispatch.h; sourceTree = ""; }; + 8B7A4A452EB56A3300B07840 /* AUOutputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputElement.cpp; sourceTree = ""; }; + 8B7A4A462EB56A3300B07840 /* AUResources.r */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; path = AUResources.r; sourceTree = ""; }; + 8B7A4A472EB56A3300B07840 /* AUPlugInDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUPlugInDispatch.cpp; sourceTree = ""; }; + 8B7A4A482EB56A3300B07840 /* AUOutputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputElement.h; sourceTree = ""; }; + 8B7A4A492EB56A3300B07840 /* AUDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUDispatch.cpp; sourceTree = ""; }; + 8B7A4A4A2EB56A3300B07840 /* AUScopeElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUScopeElement.h; sourceTree = ""; }; + 8B7A4A4B2EB56A3300B07840 /* AUInputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUInputElement.cpp; sourceTree = ""; }; + 8B7A4A4D2EB56A3300B07840 /* AUEffectBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUEffectBase.cpp; sourceTree = ""; }; + 8B7A4A4E2EB56A3300B07840 /* AUEffectBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUEffectBase.h; sourceTree = ""; }; + 8B7A4A502EB56A3300B07840 /* AUTimestampGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUTimestampGenerator.h; sourceTree = ""; }; + 8B7A4A512EB56A3300B07840 /* AUBaseHelper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBaseHelper.cpp; sourceTree = ""; }; + 8B7A4A522EB56A3300B07840 /* AUSilentTimeout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUSilentTimeout.h; sourceTree = ""; }; + 8B7A4A532EB56A3300B07840 /* AUInputFormatConverter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputFormatConverter.h; sourceTree = ""; }; + 8B7A4A542EB56A3300B07840 /* AUTimestampGenerator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUTimestampGenerator.cpp; sourceTree = ""; }; + 8B7A4A552EB56A3300B07840 /* AUBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBuffer.cpp; sourceTree = ""; }; + 8B7A4A562EB56A3300B07840 /* AUMIDIDefs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUMIDIDefs.h; sourceTree = ""; }; + 8B7A4A572EB56A3300B07840 /* AUBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBuffer.h; sourceTree = ""; }; + 8B7A4A582EB56A3300B07840 /* AUBaseHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBaseHelper.h; sourceTree = ""; }; + 8B7A4ADB2EB56CAF00B07840 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; + 8BA05A660720730100365D66 /* X2Buss.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = X2Buss.cpp; sourceTree = ""; }; + 8BA05A670720730100365D66 /* X2Buss.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = X2Buss.exp; sourceTree = ""; }; + 8BA05A680720730100365D66 /* X2Buss.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = X2Buss.r; sourceTree = ""; }; + 8BA05A690720730100365D66 /* X2BussVersion.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = X2BussVersion.h; sourceTree = ""; }; + 8BA05AF9072074E100365D66 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = /System/Library/Frameworks/AudioToolbox.framework; sourceTree = ""; }; + 8BA05AFA072074E100365D66 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = /System/Library/Frameworks/AudioUnit.framework; sourceTree = ""; }; + 8BA05B01072074F900365D66 /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = /System/Library/Frameworks/CoreServices.framework; sourceTree = ""; }; + 8BC6025B073B072D006C4272 /* X2Buss.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = X2Buss.h; sourceTree = ""; }; + 8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; + 8D01CCD20486CAD60068D4B7 /* X2Buss.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = X2Buss.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 /* X2Buss */ = { + isa = PBXGroup; + children = ( + 08FB77ADFE841716C02AAC07 /* Source */, + 089C167CFE841241C02AAC07 /* Resources */, + 089C1671FE841209C02AAC07 /* External Frameworks and Libraries */, + 19C28FB4FE9D528D11CA2CBB /* Products */, + ); + name = X2Buss; + sourceTree = ""; + }; + 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 = ""; + }; + 089C167CFE841241C02AAC07 /* Resources */ = { + isa = PBXGroup; + children = ( + 8D01CCD10486CAD60068D4B7 /* Info.plist */, + 089C167DFE841241C02AAC07 /* InfoPlist.strings */, + ); + name = Resources; + sourceTree = ""; + }; + 08FB77ADFE841716C02AAC07 /* Source */ = { + isa = PBXGroup; + children = ( + 8B7A49CF2EB56A3300B07840 /* CA_SDK */, + 8BA05A56072072A900365D66 /* AU Source */, + ); + name = Source; + sourceTree = ""; + }; + 19C28FB4FE9D528D11CA2CBB /* Products */ = { + isa = PBXGroup; + children = ( + 8D01CCD20486CAD60068D4B7 /* X2Buss.component */, + ); + name = Products; + sourceTree = ""; + }; + 8B7A49CF2EB56A3300B07840 /* CA_SDK */ = { + isa = PBXGroup; + children = ( + 8B7A49D02EB56A3300B07840 /* PublicUtility */, + 8B7A4A382EB56A3300B07840 /* AudioUnits */, + ); + name = CA_SDK; + path = ../../../../CA_SDK; + sourceTree = ""; + }; + 8B7A49D02EB56A3300B07840 /* PublicUtility */ = { + isa = PBXGroup; + children = ( + 8B7A49D12EB56A3300B07840 /* CAExtAudioFile.h */, + 8B7A49D22EB56A3300B07840 /* CACFMachPort.h */, + 8B7A49D32EB56A3300B07840 /* CABool.h */, + 8B7A49D42EB56A3300B07840 /* CAComponent.cpp */, + 8B7A49D52EB56A3300B07840 /* CADebugger.h */, + 8B7A49D62EB56A3300B07840 /* CACFNumber.cpp */, + 8B7A49D72EB56A3300B07840 /* CAGuard.h */, + 8B7A49D82EB56A3300B07840 /* CAAtomic.h */, + 8B7A49D92EB56A3300B07840 /* CAStreamBasicDescription.h */, + 8B7A49DA2EB56A3300B07840 /* CACFObject.h */, + 8B7A49DB2EB56A3300B07840 /* CAStreamRangedDescription.h */, + 8B7A49DC2EB56A3300B07840 /* CATokenMap.h */, + 8B7A49DD2EB56A3300B07840 /* CAComponent.h */, + 8B7A49DE2EB56A3300B07840 /* CAAudioBufferList.h */, + 8B7A49DF2EB56A3300B07840 /* CAAudioUnit.h */, + 8B7A49E02EB56A3300B07840 /* CAAUParameter.h */, + 8B7A49E12EB56A3300B07840 /* CAException.h */, + 8B7A49E22EB56A3300B07840 /* CAAUProcessor.cpp */, + 8B7A49E32EB56A3300B07840 /* CAAUProcessor.h */, + 8B7A49E42EB56A3300B07840 /* CAProcess.h */, + 8B7A49E52EB56A3300B07840 /* CACFDictionary.h */, + 8B7A49E62EB56A3300B07840 /* CAPThread.h */, + 8B7A49E72EB56A3300B07840 /* CAAUParameter.cpp */, + 8B7A49E82EB56A3300B07840 /* CAAudioTimeStamp.h */, + 8B7A49E92EB56A3300B07840 /* CAFilePathUtils.cpp */, + 8B7A49EA2EB56A3300B07840 /* CAAudioValueRange.h */, + 8B7A49EB2EB56A3300B07840 /* CAVectorUnitTypes.h */, + 8B7A49EC2EB56A3300B07840 /* CAAudioChannelLayoutObject.cpp */, + 8B7A49ED2EB56A3300B07840 /* CAGuard.cpp */, + 8B7A49EE2EB56A3300B07840 /* CACFNumber.h */, + 8B7A49EF2EB56A3300B07840 /* CACFDistributedNotification.cpp */, + 8B7A49F02EB56A3300B07840 /* CACFString.h */, + 8B7A49F12EB56A3300B07840 /* CAAUMIDIMapManager.cpp */, + 8B7A49F22EB56A3300B07840 /* CAComponentDescription.cpp */, + 8B7A49F32EB56A3300B07840 /* CAHostTimeBase.h */, + 8B7A49F42EB56A3300B07840 /* CADebugMacros.cpp */, + 8B7A49F52EB56A3300B07840 /* CAAudioFileFormats.h */, + 8B7A49F62EB56A3300B07840 /* CAAUMIDIMapManager.h */, + 8B7A49F72EB56A3300B07840 /* CACFDictionary.cpp */, + 8B7A49F82EB56A3300B07840 /* CAMutex.h */, + 8B7A49F92EB56A3300B07840 /* CACFString.cpp */, + 8B7A49FA2EB56A3300B07840 /* CASettingsStorage.h */, + 8B7A49FB2EB56A3300B07840 /* CADebugPrintf.h */, + 8B7A49FC2EB56A3300B07840 /* CAXException.cpp */, + 8B7A49FD2EB56A3300B07840 /* CAAUMIDIMap.h */, + 8B7A49FE2EB56A3300B07840 /* AUParamInfo.h */, + 8B7A49FF2EB56A3300B07840 /* CABitOperations.h */, + 8B7A4A002EB56A3300B07840 /* CACFPreferences.cpp */, + 8B7A4A012EB56A3300B07840 /* CABundleLocker.h */, + 8B7A4A022EB56A3300B07840 /* CAPropertyAddress.h */, + 8B7A4A032EB56A3300B07840 /* CAXException.h */, + 8B7A4A042EB56A3300B07840 /* CAAudioChannelLayout.cpp */, + 8B7A4A052EB56A3300B07840 /* CAThreadSafeList.h */, + 8B7A4A062EB56A3300B07840 /* CAAudioUnitOutputCapturer.h */, + 8B7A4A072EB56A3300B07840 /* AUParamInfo.cpp */, + 8B7A4A082EB56A3300B07840 /* CASharedLibrary.cpp */, + 8B7A4A092EB56A3300B07840 /* CAAUMIDIMap.cpp */, + 8B7A4A0A2EB56A3300B07840 /* CALogMacros.h */, + 8B7A4A0B2EB56A3300B07840 /* CACFMessagePort.cpp */, + 8B7A4A0C2EB56A3300B07840 /* CARingBuffer.h */, + 8B7A4A0D2EB56A3300B07840 /* AUOutputBL.cpp */, + 8B7A4A0E2EB56A3300B07840 /* CABufferList.h */, + 8B7A4A0F2EB56A3300B07840 /* CASharedLibrary.h */, + 8B7A4A102EB56A3300B07840 /* CACFData.h */, + 8B7A4A112EB56A3300B07840 /* CAStreamRangedDescription.cpp */, + 8B7A4A122EB56A3300B07840 /* CAPThread.cpp */, + 8B7A4A132EB56A3300B07840 /* CAAutoDisposer.h */, + 8B7A4A142EB56A3300B07840 /* CACFPreferences.h */, + 8B7A4A152EB56A3300B07840 /* CAVectorUnit.cpp */, + 8B7A4A162EB56A3300B07840 /* CAComponentDescription.h */, + 8B7A4A172EB56A3300B07840 /* CADebugMacros.h */, + 8B7A4A182EB56A3300B07840 /* AUOutputBL.h */, + 8B7A4A192EB56A3300B07840 /* CADebugPrintf.cpp */, + 8B7A4A1A2EB56A3300B07840 /* CARingBuffer.cpp */, + 8B7A4A1B2EB56A3300B07840 /* CACFPlugIn.h */, + 8B7A4A1C2EB56A3300B07840 /* CASettingsStorage.cpp */, + 8B7A4A1D2EB56A3300B07840 /* CAMixMap.h */, + 8B7A4A1E2EB56A3300B07840 /* CACFDistributedNotification.h */, + 8B7A4A1F2EB56A3300B07840 /* CAFilePathUtils.h */, + 8B7A4A202EB56A3300B07840 /* CATink.h */, + 8B7A4A212EB56A3300B07840 /* CAStreamBasicDescription.cpp */, + 8B7A4A222EB56A3300B07840 /* CAAudioChannelLayout.h */, + 8B7A4A232EB56A3300B07840 /* CAProcess.cpp */, + 8B7A4A242EB56A3300B07840 /* CAHostTimeBase.cpp */, + 8B7A4A252EB56A3300B07840 /* CAPersistence.cpp */, + 8B7A4A262EB56A3300B07840 /* CAAudioBufferList.cpp */, + 8B7A4A272EB56A3300B07840 /* CAAudioTimeStamp.cpp */, + 8B7A4A282EB56A3300B07840 /* CAVectorUnit.h */, + 8B7A4A292EB56A3300B07840 /* CAByteOrder.h */, + 8B7A4A2A2EB56A3300B07840 /* CACFArray.h */, + 8B7A4A2B2EB56A3300B07840 /* CAAtomicStack.h */, + 8B7A4A2C2EB56A3300B07840 /* CAReferenceCounted.h */, + 8B7A4A2D2EB56A3300B07840 /* CACFMachPort.cpp */, + 8B7A4A2E2EB56A3300B07840 /* CABufferList.cpp */, + 8B7A4A2F2EB56A3300B07840 /* CAMutex.cpp */, + 8B7A4A302EB56A3300B07840 /* CADebugger.cpp */, + 8B7A4A312EB56A3300B07840 /* CABundleLocker.cpp */, + 8B7A4A322EB56A3300B07840 /* CAAudioFileFormats.cpp */, + 8B7A4A332EB56A3300B07840 /* CAMath.h */, + 8B7A4A342EB56A3300B07840 /* CACFArray.cpp */, + 8B7A4A352EB56A3300B07840 /* CACFMessagePort.h */, + 8B7A4A362EB56A3300B07840 /* CAAudioValueRange.cpp */, + 8B7A4A372EB56A3300B07840 /* CAAudioUnit.cpp */, + ); + path = PublicUtility; + sourceTree = ""; + }; + 8B7A4A382EB56A3300B07840 /* AudioUnits */ = { + isa = PBXGroup; + children = ( + 8B7A4A392EB56A3300B07840 /* AUPublic */, + ); + path = AudioUnits; + sourceTree = ""; + }; + 8B7A4A392EB56A3300B07840 /* AUPublic */ = { + isa = PBXGroup; + children = ( + 8B7A4A3A2EB56A3300B07840 /* AUViewBase */, + 8B7A4A3C2EB56A3300B07840 /* AUBase */, + 8B7A4A4C2EB56A3300B07840 /* OtherBases */, + 8B7A4A4F2EB56A3300B07840 /* Utility */, + ); + path = AUPublic; + sourceTree = ""; + }; + 8B7A4A3A2EB56A3300B07840 /* AUViewBase */ = { + isa = PBXGroup; + children = ( + 8B7A4A3B2EB56A3300B07840 /* AUViewLocalizedStringKeys.h */, + ); + path = AUViewBase; + sourceTree = ""; + }; + 8B7A4A3C2EB56A3300B07840 /* AUBase */ = { + isa = PBXGroup; + children = ( + 8B7A4A3D2EB56A3300B07840 /* ComponentBase.cpp */, + 8B7A4A3E2EB56A3300B07840 /* AUScopeElement.cpp */, + 8B7A4A3F2EB56A3300B07840 /* ComponentBase.h */, + 8B7A4A402EB56A3300B07840 /* AUBase.cpp */, + 8B7A4A412EB56A3300B07840 /* AUInputElement.h */, + 8B7A4A422EB56A3300B07840 /* AUBase.h */, + 8B7A4A432EB56A3300B07840 /* AUPlugInDispatch.h */, + 8B7A4A442EB56A3300B07840 /* AUDispatch.h */, + 8B7A4A452EB56A3300B07840 /* AUOutputElement.cpp */, + 8B7A4A462EB56A3300B07840 /* AUResources.r */, + 8B7A4A472EB56A3300B07840 /* AUPlugInDispatch.cpp */, + 8B7A4A482EB56A3300B07840 /* AUOutputElement.h */, + 8B7A4A492EB56A3300B07840 /* AUDispatch.cpp */, + 8B7A4A4A2EB56A3300B07840 /* AUScopeElement.h */, + 8B7A4A4B2EB56A3300B07840 /* AUInputElement.cpp */, + ); + path = AUBase; + sourceTree = ""; + }; + 8B7A4A4C2EB56A3300B07840 /* OtherBases */ = { + isa = PBXGroup; + children = ( + 8B7A4A4D2EB56A3300B07840 /* AUEffectBase.cpp */, + 8B7A4A4E2EB56A3300B07840 /* AUEffectBase.h */, + ); + path = OtherBases; + sourceTree = ""; + }; + 8B7A4A4F2EB56A3300B07840 /* Utility */ = { + isa = PBXGroup; + children = ( + 8B7A4A502EB56A3300B07840 /* AUTimestampGenerator.h */, + 8B7A4A512EB56A3300B07840 /* AUBaseHelper.cpp */, + 8B7A4A522EB56A3300B07840 /* AUSilentTimeout.h */, + 8B7A4A532EB56A3300B07840 /* AUInputFormatConverter.h */, + 8B7A4A542EB56A3300B07840 /* AUTimestampGenerator.cpp */, + 8B7A4A552EB56A3300B07840 /* AUBuffer.cpp */, + 8B7A4A562EB56A3300B07840 /* AUMIDIDefs.h */, + 8B7A4A572EB56A3300B07840 /* AUBuffer.h */, + 8B7A4A582EB56A3300B07840 /* AUBaseHelper.h */, + ); + path = Utility; + sourceTree = ""; + }; + 8BA05A56072072A900365D66 /* AU Source */ = { + isa = PBXGroup; + children = ( + 8BC6025B073B072D006C4272 /* X2Buss.h */, + 8BA05A660720730100365D66 /* X2Buss.cpp */, + 8BA05A670720730100365D66 /* X2Buss.exp */, + 8BA05A680720730100365D66 /* X2Buss.r */, + 8BA05A690720730100365D66 /* X2BussVersion.h */, + ); + name = "AU Source"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 8D01CCC70486CAD60068D4B7 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 8B7A4A892EB56A3300B07840 /* CABundleLocker.h in Headers */, + 8B7A4AAA2EB56A3300B07840 /* CAAudioChannelLayout.h in Headers */, + 8B7A4AA02EB56A3300B07840 /* AUOutputBL.h in Headers */, + 8B7A4A7B2EB56A3300B07840 /* CAHostTimeBase.h in Headers */, + 8B7A4AC32EB56A3300B07840 /* ComponentBase.h in Headers */, + 8B7A4AB32EB56A3300B07840 /* CAAtomicStack.h in Headers */, + 8B7A4A702EB56A3300B07840 /* CAAudioTimeStamp.h in Headers */, + 8B7A4A8D2EB56A3300B07840 /* CAThreadSafeList.h in Headers */, + 8B7A4A682EB56A3300B07840 /* CAAUParameter.h in Headers */, + 8B7A4ADA2EB56A3400B07840 /* AUBaseHelper.h in Headers */, + 8B7A4AD22EB56A3400B07840 /* AUTimestampGenerator.h in Headers */, + 8B7A4A832EB56A3300B07840 /* CADebugPrintf.h in Headers */, + 8B7A4ABD2EB56A3300B07840 /* CACFMessagePort.h in Headers */, + 8B7A4A6B2EB56A3300B07840 /* CAAUProcessor.h in Headers */, + 8B7A4A672EB56A3300B07840 /* CAAudioUnit.h in Headers */, + 8B7A4AC02EB56A3300B07840 /* AUViewLocalizedStringKeys.h in Headers */, + 8B7A4AA62EB56A3300B07840 /* CACFDistributedNotification.h in Headers */, + 8B7A4A652EB56A3300B07840 /* CAComponent.h in Headers */, + 8B7A4A732EB56A3300B07840 /* CAVectorUnitTypes.h in Headers */, + 8BA05A6E0720730100365D66 /* X2BussVersion.h in Headers */, + 8B7A4AA72EB56A3300B07840 /* CAFilePathUtils.h in Headers */, + 8B7A4A692EB56A3300B07840 /* CAException.h in Headers */, + 8B7A4A602EB56A3300B07840 /* CAAtomic.h in Headers */, + 8B7A4A5F2EB56A3300B07840 /* CAGuard.h in Headers */, + 8B7A4AC52EB56A3300B07840 /* AUInputElement.h in Headers */, + 8B7A4A9C2EB56A3300B07840 /* CACFPreferences.h in Headers */, + 8B7A4AB12EB56A3300B07840 /* CAByteOrder.h in Headers */, + 8B7A4A942EB56A3300B07840 /* CARingBuffer.h in Headers */, + 8B7A4A5B2EB56A3300B07840 /* CABool.h in Headers */, + 8B7A4A802EB56A3300B07840 /* CAMutex.h in Headers */, + 8B7A4AC62EB56A3300B07840 /* AUBase.h in Headers */, + 8BC6025C073B072D006C4272 /* X2Buss.h in Headers */, + 8B7A4A782EB56A3300B07840 /* CACFString.h in Headers */, + 8B7A4A972EB56A3300B07840 /* CASharedLibrary.h in Headers */, + 8B7A4A642EB56A3300B07840 /* CATokenMap.h in Headers */, + 8B7A4A592EB56A3300B07840 /* CAExtAudioFile.h in Headers */, + 8B7A4A6E2EB56A3300B07840 /* CAPThread.h in Headers */, + 8B7A4A8A2EB56A3300B07840 /* CAPropertyAddress.h in Headers */, + 8B7A4AB42EB56A3300B07840 /* CAReferenceCounted.h in Headers */, + 8B7A4AD92EB56A3400B07840 /* AUBuffer.h in Headers */, + 8B7A4ABB2EB56A3300B07840 /* CAMath.h in Headers */, + 8B7A4A9B2EB56A3300B07840 /* CAAutoDisposer.h in Headers */, + 8B7A4A622EB56A3300B07840 /* CACFObject.h in Headers */, + 8B7A4A822EB56A3300B07840 /* CASettingsStorage.h in Headers */, + 8B7A4A8B2EB56A3300B07840 /* CAXException.h in Headers */, + 8B7A4AA82EB56A3300B07840 /* CATink.h in Headers */, + 8B7A4AD52EB56A3400B07840 /* AUInputFormatConverter.h in Headers */, + 8B7A4AB02EB56A3300B07840 /* CAVectorUnit.h in Headers */, + 8B7A4A6C2EB56A3300B07840 /* CAProcess.h in Headers */, + 8B7A4A722EB56A3300B07840 /* CAAudioValueRange.h in Headers */, + 8B7A4A872EB56A3300B07840 /* CABitOperations.h in Headers */, + 8B7A4A7D2EB56A3300B07840 /* CAAudioFileFormats.h in Headers */, + 8B7A4A762EB56A3300B07840 /* CACFNumber.h in Headers */, + 8B7A4A8E2EB56A3300B07840 /* CAAudioUnitOutputCapturer.h in Headers */, + 8B7A4A9F2EB56A3300B07840 /* CADebugMacros.h in Headers */, + 8B7A4AD82EB56A3400B07840 /* AUMIDIDefs.h in Headers */, + 8B7A4A982EB56A3300B07840 /* CACFData.h in Headers */, + 8B7A4A612EB56A3300B07840 /* CAStreamBasicDescription.h in Headers */, + 8B7A4AC72EB56A3300B07840 /* AUPlugInDispatch.h in Headers */, + 8B7A4A632EB56A3300B07840 /* CAStreamRangedDescription.h in Headers */, + 8B7A4AA32EB56A3300B07840 /* CACFPlugIn.h in Headers */, + 8B7A4A662EB56A3300B07840 /* CAAudioBufferList.h in Headers */, + 8B7A4A7E2EB56A3300B07840 /* CAAUMIDIMapManager.h in Headers */, + 8B7A4AD12EB56A3400B07840 /* AUEffectBase.h in Headers */, + 8B7A4A6D2EB56A3300B07840 /* CACFDictionary.h in Headers */, + 8B7A4ACE2EB56A3400B07840 /* AUScopeElement.h in Headers */, + 8B7A4A9E2EB56A3300B07840 /* CAComponentDescription.h in Headers */, + 8B7A4AD42EB56A3400B07840 /* AUSilentTimeout.h in Headers */, + 8B7A4A962EB56A3300B07840 /* CABufferList.h in Headers */, + 8B7A4AC82EB56A3300B07840 /* AUDispatch.h in Headers */, + 8B7A4ACC2EB56A3400B07840 /* AUOutputElement.h in Headers */, + 8B7A4A922EB56A3300B07840 /* CALogMacros.h in Headers */, + 8B7A4A862EB56A3300B07840 /* AUParamInfo.h in Headers */, + 8B7A4AA52EB56A3300B07840 /* CAMixMap.h in Headers */, + 8B7A4AB22EB56A3300B07840 /* CACFArray.h in Headers */, + 8B7A4A5A2EB56A3300B07840 /* CACFMachPort.h in Headers */, + 8B7A4A852EB56A3300B07840 /* CAAUMIDIMap.h in Headers */, + 8B7A4A5D2EB56A3300B07840 /* CADebugger.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 8D01CCC60486CAD60068D4B7 /* X2Buss */ = { + isa = PBXNativeTarget; + buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "X2Buss" */; + buildPhases = ( + 8D01CCC70486CAD60068D4B7 /* Headers */, + 8D01CCC90486CAD60068D4B7 /* Resources */, + 8D01CCCB0486CAD60068D4B7 /* Sources */, + 8D01CCCD0486CAD60068D4B7 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = X2Buss; + productInstallPath = "$(HOME)/Library/Bundles"; + productName = X2Buss; + productReference = 8D01CCD20486CAD60068D4B7 /* X2Buss.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 "X2Buss" */; + compatibilityVersion = "Xcode 3.1"; + developmentRegion = en; + hasScannedForEncodings = 1; + knownRegions = ( + de, + Base, + fr, + en, + ja, + ); + mainGroup = 089C166AFE841209C02AAC07 /* X2Buss */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 8D01CCC60486CAD60068D4B7 /* X2Buss */, + ); + }; +/* 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 = ( + 8B7A4A952EB56A3300B07840 /* AUOutputBL.cpp in Sources */, + 8B7A4ABA2EB56A3300B07840 /* CAAudioFileFormats.cpp in Sources */, + 8B7A4AAC2EB56A3300B07840 /* CAHostTimeBase.cpp in Sources */, + 8B7A4A842EB56A3300B07840 /* CAXException.cpp in Sources */, + 8B7A4AAE2EB56A3300B07840 /* CAAudioBufferList.cpp in Sources */, + 8B7A4A712EB56A3300B07840 /* CAFilePathUtils.cpp in Sources */, + 8B7A4A6F2EB56A3300B07840 /* CAAUParameter.cpp in Sources */, + 8B7A4A912EB56A3300B07840 /* CAAUMIDIMap.cpp in Sources */, + 8B7A4ABE2EB56A3300B07840 /* CAAudioValueRange.cpp in Sources */, + 8B7A4ACD2EB56A3400B07840 /* AUDispatch.cpp in Sources */, + 8B7A4A882EB56A3300B07840 /* CACFPreferences.cpp in Sources */, + 8B7A4ACB2EB56A3300B07840 /* AUPlugInDispatch.cpp in Sources */, + 8B7A4A6A2EB56A3300B07840 /* CAAUProcessor.cpp in Sources */, + 8B7A4A7F2EB56A3300B07840 /* CACFDictionary.cpp in Sources */, + 8B7A4AD32EB56A3400B07840 /* AUBaseHelper.cpp in Sources */, + 8B7A4AB82EB56A3300B07840 /* CADebugger.cpp in Sources */, + 8B7A4A8C2EB56A3300B07840 /* CAAudioChannelLayout.cpp in Sources */, + 8B7A4A8F2EB56A3300B07840 /* AUParamInfo.cpp in Sources */, + 8B7A4AAD2EB56A3300B07840 /* CAPersistence.cpp in Sources */, + 8B7A4AA12EB56A3300B07840 /* CADebugPrintf.cpp in Sources */, + 8B7A4AD62EB56A3400B07840 /* AUTimestampGenerator.cpp in Sources */, + 8B7A4AA92EB56A3300B07840 /* CAStreamBasicDescription.cpp in Sources */, + 8B7A4A792EB56A3300B07840 /* CAAUMIDIMapManager.cpp in Sources */, + 8B7A4AA42EB56A3300B07840 /* CASettingsStorage.cpp in Sources */, + 8B7A4AC92EB56A3300B07840 /* AUOutputElement.cpp in Sources */, + 8B7A4A752EB56A3300B07840 /* CAGuard.cpp in Sources */, + 8BA05A6B0720730100365D66 /* X2Buss.cpp in Sources */, + 8B7A4AB72EB56A3300B07840 /* CAMutex.cpp in Sources */, + 8B7A4AD02EB56A3400B07840 /* AUEffectBase.cpp in Sources */, + 8B7A4AB52EB56A3300B07840 /* CACFMachPort.cpp in Sources */, + 8B7A4AC42EB56A3300B07840 /* AUBase.cpp in Sources */, + 8B7A4A902EB56A3300B07840 /* CASharedLibrary.cpp in Sources */, + 8B7A4A772EB56A3300B07840 /* CACFDistributedNotification.cpp in Sources */, + 8B7A4A7A2EB56A3300B07840 /* CAComponentDescription.cpp in Sources */, + 8B7A4A812EB56A3300B07840 /* CACFString.cpp in Sources */, + 8B7A4AC12EB56A3300B07840 /* ComponentBase.cpp in Sources */, + 8B7A4AA22EB56A3300B07840 /* CARingBuffer.cpp in Sources */, + 8B7A4AC22EB56A3300B07840 /* AUScopeElement.cpp in Sources */, + 8B7A4ABF2EB56A3300B07840 /* CAAudioUnit.cpp in Sources */, + 8B7A4ABC2EB56A3300B07840 /* CACFArray.cpp in Sources */, + 8B7A4AB92EB56A3300B07840 /* CABundleLocker.cpp in Sources */, + 8B7A4AAB2EB56A3300B07840 /* CAProcess.cpp in Sources */, + 8B7A4A992EB56A3300B07840 /* CAStreamRangedDescription.cpp in Sources */, + 8B7A4A9A2EB56A3300B07840 /* CAPThread.cpp in Sources */, + 8B7A4A5C2EB56A3300B07840 /* CAComponent.cpp in Sources */, + 8B7A4A742EB56A3300B07840 /* CAAudioChannelLayoutObject.cpp in Sources */, + 8B7A4AAF2EB56A3300B07840 /* CAAudioTimeStamp.cpp in Sources */, + 8B7A4AB62EB56A3300B07840 /* CABufferList.cpp in Sources */, + 8B7A4A932EB56A3300B07840 /* CACFMessagePort.cpp in Sources */, + 8B7A4A9D2EB56A3300B07840 /* CAVectorUnit.cpp in Sources */, + 8B7A4ACF2EB56A3400B07840 /* AUInputElement.cpp in Sources */, + 8B7A4AD72EB56A3400B07840 /* AUBuffer.cpp in Sources */, + 8B7A4A7C2EB56A3300B07840 /* CADebugMacros.cpp in Sources */, + 8B7A4A5E2EB56A3300B07840 /* CACFNumber.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 089C167DFE841241C02AAC07 /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + 8B7A4ADB2EB56CAF00B07840 /* en */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; +/* 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 = X2Buss.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 = X2Buss; + 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 = X2Buss.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 = X2Buss; + 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 "X2Buss" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3E4BA244089833B7007656EC /* Debug */, + 3E4BA245089833B7007656EC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 3E4BA247089833B7007656EC /* Build configuration list for PBXProject "X2Buss" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3E4BA248089833B7007656EC /* Debug */, + 3E4BA249089833B7007656EC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; +/* End XCConfigurationList section */ + }; + rootObject = 089C1669FE841209C02AAC07 /* Project object */; +} diff --git a/plugins/MacSignedAU/X2Buss/X2Buss.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/plugins/MacSignedAU/X2Buss/X2Buss.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..919434a62 --- /dev/null +++ b/plugins/MacSignedAU/X2Buss/X2Buss.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/plugins/MacSignedAU/X2Buss/X2Buss.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/plugins/MacSignedAU/X2Buss/X2Buss.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..18d981003 --- /dev/null +++ b/plugins/MacSignedAU/X2Buss/X2Buss.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/plugins/MacSignedAU/X2Buss/X2Buss.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacSignedAU/X2Buss/X2Buss.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 000000000..54f6b4131 Binary files /dev/null and b/plugins/MacSignedAU/X2Buss/X2Buss.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/plugins/MacSignedAU/X2Buss/X2Buss.xcodeproj/xcshareddata/xcschemes/X2Buss.xcscheme b/plugins/MacSignedAU/X2Buss/X2Buss.xcodeproj/xcshareddata/xcschemes/X2Buss.xcscheme new file mode 100644 index 000000000..6db2a3f83 --- /dev/null +++ b/plugins/MacSignedAU/X2Buss/X2Buss.xcodeproj/xcshareddata/xcschemes/X2Buss.xcscheme @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/MacSignedAU/X2Buss/X2Buss.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist b/plugins/MacSignedAU/X2Buss/X2Buss.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 000000000..b8c5fbdee --- /dev/null +++ b/plugins/MacSignedAU/X2Buss/X2Buss.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,22 @@ + + + + + SchemeUserState + + X2Buss.xcscheme_^#shared#^_ + + orderHint + 0 + + + SuppressBuildableAutocreation + + 8D01CCC60486CAD60068D4B7 + + primary + + + + + diff --git a/plugins/MacSignedAU/X2Buss/X2BussVersion.h b/plugins/MacSignedAU/X2Buss/X2BussVersion.h new file mode 100755 index 000000000..8cfe2840f --- /dev/null +++ b/plugins/MacSignedAU/X2Buss/X2BussVersion.h @@ -0,0 +1,58 @@ +/* +* File: X2BussVersion.h +* +* Version: 1.0 +* +* Created: 10/31/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 __X2BussVersion_h__ +#define __X2BussVersion_h__ + + +#ifdef DEBUG + #define kX2BussVersion 0xFFFFFFFF +#else + #define kX2BussVersion 0x00010000 +#endif + +//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~// +#define X2Buss_COMP_MANF 'Dthr' +#define X2Buss_COMP_SUBTYPE 'x2bs' +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// + +#endif + diff --git a/plugins/MacSignedAU/X2Buss/en.lproj/InfoPlist.strings b/plugins/MacSignedAU/X2Buss/en.lproj/InfoPlist.strings new file mode 100755 index 000000000..3dd60f70d Binary files /dev/null and b/plugins/MacSignedAU/X2Buss/en.lproj/InfoPlist.strings differ diff --git a/plugins/MacSignedAU/X2Buss/version.plist b/plugins/MacSignedAU/X2Buss/version.plist new file mode 100755 index 000000000..11edf8a1b --- /dev/null +++ b/plugins/MacSignedAU/X2Buss/version.plist @@ -0,0 +1,16 @@ + + + + + BuildVersion + 3 + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1.0 + ProjectName + ${EXECUTABLE_NAME} + SourceVersion + 590000 + + diff --git a/plugins/MacSignedAU/kWoodRoom/English.lproj/InfoPlist.strings b/plugins/MacSignedAU/kWoodRoom/English.lproj/InfoPlist.strings new file mode 100755 index 000000000..8f574fc2d Binary files /dev/null and b/plugins/MacSignedAU/kWoodRoom/English.lproj/InfoPlist.strings differ diff --git a/plugins/MacSignedAU/kWoodRoom/Info.plist b/plugins/MacSignedAU/kWoodRoom/Info.plist new file mode 100755 index 000000000..12f0517b5 --- /dev/null +++ b/plugins/MacSignedAU/kWoodRoom/Info.plist @@ -0,0 +1,28 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + + CFBundleIdentifier + com.airwindows.audiounit.${PRODUCT_NAME:identifier} + CFBundleName + ${PROJECTNAMEASIDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0 + CFBundleSignature + Dthr + CFBundleVersion + 1.0 + CSResourcesFileMapped + + + diff --git a/plugins/MacSignedAU/kWoodRoom/StarterAU_Prefix.pch b/plugins/MacSignedAU/kWoodRoom/StarterAU_Prefix.pch new file mode 100755 index 000000000..c03b5f684 --- /dev/null +++ b/plugins/MacSignedAU/kWoodRoom/StarterAU_Prefix.pch @@ -0,0 +1,5 @@ +// +// Prefix header for all source files of the '«PROJECTNAMEASIDENTIFIER»' target in the '«PROJECTNAMEASIDENTIFIER»' project. +// + +#include diff --git a/plugins/MacSignedAU/kWoodRoom/kWoodRoom.cpp b/plugins/MacSignedAU/kWoodRoom/kWoodRoom.cpp new file mode 100755 index 000000000..9534c8b70 --- /dev/null +++ b/plugins/MacSignedAU/kWoodRoom/kWoodRoom.cpp @@ -0,0 +1,804 @@ +/* +* File: kWoodRoom.cpp +* +* Version: 1.0 +* +* Created: 11/1/25 +* +* Copyright: Copyright © 2025 Airwindows, Airwindows uses the MIT license +* +* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in +* consideration of your agreement to the following terms, and your use, installation, modification +* or redistribution of this Apple software constitutes acceptance of these terms. If you do +* not agree with these terms, please do not use, install, modify or redistribute this Apple +* software. +* +* In consideration of your agreement to abide by the following terms, and subject to these terms, +* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this +* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the +* Apple Software, with or without modifications, in source and/or binary forms; provided that if you +* redistribute the Apple Software in its entirety and without modifications, you must retain this +* notice and the following text and disclaimers in all such redistributions of the Apple Software. +* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to +* endorse or promote products derived from the Apple Software without specific prior written +* permission from Apple. Except as expressly stated in this notice, no other rights or +* licenses, express or implied, are granted by Apple herein, including but not limited to any +* patent rights that may be infringed by your derivative works or by other works in which the +* Apple Software may be incorporated. +* +* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR +* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY +* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE +* OR IN COMBINATION WITH YOUR PRODUCTS. +* +* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL +* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, +* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER +* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN +* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +*/ +/*============================================================================= + kWoodRoom.cpp + +=============================================================================*/ +#include "kWoodRoom.h" + + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +COMPONENT_ENTRY(kWoodRoom) + + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// kWoodRoom::kWoodRoom +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +kWoodRoom::kWoodRoom(AudioUnit component) + : AUEffectBase(component) +{ + CreateElements(); + Globals()->UseIndexedParameters(kNumberOfParameters); + SetParameter(kParam_A, kDefaultValue_ParamA ); + SetParameter(kParam_B, kDefaultValue_ParamB ); + SetParameter(kParam_C, kDefaultValue_ParamC ); + SetParameter(kParam_D, kDefaultValue_ParamD ); + SetParameter(kParam_E, kDefaultValue_ParamE ); + SetParameter(kParam_F, kDefaultValue_ParamF ); + +#if AU_DEBUG_DISPATCHER + mDebugDispatcher = new AUDebugDispatcher (this); +#endif + +} + + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// kWoodRoom::GetParameterValueStrings +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +ComponentResult kWoodRoom::GetParameterValueStrings(AudioUnitScope inScope, + AudioUnitParameterID inParameterID, + CFArrayRef * outStrings) +{ + + return kAudioUnitErr_InvalidProperty; +} + + + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// kWoodRoom::GetParameterInfo +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +ComponentResult kWoodRoom::GetParameterInfo(AudioUnitScope inScope, + AudioUnitParameterID inParameterID, + AudioUnitParameterInfo &outParameterInfo ) +{ + ComponentResult result = noErr; + + outParameterInfo.flags = kAudioUnitParameterFlag_IsWritable + | kAudioUnitParameterFlag_IsReadable; + + if (inScope == kAudioUnitScope_Global) { + switch(inParameterID) + { + case kParam_A: + AUBase::FillInParameterName (outParameterInfo, kParameterAName, false); + outParameterInfo.unit = kAudioUnitParameterUnit_Generic; + outParameterInfo.minValue = 0.0; + outParameterInfo.maxValue = 1.0; + outParameterInfo.defaultValue = kDefaultValue_ParamA; + break; + case kParam_B: + AUBase::FillInParameterName (outParameterInfo, kParameterBName, false); + outParameterInfo.unit = kAudioUnitParameterUnit_Generic; + outParameterInfo.minValue = 0.0; + outParameterInfo.maxValue = 1.0; + outParameterInfo.defaultValue = kDefaultValue_ParamB; + break; + case kParam_C: + AUBase::FillInParameterName (outParameterInfo, kParameterCName, false); + outParameterInfo.unit = kAudioUnitParameterUnit_Generic; + outParameterInfo.minValue = 0.0; + outParameterInfo.maxValue = 1.0; + outParameterInfo.defaultValue = kDefaultValue_ParamC; + break; + case kParam_D: + AUBase::FillInParameterName (outParameterInfo, kParameterDName, false); + outParameterInfo.unit = kAudioUnitParameterUnit_Generic; + outParameterInfo.minValue = 0.0; + outParameterInfo.maxValue = 1.0; + outParameterInfo.defaultValue = kDefaultValue_ParamD; + break; + case kParam_E: + AUBase::FillInParameterName (outParameterInfo, kParameterEName, false); + outParameterInfo.unit = kAudioUnitParameterUnit_Generic; + outParameterInfo.minValue = 0.0; + outParameterInfo.maxValue = 1.0; + outParameterInfo.defaultValue = kDefaultValue_ParamE; + break; + case kParam_F: + AUBase::FillInParameterName (outParameterInfo, kParameterFName, false); + outParameterInfo.unit = kAudioUnitParameterUnit_Generic; + outParameterInfo.minValue = 0.0; + outParameterInfo.maxValue = 1.0; + outParameterInfo.defaultValue = kDefaultValue_ParamF; + break; + default: + result = kAudioUnitErr_InvalidParameter; + break; + } + } else { + result = kAudioUnitErr_InvalidParameter; + } + + + + return result; +} + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// kWoodRoom::GetPropertyInfo +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +ComponentResult kWoodRoom::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 kWoodRoom::SupportedNumChannels(const AUChannelInfo ** outInfo) +{ + if (outInfo != NULL) + { + static AUChannelInfo info; + info.inChannels = 2; + info.outChannels = 2; + *outInfo = &info; + } + + return 1; +} + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// kWoodRoom::GetProperty +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +ComponentResult kWoodRoom::GetProperty( AudioUnitPropertyID inID, + AudioUnitScope inScope, + AudioUnitElement inElement, + void * outData ) +{ + return AUEffectBase::GetProperty (inID, inScope, inElement, outData); +} + +// kWoodRoom::Initialize +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +ComponentResult kWoodRoom::Initialize() +{ + ComponentResult result = AUEffectBase::Initialize(); + if (result == noErr) + Reset(kAudioUnitScope_Global, 0); + return result; +} + +#pragma mark ____kWoodRoomEffectKernel + + + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// kWoodRoom::kWoodRoomKernel::Reset() +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +ComponentResult kWoodRoom::Reset(AudioUnitScope inScope, AudioUnitElement inElement) +{ + for(int x = 0; x < d3A+2; x++) {a3AL[x] = 0.0; a3AR[x] = 0.0;} + for(int x = 0; x < d3B+2; x++) {a3BL[x] = 0.0; a3BR[x] = 0.0;} + for(int x = 0; x < d3C+2; x++) {a3CL[x] = 0.0; a3CR[x] = 0.0;} + for(int x = 0; x < d3D+2; x++) {a3DL[x] = 0.0; a3DR[x] = 0.0;} + for(int x = 0; x < d3E+2; x++) {a3EL[x] = 0.0; a3ER[x] = 0.0;} + for(int x = 0; x < d3F+2; x++) {a3FL[x] = 0.0; a3FR[x] = 0.0;} + for(int x = 0; x < d3G+2; x++) {a3GL[x] = 0.0; a3GR[x] = 0.0;} + for(int x = 0; x < d3H+2; x++) {a3HL[x] = 0.0; a3HR[x] = 0.0;} + for(int x = 0; x < d3I+2; x++) {a3IL[x] = 0.0; a3IR[x] = 0.0;} + c3AL = c3BL = c3CL = c3DL = c3EL = c3FL = c3GL = c3HL = c3IL = 1; + c3AR = c3BR = c3CR = c3DR = c3ER = c3FR = c3GR = c3HR = c3IR = 1; + + for(int x = 0; x < d6A+2; x++) {a6AL[x] = 0.0; a6AR[x] = 0.0;} + for(int x = 0; x < d6B+2; x++) {a6BL[x] = 0.0; a6BR[x] = 0.0;} + for(int x = 0; x < d6C+2; x++) {a6CL[x] = 0.0; a6CR[x] = 0.0;} + for(int x = 0; x < d6D+2; x++) {a6DL[x] = 0.0; a6DR[x] = 0.0;} + for(int x = 0; x < d6E+2; x++) {a6EL[x] = 0.0; a6ER[x] = 0.0;} + for(int x = 0; x < d6F+2; x++) {a6FL[x] = 0.0; a6FR[x] = 0.0;} + for(int x = 0; x < d6G+2; x++) {a6GL[x] = 0.0; a6GR[x] = 0.0;} + for(int x = 0; x < d6H+2; x++) {a6HL[x] = 0.0; a6HR[x] = 0.0;} + for(int x = 0; x < d6I+2; x++) {a6IL[x] = 0.0; a6IR[x] = 0.0;} + for(int x = 0; x < d6J+2; x++) {a6JL[x] = 0.0; a6JR[x] = 0.0;} + for(int x = 0; x < d6K+2; x++) {a6KL[x] = 0.0; a6KR[x] = 0.0;} + for(int x = 0; x < d6L+2; x++) {a6LL[x] = 0.0; a6LR[x] = 0.0;} + for(int x = 0; x < d6M+2; x++) {a6ML[x] = 0.0; a6MR[x] = 0.0;} + for(int x = 0; x < d6N+2; x++) {a6NL[x] = 0.0; a6NR[x] = 0.0;} + for(int x = 0; x < d6O+2; x++) {a6OL[x] = 0.0; a6OR[x] = 0.0;} + for(int x = 0; x < d6P+2; x++) {a6PL[x] = 0.0; a6PR[x] = 0.0;} + for(int x = 0; x < d6Q+2; x++) {a6QL[x] = 0.0; a6QR[x] = 0.0;} + for(int x = 0; x < d6R+2; x++) {a6RL[x] = 0.0; a6RR[x] = 0.0;} + for(int x = 0; x < d6S+2; x++) {a6SL[x] = 0.0; a6SR[x] = 0.0;} + for(int x = 0; x < d6T+2; x++) {a6TL[x] = 0.0; a6TR[x] = 0.0;} + for(int x = 0; x < d6U+2; x++) {a6UL[x] = 0.0; a6UR[x] = 0.0;} + for(int x = 0; x < d6V+2; x++) {a6VL[x] = 0.0; a6VR[x] = 0.0;} + for(int x = 0; x < d6W+2; x++) {a6WL[x] = 0.0; a6WR[x] = 0.0;} + for(int x = 0; x < d6X+2; x++) {a6XL[x] = 0.0; a6XR[x] = 0.0;} + for(int x = 0; x < d6Y+2; x++) {a6YL[x] = 0.0; a6YR[x] = 0.0;} + for(int x = 0; x < d6ZA+2; x++) {a6ZAL[x] = 0.0; a6ZAR[x] = 0.0;} + for(int x = 0; x < d6ZB+2; x++) {a6ZBL[x] = 0.0; a6ZBR[x] = 0.0;} + for(int x = 0; x < d6ZC+2; x++) {a6ZCL[x] = 0.0; a6ZCR[x] = 0.0;} + for(int x = 0; x < d6ZD+2; x++) {a6ZDL[x] = 0.0; a6ZDR[x] = 0.0;} + for(int x = 0; x < d6ZE+2; x++) {a6ZEL[x] = 0.0; a6ZER[x] = 0.0;} + for(int x = 0; x < d6ZF+2; x++) {a6ZFL[x] = 0.0; a6ZFR[x] = 0.0;} + for(int x = 0; x < d6ZG+2; x++) {a6ZGL[x] = 0.0; a6ZGR[x] = 0.0;} + for(int x = 0; x < d6ZH+2; x++) {a6ZHL[x] = 0.0; a6ZHR[x] = 0.0;} + for(int x = 0; x < d6ZI+2; x++) {a6ZIL[x] = 0.0; a6ZIR[x] = 0.0;} + for(int x = 0; x < d6ZJ+2; x++) {a6ZJL[x] = 0.0; a6ZJR[x] = 0.0;} + for(int x = 0; x < d6ZK+2; x++) {a6ZKL[x] = 0.0; a6ZKR[x] = 0.0;} + c6AL = c6BL = c6CL = c6DL = c6EL = c6FL = c6GL = c6HL = c6IL = 1; + c6JL = c6KL = c6LL = c6ML = c6NL = c6OL = c6PL = c6QL = c6RL = 1; + c6SL = c6TL = c6UL = c6VL = c6WL = c6XL = c6YL = c6ZAL = c6ZBL = 1; + c6ZCL = c6ZDL = c6ZEL = c6ZFL = c6ZGL = c6ZHL = c6ZIL = c6ZJL = c6ZKL = 1; + c6AR = c6BR = c6CR = c6DR = c6ER = c6FR = c6GR = c6HR = c6IR = 1; + c6JR = c6KR = c6LR = c6MR = c6NR = c6OR = c6PR = c6QR = c6RR = 1; + c6SR = c6TR = c6UR = c6VR = c6WR = c6XR = c6YR = c6ZAR = c6ZBR = 1; + c6ZCR = c6ZDR = c6ZER = c6ZFR = c6ZGR = c6ZHR = c6ZIR = c6ZJR = c6ZKR = 1; + f6AL = f6BL = f6CL = f6DL = f6EL = f6FL = 0.0; + f6FR = f6LR = f6RR = f6XR = f6ZER = f6ZKR = 0.0; + avg6L = avg6R = 0.0; + + for (int x = 0; x < bez_total; x++) { + bez[x] = 0.0; + bezF[x] = 0.0; + } + bez[bez_cycle] = 1.0; + bezF[bez_cycle] = 1.0; + + fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX; + fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX; + return noErr; +} + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// kWoodRoom::ProcessBufferLists +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +OSStatus kWoodRoom::ProcessBufferLists(AudioUnitRenderActionFlags & ioActionFlags, + const AudioBufferList & inBuffer, + AudioBufferList & outBuffer, + UInt32 inFramesToProcess) +{ + Float32 * inputL = (Float32*)(inBuffer.mBuffers[0].mData); + Float32 * inputR = (Float32*)(inBuffer.mBuffers[1].mData); + Float32 * outputL = (Float32*)(outBuffer.mBuffers[0].mData); + Float32 * outputR = (Float32*)(outBuffer.mBuffers[1].mData); + UInt32 nSampleFrames = inFramesToProcess; + double overallscale = 1.0; + overallscale /= 44100.0; + overallscale *= GetSampleRate(); + + double fdb6ck = (0.0009765625+0.0009765625+0.001953125)*0.3333333; + double reg6n = (1.0-pow(1.0-GetParameter( kParam_A ),1.618033988749894))*fdb6ck; + //start this but pad it in the loop by volume of output? + + double derez = GetParameter( kParam_B )*2.0; + bool stepped = true; // Revised Bezier Undersampling + if (derez > 1.0) { // has full rez at center, stepped + stepped = false; // to left, continuous to right + derez = 1.0-(derez-1.0); + } //if it's set up like that it's the revised algorithm + derez = fmin(fmax(derez/overallscale,0.0005),1.0); + int bezFraction = (int)(1.0/derez); + double bezTrim = (double)bezFraction/(bezFraction+1.0); + if (stepped) { //this hard-locks derez to exact subdivisions of 1.0 + derez = 1.0 / bezFraction; + bezTrim = 1.0-(derez*bezTrim); + } else { //this makes it match the 1.0 case using stepped + derez /= (2.0/pow(overallscale,0.5-((overallscale-1.0)*0.0375))); + bezTrim = 1.0-pow(derez*0.5,1.0/(derez*0.5)); + } //the revision more accurately connects the bezier curves + + double derezFreq = GetParameter( kParam_C )*2.0; + bool steppedFreq = true; // Revised Bezier Undersampling + if (derezFreq > 1.0) { // has full rez at center, stepped + steppedFreq = false; // to left, continuous to right + derezFreq = 1.0-(derezFreq-1.0); + } //if it's set up like that it's the revised algorithm + derezFreq = fmin(fmax(derezFreq,0.0005),1.0); //note: no overallscale, already inside undersampling + int bezFreqFraction = (int)(1.0/derezFreq); + double bezFreqTrim = (double)bezFreqFraction/(bezFreqFraction+1.0); + if (steppedFreq) { //this hard-locks derez to exact subdivisions of 1.0 + derezFreq = 1.0 / bezFreqFraction; + bezFreqTrim = 1.0-(derezFreq*bezFreqTrim); + } else { //this makes it match the 1.0 case using stepped + bezFreqTrim = 1.0-pow(derezFreq*0.5,1.0/(derezFreq*0.5)); + } //the revision more accurately connects the bezier curves + + double earlyLoudness = GetParameter( kParam_D )*2.0; + int start = (int)(GetParameter( kParam_E ) * 27.0); + int ld3G = early[start]; + int ld3H = early[start+1]; + int ld3D = early[start+2]; + int ld3A = early[start+3]; + int ld3E = early[start+4]; + int ld3I = early[start+5]; + int ld3F = early[start+6]; + int ld3B = early[start+7]; + int ld3C = early[start+8]; + double wet = GetParameter( kParam_F ); + + while (nSampleFrames-- > 0) { + double inputSampleL = *inputL; + double inputSampleR = *inputR; + if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17; + if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17; + double drySampleL = inputSampleL; + double drySampleR = inputSampleR; + + bez[bez_cycle] += derez; + bez[bez_SampL] += ((inputSampleL+bez[bez_InL]) * derez); + bez[bez_SampR] += ((inputSampleR+bez[bez_InR]) * derez); + bez[bez_InL] = inputSampleL; bez[bez_InR] = inputSampleR; + if (bez[bez_cycle] > 1.0) { //hit the end point and we do a reverb sample + if (stepped) bez[bez_cycle] = 0.0; + else bez[bez_cycle] -= 1.0; + + inputSampleL = (bez[bez_SampL]+bez[bez_AvgInSampL])*0.5; + bez[bez_AvgInSampL] = bez[bez_SampL]; + inputSampleR = (bez[bez_SampR]+bez[bez_AvgInSampR])*0.5; + bez[bez_AvgInSampR] = bez[bez_SampR]; + + a3AL[c3AL] = inputSampleL;// + (f3AL * reg3n); + a3BL[c3BL] = inputSampleL;// + (f3BL * reg3n); + a3CL[c3CL] = inputSampleL;// + (f3CL * reg3n); + + a3CR[c3CR] = inputSampleR;// + (f3CR * reg3n); + a3FR[c3FR] = inputSampleR;// + (f3FR * reg3n); + a3IR[c3IR] = inputSampleR;// + (f3IR * reg3n); + + c3AL++; if (c3AL < 0 || c3AL > ld3A) c3AL = 0; + c3BL++; if (c3BL < 0 || c3BL > ld3B) c3BL = 0; + c3CL++; if (c3CL < 0 || c3CL > ld3C) c3CL = 0; + c3CR++; if (c3CR < 0 || c3CR > ld3C) c3CR = 0; + c3FR++; if (c3FR < 0 || c3FR > ld3F) c3FR = 0; + c3IR++; if (c3IR < 0 || c3IR > ld3I) c3IR = 0; + + double o3AL = a3AL[c3AL-((c3AL > ld3A)?c3AL+1:0)]; + double o3BL = a3BL[c3BL-((c3BL > ld3B)?c3BL+1:0)]; + double o3CL = a3CL[c3CL-((c3CL > ld3C)?c3CL+1:0)]; + double o3CR = a3CR[c3CR-((c3CR > ld3C)?c3CR+1:0)]; + double o3FR = a3FR[c3FR-((c3FR > ld3F)?c3FR+1:0)]; + double o3IR = a3IR[c3IR-((c3IR > ld3I)?c3IR+1:0)]; + + a3DL[c3DL] = (((o3BL + o3CL) * -2.0) + o3AL); + a3EL[c3EL] = (((o3AL + o3CL) * -2.0) + o3BL); + a3FL[c3FL] = (((o3AL + o3BL) * -2.0) + o3CL); + a3BR[c3BR] = (((o3FR + o3IR) * -2.0) + o3CR); + a3ER[c3ER] = (((o3CR + o3IR) * -2.0) + o3FR); + a3HR[c3HR] = (((o3CR + o3FR) * -2.0) + o3IR); + + c3DL++; if (c3DL < 0 || c3DL > ld3D) c3DL = 0; + c3EL++; if (c3EL < 0 || c3EL > ld3E) c3EL = 0; + c3FL++; if (c3FL < 0 || c3FL > ld3F) c3FL = 0; + c3BR++; if (c3BR < 0 || c3BR > ld3B) c3BR = 0; + c3ER++; if (c3ER < 0 || c3ER > ld3E) c3ER = 0; + c3HR++; if (c3HR < 0 || c3HR > ld3H) c3HR = 0; + + double o3DL = a3DL[c3DL-((c3DL > ld3D)?c3DL+1:0)]; + double o3EL = a3EL[c3EL-((c3EL > ld3E)?c3EL+1:0)]; + double o3FL = a3FL[c3FL-((c3FL > ld3F)?c3FL+1:0)]; + double o3BR = a3BR[c3BR-((c3BR > ld3B)?c3BR+1:0)]; + double o3ER = a3ER[c3ER-((c3ER > ld3E)?c3ER+1:0)]; + double o3HR = a3HR[c3HR-((c3HR > ld3H)?c3HR+1:0)]; + + a3GL[c3GL] = (((o3EL + o3FL) * -2.0) + o3DL); + a3HL[c3HL] = (((o3DL + o3FL) * -2.0) + o3EL); + a3IL[c3IL] = (((o3DL + o3EL) * -2.0) + o3FL); + a3AR[c3AR] = (((o3ER + o3HR) * -2.0) + o3BR); + a3DR[c3DR] = (((o3BR + o3HR) * -2.0) + o3ER); + a3GR[c3GR] = (((o3BR + o3ER) * -2.0) + o3HR); + + c3GL++; if (c3GL < 0 || c3GL > ld3G) c3GL = 0; + c3HL++; if (c3HL < 0 || c3HL > ld3H) c3HL = 0; + c3IL++; if (c3IL < 0 || c3IL > ld3I) c3IL = 0; + c3AR++; if (c3AR < 0 || c3AR > ld3A) c3AR = 0; + c3DR++; if (c3DR < 0 || c3DR > ld3D) c3DR = 0; + c3GR++; if (c3GR < 0 || c3GR > ld3G) c3GR = 0; + + double o3GL = a3GL[c3GL-((c3GL > ld3G)?c3GL+1:0)]; + double o3HL = a3HL[c3HL-((c3HL > ld3H)?c3HL+1:0)]; + double o3IL = a3IL[c3IL-((c3IL > ld3I)?c3IL+1:0)]; + double o3AR = a3AR[c3AR-((c3AR > ld3A)?c3AR+1:0)]; + double o3DR = a3DR[c3DR-((c3DR > ld3D)?c3DR+1:0)]; + double o3GR = a3GR[c3GR-((c3GR > ld3G)?c3GR+1:0)]; + + double inputSampleL = (o3GL + o3HL + o3IL)*0.03125; + double inputSampleR = (o3AR + o3DR + o3GR)*0.03125; + + bezF[bez_cycle] += derezFreq; + bezF[bez_SampL] += ((inputSampleL+bezF[bez_InL]) * derezFreq); + bezF[bez_SampR] += ((inputSampleL+bezF[bez_InR]) * derezFreq); + bezF[bez_InL] = inputSampleL; bezF[bez_InR] = inputSampleR; + if (bezF[bez_cycle] > 1.0) { //hit the end point and we do a filter sample + if (steppedFreq) bezF[bez_cycle] = 0.0; + else bezF[bez_cycle] -= 1.0; + bezF[bez_CL] = bezF[bez_BL]; + bezF[bez_BL] = bezF[bez_AL]; + bezF[bez_AL] = (bezF[bez_SampL]+bezF[bez_AvgInSampL])*0.5; + bezF[bez_AvgInSampL] = bezF[bez_SampL]; bezF[bez_SampL] = 0.0; + bezF[bez_CR] = bezF[bez_BR]; + bezF[bez_BR] = bezF[bez_AR]; + bezF[bez_AR] = (bezF[bez_SampR]+bezF[bez_AvgInSampR])*0.5; + bezF[bez_AvgInSampR] = bezF[bez_SampR]; bezF[bez_SampR] = 0.0; + } + double X = bezF[bez_cycle]*bezFreqTrim; + double CBLfreq = (bezF[bez_CL]*(1.0-X))+(bezF[bez_BL]*X); + double BALfreq = (bezF[bez_BL]*(1.0-X))+(bezF[bez_AL]*X); + double CBALfreq = (bezF[bez_BL]+(CBLfreq*(1.0-X))+(BALfreq*X))*0.125; + double CBRfreq = (bezF[bez_CR]*(1.0-X))+(bezF[bez_BR]*X); + double BARfreq = (bezF[bez_BR]*(1.0-X))+(bezF[bez_AR]*X); + double CBARfreq = (bezF[bez_BR]+(CBRfreq*(1.0-X))+(BARfreq*X))*0.125; + inputSampleL = CBALfreq+bezF[bez_AvgOutSampL]; + bezF[bez_AvgOutSampL] = CBALfreq; + inputSampleR = CBARfreq+bezF[bez_AvgOutSampR]; + bezF[bez_AvgOutSampR] = CBARfreq; + + double earlyReflectionL = inputSampleL; + double earlyReflectionR = inputSampleR; //kWoodRoom has filtered early reflections + + a6AL[c6AL] = inputSampleL + (f6BL * reg6n); + a6BL[c6BL] = inputSampleL + (f6CL * reg6n); + a6CL[c6CL] = inputSampleL + (f6DL * reg6n); + a6DL[c6DL] = inputSampleL + (f6EL * reg6n); + a6EL[c6EL] = inputSampleL + (f6FL * reg6n); + a6FL[c6FL] = inputSampleL + (f6AL * reg6n); + + c6AL++; if (c6AL < 0 || c6AL > d6A) c6AL = 0; + c6BL++; if (c6BL < 0 || c6BL > d6B) c6BL = 0; + c6CL++; if (c6CL < 0 || c6CL > d6C) c6CL = 0; + c6DL++; if (c6DL < 0 || c6DL > d6D) c6DL = 0; + c6EL++; if (c6EL < 0 || c6EL > d6E) c6EL = 0; + c6FL++; if (c6FL < 0 || c6FL > d6F) c6FL = 0; + + double o6AL = a6AL[c6AL-((c6AL > d6A)?d6A+1:0)]; + double o6BL = a6BL[c6BL-((c6BL > d6B)?d6B+1:0)]; + double o6CL = a6CL[c6CL-((c6CL > d6C)?d6C+1:0)]; + double o6DL = a6DL[c6DL-((c6DL > d6D)?d6D+1:0)]; + double o6EL = a6EL[c6EL-((c6EL > d6E)?d6E+1:0)]; + double o6FL = a6FL[c6FL-((c6FL > d6F)?d6F+1:0)]; + + a6FR[c6FR] = inputSampleR + (f6LR * reg6n); + a6LR[c6LR] = inputSampleR + (f6RR * reg6n); + a6RR[c6RR] = inputSampleR + (f6XR * reg6n); + a6XR[c6XR] = inputSampleR + (f6ZER * reg6n); + a6ZER[c6ZER] = inputSampleR + (f6ZKR * reg6n); + a6ZKR[c6ZKR] = inputSampleR + (f6FR * reg6n); + + c6FR++; if (c6FR < 0 || c6FR > d6F) c6FR = 0; + c6LR++; if (c6LR < 0 || c6LR > d6L) c6LR = 0; + c6RR++; if (c6RR < 0 || c6RR > d6R) c6RR = 0; + c6XR++; if (c6XR < 0 || c6XR > d6X) c6XR = 0; + c6ZER++; if (c6ZER < 0 || c6ZER > d6ZE) c6ZER = 0; + c6ZKR++; if (c6ZKR < 0 || c6ZKR > d6ZK) c6ZKR = 0; + + double o6FR = a6FR[c6FR-((c6FR > d6F)?d6F+1:0)]; + double o6LR = a6LR[c6LR-((c6LR > d6L)?d6L+1:0)]; + double o6RR = a6RR[c6RR-((c6RR > d6R)?d6R+1:0)]; + double o6XR = a6XR[c6XR-((c6XR > d6X)?d6X+1:0)]; + double o6ZER = a6ZER[c6ZER-((c6ZER > d6ZE)?d6ZE+1:0)]; + double o6ZKR = a6ZKR[c6ZKR-((c6ZKR > d6ZK)?d6ZK+1:0)]; + + //-------- one + + a6GL[c6GL] = ((o6AL*2.0) - (o6BL + o6CL + o6DL + o6EL + o6FL)); + a6HL[c6HL] = ((o6BL*2.0) - (o6AL + o6CL + o6DL + o6EL + o6FL)); + a6IL[c6IL] = ((o6CL*2.0) - (o6AL + o6BL + o6DL + o6EL + o6FL)); + a6JL[c6JL] = ((o6DL*2.0) - (o6AL + o6BL + o6CL + o6EL + o6FL)); + a6KL[c6KL] = ((o6EL*2.0) - (o6AL + o6BL + o6CL + o6DL + o6FL)); + a6LL[c6LL] = ((o6FL*2.0) - (o6AL + o6BL + o6CL + o6DL + o6EL)); + + c6GL++; if (c6GL < 0 || c6GL > d6G) c6GL = 0; + c6HL++; if (c6HL < 0 || c6HL > d6H) c6HL = 0; + c6IL++; if (c6IL < 0 || c6IL > d6I) c6IL = 0; + c6JL++; if (c6JL < 0 || c6JL > d6J) c6JL = 0; + c6KL++; if (c6KL < 0 || c6KL > d6K) c6KL = 0; + c6LL++; if (c6LL < 0 || c6LL > d6L) c6LL = 0; + + double o6GL = a6GL[c6GL-((c6GL > d6G)?d6G+1:0)]; + double o6HL = a6HL[c6HL-((c6HL > d6H)?d6H+1:0)]; + double o6IL = a6IL[c6IL-((c6IL > d6I)?d6I+1:0)]; + double o6JL = a6JL[c6JL-((c6JL > d6J)?d6J+1:0)]; + double o6KL = a6KL[c6KL-((c6KL > d6K)?d6K+1:0)]; + double o6LL = a6LL[c6LL-((c6LL > d6L)?d6L+1:0)]; + + a6ER[c6ER] = ((o6FR*2.0) - (o6LR + o6RR + o6XR + o6ZER + o6ZKR)); + a6KR[c6KR] = ((o6LR*2.0) - (o6FR + o6RR + o6XR + o6ZER + o6ZKR)); + a6QR[c6QR] = ((o6RR*2.0) - (o6FR + o6LR + o6XR + o6ZER + o6ZKR)); + a6WR[c6WR] = ((o6XR*2.0) - (o6FR + o6LR + o6RR + o6ZER + o6ZKR)); + a6ZDR[c6ZDR] = ((o6ZER*2.0) - (o6FR + o6LR + o6RR + o6XR + o6ZKR)); + a6ZJR[c6ZJR] = ((o6ZKR*2.0) - (o6FR + o6LR + o6RR + o6XR + o6ZER)); + + c6ER++; if (c6ER < 0 || c6ER > d6E) c6ER = 0; + c6KR++; if (c6KR < 0 || c6KR > d6K) c6KR = 0; + c6QR++; if (c6QR < 0 || c6QR > d6Q) c6QR = 0; + c6WR++; if (c6WR < 0 || c6WR > d6W) c6WR = 0; + c6ZDR++; if (c6ZDR < 0 || c6ZDR > d6ZD) c6ZDR = 0; + c6ZJR++; if (c6ZJR < 0 || c6ZJR > d6ZJ) c6ZJR = 0; + + double o6ER = a6ER[c6ER-((c6ER > d6E)?d6E+1:0)]; + double o6KR = a6KR[c6KR-((c6KR > d6K)?d6K+1:0)]; + double o6QR = a6QR[c6QR-((c6QR > d6Q)?d6Q+1:0)]; + double o6WR = a6WR[c6WR-((c6WR > d6W)?d6W+1:0)]; + double o6ZDR = a6ZDR[c6ZDR-((c6ZDR > d6ZD)?d6ZD+1:0)]; + double o6ZJR = a6ZJR[c6ZJR-((c6ZJR > d6ZJ)?d6ZJ+1:0)]; + + //-------- two + + a6ML[c6ML] = ((o6GL*2.0) - (o6HL + o6IL + o6JL + o6KL + o6LL)); + a6NL[c6NL] = ((o6HL*2.0) - (o6GL + o6IL + o6JL + o6KL + o6LL)); + a6OL[c6OL] = ((o6IL*2.0) - (o6GL + o6HL + o6JL + o6KL + o6LL)); + a6PL[c6PL] = ((o6JL*2.0) - (o6GL + o6HL + o6IL + o6KL + o6LL)); + a6QL[c6QL] = ((o6KL*2.0) - (o6GL + o6HL + o6IL + o6JL + o6LL)); + a6RL[c6RL] = ((o6LL*2.0) - (o6GL + o6HL + o6IL + o6JL + o6KL)); + + c6ML++; if (c6ML < 0 || c6ML > d6M) c6ML = 0; + c6NL++; if (c6NL < 0 || c6NL > d6N) c6NL = 0; + c6OL++; if (c6OL < 0 || c6OL > d6O) c6OL = 0; + c6PL++; if (c6PL < 0 || c6PL > d6P) c6PL = 0; + c6QL++; if (c6QL < 0 || c6QL > d6Q) c6QL = 0; + c6RL++; if (c6RL < 0 || c6RL > d6R) c6RL = 0; + + double o6ML = a6ML[c6ML-((c6ML > d6M)?d6M+1:0)]; + double o6NL = a6NL[c6NL-((c6NL > d6N)?d6N+1:0)]; + double o6OL = a6OL[c6OL-((c6OL > d6O)?d6O+1:0)]; + double o6PL = a6PL[c6PL-((c6PL > d6P)?d6P+1:0)]; + double o6QL = a6QL[c6QL-((c6QL > d6Q)?d6Q+1:0)]; + double o6RL = a6RL[c6RL-((c6RL > d6R)?d6R+1:0)]; + + a6DR[c6DR] = ((o6ER*2.0) - (o6KR + o6QR + o6WR + o6ZDR + o6ZJR)); + a6JR[c6JR] = ((o6KR*2.0) - (o6ER + o6QR + o6WR + o6ZDR + o6ZJR)); + a6PR[c6PR] = ((o6QR*2.0) - (o6ER + o6KR + o6WR + o6ZDR + o6ZJR)); + a6VR[c6VR] = ((o6WR*2.0) - (o6ER + o6KR + o6QR + o6ZDR + o6ZJR)); + a6ZCR[c6ZCR] = ((o6ZDR*2.0) - (o6ER + o6KR + o6QR + o6WR + o6ZJR)); + a6ZIR[c6ZIR] = ((o6ZJR*2.0) - (o6ER + o6KR + o6QR + o6WR + o6ZDR)); + + c6DR++; if (c6DR < 0 || c6DR > d6D) c6DR = 0; + c6JR++; if (c6JR < 0 || c6JR > d6J) c6JR = 0; + c6PR++; if (c6PR < 0 || c6PR > d6P) c6PR = 0; + c6VR++; if (c6VR < 0 || c6VR > d6V) c6VR = 0; + c6ZCR++; if (c6ZCR < 0 || c6ZCR > d6ZC) c6ZCR = 0; + c6ZIR++; if (c6ZIR < 0 || c6ZIR > d6ZI) c6ZIR = 0; + + double o6DR = a6DR[c6DR-((c6DR > d6D)?d6D+1:0)]; + double o6JR = a6JR[c6JR-((c6JR > d6J)?d6J+1:0)]; + double o6PR = a6PR[c6PR-((c6PR > d6P)?d6P+1:0)]; + double o6VR = a6VR[c6VR-((c6VR > d6V)?d6V+1:0)]; + double o6ZCR = a6ZCR[c6ZCR-((c6ZCR > d6ZC)?d6ZC+1:0)]; + double o6ZIR = a6ZIR[c6ZIR-((c6ZIR > d6ZI)?d6ZI+1:0)]; + + //-------- three + + a6SL[c6SL] = ((o6ML*2.0) - (o6NL + o6OL + o6PL + o6QL + o6RL)); + a6TL[c6TL] = ((o6NL*2.0) - (o6ML + o6OL + o6PL + o6QL + o6RL)); + a6UL[c6UL] = ((o6OL*2.0) - (o6ML + o6NL + o6PL + o6QL + o6RL)); + a6VL[c6VL] = ((o6PL*2.0) - (o6ML + o6NL + o6OL + o6QL + o6RL)); + a6WL[c6WL] = ((o6QL*2.0) - (o6ML + o6NL + o6OL + o6PL + o6RL)); + a6XL[c6XL] = ((o6RL*2.0) - (o6ML + o6NL + o6OL + o6PL + o6QL)); + + c6SL++; if (c6SL < 0 || c6SL > d6S) c6SL = 0; + c6TL++; if (c6TL < 0 || c6TL > d6T) c6TL = 0; + c6UL++; if (c6UL < 0 || c6UL > d6U) c6UL = 0; + c6VL++; if (c6VL < 0 || c6VL > d6V) c6VL = 0; + c6WL++; if (c6WL < 0 || c6WL > d6W) c6WL = 0; + c6XL++; if (c6XL < 0 || c6XL > d6X) c6XL = 0; + + double o6SL = a6SL[c6SL-((c6SL > d6S)?d6S+1:0)]; + double o6TL = a6TL[c6TL-((c6TL > d6T)?d6T+1:0)]; + double o6UL = a6UL[c6UL-((c6UL > d6U)?d6U+1:0)]; + double o6VL = a6VL[c6VL-((c6VL > d6V)?d6V+1:0)]; + double o6WL = a6WL[c6WL-((c6WL > d6W)?d6W+1:0)]; + double o6XL = a6XL[c6XL-((c6XL > d6X)?d6X+1:0)]; + + a6CR[c6CR] = ((o6DR*2.0) - (o6JR + o6PR + o6VR + o6ZCR + o6ZIR)); + a6IR[c6IR] = ((o6JR*2.0) - (o6DR + o6PR + o6VR + o6ZCR + o6ZIR)); + a6OR[c6OR] = ((o6PR*2.0) - (o6DR + o6JR + o6VR + o6ZCR + o6ZIR)); + a6UR[c6UR] = ((o6VR*2.0) - (o6DR + o6JR + o6PR + o6ZCR + o6ZIR)); + a6ZBR[c6ZBR] = ((o6ZCR*2.0) - (o6DR + o6JR + o6PR + o6VR + o6ZIR)); + a6ZHR[c6ZHR] = ((o6ZIR*2.0) - (o6DR + o6JR + o6PR + o6VR + o6ZCR)); + + c6CR++; if (c6CR < 0 || c6CR > d6C) c6CR = 0; + c6IR++; if (c6IR < 0 || c6IR > d6I) c6IR = 0; + c6OR++; if (c6OR < 0 || c6OR > d6O) c6OR = 0; + c6UR++; if (c6UR < 0 || c6UR > d6U) c6UR = 0; + c6ZBR++; if (c6ZBR < 0 || c6ZBR > d6ZB) c6ZBR = 0; + c6ZHR++; if (c6ZHR < 0 || c6ZHR > d6ZH) c6ZHR = 0; + + double o6CR = a6CR[c6CR-((c6CR > d6C)?d6C+1:0)]; + double o6IR = a6IR[c6IR-((c6IR > d6I)?d6I+1:0)]; + double o6OR = a6OR[c6OR-((c6OR > d6O)?d6O+1:0)]; + double o6UR = a6UR[c6UR-((c6UR > d6U)?d6U+1:0)]; + double o6ZBR = a6ZBR[c6ZBR-((c6ZBR > d6ZB)?d6ZB+1:0)]; + double o6ZHR = a6ZHR[c6ZHR-((c6ZHR > d6ZH)?d6ZH+1:0)]; + + //-------- four + + a6YL[c6YL] = ((o6SL*2.0) - (o6TL + o6UL + o6VL + o6WL + o6XL)); + a6ZAL[c6ZAL] = ((o6TL*2.0) - (o6SL + o6UL + o6VL + o6WL + o6XL)); + a6ZBL[c6ZBL] = ((o6UL*2.0) - (o6SL + o6TL + o6VL + o6WL + o6XL)); + a6ZCL[c6ZCL] = ((o6VL*2.0) - (o6SL + o6TL + o6UL + o6WL + o6XL)); + a6ZDL[c6ZDL] = ((o6WL*2.0) - (o6SL + o6TL + o6UL + o6VL + o6XL)); + a6ZEL[c6ZEL] = ((o6XL*2.0) - (o6SL + o6TL + o6UL + o6VL + o6WL)); + + c6YL++; if (c6YL < 0 || c6YL > d6Y) c6YL = 0; + c6ZAL++; if (c6ZAL < 0 || c6ZAL > d6ZA) c6ZAL = 0; + c6ZBL++; if (c6ZBL < 0 || c6ZBL > d6ZB) c6ZBL = 0; + c6ZCL++; if (c6ZCL < 0 || c6ZCL > d6ZC) c6ZCL = 0; + c6ZDL++; if (c6ZDL < 0 || c6ZDL > d6ZD) c6ZDL = 0; + c6ZEL++; if (c6ZEL < 0 || c6ZEL > d6ZE) c6ZEL = 0; + + double o6YL = a6YL[c6YL-((c6YL > d6Y)?d6Y+1:0)]; + double o6ZAL = a6ZAL[c6ZAL-((c6ZAL > d6ZA)?d6ZA+1:0)]; + double o6ZBL = a6ZBL[c6ZBL-((c6ZBL > d6ZB)?d6ZB+1:0)]; + double o6ZCL = a6ZCL[c6ZCL-((c6ZCL > d6ZC)?d6ZC+1:0)]; + double o6ZDL = a6ZDL[c6ZDL-((c6ZDL > d6ZD)?d6ZD+1:0)]; + double o6ZEL = a6ZEL[c6ZEL-((c6ZEL > d6ZE)?d6ZE+1:0)]; + + a6BR[c6BR] = ((o6CR*2.0) - (o6IR + o6OR + o6UR + o6ZBR + o6ZHR)); + a6HR[c6HR] = ((o6IR*2.0) - (o6CR + o6OR + o6UR + o6ZBR + o6ZHR)); + a6NR[c6NR] = ((o6OR*2.0) - (o6CR + o6IR + o6UR + o6ZBR + o6ZHR)); + a6TR[c6TR] = ((o6UR*2.0) - (o6CR + o6IR + o6OR + o6ZBR + o6ZHR)); + a6ZAR[c6ZAR] = ((o6ZBR*2.0) - (o6CR + o6IR + o6OR + o6UR + o6ZHR)); + a6ZGR[c6ZGR] = ((o6ZHR*2.0) - (o6CR + o6IR + o6OR + o6UR + o6ZBR)); + + c6BR++; if (c6BR < 0 || c6BR > d6B) c6BR = 0; + c6HR++; if (c6HR < 0 || c6HR > d6H) c6HR = 0; + c6NR++; if (c6NR < 0 || c6NR > d6N) c6NR = 0; + c6TR++; if (c6TR < 0 || c6TR > d6T) c6TR = 0; + c6ZBR++; if (c6ZBR < 0 || c6ZBR > d6ZB) c6ZBR = 0; + c6ZGR++; if (c6ZGR < 0 || c6ZGR > d6ZG) c6ZGR = 0; + + double o6BR = a6BR[c6BR-((c6BR > d6B)?d6B+1:0)]; + double o6HR = a6HR[c6HR-((c6HR > d6H)?d6H+1:0)]; + double o6NR = a6NR[c6NR-((c6NR > d6N)?d6N+1:0)]; + double o6TR = a6TR[c6TR-((c6TR > d6T)?d6T+1:0)]; + double o6ZAR = a6ZAR[c6ZAR-((c6ZAR > d6ZA)?d6ZA+1:0)]; + double o6ZGR = a6ZGR[c6ZGR-((c6ZGR > d6ZG)?d6ZG+1:0)]; + + //-------- five + + a6ZFL[c6ZFL] = ((o6YL*2.0) - (o6ZAL + o6ZBL + o6ZCL + o6ZDL + o6ZEL)); + a6ZGL[c6ZGL] = ((o6ZAL*2.0) - (o6YL + o6ZBL + o6ZCL + o6ZDL + o6ZEL)); + a6ZHL[c6ZHL] = ((o6ZBL*2.0) - (o6YL + o6ZAL + o6ZCL + o6ZDL + o6ZEL)); + a6ZIL[c6ZIL] = ((o6ZCL*2.0) - (o6YL + o6ZAL + o6ZBL + o6ZDL + o6ZEL)); + a6ZJL[c6ZJL] = ((o6ZDL*2.0) - (o6YL + o6ZAL + o6ZBL + o6ZCL + o6ZEL)); + a6ZKL[c6ZKL] = ((o6ZEL*2.0) - (o6YL + o6ZAL + o6ZBL + o6ZCL + o6ZDL)); + + c6ZFL++; if (c6ZFL < 0 || c6ZFL > d6ZF) c6ZFL = 0; + c6ZGL++; if (c6ZGL < 0 || c6ZGL > d6ZG) c6ZGL = 0; + c6ZHL++; if (c6ZHL < 0 || c6ZHL > d6ZH) c6ZHL = 0; + c6ZIL++; if (c6ZIL < 0 || c6ZIL > d6ZI) c6ZIL = 0; + c6ZJL++; if (c6ZJL < 0 || c6ZJL > d6ZJ) c6ZJL = 0; + c6ZKL++; if (c6ZKL < 0 || c6ZKL > d6ZK) c6ZKL = 0; + + double o6ZFL = a6ZFL[c6ZFL-((c6ZFL > d6ZF)?d6ZF+1:0)]; + double o6ZGL = a6ZGL[c6ZGL-((c6ZGL > d6ZG)?d6ZG+1:0)]; + double o6ZHL = a6ZHL[c6ZHL-((c6ZHL > d6ZH)?d6ZH+1:0)]; + double o6ZIL = a6ZIL[c6ZIL-((c6ZIL > d6ZI)?d6ZI+1:0)]; + double o6ZJL = a6ZJL[c6ZJL-((c6ZJL > d6ZJ)?d6ZJ+1:0)]; + double o6ZKL = a6ZKL[c6ZKL-((c6ZKL > d6ZK)?d6ZK+1:0)]; + + a6AR[c6AR] = ((o6BR*2.0) - (o6HR + o6NR + o6TR + o6ZAR + o6ZGR)); + a6GR[c6GR] = ((o6HR*2.0) - (o6BR + o6NR + o6TR + o6ZAR + o6ZGR)); + a6MR[c6MR] = ((o6NR*2.0) - (o6BR + o6HR + o6TR + o6ZAR + o6ZGR)); + a6SR[c6SR] = ((o6TR*2.0) - (o6BR + o6HR + o6NR + o6ZAR + o6ZGR)); + a6YR[c6YR] = ((o6ZAR*2.0) - (o6BR + o6HR + o6NR + o6TR + o6ZGR)); + a6ZFR[c6ZFR] = ((o6ZGR*2.0) - (o6BR + o6HR + o6NR + o6TR + o6ZAR)); + + c6AR++; if (c6AR < 0 || c6AR > d6A) c6AR = 0; + c6GR++; if (c6GR < 0 || c6GR > d6G) c6GR = 0; + c6MR++; if (c6MR < 0 || c6MR > d6M) c6MR = 0; + c6SR++; if (c6SR < 0 || c6SR > d6S) c6SR = 0; + c6YR++; if (c6YR < 0 || c6YR > d6Y) c6YR = 0; + c6ZFR++; if (c6ZFR < 0 || c6ZFR > d6ZF) c6ZFR = 0; + + double o6AR = a6AR[c6AR-((c6AR > d6A)?d6A+1:0)]; + double o6GR = a6GR[c6GR-((c6GR > d6G)?d6G+1:0)]; + double o6MR = a6MR[c6MR-((c6MR > d6M)?d6M+1:0)]; + double o6SR = a6SR[c6SR-((c6SR > d6S)?d6S+1:0)]; + double o6YR = a6YR[c6YR-((c6YR > d6Y)?d6Y+1:0)]; + double o6ZFR = a6ZFR[c6ZFR-((c6ZFR > d6ZF)?d6ZF+1:0)]; + + //-------- six + + f6AL = ((o6AR*2.0) - (o6GR + o6MR + o6SR + o6YR + o6ZFR)); + f6BL = ((o6GR*2.0) - (o6AR + o6MR + o6SR + o6YR + o6ZFR)); + f6CL = ((o6MR*2.0) - (o6AR + o6GR + o6SR + o6YR + o6ZFR)); + f6DL = ((o6SR*2.0) - (o6AR + o6GR + o6MR + o6YR + o6ZFR)); + f6EL = ((o6YR*2.0) - (o6AR + o6GR + o6MR + o6SR + o6ZFR)); + f6FL = ((o6ZFR*2.0) - (o6AR + o6GR + o6MR + o6SR + o6YR)); + + f6FR = ((o6ZFL*2.0) - (o6ZGL + o6ZHL + o6ZIL + o6ZJL + o6ZKL)); + f6LR = ((o6ZGL*2.0) - (o6ZFL + o6ZHL + o6ZIL + o6ZJL + o6ZKL)); + f6RR = ((o6ZHL*2.0) - (o6ZFL + o6ZGL + o6ZIL + o6ZJL + o6ZKL)); + f6XR = ((o6ZIL*2.0) - (o6ZFL + o6ZGL + o6ZHL + o6ZJL + o6ZKL)); + f6ZER = ((o6ZJL*2.0) - (o6ZFL + o6ZGL + o6ZHL + o6ZIL + o6ZKL)); + f6ZKR = ((o6ZKL*2.0) - (o6ZFL + o6ZGL + o6ZHL + o6ZIL + o6ZJL)); + + inputSampleL = (o6ZFL + o6ZGL + o6ZHL + o6ZIL + o6ZJL + o6ZKL)*0.001953125; + inputSampleR = (o6AR + o6GR + o6MR + o6SR + o6YR + o6ZFR)*0.001953125; + + f6AL = (f6AL+avg6L)*0.5; avg6L = f6AL; + f6FR = (f6FR+avg6R)*0.5; avg6R = f6FR; + //manipulating deep reverb tail for realism + + inputSampleL += (earlyReflectionL * earlyLoudness); + inputSampleR += (earlyReflectionR * earlyLoudness); + + bez[bez_CL] = bez[bez_BL]; + bez[bez_BL] = bez[bez_AL]; + bez[bez_AL] = inputSampleL; + bez[bez_SampL] = 0.0; + + bez[bez_CR] = bez[bez_BR]; + bez[bez_BR] = bez[bez_AR]; + bez[bez_AR] = inputSampleR; + bez[bez_SampR] = 0.0; + } + double X = bez[bez_cycle]*bezTrim; + double CBL = (bez[bez_CL]*(1.0-X))+(bez[bez_BL]*X); + double CBR = (bez[bez_CR]*(1.0-X))+(bez[bez_BR]*X); + double BAL = (bez[bez_BL]*(1.0-X))+(bez[bez_AL]*X); + double BAR = (bez[bez_BR]*(1.0-X))+(bez[bez_AR]*X); + double CBAL = (bez[bez_BL]+(CBL*(1.0-X))+(BAL*X))*-0.0625; + double CBAR = (bez[bez_BR]+(CBR*(1.0-X))+(BAR*X))*-0.0625; + inputSampleL = CBAL+bez[bez_AvgOutSampL]; bez[bez_AvgOutSampL] = CBAL; + inputSampleR = CBAR+bez[bez_AvgOutSampR]; bez[bez_AvgOutSampR] = CBAR; + + inputSampleL = (inputSampleL * wet)+(drySampleL * (1.0-wet)); + inputSampleR = (inputSampleR * wet)+(drySampleR * (1.0-wet)); + + //begin 32 bit stereo floating point dither + int expon; frexpf((float)inputSampleL, &expon); + fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5; + inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62)); + frexpf((float)inputSampleR, &expon); + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5; + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62)); + //end 32 bit stereo floating point dither + + *outputL = inputSampleL; + *outputR = inputSampleR; + //direct stereo out + + inputL += 1; + inputR += 1; + outputL += 1; + outputR += 1; + } + return noErr; +} \ No newline at end of file diff --git a/plugins/MacSignedAU/kWoodRoom/kWoodRoom.exp b/plugins/MacSignedAU/kWoodRoom/kWoodRoom.exp new file mode 100755 index 000000000..88f1eb3ab --- /dev/null +++ b/plugins/MacSignedAU/kWoodRoom/kWoodRoom.exp @@ -0,0 +1 @@ +_kWoodRoomEntry diff --git a/plugins/MacSignedAU/kWoodRoom/kWoodRoom.h b/plugins/MacSignedAU/kWoodRoom/kWoodRoom.h new file mode 100755 index 000000000..d0f061cf6 --- /dev/null +++ b/plugins/MacSignedAU/kWoodRoom/kWoodRoom.h @@ -0,0 +1,270 @@ +/* +* File: kWoodRoom.h +* +* Version: 1.0 +* +* Created: 11/1/25 +* +* Copyright: Copyright © 2025 Airwindows, Airwindows uses the MIT license +* +* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in +* consideration of your agreement to the following terms, and your use, installation, modification +* or redistribution of this Apple software constitutes acceptance of these terms. If you do +* not agree with these terms, please do not use, install, modify or redistribute this Apple +* software. +* +* In consideration of your agreement to abide by the following terms, and subject to these terms, +* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this +* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the +* Apple Software, with or without modifications, in source and/or binary forms; provided that if you +* redistribute the Apple Software in its entirety and without modifications, you must retain this +* notice and the following text and disclaimers in all such redistributions of the Apple Software. +* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to +* endorse or promote products derived from the Apple Software without specific prior written +* permission from Apple. Except as expressly stated in this notice, no other rights or +* licenses, express or implied, are granted by Apple herein, including but not limited to any +* patent rights that may be infringed by your derivative works or by other works in which the +* Apple Software may be incorporated. +* +* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR +* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY +* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE +* OR IN COMBINATION WITH YOUR PRODUCTS. +* +* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL +* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, +* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER +* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN +* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +*/ +#include "AUEffectBase.h" +#include "kWoodRoomVersion.h" + +#if AU_DEBUG_DISPATCHER + #include "AUDebugDispatcher.h" +#endif + + +#ifndef __kWoodRoom_h__ +#define __kWoodRoom_h__ + + +#pragma mark ____kWoodRoom Parameters + +// parameters +static const float kDefaultValue_ParamA = 0.5; +static const float kDefaultValue_ParamB = 0.5; +static const float kDefaultValue_ParamC = 0.25; +static const float kDefaultValue_ParamD = 0.5; +static const float kDefaultValue_ParamE = 0.5; +static const float kDefaultValue_ParamF = 0.5; + +static CFStringRef kParameterAName = CFSTR("Regen"); +static CFStringRef kParameterBName = CFSTR("Derez"); +static CFStringRef kParameterCName = CFSTR("Filter"); +static CFStringRef kParameterDName = CFSTR("EarlyRf"); +static CFStringRef kParameterEName = CFSTR("Positin"); +static CFStringRef kParameterFName = CFSTR("Dry/Wet"); + +enum { + kParam_A =0, + kParam_B =1, + kParam_C =2, + kParam_D =3, + kParam_E =4, + kParam_F =5, + //Add your parameters here... + kNumberOfParameters=6 +}; + +const int d3A = 581; const int d3B = 831; const int d3C = 832; +const int d3D = 574; const int d3E = 598; const int d3F = 685; +const int d3G = 499; const int d3H = 573; const int d3I = 655; +#define THREEBYTHREE true +const int d6A = 154; const int d6B = 832; const int d6C = 109; const int d6D = 685; const int d6E = 33; const int d6F = 12; const int d6G = 27; const int d6H = 30; const int d6I = 339; const int d6J = 499; const int d6K = 296; const int d6L = 169; const int d6M = 169; const int d6N = 831; const int d6O = 15; const int d6P = 411; const int d6Q = 238; const int d6R = 68; const int d6S = 0; const int d6T = 8; const int d6U = 655; const int d6V = 581; const int d6W = 465; const int d6X = 173; const int d6Y = 3; const int d6ZA = 96; const int d6ZB = 573; const int d6ZC = 243; const int d6ZD = 30; const int d6ZE = 188; const int d6ZF = 291; const int d6ZG = 11; const int d6ZH = 372; const int d6ZI = 574; const int d6ZJ = 100; const int d6ZK = 598; //1 to 90 ms, 249 seat club +#define SIXBYSIX true // 249seat154832109x6 on 2025-10-31 kWoodRoom +const int early[] = {0, 3, 8, 11, 12, 15, 27, 30, 30, 33, 68, 96, 100, 109, 154, 169, 169, 173, 188, 238, 243, 291, 296, 339, 372, 411, 465, 499, 573, 574, 581, 598, 655, 685, 831, 832}; + +#pragma mark ____kWoodRoom +class kWoodRoom : public AUEffectBase +{ +public: + kWoodRoom(AudioUnit component); +#if AU_DEBUG_DISPATCHER + virtual ~kWoodRoom () { 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 kkWoodRoomVersion; } + + private: + double a3AL[d3A+5]; + double a3BL[d3B+5]; + double a3CL[d3C+5]; + double a3DL[d3D+5]; + double a3EL[d3E+5]; + double a3FL[d3F+5]; + double a3GL[d3G+5]; + double a3HL[d3H+5]; + double a3IL[d3I+5]; + double a3AR[d3A+5]; + double a3BR[d3B+5]; + double a3CR[d3C+5]; + double a3DR[d3D+5]; + double a3ER[d3E+5]; + double a3FR[d3F+5]; + double a3GR[d3G+5]; + double a3HR[d3H+5]; + double a3IR[d3I+5]; + int c3AL,c3AR,c3BL,c3BR,c3CL,c3CR,c3DL,c3DR,c3EL,c3ER; + int c3FL,c3FR,c3GL,c3GR,c3HL,c3HR,c3IL,c3IR; + + double a6AL[d6A+5]; + double a6BL[d6B+5]; + double a6CL[d6C+5]; + double a6DL[d6D+5]; + double a6EL[d6E+5]; + double a6FL[d6F+5]; + double a6GL[d6G+5]; + double a6HL[d6H+5]; + double a6IL[d6I+5]; + double a6JL[d6J+5]; + double a6KL[d6K+5]; + double a6LL[d6L+5]; + double a6ML[d6M+5]; + double a6NL[d6N+5]; + double a6OL[d6O+5]; + double a6PL[d6P+5]; + double a6QL[d6Q+5]; + double a6RL[d6R+5]; + double a6SL[d6S+5]; + double a6TL[d6T+5]; + double a6UL[d6U+5]; + double a6VL[d6V+5]; + double a6WL[d6W+5]; + double a6XL[d6X+5]; + double a6YL[d6Y+5]; + double a6ZAL[d6ZA+5]; + double a6ZBL[d6ZB+5]; + double a6ZCL[d6ZC+5]; + double a6ZDL[d6ZD+5]; + double a6ZEL[d6ZE+5]; + double a6ZFL[d6ZF+5]; + double a6ZGL[d6ZG+5]; + double a6ZHL[d6ZH+5]; + double a6ZIL[d6ZI+5]; + double a6ZJL[d6ZJ+5]; + double a6ZKL[d6ZK+5]; + double a6AR[d6A+5]; + double a6BR[d6B+5]; + double a6CR[d6C+5]; + double a6DR[d6D+5]; + double a6ER[d6E+5]; + double a6FR[d6F+5]; + double a6GR[d6G+5]; + double a6HR[d6H+5]; + double a6IR[d6I+5]; + double a6JR[d6J+5]; + double a6KR[d6K+5]; + double a6LR[d6L+5]; + double a6MR[d6M+5]; + double a6NR[d6N+5]; + double a6OR[d6O+5]; + double a6PR[d6P+5]; + double a6QR[d6Q+5]; + double a6RR[d6R+5]; + double a6SR[d6S+5]; + double a6TR[d6T+5]; + double a6UR[d6U+5]; + double a6VR[d6V+5]; + double a6WR[d6W+5]; + double a6XR[d6X+5]; + double a6YR[d6Y+5]; + double a6ZAR[d6ZA+5]; + double a6ZBR[d6ZB+5]; + double a6ZCR[d6ZC+5]; + double a6ZDR[d6ZD+5]; + double a6ZER[d6ZE+5]; + double a6ZFR[d6ZF+5]; + double a6ZGR[d6ZG+5]; + double a6ZHR[d6ZH+5]; + double a6ZIR[d6ZI+5]; + double a6ZJR[d6ZJ+5]; + double a6ZKR[d6ZK+5]; + int c6AL,c6BL,c6CL,c6DL,c6EL,c6FL,c6GL,c6HL,c6IL; + int c6JL,c6KL,c6LL,c6ML,c6NL,c6OL,c6PL,c6QL,c6RL; + int c6SL,c6TL,c6UL,c6VL,c6WL,c6XL,c6YL,c6ZAL,c6ZBL; + int c6ZCL,c6ZDL,c6ZEL,c6ZFL,c6ZGL,c6ZHL,c6ZIL,c6ZJL,c6ZKL; + int c6AR,c6BR,c6CR,c6DR,c6ER,c6FR,c6GR,c6HR,c6IR; + int c6JR,c6KR,c6LR,c6MR,c6NR,c6OR,c6PR,c6QR,c6RR; + int c6SR,c6TR,c6UR,c6VR,c6WR,c6XR,c6YR,c6ZAR,c6ZBR; + int c6ZCR,c6ZDR,c6ZER,c6ZFR,c6ZGR,c6ZHR,c6ZIR,c6ZJR,c6ZKR; + double f6AL,f6BL,f6CL,f6DL,f6EL,f6FL; + double f6FR,f6LR,f6RR,f6XR,f6ZER,f6ZKR; + double avg6L,avg6R; + + enum { + bez_AL, + bez_AR, + bez_BL, + bez_BR, + bez_CL, + bez_CR, + bez_InL, + bez_InR, + bez_UnInL, + bez_UnInR, + bez_SampL, + bez_SampR, + bez_AvgInSampL, + bez_AvgInSampR, + bez_AvgOutSampL, + bez_AvgOutSampR, + bez_cycle, + bez_total + }; //the new undersampling. bez signifies the bezier curve reconstruction + double bez[bez_total]; + + double bezF[bez_total]; + + uint32_t fpdL; + uint32_t fpdR; +}; + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + +#endif \ No newline at end of file diff --git a/plugins/MacSignedAU/kWoodRoom/kWoodRoom.r b/plugins/MacSignedAU/kWoodRoom/kWoodRoom.r new file mode 100755 index 000000000..6250814fa --- /dev/null +++ b/plugins/MacSignedAU/kWoodRoom/kWoodRoom.r @@ -0,0 +1,61 @@ +/* +* File: kWoodRoom.r +* +* Version: 1.0 +* +* Created: 11/1/25 +* +* Copyright: Copyright © 2025 Airwindows, Airwindows uses the MIT license +* +* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in +* consideration of your agreement to the following terms, and your use, installation, modification +* or redistribution of this Apple software constitutes acceptance of these terms. If you do +* not agree with these terms, please do not use, install, modify or redistribute this Apple +* software. +* +* In consideration of your agreement to abide by the following terms, and subject to these terms, +* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this +* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the +* Apple Software, with or without modifications, in source and/or binary forms; provided that if you +* redistribute the Apple Software in its entirety and without modifications, you must retain this +* notice and the following text and disclaimers in all such redistributions of the Apple Software. +* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to +* endorse or promote products derived from the Apple Software without specific prior written +* permission from Apple. Except as expressly stated in this notice, no other rights or +* licenses, express or implied, are granted by Apple herein, including but not limited to any +* patent rights that may be infringed by your derivative works or by other works in which the +* Apple Software may be incorporated. +* +* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR +* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY +* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE +* OR IN COMBINATION WITH YOUR PRODUCTS. +* +* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL +* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, +* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER +* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN +* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +*/ +#include + +#include "kWoodRoomVersion.h" + +// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description +#define kAudioUnitResID_kWoodRoom 1000 + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ kWoodRoom~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +#define RES_ID kAudioUnitResID_kWoodRoom +#define COMP_TYPE kAudioUnitType_Effect +#define COMP_SUBTYPE kWoodRoom_COMP_SUBTYPE +#define COMP_MANUF kWoodRoom_COMP_MANF + +#define VERSION kkWoodRoomVersion +#define NAME "Airwindows: kWoodRoom" +#define DESCRIPTION "kWoodRoom AU" +#define ENTRY_POINT "kWoodRoomEntry" + +#include "AUResources.r" \ No newline at end of file diff --git a/plugins/MacSignedAU/kWoodRoom/kWoodRoom.xcodeproj/christopherjohnson.mode1v3 b/plugins/MacSignedAU/kWoodRoom/kWoodRoom.xcodeproj/christopherjohnson.mode1v3 new file mode 100755 index 000000000..61450416d --- /dev/null +++ b/plugins/MacSignedAU/kWoodRoom/kWoodRoom.xcodeproj/christopherjohnson.mode1v3 @@ -0,0 +1,1359 @@ + + + + + ActivePerspectiveName + Project + AllowedModules + + + BundleLoadPath + + MaxInstances + n + Module + PBXSmartGroupTreeModule + Name + Groups and Files Outline View + + + BundleLoadPath + + MaxInstances + n + Module + PBXNavigatorGroup + Name + Editor + + + BundleLoadPath + + MaxInstances + n + Module + XCTaskListModule + Name + Task List + + + BundleLoadPath + + MaxInstances + n + Module + XCDetailModule + Name + File and Smart Group Detail Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXBuildResultsModule + Name + Detailed Build Results Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXProjectFindModule + Name + Project Batch Find Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCProjectFormatConflictsModule + Name + Project Format Conflicts List + + + BundleLoadPath + + MaxInstances + n + Module + PBXBookmarksModule + Name + Bookmarks Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXClassBrowserModule + Name + Class Browser + + + BundleLoadPath + + MaxInstances + n + Module + PBXCVSModule + Name + Source Code Control Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXDebugBreakpointsModule + Name + Debug Breakpoints Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCDockableInspector + Name + Inspector + + + BundleLoadPath + + MaxInstances + n + Module + PBXOpenQuicklyModule + Name + Open Quickly Tool + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugSessionModule + Name + Debugger + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugCLIModule + Name + Debug Console + + + BundleLoadPath + + MaxInstances + n + Module + XCSnapshotModule + Name + Snapshots Tool + + + BundlePath + /Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources + Description + DefaultDescriptionKey + DockingSystemVisible + + Extension + mode1v3 + FavBarConfig + + PBXProjectModuleGUID + 8BD3CCBC148831C90062E48C + XCBarModuleItemNames + + XCBarModuleItems + + + FirstTimeWindowDisplayed + + Identifier + com.apple.perspectives.project.mode1v3 + MajorVersion + 33 + MinorVersion + 0 + Name + Default + Notifications + + OpenEditors + + PerspectiveWidths + + -1 + -1 + + Perspectives + + + ChosenToolbarItems + + active-combo-popup + action + build + debugger-enable-breakpoints + get-info + com.apple.pbx.toolbar.searchfield + + ControllerClassBaseName + + IconName + WindowOfProjectWithEditor + Identifier + perspective.project + IsVertical + + Layout + + + BecomeActive + + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 1C37FABC05509CD000000102 + 1C37FABC05539CD112110102 + E2644B35053B69B200211256 + 1C37FABC04509CD000100104 + 1CC0EA4004350EF90044410B + 1CC0EA4004350EF90041110B + + PBXProjectModuleGUID + 1CE0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + yes + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 299 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 089C166AFE841209C02AAC07 + 08FB77ADFE841716C02AAC07 + 8BA05A7D072073D200365D66 + 8BA05A7E072073D200365D66 + 1C37FBAC04509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 6 + 5 + 4 + 1 + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {299, 445}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + + XCSharingToken + com.apple.Xcode.GFSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {316, 463}} + GroupTreeTableConfiguration + + MainColumn + 299 + + RubberWindowFrame + 18 337 788 504 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 316pt + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CE0B20306471E060097A5F4 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CE0B20406471E060097A5F4 + + SplitCount + 1 + + StatusBarVisibility + + + GeometryConfiguration + + Frame + {{0, 0}, {467, 0}} + RubberWindowFrame + 18 337 788 504 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 0pt + + + ContentConfiguration + + PBXProjectModuleGUID + 1CE0B20506471E060097A5F4 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{0, 5}, {467, 458}} + RubberWindowFrame + 18 337 788 504 0 0 1440 878 + + Module + XCDetailModule + Proportion + 458pt + + + Proportion + 467pt + + + Name + Project + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + XCModuleDock + PBXNavigatorGroup + XCDetailModule + + TableOfContents + + 8BDD47AA1A48BB8900FB2F61 + 1CE0B1FE06471DED0097A5F4 + 8BDD47AB1A48BB8900FB2F61 + 1CE0B20306471E060097A5F4 + 1CE0B20506471E060097A5F4 + + ToolbarConfigUserDefaultsMinorVersion + 2 + ToolbarConfiguration + xcode.toolbar.config.defaultV3 + + + ControllerClassBaseName + + IconName + WindowOfProject + Identifier + perspective.morph + IsVertical + 0 + Layout + + + BecomeActive + 1 + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 1C08E77C0454961000C914BD + 1C37FABC05509CD000000102 + 1C37FABC05539CD112110102 + E2644B35053B69B200211256 + 1C37FABC04509CD000100104 + 1CC0EA4004350EF90044410B + 1CC0EA4004350EF90041110B + + PBXProjectModuleGUID + 11E0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + yes + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 186 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 29B97314FDCFA39411CA2CEA + 1C37FABC05509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {186, 337}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + 1 + XCSharingToken + com.apple.Xcode.GFSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {203, 355}} + GroupTreeTableConfiguration + + MainColumn + 186 + + RubberWindowFrame + 373 269 690 397 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 100% + + + Name + Morph + PreferredWidth + 300 + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + + TableOfContents + + 11E0B1FE06471DED0097A5F4 + + ToolbarConfiguration + xcode.toolbar.config.default.shortV3 + + + PerspectivesBarVisible + + ShelfIsVisible + + SourceDescription + file at '/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecificationMode1.xcperspec' + StatusbarIsVisible + + TimeStamp + 0.0 + ToolbarConfigUserDefaultsMinorVersion + 2 + ToolbarDisplayMode + 1 + ToolbarIsVisible + + ToolbarSizeMode + 2 + Type + Perspectives + UpdateMessage + The Default Workspace in this version of Xcode now includes support to hide and show the detail view (what has been referred to as the "Metro-Morph" feature). You must discard your current Default Workspace settings and update to the latest Default Workspace in order to gain this feature. Do you wish to update to the latest Workspace defaults for project '%@'? + WindowJustification + 5 + WindowOrderList + + 8BD3CCBD148831C90062E48C + /Developer/Library/Xcode/Project Templates/System Plug-in/Audio Unit Effect/Audio Unit Effect with Cocoa View/StarterAU.xcodeproj + + WindowString + 18 337 788 504 0 0 1440 878 + WindowToolsV3 + + + FirstTimeWindowDisplayed + + Identifier + windowTool.build + IsVertical + + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528F0623707200166675 + PBXProjectModuleLabel + + StatusBarVisibility + + + GeometryConfiguration + + Frame + {{0, 0}, {500, 218}} + RubberWindowFrame + 668 222 500 500 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 218pt + + + ContentConfiguration + + PBXProjectModuleGUID + XCMainBuildResultsModuleGUID + PBXProjectModuleLabel + Build Results + XCBuildResultsTrigger_Collapse + 1021 + XCBuildResultsTrigger_Open + 1011 + + GeometryConfiguration + + Frame + {{0, 223}, {500, 236}} + RubberWindowFrame + 668 222 500 500 0 0 1440 878 + + Module + PBXBuildResultsModule + Proportion + 236pt + + + Proportion + 459pt + + + Name + Build Results + ServiceClasses + + PBXBuildResultsModule + + StatusbarIsVisible + + TableOfContents + + 8BD3CCBD148831C90062E48C + 8BDD47AC1A48BB8900FB2F61 + 1CD0528F0623707200166675 + XCMainBuildResultsModuleGUID + + ToolbarConfiguration + xcode.toolbar.config.buildV3 + WindowContentMinSize + 486 300 + WindowString + 668 222 500 500 0 0 1440 878 + WindowToolGUID + 8BD3CCBD148831C90062E48C + WindowToolIsVisible + + + + Identifier + windowTool.debugger + Layout + + + Dock + + + ContentConfiguration + + Debugger + + HorizontalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {317, 164}} + {{317, 0}, {377, 164}} + + + VerticalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {694, 164}} + {{0, 164}, {694, 216}} + + + + LauncherConfigVersion + 8 + PBXProjectModuleGUID + 1C162984064C10D400B95A72 + PBXProjectModuleLabel + Debug - GLUTExamples (Underwater) + + GeometryConfiguration + + DebugConsoleDrawerSize + {100, 120} + DebugConsoleVisible + None + DebugConsoleWindowFrame + {{200, 200}, {500, 300}} + DebugSTDIOWindowFrame + {{200, 200}, {500, 300}} + Frame + {{0, 0}, {694, 380}} + RubberWindowFrame + 321 238 694 422 0 0 1440 878 + + Module + PBXDebugSessionModule + Proportion + 100% + + + Proportion + 100% + + + Name + Debugger + ServiceClasses + + PBXDebugSessionModule + + StatusbarIsVisible + 1 + TableOfContents + + 1CD10A99069EF8BA00B06720 + 1C0AD2AB069F1E9B00FABCE6 + 1C162984064C10D400B95A72 + 1C0AD2AC069F1E9B00FABCE6 + + ToolbarConfiguration + xcode.toolbar.config.debugV3 + WindowString + 321 238 694 422 0 0 1440 878 + WindowToolGUID + 1CD10A99069EF8BA00B06720 + WindowToolIsVisible + 0 + + + Identifier + windowTool.find + Layout + + + Dock + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CDD528C0622207200134675 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CD0528D0623707200166675 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {781, 167}} + RubberWindowFrame + 62 385 781 470 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 781pt + + + Proportion + 50% + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528E0623707200166675 + PBXProjectModuleLabel + Project Find + + GeometryConfiguration + + Frame + {{8, 0}, {773, 254}} + RubberWindowFrame + 62 385 781 470 0 0 1440 878 + + Module + PBXProjectFindModule + Proportion + 50% + + + Proportion + 428pt + + + Name + Project Find + ServiceClasses + + PBXProjectFindModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C530D57069F1CE1000CFCEE + 1C530D58069F1CE1000CFCEE + 1C530D59069F1CE1000CFCEE + 1CDD528C0622207200134675 + 1C530D5A069F1CE1000CFCEE + 1CE0B1FE06471DED0097A5F4 + 1CD0528E0623707200166675 + + WindowString + 62 385 781 470 0 0 1440 878 + WindowToolGUID + 1C530D57069F1CE1000CFCEE + WindowToolIsVisible + 0 + + + Identifier + MENUSEPARATOR + + + Identifier + windowTool.debuggerConsole + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAAC065D492600B07095 + PBXProjectModuleLabel + Debugger Console + + GeometryConfiguration + + Frame + {{0, 0}, {650, 250}} + RubberWindowFrame + 516 632 650 250 0 0 1680 1027 + + Module + PBXDebugCLIModule + Proportion + 209pt + + + Proportion + 209pt + + + Name + Debugger Console + ServiceClasses + + PBXDebugCLIModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C78EAAD065D492600B07095 + 1C78EAAE065D492600B07095 + 1C78EAAC065D492600B07095 + + ToolbarConfiguration + xcode.toolbar.config.consoleV3 + WindowString + 650 41 650 250 0 0 1280 1002 + WindowToolGUID + 1C78EAAD065D492600B07095 + WindowToolIsVisible + 0 + + + Identifier + windowTool.snapshots + Layout + + + Dock + + + Module + XCSnapshotModule + Proportion + 100% + + + Proportion + 100% + + + Name + Snapshots + ServiceClasses + + XCSnapshotModule + + StatusbarIsVisible + Yes + ToolbarConfiguration + xcode.toolbar.config.snapshots + WindowString + 315 824 300 550 0 0 1440 878 + WindowToolIsVisible + Yes + + + Identifier + windowTool.scm + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAB2065D492600B07095 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1C78EAB3065D492600B07095 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {452, 0}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + + Module + PBXNavigatorGroup + Proportion + 0pt + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD052920623707200166675 + PBXProjectModuleLabel + SCM + + GeometryConfiguration + + ConsoleFrame + {{0, 259}, {452, 0}} + Frame + {{0, 7}, {452, 259}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + TableConfiguration + + Status + 30 + FileName + 199 + Path + 197.0950012207031 + + TableFrame + {{0, 0}, {452, 250}} + + Module + PBXCVSModule + Proportion + 262pt + + + Proportion + 266pt + + + Name + SCM + ServiceClasses + + PBXCVSModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C78EAB4065D492600B07095 + 1C78EAB5065D492600B07095 + 1C78EAB2065D492600B07095 + 1CD052920623707200166675 + + ToolbarConfiguration + xcode.toolbar.config.scm + WindowString + 743 379 452 308 0 0 1280 1002 + + + Identifier + windowTool.breakpoints + IsVertical + 0 + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C77FABC04509CD000000102 + + PBXProjectModuleGUID + 1CE0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + no + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 168 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 1C77FABC04509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {168, 350}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + 0 + + GeometryConfiguration + + Frame + {{0, 0}, {185, 368}} + GroupTreeTableConfiguration + + MainColumn + 168 + + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 185pt + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA1AED706398EBD00589147 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{190, 0}, {554, 368}} + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + XCDetailModule + Proportion + 554pt + + + Proportion + 368pt + + + MajorVersion + 3 + MinorVersion + 0 + Name + Breakpoints + ServiceClasses + + PBXSmartGroupTreeModule + XCDetailModule + + StatusbarIsVisible + 1 + TableOfContents + + 1CDDB66807F98D9800BB5817 + 1CDDB66907F98D9800BB5817 + 1CE0B1FE06471DED0097A5F4 + 1CA1AED706398EBD00589147 + + ToolbarConfiguration + xcode.toolbar.config.breakpointsV3 + WindowString + 315 424 744 409 0 0 1440 878 + WindowToolGUID + 1CDDB66807F98D9800BB5817 + WindowToolIsVisible + 1 + + + Identifier + windowTool.debugAnimator + Layout + + + Dock + + + Module + PBXNavigatorGroup + Proportion + 100% + + + Proportion + 100% + + + Name + Debug Visualizer + ServiceClasses + + PBXNavigatorGroup + + StatusbarIsVisible + 1 + ToolbarConfiguration + xcode.toolbar.config.debugAnimatorV3 + WindowString + 100 100 700 500 0 0 1280 1002 + + + Identifier + windowTool.bookmarks + Layout + + + Dock + + + Module + PBXBookmarksModule + Proportion + 100% + + + Proportion + 100% + + + Name + Bookmarks + ServiceClasses + + PBXBookmarksModule + + StatusbarIsVisible + 0 + WindowString + 538 42 401 187 0 0 1280 1002 + + + Identifier + windowTool.projectFormatConflicts + Layout + + + Dock + + + Module + XCProjectFormatConflictsModule + Proportion + 100% + + + Proportion + 100% + + + Name + Project Format Conflicts + ServiceClasses + + XCProjectFormatConflictsModule + + StatusbarIsVisible + 0 + WindowContentMinSize + 450 300 + WindowString + 50 850 472 307 0 0 1440 877 + + + Identifier + windowTool.classBrowser + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + OptionsSetName + Hierarchy, all classes + PBXProjectModuleGUID + 1CA6456E063B45B4001379D8 + PBXProjectModuleLabel + Class Browser - NSObject + + GeometryConfiguration + + ClassesFrame + {{0, 0}, {374, 96}} + ClassesTreeTableConfiguration + + PBXClassNameColumnIdentifier + 208 + PBXClassBookColumnIdentifier + 22 + + Frame + {{0, 0}, {630, 331}} + MembersFrame + {{0, 105}, {374, 395}} + MembersTreeTableConfiguration + + PBXMemberTypeIconColumnIdentifier + 22 + PBXMemberNameColumnIdentifier + 216 + PBXMemberTypeColumnIdentifier + 97 + PBXMemberBookColumnIdentifier + 22 + + PBXModuleWindowStatusBarHidden2 + 1 + RubberWindowFrame + 385 179 630 352 0 0 1440 878 + + Module + PBXClassBrowserModule + Proportion + 332pt + + + Proportion + 332pt + + + Name + Class Browser + ServiceClasses + + PBXClassBrowserModule + + StatusbarIsVisible + 0 + TableOfContents + + 1C0AD2AF069F1E9B00FABCE6 + 1C0AD2B0069F1E9B00FABCE6 + 1CA6456E063B45B4001379D8 + + ToolbarConfiguration + xcode.toolbar.config.classbrowser + WindowString + 385 179 630 352 0 0 1440 878 + WindowToolGUID + 1C0AD2AF069F1E9B00FABCE6 + WindowToolIsVisible + 0 + + + Identifier + windowTool.refactoring + IncludeInToolsMenu + 0 + Layout + + + Dock + + + BecomeActive + 1 + GeometryConfiguration + + Frame + {0, 0}, {500, 335} + RubberWindowFrame + {0, 0}, {500, 335} + + Module + XCRefactoringModule + Proportion + 100% + + + Proportion + 100% + + + Name + Refactoring + ServiceClasses + + XCRefactoringModule + + WindowString + 200 200 500 356 0 0 1920 1200 + + + + diff --git a/plugins/MacSignedAU/kWoodRoom/kWoodRoom.xcodeproj/christopherjohnson.pbxuser b/plugins/MacSignedAU/kWoodRoom/kWoodRoom.xcodeproj/christopherjohnson.pbxuser new file mode 100755 index 000000000..35f07972f --- /dev/null +++ b/plugins/MacSignedAU/kWoodRoom/kWoodRoom.xcodeproj/christopherjohnson.pbxuser @@ -0,0 +1,142 @@ +// !$*UTF8*$! +{ + 089C1669FE841209C02AAC07 /* Project object */ = { + activeBuildConfigurationName = Release; + activeTarget = 8D01CCC60486CAD60068D4B7 /* kWoodRoom */; + 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 = 783773359; + PBXWorkspaceStateSaveDate = 783773359; + }; + perUserProjectItems = { + 8B2829512EB7764F003789A7 /* PBXTextBookmark */ = 8B2829512EB7764F003789A7 /* PBXTextBookmark */; + 8BD128442EB6E2C500B339E5 /* PBXTextBookmark */ = 8BD128442EB6E2C500B339E5 /* PBXTextBookmark */; + 8BD128462EB6E2C500B339E5 /* PBXTextBookmark */ = 8BD128462EB6E2C500B339E5 /* PBXTextBookmark */; + }; + sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */; + userBuildSettings = { + }; + }; + 8B2829512EB7764F003789A7 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 8BC6025B073B072D006C4272 /* kWoodRoom.h */; + name = "kWoodRoom.h: 88"; + rLen = 0; + rLoc = 4838; + rType = 0; + vrLen = 1065; + vrLoc = 3804; + }; + 8BA05A660720730100365D66 /* kWoodRoom.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {939, 14634}}"; + sepNavSelRange = "{35694, 84}"; + sepNavVisRange = "{21092, 1777}"; + sepNavWindowFrame = "{{7, 52}, {912, 826}}"; + }; + }; + 8BA05A690720730100365D66 /* kWoodRoomVersion.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1056, 1062}}"; + sepNavSelRange = "{2906, 0}"; + sepNavVisRange = "{1069, 1900}"; + sepNavWindowFrame = "{{15, 47}, {912, 826}}"; + }; + }; + 8BA05A7F072073D200365D66 /* AUBase.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {516, 23430}}"; + sepNavSelRange = "{0, 0}"; + sepNavVisRange = "{0, 1336}"; + }; + }; + 8BC6025B073B072D006C4272 /* kWoodRoom.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {7041, 4446}}"; + sepNavSelRange = "{4838, 0}"; + sepNavVisRange = "{3804, 1065}"; + sepNavWindowFrame = "{{15, 47}, {912, 826}}"; + }; + }; + 8BD128442EB6E2C500B339E5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 8BA05A660720730100365D66 /* kWoodRoom.cpp */; + name = "kWoodRoom.cpp: 472"; + rLen = 0; + rLoc = 22228; + rType = 0; + vrLen = 184; + vrLoc = 22080; + }; + 8BD128462EB6E2C500B339E5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 8BC6025B073B072D006C4272 /* kWoodRoom.h */; + name = "kWoodRoom.h: 88"; + rLen = 0; + rLoc = 4838; + rType = 0; + vrLen = 1065; + vrLoc = 3804; + }; + 8BD3CCB8148830B20062E48C /* Source Control */ = { + isa = PBXSourceControlManager; + fallbackIsa = XCSourceControlManager; + isSCMEnabled = 0; + scmConfiguration = { + repositoryNamesForRoots = { + "" = ""; + }; + }; + }; + 8BD3CCB9148830B20062E48C /* Code sense */ = { + isa = PBXCodeSenseManager; + indexTemplatePath = ""; + }; + 8D01CCC60486CAD60068D4B7 /* kWoodRoom */ = { + activeExec = 0; + }; +} diff --git a/plugins/MacSignedAU/kWoodRoom/kWoodRoom.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacSignedAU/kWoodRoom/kWoodRoom.xcodeproj/christopherjohnson.perspectivev3 new file mode 100755 index 000000000..ce8c58d06 --- /dev/null +++ b/plugins/MacSignedAU/kWoodRoom/kWoodRoom.xcodeproj/christopherjohnson.perspectivev3 @@ -0,0 +1,1485 @@ + + + + + ActivePerspectiveName + Project + AllowedModules + + + BundleLoadPath + + MaxInstances + n + Module + PBXSmartGroupTreeModule + Name + Groups and Files Outline View + + + BundleLoadPath + + MaxInstances + n + Module + PBXNavigatorGroup + Name + Editor + + + BundleLoadPath + + MaxInstances + n + Module + XCTaskListModule + Name + Task List + + + BundleLoadPath + + MaxInstances + n + Module + XCDetailModule + Name + File and Smart Group Detail Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXBuildResultsModule + Name + Detailed Build Results Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXProjectFindModule + Name + Project Batch Find Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCProjectFormatConflictsModule + Name + Project Format Conflicts List + + + BundleLoadPath + + MaxInstances + n + Module + PBXBookmarksModule + Name + Bookmarks Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXClassBrowserModule + Name + Class Browser + + + BundleLoadPath + + MaxInstances + n + Module + PBXCVSModule + Name + Source Code Control Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXDebugBreakpointsModule + Name + Debug Breakpoints Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCDockableInspector + Name + Inspector + + + BundleLoadPath + + MaxInstances + n + Module + PBXOpenQuicklyModule + Name + Open Quickly Tool + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugSessionModule + Name + Debugger + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugCLIModule + Name + Debug Console + + + BundleLoadPath + + MaxInstances + n + Module + XCSnapshotModule + Name + Snapshots Tool + + + BundlePath + /Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources + Description + AIODescriptionKey + DockingSystemVisible + + Extension + perspectivev3 + FavBarConfig + + PBXProjectModuleGUID + 8B47D3602EB6C9600017457B + XCBarModuleItemNames + + XCBarModuleItems + + + FirstTimeWindowDisplayed + + Identifier + com.apple.perspectives.project.defaultV3 + MajorVersion + 34 + MinorVersion + 0 + Name + All-In-One + Notifications + + + XCObserverAutoDisconnectKey + + XCObserverDefintionKey + + PBXStatusErrorsKey + 0 + + XCObserverFactoryKey + XCPerspectivesSpecificationIdentifier + XCObserverGUIDKey + XCObserverProjectIdentifier + XCObserverNotificationKey + PBXStatusBuildStateMessageNotification + XCObserverTargetKey + XCMainBuildResultsModuleGUID + XCObserverTriggerKey + awakenModuleWithObserver: + XCObserverValidationKey + + PBXStatusErrorsKey + 2 + + + + OpenEditors + + PerspectiveWidths + + 810 + 810 + + Perspectives + + + ChosenToolbarItems + + XCToolbarPerspectiveControl + NSToolbarSeparatorItem + active-combo-popup + action + NSToolbarFlexibleSpaceItem + debugger-enable-breakpoints + build-and-go + com.apple.ide.PBXToolbarStopButton + get-info + NSToolbarFlexibleSpaceItem + com.apple.pbx.toolbar.searchfield + + ControllerClassBaseName + + IconName + WindowOfProject + Identifier + perspective.project + IsVertical + + Layout + + + BecomeActive + + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 1C37FABC05509CD000000102 + 1C37FABC05539CD112110102 + E2644B35053B69B200211256 + 1C37FABC04509CD000100104 + 1CC0EA4004350EF90044410B + 1CC0EA4004350EF90041110B + 1C77FABC04509CD000000102 + + PBXProjectModuleGUID + 1CA23ED40692098700951B8B + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + yes + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 185 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 089C166AFE841209C02AAC07 + 08FB77ADFE841716C02AAC07 + 8BA05A56072072A900365D66 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 4 + 2 + 1 + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {185, 428}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + + + GeometryConfiguration + + Frame + {{0, 0}, {202, 446}} + GroupTreeTableConfiguration + + MainColumn + 185 + + RubberWindowFrame + 27 248 810 487 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 202pt + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 8B47D35B2EB6C9600017457B + PBXProjectModuleLabel + kWoodRoom.h + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 8B47D35C2EB6C9600017457B + PBXProjectModuleLabel + kWoodRoom.h + _historyCapacity + 0 + bookmark + 8B2829512EB7764F003789A7 + history + + 8BD128442EB6E2C500B339E5 + 8BD128462EB6E2C500B339E5 + + + SplitCount + 1 + + StatusBarVisibility + + XCSharingToken + com.apple.Xcode.CommonNavigatorGroupSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {603, 102}} + RubberWindowFrame + 27 248 810 487 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 102pt + + + Proportion + 339pt + Tabs + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA23EDF0692099D00951B8B + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{10, 27}, {603, 312}} + RubberWindowFrame + 27 248 810 487 0 0 1440 878 + + Module + XCDetailModule + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA23EE00692099D00951B8B + PBXProjectModuleLabel + Project Find + + GeometryConfiguration + + Frame + {{10, 31}, {603, 297}} + + Module + PBXProjectFindModule + + + ContentConfiguration + + PBXCVSModuleFilterTypeKey + 1032 + PBXProjectModuleGUID + 1CA23EE10692099D00951B8B + PBXProjectModuleLabel + SCM Results + + GeometryConfiguration + + Frame + {{10, 31}, {603, 297}} + + Module + PBXCVSModule + + + ContentConfiguration + + PBXProjectModuleGUID + XCMainBuildResultsModuleGUID + PBXProjectModuleLabel + Build Results + XCBuildResultsTrigger_Collapse + 1023 + XCBuildResultsTrigger_Open + 1012 + + GeometryConfiguration + + Frame + {{10, 27}, {603, 414}} + + Module + PBXBuildResultsModule + + + + + Proportion + 603pt + + + Name + Project + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + XCModuleDock + PBXNavigatorGroup + XCDockableTabModule + XCDetailModule + PBXProjectFindModule + PBXCVSModule + PBXBuildResultsModule + + TableOfContents + + 8B2829522EB7764F003789A7 + 1CA23ED40692098700951B8B + 8B2829532EB7764F003789A7 + 8B47D35B2EB6C9600017457B + 8B2829542EB7764F003789A7 + 1CA23EDF0692099D00951B8B + 1CA23EE00692099D00951B8B + 1CA23EE10692099D00951B8B + XCMainBuildResultsModuleGUID + + ToolbarConfigUserDefaultsMinorVersion + 2 + ToolbarConfiguration + xcode.toolbar.config.defaultV3 + + + ChosenToolbarItems + + XCToolbarPerspectiveControl + NSToolbarSeparatorItem + active-combo-popup + NSToolbarFlexibleSpaceItem + debugger-enable-breakpoints + build-and-go + com.apple.ide.PBXToolbarStopButton + debugger-restart-executable + debugger-pause + debugger-step-over + debugger-step-into + debugger-step-out + NSToolbarFlexibleSpaceItem + servicesModulebreakpoints + debugger-show-console-window + + ControllerClassBaseName + PBXDebugSessionModule + IconName + DebugTabIcon + Identifier + perspective.debug + IsVertical + 1 + Layout + + + ContentConfiguration + + PBXProjectModuleGUID + 1CCC7628064C1048000F2A68 + PBXProjectModuleLabel + Debugger Console + + GeometryConfiguration + + Frame + {{0, 0}, {810, 0}} + + Module + PBXDebugCLIModule + Proportion + 0% + + + ContentConfiguration + + Debugger + + HorizontalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {395, 213}} + {{395, 0}, {415, 213}} + + + VerticalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {810, 213}} + {{0, 213}, {810, 225}} + + + + LauncherConfigVersion + 8 + PBXProjectModuleGUID + 1CCC7629064C1048000F2A68 + PBXProjectModuleLabel + Debug + + GeometryConfiguration + + DebugConsoleDrawerSize + {100, 120} + DebugConsoleVisible + None + DebugConsoleWindowFrame + {{200, 200}, {500, 300}} + DebugSTDIOWindowFrame + {{200, 200}, {500, 300}} + Frame + {{0, 7}, {810, 438}} + + Module + PBXDebugSessionModule + Proportion + 443pt + + + Name + Debug + ServiceClasses + + XCModuleDock + XCModuleDock + PBXDebugCLIModule + PBXDebugSessionModule + XCConsole + + TableOfContents + + 1CC8E6A5069209BD00BB180A + 1CC8E6A6069209BD00BB180A + 1CCC7628064C1048000F2A68 + 1CCC7629064C1048000F2A68 + 1CC8E6A7069209BD00BB180A + + ToolbarConfiguration + xcode.toolbar.config.debugV3 + + + PerspectivesBarVisible + + ShelfIsVisible + + SourceDescription + file at '/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecification.xcperspec' + StatusbarIsVisible + + TimeStamp + 783775311.75096202 + ToolbarConfigUserDefaultsMinorVersion + 2 + ToolbarDisplayMode + 1 + ToolbarIsVisible + + ToolbarSizeMode + 2 + Type + Perspectives + UpdateMessage + + WindowJustification + 5 + WindowOrderList + + 8B2829552EB7764F003789A7 + /Users/christopherjohnson/Desktop/airwindows/plugins/MacAU/kWoodRoom/kWoodRoom.xcodeproj + + WindowString + 27 248 810 487 0 0 1440 878 + WindowToolsV3 + + + Identifier + windowTool.debugger + Layout + + + Dock + + + ContentConfiguration + + Debugger + + HorizontalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {317, 164}} + {{317, 0}, {377, 164}} + + + VerticalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {694, 164}} + {{0, 164}, {694, 216}} + + + + LauncherConfigVersion + 8 + PBXProjectModuleGUID + 1C162984064C10D400B95A72 + PBXProjectModuleLabel + Debug - GLUTExamples (Underwater) + + GeometryConfiguration + + DebugConsoleDrawerSize + {100, 120} + DebugConsoleVisible + None + DebugConsoleWindowFrame + {{200, 200}, {500, 300}} + DebugSTDIOWindowFrame + {{200, 200}, {500, 300}} + Frame + {{0, 0}, {694, 380}} + RubberWindowFrame + 321 238 694 422 0 0 1440 878 + + Module + PBXDebugSessionModule + Proportion + 100% + + + Proportion + 100% + + + Name + Debugger + ServiceClasses + + PBXDebugSessionModule + + StatusbarIsVisible + 1 + TableOfContents + + 1CD10A99069EF8BA00B06720 + 1C0AD2AB069F1E9B00FABCE6 + 1C162984064C10D400B95A72 + 1C0AD2AC069F1E9B00FABCE6 + + ToolbarConfiguration + xcode.toolbar.config.debugV3 + WindowString + 321 238 694 422 0 0 1440 878 + WindowToolGUID + 1CD10A99069EF8BA00B06720 + WindowToolIsVisible + 0 + + + Identifier + windowTool.build + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528F0623707200166675 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CD052900623707200166675 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {500, 215}} + RubberWindowFrame + 192 257 500 500 0 0 1280 1002 + + Module + PBXNavigatorGroup + Proportion + 218pt + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + XCMainBuildResultsModuleGUID + PBXProjectModuleLabel + Build Results + + GeometryConfiguration + + Frame + {{0, 222}, {500, 236}} + RubberWindowFrame + 192 257 500 500 0 0 1280 1002 + + Module + PBXBuildResultsModule + Proportion + 236pt + + + Proportion + 458pt + + + Name + Build Results + ServiceClasses + + PBXBuildResultsModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C78EAA5065D492600B07095 + 1C78EAA6065D492600B07095 + 1CD0528F0623707200166675 + XCMainBuildResultsModuleGUID + + ToolbarConfiguration + xcode.toolbar.config.buildV3 + WindowString + 192 257 500 500 0 0 1280 1002 + + + Identifier + windowTool.find + Layout + + + Dock + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CDD528C0622207200134675 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CD0528D0623707200166675 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {781, 167}} + RubberWindowFrame + 62 385 781 470 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 781pt + + + Proportion + 50% + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528E0623707200166675 + PBXProjectModuleLabel + Project Find + + GeometryConfiguration + + Frame + {{8, 0}, {773, 254}} + RubberWindowFrame + 62 385 781 470 0 0 1440 878 + + Module + PBXProjectFindModule + Proportion + 50% + + + Proportion + 428pt + + + Name + Project Find + ServiceClasses + + PBXProjectFindModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C530D57069F1CE1000CFCEE + 1C530D58069F1CE1000CFCEE + 1C530D59069F1CE1000CFCEE + 1CDD528C0622207200134675 + 1C530D5A069F1CE1000CFCEE + 1CE0B1FE06471DED0097A5F4 + 1CD0528E0623707200166675 + + WindowString + 62 385 781 470 0 0 1440 878 + WindowToolGUID + 1C530D57069F1CE1000CFCEE + WindowToolIsVisible + 0 + + + Identifier + windowTool.snapshots + Layout + + + Dock + + + Module + XCSnapshotModule + Proportion + 100% + + + Proportion + 100% + + + Name + Snapshots + ServiceClasses + + XCSnapshotModule + + StatusbarIsVisible + Yes + ToolbarConfiguration + xcode.toolbar.config.snapshots + WindowString + 315 824 300 550 0 0 1440 878 + WindowToolIsVisible + Yes + + + Identifier + windowTool.debuggerConsole + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAAC065D492600B07095 + PBXProjectModuleLabel + Debugger Console + + GeometryConfiguration + + Frame + {{0, 0}, {700, 358}} + RubberWindowFrame + 149 87 700 400 0 0 1440 878 + + Module + PBXDebugCLIModule + Proportion + 358pt + + + Proportion + 358pt + + + Name + Debugger Console + ServiceClasses + + PBXDebugCLIModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C530D5B069F1CE1000CFCEE + 1C530D5C069F1CE1000CFCEE + 1C78EAAC065D492600B07095 + + ToolbarConfiguration + xcode.toolbar.config.consoleV3 + WindowString + 149 87 440 400 0 0 1440 878 + WindowToolGUID + 1C530D5B069F1CE1000CFCEE + WindowToolIsVisible + 0 + + + Identifier + windowTool.scm + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAB2065D492600B07095 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1C78EAB3065D492600B07095 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {452, 0}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + + Module + PBXNavigatorGroup + Proportion + 0pt + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD052920623707200166675 + PBXProjectModuleLabel + SCM + + GeometryConfiguration + + ConsoleFrame + {{0, 259}, {452, 0}} + Frame + {{0, 7}, {452, 259}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + TableConfiguration + + Status + 30 + FileName + 199 + Path + 197.09500122070312 + + TableFrame + {{0, 0}, {452, 250}} + + Module + PBXCVSModule + Proportion + 262pt + + + Proportion + 266pt + + + Name + SCM + ServiceClasses + + PBXCVSModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C78EAB4065D492600B07095 + 1C78EAB5065D492600B07095 + 1C78EAB2065D492600B07095 + 1CD052920623707200166675 + + ToolbarConfiguration + xcode.toolbar.config.scmV3 + WindowString + 743 379 452 308 0 0 1280 1002 + + + Identifier + windowTool.breakpoints + IsVertical + 0 + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C77FABC04509CD000000102 + + PBXProjectModuleGUID + 1CE0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + no + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 168 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 1C77FABC04509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {168, 350}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + 0 + + GeometryConfiguration + + Frame + {{0, 0}, {185, 368}} + GroupTreeTableConfiguration + + MainColumn + 168 + + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 185pt + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA1AED706398EBD00589147 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{190, 0}, {554, 368}} + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + XCDetailModule + Proportion + 554pt + + + Proportion + 368pt + + + MajorVersion + 3 + MinorVersion + 0 + Name + Breakpoints + ServiceClasses + + PBXSmartGroupTreeModule + XCDetailModule + + StatusbarIsVisible + 1 + TableOfContents + + 1CDDB66807F98D9800BB5817 + 1CDDB66907F98D9800BB5817 + 1CE0B1FE06471DED0097A5F4 + 1CA1AED706398EBD00589147 + + ToolbarConfiguration + xcode.toolbar.config.breakpointsV3 + WindowString + 315 424 744 409 0 0 1440 878 + WindowToolGUID + 1CDDB66807F98D9800BB5817 + WindowToolIsVisible + 1 + + + Identifier + windowTool.debugAnimator + Layout + + + Dock + + + Module + PBXNavigatorGroup + Proportion + 100% + + + Proportion + 100% + + + Name + Debug Visualizer + ServiceClasses + + PBXNavigatorGroup + + StatusbarIsVisible + 1 + ToolbarConfiguration + xcode.toolbar.config.debugAnimatorV3 + WindowString + 100 100 700 500 0 0 1280 1002 + + + Identifier + windowTool.bookmarks + Layout + + + Dock + + + Module + PBXBookmarksModule + Proportion + 166pt + + + Proportion + 166pt + + + Name + Bookmarks + ServiceClasses + + PBXBookmarksModule + + StatusbarIsVisible + 0 + WindowString + 538 42 401 187 0 0 1280 1002 + + + Identifier + windowTool.projectFormatConflicts + Layout + + + Dock + + + Module + XCProjectFormatConflictsModule + Proportion + 100% + + + Proportion + 100% + + + Name + Project Format Conflicts + ServiceClasses + + XCProjectFormatConflictsModule + + StatusbarIsVisible + 0 + WindowContentMinSize + 450 300 + WindowString + 50 850 472 307 0 0 1440 877 + + + Identifier + windowTool.classBrowser + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + OptionsSetName + Hierarchy, all classes + PBXProjectModuleGUID + 1CA6456E063B45B4001379D8 + PBXProjectModuleLabel + Class Browser - NSObject + + GeometryConfiguration + + ClassesFrame + {{0, 0}, {369, 96}} + ClassesTreeTableConfiguration + + PBXClassNameColumnIdentifier + 208 + PBXClassBookColumnIdentifier + 22 + + Frame + {{0, 0}, {616, 353}} + MembersFrame + {{0, 105}, {369, 395}} + MembersTreeTableConfiguration + + PBXMemberTypeIconColumnIdentifier + 22 + PBXMemberNameColumnIdentifier + 216 + PBXMemberTypeColumnIdentifier + 94 + PBXMemberBookColumnIdentifier + 22 + + PBXModuleWindowStatusBarHidden2 + 1 + RubberWindowFrame + 597 125 616 374 0 0 1280 1002 + + Module + PBXClassBrowserModule + Proportion + 354pt + + + Proportion + 354pt + + + Name + Class Browser + ServiceClasses + + PBXClassBrowserModule + + StatusbarIsVisible + 0 + TableOfContents + + 1C78EABA065D492600B07095 + 1C78EABB065D492600B07095 + 1CA6456E063B45B4001379D8 + + ToolbarConfiguration + xcode.toolbar.config.classbrowser + WindowString + 597 125 616 374 0 0 1280 1002 + + + Identifier + windowTool.refactoring + IncludeInToolsMenu + 0 + Layout + + + Dock + + + BecomeActive + 1 + GeometryConfiguration + + Frame + {0, 0}, {500, 335} + RubberWindowFrame + {0, 0}, {500, 335} + + Module + XCRefactoringModule + Proportion + 100% + + + Proportion + 100% + + + Name + Refactoring + ServiceClasses + + XCRefactoringModule + + WindowString + 200 200 500 356 0 0 1920 1200 + + + + diff --git a/plugins/MacSignedAU/kWoodRoom/kWoodRoom.xcodeproj/project.pbxproj b/plugins/MacSignedAU/kWoodRoom/kWoodRoom.xcodeproj/project.pbxproj new file mode 100755 index 000000000..c91b59ba6 --- /dev/null +++ b/plugins/MacSignedAU/kWoodRoom/kWoodRoom.xcodeproj/project.pbxproj @@ -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 /* kWoodRoom.r in Rez */ = {isa = PBXBuildFile; fileRef = 8BA05A680720730100365D66 /* kWoodRoom.r */; }; + 8BA05A6B0720730100365D66 /* kWoodRoom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* kWoodRoom.cpp */; }; + 8BA05A6E0720730100365D66 /* kWoodRoomVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* kWoodRoomVersion.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 /* kWoodRoom.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* kWoodRoom.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 = ""; }; + 3EEA126B089847F5002C6BFC /* CAVectorUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAVectorUnit.cpp; sourceTree = ""; }; + 3EEA126C089847F5002C6BFC /* CAVectorUnit.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAVectorUnit.h; sourceTree = ""; }; + 3EEA126D089847F5002C6BFC /* CAVectorUnitTypes.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAVectorUnitTypes.h; sourceTree = ""; }; + 8B5C7FBF076FB2C200A15F61 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = ""; }; + 8BA05A660720730100365D66 /* kWoodRoom.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = kWoodRoom.cpp; sourceTree = ""; }; + 8BA05A670720730100365D66 /* kWoodRoom.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = kWoodRoom.exp; sourceTree = ""; }; + 8BA05A680720730100365D66 /* kWoodRoom.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = kWoodRoom.r; sourceTree = ""; }; + 8BA05A690720730100365D66 /* kWoodRoomVersion.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = kWoodRoomVersion.h; sourceTree = ""; }; + 8BA05A7F072073D200365D66 /* AUBase.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUBase.cpp; sourceTree = ""; }; + 8BA05A80072073D200365D66 /* AUBase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUBase.h; sourceTree = ""; }; + 8BA05A81072073D200365D66 /* AUDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUDispatch.cpp; sourceTree = ""; }; + 8BA05A82072073D200365D66 /* AUDispatch.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUDispatch.h; sourceTree = ""; }; + 8BA05A83072073D200365D66 /* AUInputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUInputElement.cpp; sourceTree = ""; }; + 8BA05A84072073D200365D66 /* AUInputElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUInputElement.h; sourceTree = ""; }; + 8BA05A85072073D200365D66 /* AUOutputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputElement.cpp; sourceTree = ""; }; + 8BA05A86072073D200365D66 /* AUOutputElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUOutputElement.h; sourceTree = ""; }; + 8BA05A87072073D200365D66 /* AUResources.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = AUResources.r; sourceTree = ""; }; + 8BA05A88072073D200365D66 /* AUScopeElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUScopeElement.cpp; sourceTree = ""; }; + 8BA05A89072073D200365D66 /* AUScopeElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUScopeElement.h; sourceTree = ""; }; + 8BA05A8A072073D200365D66 /* ComponentBase.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ComponentBase.cpp; sourceTree = ""; }; + 8BA05A8B072073D200365D66 /* ComponentBase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ComponentBase.h; sourceTree = ""; }; + 8BA05A9A072073D200365D66 /* AUEffectBase.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUEffectBase.cpp; sourceTree = ""; }; + 8BA05A9B072073D200365D66 /* AUEffectBase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUEffectBase.h; sourceTree = ""; }; + 8BA05AA7072073D200365D66 /* AUBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUBuffer.cpp; sourceTree = ""; }; + 8BA05AA8072073D200365D66 /* AUBuffer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUBuffer.h; sourceTree = ""; }; + 8BA05AA9072073D200365D66 /* AUDebugDispatcher.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUDebugDispatcher.cpp; sourceTree = ""; }; + 8BA05AAA072073D200365D66 /* AUDebugDispatcher.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUDebugDispatcher.h; sourceTree = ""; }; + 8BA05AAB072073D200365D66 /* AUInputFormatConverter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUInputFormatConverter.h; sourceTree = ""; }; + 8BA05AAC072073D200365D66 /* AUSilentTimeout.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUSilentTimeout.h; sourceTree = ""; }; + 8BA05AAD072073D200365D66 /* AUTimestampGenerator.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUTimestampGenerator.h; sourceTree = ""; }; + 8BA05ADF0720742100365D66 /* CAAudioChannelLayout.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayout.cpp; sourceTree = ""; }; + 8BA05AE00720742100365D66 /* CAAudioChannelLayout.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAAudioChannelLayout.h; sourceTree = ""; }; + 8BA05AE10720742100365D66 /* CAMutex.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAMutex.cpp; sourceTree = ""; }; + 8BA05AE20720742100365D66 /* CAMutex.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAMutex.h; sourceTree = ""; }; + 8BA05AE30720742100365D66 /* CAStreamBasicDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamBasicDescription.cpp; sourceTree = ""; }; + 8BA05AE40720742100365D66 /* CAStreamBasicDescription.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAStreamBasicDescription.h; sourceTree = ""; }; + 8BA05AF9072074E100365D66 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = /System/Library/Frameworks/AudioToolbox.framework; sourceTree = ""; }; + 8BA05AFA072074E100365D66 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = /System/Library/Frameworks/AudioUnit.framework; sourceTree = ""; }; + 8BA05B01072074F900365D66 /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = /System/Library/Frameworks/CoreServices.framework; sourceTree = ""; }; + 8BA05B050720754400365D66 /* CAAUParameter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUParameter.cpp; sourceTree = ""; }; + 8BA05B060720754400365D66 /* CAAUParameter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAAUParameter.h; sourceTree = ""; }; + 8BC6025B073B072D006C4272 /* kWoodRoom.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = kWoodRoom.h; sourceTree = ""; }; + 8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; + 8D01CCD20486CAD60068D4B7 /* kWoodRoom.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = kWoodRoom.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 /* kWoodRoom */ = { + isa = PBXGroup; + children = ( + 08FB77ADFE841716C02AAC07 /* Source */, + 089C167CFE841241C02AAC07 /* Resources */, + 089C1671FE841209C02AAC07 /* External Frameworks and Libraries */, + 19C28FB4FE9D528D11CA2CBB /* Products */, + ); + name = kWoodRoom; + sourceTree = ""; + }; + 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 = ""; + }; + 089C167CFE841241C02AAC07 /* Resources */ = { + isa = PBXGroup; + children = ( + 8D01CCD10486CAD60068D4B7 /* Info.plist */, + 089C167DFE841241C02AAC07 /* InfoPlist.strings */, + ); + name = Resources; + sourceTree = ""; + }; + 08FB77ADFE841716C02AAC07 /* Source */ = { + isa = PBXGroup; + children = ( + 8BA05A56072072A900365D66 /* AU Source */, + 8BA05AEB0720742700365D66 /* PublicUtility */, + 8BA05A7D072073D200365D66 /* AUPublic */, + ); + name = Source; + sourceTree = ""; + }; + 19C28FB4FE9D528D11CA2CBB /* Products */ = { + isa = PBXGroup; + children = ( + 8D01CCD20486CAD60068D4B7 /* kWoodRoom.component */, + ); + name = Products; + sourceTree = ""; + }; + 8BA05A56072072A900365D66 /* AU Source */ = { + isa = PBXGroup; + children = ( + 8BC6025B073B072D006C4272 /* kWoodRoom.h */, + 8BA05A660720730100365D66 /* kWoodRoom.cpp */, + 8BA05A670720730100365D66 /* kWoodRoom.exp */, + 8BA05A680720730100365D66 /* kWoodRoom.r */, + 8BA05A690720730100365D66 /* kWoodRoomVersion.h */, + ); + name = "AU Source"; + sourceTree = ""; + }; + 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 = ""; + }; + 8BA05A99072073D200365D66 /* OtherBases */ = { + isa = PBXGroup; + children = ( + 8BA05A9A072073D200365D66 /* AUEffectBase.cpp */, + 8BA05A9B072073D200365D66 /* AUEffectBase.h */, + ); + path = OtherBases; + sourceTree = ""; + }; + 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 = ""; + }; + 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 /* kWoodRoomVersion.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 /* kWoodRoom.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 /* kWoodRoom */ = { + isa = PBXNativeTarget; + buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "kWoodRoom" */; + buildPhases = ( + 8D01CCC70486CAD60068D4B7 /* Headers */, + 8D01CCC90486CAD60068D4B7 /* Resources */, + 8D01CCCB0486CAD60068D4B7 /* Sources */, + 8D01CCCD0486CAD60068D4B7 /* Frameworks */, + 8D01CCCF0486CAD60068D4B7 /* Rez */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = kWoodRoom; + productInstallPath = "$(HOME)/Library/Bundles"; + productName = kWoodRoom; + productReference = 8D01CCD20486CAD60068D4B7 /* kWoodRoom.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 "kWoodRoom" */; + compatibilityVersion = "Xcode 3.1"; + developmentRegion = English; + hasScannedForEncodings = 1; + knownRegions = ( + English, + Japanese, + French, + German, + ); + mainGroup = 089C166AFE841209C02AAC07 /* kWoodRoom */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 8D01CCC60486CAD60068D4B7 /* kWoodRoom */, + ); + }; +/* 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 /* kWoodRoom.r in Rez */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXRezBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 8D01CCCB0486CAD60068D4B7 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 8BA05A6B0720730100365D66 /* kWoodRoom.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 = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 3E4BA244089833B7007656EC /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + EXPORTED_SYMBOLS_FILE = kWoodRoom.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 = kWoodRoom; + WRAPPER_EXTENSION = component; + }; + name = Debug; + }; + 3E4BA245089833B7007656EC /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = ( + ppc, + i386, + x86_64, + ); + EXPORTED_SYMBOLS_FILE = kWoodRoom.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 = kWoodRoom; + 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 "kWoodRoom" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3E4BA244089833B7007656EC /* Debug */, + 3E4BA245089833B7007656EC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 3E4BA247089833B7007656EC /* Build configuration list for PBXProject "kWoodRoom" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3E4BA248089833B7007656EC /* Debug */, + 3E4BA249089833B7007656EC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; +/* End XCConfigurationList section */ + }; + rootObject = 089C1669FE841209C02AAC07 /* Project object */; +} diff --git a/plugins/MacSignedAU/kWoodRoom/kWoodRoomVersion.h b/plugins/MacSignedAU/kWoodRoom/kWoodRoomVersion.h new file mode 100755 index 000000000..d87cfed2e --- /dev/null +++ b/plugins/MacSignedAU/kWoodRoom/kWoodRoomVersion.h @@ -0,0 +1,58 @@ +/* +* File: kWoodRoomVersion.h +* +* Version: 1.0 +* +* Created: 11/1/25 +* +* Copyright: Copyright © 2025 Airwindows, Airwindows uses the MIT license +* +* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in +* consideration of your agreement to the following terms, and your use, installation, modification +* or redistribution of this Apple software constitutes acceptance of these terms. If you do +* not agree with these terms, please do not use, install, modify or redistribute this Apple +* software. +* +* In consideration of your agreement to abide by the following terms, and subject to these terms, +* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this +* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the +* Apple Software, with or without modifications, in source and/or binary forms; provided that if you +* redistribute the Apple Software in its entirety and without modifications, you must retain this +* notice and the following text and disclaimers in all such redistributions of the Apple Software. +* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to +* endorse or promote products derived from the Apple Software without specific prior written +* permission from Apple. Except as expressly stated in this notice, no other rights or +* licenses, express or implied, are granted by Apple herein, including but not limited to any +* patent rights that may be infringed by your derivative works or by other works in which the +* Apple Software may be incorporated. +* +* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR +* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY +* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE +* OR IN COMBINATION WITH YOUR PRODUCTS. +* +* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL +* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, +* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER +* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN +* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +*/ +#ifndef __kWoodRoomVersion_h__ +#define __kWoodRoomVersion_h__ + + +#ifdef DEBUG + #define kkWoodRoomVersion 0xFFFFFFFF +#else + #define kkWoodRoomVersion 0x00010000 +#endif + +//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~// +#define kWoodRoom_COMP_MANF 'Dthr' +#define kWoodRoom_COMP_SUBTYPE 'kwdr' +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// + +#endif + diff --git a/plugins/MacSignedAU/kWoodRoom/version.plist b/plugins/MacSignedAU/kWoodRoom/version.plist new file mode 100755 index 000000000..11edf8a1b --- /dev/null +++ b/plugins/MacSignedAU/kWoodRoom/version.plist @@ -0,0 +1,16 @@ + + + + + BuildVersion + 3 + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1.0 + ProjectName + ${EXECUTABLE_NAME} + SourceVersion + 590000 + + diff --git a/plugins/MacSignedVST/ConsoleX2Buss/ConsoleX2Buss.xcodeproj/christopherjohnson.pbxuser b/plugins/MacSignedVST/ConsoleX2Buss/ConsoleX2Buss.xcodeproj/christopherjohnson.pbxuser index c1a83952b..e2108537e 100755 --- a/plugins/MacSignedVST/ConsoleX2Buss/ConsoleX2Buss.xcodeproj/christopherjohnson.pbxuser +++ b/plugins/MacSignedVST/ConsoleX2Buss/ConsoleX2Buss.xcodeproj/christopherjohnson.pbxuser @@ -49,12 +49,12 @@ PBXFileDataSource_Warnings_ColumnID, ); }; - PBXPerProjectTemplateStateSaveDate = 781899443; - PBXWorkspaceStateSaveDate = 781899443; + PBXPerProjectTemplateStateSaveDate = 783620239; + PBXWorkspaceStateSaveDate = 783620239; }; perUserProjectItems = { - 8B962B282E9AD3D6000EAC04 /* PBXTextBookmark */ = 8B962B282E9AD3D6000EAC04 /* PBXTextBookmark */; - 8B962BA42E9AD77C000EAC04 /* PBXTextBookmark */ = 8B962BA42E9AD77C000EAC04 /* PBXTextBookmark */; + 8B5C9E812EB51CB9008B9860 /* PBXTextBookmark */ = 8B5C9E812EB51CB9008B9860 /* PBXTextBookmark */; + 8B692C242EB4F63600F51381 /* PBXTextBookmark */ = 8B692C242EB4F63600F51381 /* PBXTextBookmark */; }; sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */; userBuildSettings = { @@ -62,18 +62,18 @@ }; 2407DEB6089929BA00EB68BF /* ConsoleX2Buss.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {848, 4770}}"; - sepNavSelRange = "{10766, 0}"; - sepNavVisRange = "{6075, 2252}"; - sepNavWindowFrame = "{{12, 47}, {895, 831}}"; + sepNavIntBoundsRect = "{{0, 0}, {975, 4266}}"; + sepNavSelRange = "{7594, 739}"; + sepNavVisRange = "{6198, 2275}"; + sepNavWindowFrame = "{{9, 47}, {895, 831}}"; }; }; 245463B80991757100464AD3 /* ConsoleX2Buss.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1110, 3258}}"; - sepNavSelRange = "{4290, 0}"; - sepNavVisRange = "{2669, 585}"; - sepNavWindowFrame = "{{20, 47}, {895, 831}}"; + sepNavIntBoundsRect = "{{0, 0}, {1101, 3006}}"; + sepNavSelRange = "{3923, 0}"; + sepNavVisRange = "{3323, 661}"; + sepNavWindowFrame = "{{7, 47}, {895, 831}}"; }; }; 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = { @@ -86,10 +86,10 @@ }; 24D8286F09A914000093AEF8 /* ConsoleX2BussProc.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {606, 18756}}"; - sepNavSelRange = "{46057, 0}"; - sepNavVisRange = "{45893, 159}"; - sepNavWindowFrame = "{{540, 47}, {895, 831}}"; + sepNavIntBoundsRect = "{{0, 0}, {1029, 16560}}"; + sepNavSelRange = "{41563, 0}"; + sepNavVisRange = "{21407, 165}"; + sepNavWindowFrame = "{{7, 47}, {895, 831}}"; }; }; 8B02375E1D42B1C400E1E8C8 /* Source Control */ = { @@ -106,25 +106,25 @@ isa = PBXCodeSenseManager; indexTemplatePath = ""; }; - 8B962B282E9AD3D6000EAC04 /* PBXTextBookmark */ = { + 8B5C9E812EB51CB9008B9860 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 24D8286F09A914000093AEF8 /* ConsoleX2BussProc.cpp */; - name = "ConsoleX2BussProc.cpp: 1019"; + name = "ConsoleX2BussProc.cpp: 906"; rLen = 0; - rLoc = 46057; + rLoc = 41563; rType = 0; - vrLen = 219; - vrLoc = 45861; + vrLen = 165; + vrLoc = 21407; }; - 8B962BA42E9AD77C000EAC04 /* PBXTextBookmark */ = { + 8B692C242EB4F63600F51381 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 24D8286F09A914000093AEF8 /* ConsoleX2BussProc.cpp */; - name = "ConsoleX2BussProc.cpp: 1019"; + name = "ConsoleX2BussProc.cpp: 907"; rLen = 0; - rLoc = 46057; + rLoc = 41563; rType = 0; - vrLen = 159; - vrLoc = 45893; + vrLen = 165; + vrLoc = 21427; }; 8D01CCC60486CAD60068D4B7 /* ConsoleX2Buss */ = { activeExec = 0; diff --git a/plugins/MacSignedVST/ConsoleX2Buss/ConsoleX2Buss.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacSignedVST/ConsoleX2Buss/ConsoleX2Buss.xcodeproj/christopherjohnson.perspectivev3 index 93f6257e6..fa8e5dd73 100755 --- a/plugins/MacSignedVST/ConsoleX2Buss/ConsoleX2Buss.xcodeproj/christopherjohnson.perspectivev3 +++ b/plugins/MacSignedVST/ConsoleX2Buss/ConsoleX2Buss.xcodeproj/christopherjohnson.perspectivev3 @@ -323,7 +323,7 @@ 185 RubberWindowFrame - 605 304 810 487 0 0 1440 878 + 23 300 810 487 0 0 1440 878 Module PBXSmartGroupTreeModule @@ -351,10 +351,10 @@ _historyCapacity 0 bookmark - 8B962BA42E9AD77C000EAC04 + 8B5C9E812EB51CB9008B9860 history - 8B962B282E9AD3D6000EAC04 + 8B692C242EB4F63600F51381 SplitCount @@ -368,18 +368,18 @@ GeometryConfiguration Frame - {{0, 0}, {603, 117}} + {{0, 0}, {603, 69}} RubberWindowFrame - 605 304 810 487 0 0 1440 878 + 23 300 810 487 0 0 1440 878 Module PBXNavigatorGroup Proportion - 117pt + 69pt Proportion - 324pt + 372pt Tabs @@ -393,9 +393,9 @@ GeometryConfiguration Frame - {{10, 27}, {603, 297}} + {{10, 27}, {603, 345}} RubberWindowFrame - 605 304 810 487 0 0 1440 878 + 23 300 810 487 0 0 1440 878 Module XCDetailModule @@ -449,7 +449,7 @@ GeometryConfiguration Frame - {{10, 27}, {603, 282}} + {{10, 27}, {603, 328}} Module PBXBuildResultsModule @@ -477,11 +477,11 @@ TableOfContents - 8B962BA52E9AD77C000EAC04 + 8B5C9E522EB51894008B9860 1CA23ED40692098700951B8B - 8B962BA62E9AD77C000EAC04 + 8B5C9E532EB51894008B9860 8B0237581D42B1C400E1E8C8 - 8B962BA72E9AD77C000EAC04 + 8B5C9E542EB51894008B9860 1CA23EDF0692099D00951B8B 1CA23EE00692099D00951B8B 1CA23EE10692099D00951B8B @@ -634,7 +634,7 @@ StatusbarIsVisible TimeStamp - 781899644.67740095 + 783621305.02929103 ToolbarConfigUserDefaultsMinorVersion 2 ToolbarDisplayMode @@ -654,7 +654,7 @@ /Users/christopherjohnson/Desktop/airwindows/plugins/MacVST/ConsoleX2Buss/ConsoleX2Buss.xcodeproj WindowString - 605 304 810 487 0 0 1440 878 + 23 300 810 487 0 0 1440 878 WindowToolsV3 diff --git a/plugins/MacSignedVST/ConsoleX2Buss/ConsoleX2Buss.xcodeproj/project.pbxproj b/plugins/MacSignedVST/ConsoleX2Buss/ConsoleX2Buss.xcodeproj/project.pbxproj index 6724559f7..a5dfeabc7 100755 --- a/plugins/MacSignedVST/ConsoleX2Buss/ConsoleX2Buss.xcodeproj/project.pbxproj +++ b/plugins/MacSignedVST/ConsoleX2Buss/ConsoleX2Buss.xcodeproj/project.pbxproj @@ -12,15 +12,15 @@ 24CFB70407E7A0220081BD57 /* PkgInfo in Resources */ = {isa = PBXBuildFile; fileRef = 24CFB70307E7A0220081BD57 /* PkgInfo */; }; 24D8287009A914000093AEF8 /* ConsoleX2BussProc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 24D8286F09A914000093AEF8 /* ConsoleX2BussProc.cpp */; }; 24D8287F09A9164A0093AEF8 /* xcode_vst_prefix.h in Headers */ = {isa = PBXBuildFile; fileRef = 24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */; }; - 8BEE22862E9DBE7A001FB1BD /* vstfxstore.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BEE227A2E9DBE7A001FB1BD /* vstfxstore.h */; }; - 8BEE22872E9DBE7A001FB1BD /* aeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BEE227B2E9DBE7A001FB1BD /* aeffect.h */; }; - 8BEE22882E9DBE7A001FB1BD /* aeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BEE227C2E9DBE7A001FB1BD /* aeffectx.h */; }; - 8BEE22892E9DBE7A001FB1BD /* audioeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BEE22802E9DBE7A001FB1BD /* audioeffectx.h */; }; - 8BEE228A2E9DBE7A001FB1BD /* audioeffect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BEE22812E9DBE7A001FB1BD /* audioeffect.cpp */; }; - 8BEE228B2E9DBE7A001FB1BD /* audioeffectx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BEE22822E9DBE7A001FB1BD /* audioeffectx.cpp */; }; - 8BEE228C2E9DBE7A001FB1BD /* aeffeditor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BEE22832E9DBE7A001FB1BD /* aeffeditor.h */; }; - 8BEE228D2E9DBE7A001FB1BD /* vstplugmain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BEE22842E9DBE7A001FB1BD /* vstplugmain.cpp */; }; - 8BEE228E2E9DBE7A001FB1BD /* audioeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BEE22852E9DBE7A001FB1BD /* audioeffect.h */; }; + 8B7A4AEE2EB56D9200B07840 /* vstfxstore.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4AE22EB56D9200B07840 /* vstfxstore.h */; }; + 8B7A4AEF2EB56D9200B07840 /* aeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4AE32EB56D9200B07840 /* aeffect.h */; }; + 8B7A4AF02EB56D9200B07840 /* aeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4AE42EB56D9200B07840 /* aeffectx.h */; }; + 8B7A4AF12EB56D9200B07840 /* audioeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4AE82EB56D9200B07840 /* audioeffectx.h */; }; + 8B7A4AF22EB56D9200B07840 /* audioeffect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A4AE92EB56D9200B07840 /* audioeffect.cpp */; }; + 8B7A4AF32EB56D9200B07840 /* audioeffectx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A4AEA2EB56D9200B07840 /* audioeffectx.cpp */; }; + 8B7A4AF42EB56D9200B07840 /* aeffeditor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4AEB2EB56D9200B07840 /* aeffeditor.h */; }; + 8B7A4AF52EB56D9200B07840 /* vstplugmain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A4AEC2EB56D9200B07840 /* vstplugmain.cpp */; }; + 8B7A4AF62EB56D9200B07840 /* audioeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4AED2EB56D9200B07840 /* audioeffect.h */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -30,15 +30,15 @@ 24CFB70307E7A0220081BD57 /* PkgInfo */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = PkgInfo; path = mac/PkgInfo; sourceTree = ""; }; 24D8286F09A914000093AEF8 /* ConsoleX2BussProc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ConsoleX2BussProc.cpp; path = source/ConsoleX2BussProc.cpp; sourceTree = ""; }; 24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = xcode_vst_prefix.h; path = mac/xcode_vst_prefix.h; sourceTree = SOURCE_ROOT; }; - 8BEE227A2E9DBE7A001FB1BD /* vstfxstore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstfxstore.h; sourceTree = ""; }; - 8BEE227B2E9DBE7A001FB1BD /* aeffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffect.h; sourceTree = ""; }; - 8BEE227C2E9DBE7A001FB1BD /* aeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffectx.h; sourceTree = ""; }; - 8BEE22802E9DBE7A001FB1BD /* audioeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audioeffectx.h; sourceTree = ""; }; - 8BEE22812E9DBE7A001FB1BD /* audioeffect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffect.cpp; sourceTree = ""; }; - 8BEE22822E9DBE7A001FB1BD /* audioeffectx.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffectx.cpp; sourceTree = ""; }; - 8BEE22832E9DBE7A001FB1BD /* aeffeditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffeditor.h; sourceTree = ""; }; - 8BEE22842E9DBE7A001FB1BD /* vstplugmain.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstplugmain.cpp; sourceTree = ""; }; - 8BEE22852E9DBE7A001FB1BD /* audioeffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audioeffect.h; sourceTree = ""; }; + 8B7A4AE22EB56D9200B07840 /* vstfxstore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstfxstore.h; sourceTree = ""; }; + 8B7A4AE32EB56D9200B07840 /* aeffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffect.h; sourceTree = ""; }; + 8B7A4AE42EB56D9200B07840 /* aeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffectx.h; sourceTree = ""; }; + 8B7A4AE82EB56D9200B07840 /* audioeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audioeffectx.h; sourceTree = ""; }; + 8B7A4AE92EB56D9200B07840 /* audioeffect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffect.cpp; sourceTree = ""; }; + 8B7A4AEA2EB56D9200B07840 /* audioeffectx.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffectx.cpp; sourceTree = ""; }; + 8B7A4AEB2EB56D9200B07840 /* aeffeditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffeditor.h; sourceTree = ""; }; + 8B7A4AEC2EB56D9200B07840 /* vstplugmain.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstplugmain.cpp; sourceTree = ""; }; + 8B7A4AED2EB56D9200B07840 /* audioeffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audioeffect.h; sourceTree = ""; }; 8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = mac/Info.plist; sourceTree = ""; }; /* End PBXFileReference section */ @@ -66,7 +66,7 @@ 08FB77ADFE841716C02AAC07 /* Source */ = { isa = PBXGroup; children = ( - 8BEE22772E9DBE7A001FB1BD /* vstsdk2.4 */, + 8B7A4ADF2EB56D9200B07840 /* vstsdk2.4 */, 2407DEB6089929BA00EB68BF /* ConsoleX2Buss.cpp */, 24D8286F09A914000093AEF8 /* ConsoleX2BussProc.cpp */, 245463B80991757100464AD3 /* ConsoleX2Buss.h */, @@ -82,59 +82,59 @@ name = Products; sourceTree = ""; }; - 8BEE22772E9DBE7A001FB1BD /* vstsdk2.4 */ = { + 8B7A4ADF2EB56D9200B07840 /* vstsdk2.4 */ = { isa = PBXGroup; children = ( - 8BEE22782E9DBE7A001FB1BD /* pluginterfaces */, - 8BEE227D2E9DBE7A001FB1BD /* public.sdk */, + 8B7A4AE02EB56D9200B07840 /* pluginterfaces */, + 8B7A4AE52EB56D9200B07840 /* public.sdk */, ); name = vstsdk2.4; path = ../../../../vstsdk2.4; sourceTree = ""; }; - 8BEE22782E9DBE7A001FB1BD /* pluginterfaces */ = { + 8B7A4AE02EB56D9200B07840 /* pluginterfaces */ = { isa = PBXGroup; children = ( - 8BEE22792E9DBE7A001FB1BD /* vst2.x */, + 8B7A4AE12EB56D9200B07840 /* vst2.x */, ); path = pluginterfaces; sourceTree = ""; }; - 8BEE22792E9DBE7A001FB1BD /* vst2.x */ = { + 8B7A4AE12EB56D9200B07840 /* vst2.x */ = { isa = PBXGroup; children = ( - 8BEE227A2E9DBE7A001FB1BD /* vstfxstore.h */, - 8BEE227B2E9DBE7A001FB1BD /* aeffect.h */, - 8BEE227C2E9DBE7A001FB1BD /* aeffectx.h */, + 8B7A4AE22EB56D9200B07840 /* vstfxstore.h */, + 8B7A4AE32EB56D9200B07840 /* aeffect.h */, + 8B7A4AE42EB56D9200B07840 /* aeffectx.h */, ); path = vst2.x; sourceTree = ""; }; - 8BEE227D2E9DBE7A001FB1BD /* public.sdk */ = { + 8B7A4AE52EB56D9200B07840 /* public.sdk */ = { isa = PBXGroup; children = ( - 8BEE227E2E9DBE7A001FB1BD /* source */, + 8B7A4AE62EB56D9200B07840 /* source */, ); path = public.sdk; sourceTree = ""; }; - 8BEE227E2E9DBE7A001FB1BD /* source */ = { + 8B7A4AE62EB56D9200B07840 /* source */ = { isa = PBXGroup; children = ( - 8BEE227F2E9DBE7A001FB1BD /* vst2.x */, + 8B7A4AE72EB56D9200B07840 /* vst2.x */, ); path = source; sourceTree = ""; }; - 8BEE227F2E9DBE7A001FB1BD /* vst2.x */ = { + 8B7A4AE72EB56D9200B07840 /* vst2.x */ = { isa = PBXGroup; children = ( - 8BEE22802E9DBE7A001FB1BD /* audioeffectx.h */, - 8BEE22812E9DBE7A001FB1BD /* audioeffect.cpp */, - 8BEE22822E9DBE7A001FB1BD /* audioeffectx.cpp */, - 8BEE22832E9DBE7A001FB1BD /* aeffeditor.h */, - 8BEE22842E9DBE7A001FB1BD /* vstplugmain.cpp */, - 8BEE22852E9DBE7A001FB1BD /* audioeffect.h */, + 8B7A4AE82EB56D9200B07840 /* audioeffectx.h */, + 8B7A4AE92EB56D9200B07840 /* audioeffect.cpp */, + 8B7A4AEA2EB56D9200B07840 /* audioeffectx.cpp */, + 8B7A4AEB2EB56D9200B07840 /* aeffeditor.h */, + 8B7A4AEC2EB56D9200B07840 /* vstplugmain.cpp */, + 8B7A4AED2EB56D9200B07840 /* audioeffect.h */, ); path = vst2.x; sourceTree = ""; @@ -146,14 +146,14 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 8BEE228C2E9DBE7A001FB1BD /* aeffeditor.h in Headers */, + 8B7A4AF42EB56D9200B07840 /* aeffeditor.h in Headers */, 245463B90991757100464AD3 /* ConsoleX2Buss.h in Headers */, - 8BEE228E2E9DBE7A001FB1BD /* audioeffect.h in Headers */, - 8BEE22872E9DBE7A001FB1BD /* aeffect.h in Headers */, + 8B7A4AF62EB56D9200B07840 /* audioeffect.h in Headers */, + 8B7A4AEF2EB56D9200B07840 /* aeffect.h in Headers */, 24D8287F09A9164A0093AEF8 /* xcode_vst_prefix.h in Headers */, - 8BEE22892E9DBE7A001FB1BD /* audioeffectx.h in Headers */, - 8BEE22862E9DBE7A001FB1BD /* vstfxstore.h in Headers */, - 8BEE22882E9DBE7A001FB1BD /* aeffectx.h in Headers */, + 8B7A4AF12EB56D9200B07840 /* audioeffectx.h in Headers */, + 8B7A4AEE2EB56D9200B07840 /* vstfxstore.h in Headers */, + 8B7A4AF02EB56D9200B07840 /* aeffectx.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -192,11 +192,11 @@ developmentRegion = en; hasScannedForEncodings = 1; knownRegions = ( - Base, - fr, en, + fr, de, ja, + Base, ); mainGroup = 089C166AFE841209C02AAC07 /* FM-Chopper */; projectDirPath = ""; @@ -240,10 +240,10 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 8BEE228B2E9DBE7A001FB1BD /* audioeffectx.cpp in Sources */, + 8B7A4AF32EB56D9200B07840 /* audioeffectx.cpp in Sources */, 2407DEB9089929BA00EB68BF /* ConsoleX2Buss.cpp in Sources */, - 8BEE228A2E9DBE7A001FB1BD /* audioeffect.cpp in Sources */, - 8BEE228D2E9DBE7A001FB1BD /* vstplugmain.cpp in Sources */, + 8B7A4AF22EB56D9200B07840 /* audioeffect.cpp in Sources */, + 8B7A4AF52EB56D9200B07840 /* vstplugmain.cpp in Sources */, 24D8287009A914000093AEF8 /* ConsoleX2BussProc.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/plugins/MacSignedVST/ConsoleX2Buss/ConsoleX2Buss.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacSignedVST/ConsoleX2Buss/ConsoleX2Buss.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate index d27484450..af68e24b0 100755 Binary files a/plugins/MacSignedVST/ConsoleX2Buss/ConsoleX2Buss.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate and b/plugins/MacSignedVST/ConsoleX2Buss/ConsoleX2Buss.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/plugins/MacSignedVST/ConsoleX2Buss/source/ConsoleX2Buss.cpp b/plugins/MacSignedVST/ConsoleX2Buss/source/ConsoleX2Buss.cpp index 2d91e6d4e..d27cd2cec 100755 --- a/plugins/MacSignedVST/ConsoleX2Buss/source/ConsoleX2Buss.cpp +++ b/plugins/MacSignedVST/ConsoleX2Buss/source/ConsoleX2Buss.cpp @@ -23,12 +23,6 @@ ConsoleX2Buss::ConsoleX2Buss(audioMasterCallback audioMaster) : I = 1.0; J = 0.5; K = 0.5; - L = 0.0; - M = 1.0; - N = 0.0; - O = 0.0; - P = 0.5; - Q = 0.5; for (int x = 0; x < biq_total; x++) { highA[x] = 0.0; @@ -51,38 +45,19 @@ ConsoleX2Buss::ConsoleX2Buss(audioMasterCallback audioMaster) : 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; + bezCompS[bez_cycle] = 1.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 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 - 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 - - lFreqA = 1.0; lFreqB = 1.0; - hFreqA = 0.0; hFreqB = 0.0; panA = 0.5; panB = 0.5; inTrimA = 0.5; inTrimB = 0.5; @@ -130,12 +105,6 @@ VstInt32 ConsoleX2Buss::getChunk (void** data, bool isPreset) chunkData[8] = I; chunkData[9] = J; chunkData[10] = K; - chunkData[11] = L; - chunkData[12] = M; - chunkData[13] = N; - chunkData[14] = O; - chunkData[15] = P; - chunkData[16] = Q; /* 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. */ @@ -158,12 +127,6 @@ VstInt32 ConsoleX2Buss::setChunk (void* data, VstInt32 byteSize, bool isPreset) I = pinParameter(chunkData[8]); J = pinParameter(chunkData[9]); K = pinParameter(chunkData[10]); - L = pinParameter(chunkData[11]); - M = pinParameter(chunkData[12]); - N = pinParameter(chunkData[13]); - O = pinParameter(chunkData[14]); - P = pinParameter(chunkData[15]); - Q = pinParameter(chunkData[16]); /* We're ignoring byteSize as we found it to be a filthy liar */ /* calculate any other fields you need here - you could copy in @@ -184,12 +147,6 @@ void ConsoleX2Buss::setParameter(VstInt32 index, float value) { case kParamI: I = value; break; case kParamJ: J = value; break; case kParamK: K = value; break; - case kParamL: L = value; break; - case kParamM: M = value; break; - case kParamN: N = value; break; - case kParamO: O = value; break; - case kParamP: P = value; break; - case kParamQ: Q = value; break; default: throw; // unknown parameter, shouldn't happen! } } @@ -207,12 +164,6 @@ float ConsoleX2Buss::getParameter(VstInt32 index) { case kParamI: return I; break; case kParamJ: return J; break; case kParamK: return K; break; - case kParamL: return L; break; - case kParamM: return M; break; - case kParamN: return N; break; - case kParamO: return O; break; - case kParamP: return P; break; - case kParamQ: return Q; break; default: break; // unknown parameter, shouldn't happen! } return 0.0; //we only need to update the relevant name, this is simple to manage } @@ -228,14 +179,8 @@ void ConsoleX2Buss::getParameterName(VstInt32 index, char *text) { case kParamG: vst_strncpy (text, "LMidF", kVstMaxParamStrLen); break; case kParamH: vst_strncpy (text, "BassF", kVstMaxParamStrLen); break; case kParamI: vst_strncpy (text, "Thresh", kVstMaxParamStrLen); break; - case kParamJ: vst_strncpy (text, "Attack", kVstMaxParamStrLen); break; - case kParamK: vst_strncpy (text, "Release", kVstMaxParamStrLen); break; - case kParamL: vst_strncpy (text, "Gate", kVstMaxParamStrLen); break; - case kParamM: vst_strncpy (text, "Lowpass", kVstMaxParamStrLen); break; - case kParamN: vst_strncpy (text, "Hipass", kVstMaxParamStrLen); break; - case kParamO: vst_strncpy (text, "More", kVstMaxParamStrLen); break; - case kParamP: vst_strncpy (text, "Pan", kVstMaxParamStrLen); break; - case kParamQ: vst_strncpy (text, "Fader", kVstMaxParamStrLen); break; + case kParamJ: vst_strncpy (text, "Pan", kVstMaxParamStrLen); break; + case kParamK: vst_strncpy (text, "Fader", kVstMaxParamStrLen); break; default: break; // unknown parameter, shouldn't happen! } //this is our labels for displaying in the VST host } @@ -253,12 +198,6 @@ void ConsoleX2Buss::getParameterDisplay(VstInt32 index, char *text) { case kParamI: float2string (I, text, kVstMaxParamStrLen); break; case kParamJ: float2string (J, text, kVstMaxParamStrLen); break; case kParamK: float2string (K, text, kVstMaxParamStrLen); break; - case kParamL: float2string (L, text, kVstMaxParamStrLen); break; - case kParamM: float2string (M, text, kVstMaxParamStrLen); break; - case kParamN: float2string (N, text, kVstMaxParamStrLen); break; - case kParamO: float2string (O, text, kVstMaxParamStrLen); break; - case kParamP: float2string (P, text, kVstMaxParamStrLen); break; - case kParamQ: float2string (Q, text, kVstMaxParamStrLen); break; default: break; // unknown parameter, shouldn't happen! } //this displays the values and handles 'popups' where it's discrete choices } @@ -276,12 +215,6 @@ void ConsoleX2Buss::getParameterLabel(VstInt32 index, char *text) { case kParamI: vst_strncpy (text, "dyn", kVstMaxParamStrLen); break; case kParamJ: vst_strncpy (text, "", kVstMaxParamStrLen); break; case kParamK: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamL: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamM: vst_strncpy (text, "fltr", kVstMaxParamStrLen); break; - case kParamN: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamO: vst_strncpy (text, "+", kVstMaxParamStrLen); break; - case kParamP: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamQ: vst_strncpy (text, "", kVstMaxParamStrLen); break; default: break; // unknown parameter, shouldn't happen! } } diff --git a/plugins/MacSignedVST/ConsoleX2Buss/source/ConsoleX2Buss.h b/plugins/MacSignedVST/ConsoleX2Buss/source/ConsoleX2Buss.h index f63ec0053..f13fa39c5 100755 --- a/plugins/MacSignedVST/ConsoleX2Buss/source/ConsoleX2Buss.h +++ b/plugins/MacSignedVST/ConsoleX2Buss/source/ConsoleX2Buss.h @@ -27,15 +27,8 @@ enum { kParamI =8, kParamJ =9, kParamK =10, - kParamL =11, - kParamM =12, - kParamN =13, - kParamO =14, - kParamP =15, - kParamQ =16, - kNumParameters = 17 + kNumParameters = 11 }; // -const int dscBuf = 256; const int kNumPrograms = 0; const int kNumInputs = 2; @@ -80,12 +73,6 @@ private: float I; float J; float K; - float L; - float M; - float N; - float O; - float P; - float Q; enum { biq_freq, @@ -139,33 +126,25 @@ private: 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; diff --git a/plugins/MacSignedVST/ConsoleX2Buss/source/ConsoleX2BussProc.cpp b/plugins/MacSignedVST/ConsoleX2Buss/source/ConsoleX2BussProc.cpp index 158b71aa1..ccc0d1399 100755 --- a/plugins/MacSignedVST/ConsoleX2Buss/source/ConsoleX2BussProc.cpp +++ b/plugins/MacSignedVST/ConsoleX2Buss/source/ConsoleX2BussProc.cpp @@ -18,6 +18,8 @@ void ConsoleX2Buss::processReplacing(float **inputs, float **outputs, VstInt32 s 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 = (A-0.5)*2.0; trebleGain = 1.0+(trebleGain*fabs(trebleGain)*fabs(trebleGain)); @@ -44,8 +46,8 @@ void ConsoleX2Buss::processReplacing(float **inputs, float **outputs, VstInt32 s highC[biq_freq] = highB[biq_freq] = highA[biq_freq] = fmax(fmin(highA[biq_freq],0.4999),0.00025); double highFreq = pow(highF,3)*20000.0; double omega = 2.0*M_PI*(highFreq/getSampleRate()); - double K = 2.0-cos(omega); - double highCoef = -sqrt((K*K)-1.0)+K; + double biqK = 2.0-cos(omega); + double highCoef = -sqrt((biqK*biqK)-1.0)+biqK; highA[biq_reso] = 2.24697960 * highQ; highB[biq_reso] = 0.80193774 * highQ; highC[biq_reso] = 0.55495813 * highQ; @@ -54,8 +56,8 @@ void ConsoleX2Buss::processReplacing(float **inputs, float **outputs, VstInt32 s midC[biq_freq] = midB[biq_freq] = midA[biq_freq] = fmax(fmin(midA[biq_freq],0.4999),0.00025); double midFreq = pow(midF,3)*20000.0; omega = 2.0*M_PI*(midFreq/getSampleRate()); - K = 2.0-cos(omega); - double midCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double midCoef = -sqrt((biqK*biqK)-1.0)+biqK; midA[biq_reso] = 2.24697960 * midQ; midB[biq_reso] = 0.80193774 * midQ; midC[biq_reso] = 0.55495813 * midQ; @@ -64,97 +66,88 @@ void ConsoleX2Buss::processReplacing(float **inputs, float **outputs, VstInt32 s lowC[biq_freq] = lowB[biq_freq] = lowA[biq_freq] = fmax(fmin(lowA[biq_freq],0.4999),0.00025); double lowFreq = pow(bassF,3)*20000.0; omega = 2.0*M_PI*(lowFreq/getSampleRate()); - K = 2.0-cos(omega); - double lowCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double lowCoef = -sqrt((biqK*biqK)-1.0)+biqK; lowA[biq_reso] = 2.24697960 * lowQ; lowB[biq_reso] = 0.80193774 * lowQ; lowC[biq_reso] = 0.55495813 * lowQ; - K = tan(M_PI * highA[biq_freq]); - double norm = 1.0 / (1.0 + K / highA[biq_reso] + K * K); - highA[biq_a0] = K * K * norm; + biqK = tan(M_PI * highA[biq_freq]); + double norm = 1.0 / (1.0 + biqK / highA[biq_reso] + biqK * biqK); + highA[biq_a0] = biqK * biqK * norm; highA[biq_a1] = 2.0 * highA[biq_a0]; highA[biq_a2] = highA[biq_a0]; - highA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highA[biq_b2] = (1.0 - K / highA[biq_reso] + K * K) * norm; - K = tan(M_PI * highB[biq_freq]); - norm = 1.0 / (1.0 + K / highB[biq_reso] + K * K); - highB[biq_a0] = K * K * norm; + highA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highA[biq_b2] = (1.0 - biqK / highA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highB[biq_freq]); + norm = 1.0 / (1.0 + biqK / highB[biq_reso] + biqK * biqK); + highB[biq_a0] = biqK * biqK * norm; highB[biq_a1] = 2.0 * highB[biq_a0]; highB[biq_a2] = highB[biq_a0]; - highB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highB[biq_b2] = (1.0 - K / highB[biq_reso] + K * K) * norm; - K = tan(M_PI * highC[biq_freq]); - norm = 1.0 / (1.0 + K / highC[biq_reso] + K * K); - highC[biq_a0] = K * K * norm; + highB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highB[biq_b2] = (1.0 - biqK / highB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highC[biq_freq]); + norm = 1.0 / (1.0 + biqK / highC[biq_reso] + biqK * biqK); + highC[biq_a0] = biqK * biqK * norm; highC[biq_a1] = 2.0 * highC[biq_a0]; highC[biq_a2] = highC[biq_a0]; - highC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highC[biq_b2] = (1.0 - K / highC[biq_reso] + K * K) * norm; + highC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highC[biq_b2] = (1.0 - biqK / highC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * midA[biq_freq]); - norm = 1.0 / (1.0 + K / midA[biq_reso] + K * K); - midA[biq_a0] = K * K * norm; + biqK = tan(M_PI * midA[biq_freq]); + norm = 1.0 / (1.0 + biqK / midA[biq_reso] + biqK * biqK); + midA[biq_a0] = biqK * biqK * norm; midA[biq_a1] = 2.0 * midA[biq_a0]; midA[biq_a2] = midA[biq_a0]; - midA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midA[biq_b2] = (1.0 - K / midA[biq_reso] + K * K) * norm; - K = tan(M_PI * midB[biq_freq]); - norm = 1.0 / (1.0 + K / midB[biq_reso] + K * K); - midB[biq_a0] = K * K * norm; + midA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midA[biq_b2] = (1.0 - biqK / midA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midB[biq_freq]); + norm = 1.0 / (1.0 + biqK / midB[biq_reso] + biqK * biqK); + midB[biq_a0] = biqK * biqK * norm; midB[biq_a1] = 2.0 * midB[biq_a0]; midB[biq_a2] = midB[biq_a0]; - midB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midB[biq_b2] = (1.0 - K / midB[biq_reso] + K * K) * norm; - K = tan(M_PI * midC[biq_freq]); - norm = 1.0 / (1.0 + K / midC[biq_reso] + K * K); - midC[biq_a0] = K * K * norm; + midB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midB[biq_b2] = (1.0 - biqK / midB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midC[biq_freq]); + norm = 1.0 / (1.0 + biqK / midC[biq_reso] + biqK * biqK); + midC[biq_a0] = biqK * biqK * norm; midC[biq_a1] = 2.0 * midC[biq_a0]; midC[biq_a2] = midC[biq_a0]; - midC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midC[biq_b2] = (1.0 - K / midC[biq_reso] + K * K) * norm; + midC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midC[biq_b2] = (1.0 - biqK / midC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * lowA[biq_freq]); - norm = 1.0 / (1.0 + K / lowA[biq_reso] + K * K); - lowA[biq_a0] = K * K * norm; + biqK = tan(M_PI * lowA[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowA[biq_reso] + biqK * biqK); + lowA[biq_a0] = biqK * biqK * norm; lowA[biq_a1] = 2.0 * lowA[biq_a0]; lowA[biq_a2] = lowA[biq_a0]; - lowA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowA[biq_b2] = (1.0 - K / lowA[biq_reso] + K * K) * norm; - K = tan(M_PI * lowB[biq_freq]); - norm = 1.0 / (1.0 + K / lowB[biq_reso] + K * K); - lowB[biq_a0] = K * K * norm; + lowA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowA[biq_b2] = (1.0 - biqK / lowA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowB[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowB[biq_reso] + biqK * biqK); + lowB[biq_a0] = biqK * biqK * norm; lowB[biq_a1] = 2.0 * lowB[biq_a0]; lowB[biq_a2] = lowB[biq_a0]; - lowB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowB[biq_b2] = (1.0 - K / lowB[biq_reso] + K * K) * norm; - K = tan(M_PI * lowC[biq_freq]); - norm = 1.0 / (1.0 + K / lowC[biq_reso] + K * K); - lowC[biq_a0] = K * K * norm; + lowB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowB[biq_b2] = (1.0 - biqK / lowB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowC[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowC[biq_reso] + biqK * biqK); + lowC[biq_a0] = biqK * biqK * norm; lowC[biq_a1] = 2.0 * lowC[biq_a0]; lowC[biq_a2] = lowC[biq_a0]; - lowC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowC[biq_b2] = (1.0 - K / lowC[biq_reso] + K * K) * norm; + lowC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowC[biq_b2] = (1.0 - biqK / lowC[biq_reso] + biqK * biqK) * norm; //SmoothEQ2 double bezCThresh = pow(1.0-I, 6.0) * 8.0; - double bezRez = pow(1.0-J, 8.0) / overallscale; - double sloRez = pow(1.0-K,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(L,4.0),sqrt(bezCThresh+1.0)); + double bezRez = pow(1.0-I, 12.360679774997898) / overallscale; + double sloRez = pow(1.0-I,10.0) / overallscale; + sloRez = fmin(fmax(sloRez,0.00001),1.0); + bezRez = fmin(fmax(bezRez,0.00001),1.0); //Dynamics2 - lFreqA = lFreqB; lFreqB = pow(fmax(M,0.002),overallscale); //the lowpass - hFreqA = hFreqB; hFreqB = pow(N,overallscale+2.0); //the highpass - //Cabs2 - - double moreDiscontinuity = fmax(pow(O*0.42,3.0)*overallscale,0.00001); - double moreTapeHack = (O*1.4152481)+1.2; - //Discontapeity - - panA = panB; panB = P*1.57079633; - inTrimA = inTrimB; inTrimB = Q*2.0; + panA = panB; panB = J*1.57079633; + inTrimA = inTrimB; inTrimB = K*2.0; //Console while (--sampleFrames >= 0) @@ -310,9 +303,6 @@ void ConsoleX2Buss::processReplacing(float **inputs, float **outputs, VstInt32 s //fourth stage of three crossovers is the exponential filters //SmoothEQ2 - if (fmax(fabs(inputSampleL),fabs(inputSampleR)) > gate+(sloRez*bezGate)) bezGate = ((bezGate*overallscale*3.0)+3.0)*(0.25/overallscale); - else bezGate = fmax(0.0, bezGate-(sloRez*sloRez)); - if (bezCThresh > 0.0) { inputSampleL *= ((bezCThresh*0.5)+1.0); inputSampleR *= ((bezCThresh*0.5)+1.0); @@ -325,21 +315,14 @@ void ConsoleX2Buss::processReplacing(float **inputs, float **outputs, VstInt32 s if (bezCompF[bez_cycle] > 1.0) { bezCompF[bez_cycle] -= 1.0; - - if (bezMaxF < gate) bezCompF[bez_SampL] = bezMaxF/gate; //note: SampL is a control voltage, - if (bezCompF[bez_SampL] 1.0) { bezCompS[bez_cycle] -= 1.0; - - if (bezCompS[bez_SampL] 0.0) CBAMax = 1.0/CBAMax; CBAFade = ((CBASR*-CBAMax)+(CBAFR*CBAMax)+1.0)*0.5; if (bezCThresh > 0.0) inputSampleR *= 1.0-(fmin(((CBASR*(1.0-CBAFade))+(CBAFR*CBAFade))*bezCThresh,1.0)); - - if (bezGate < 1.0 && gate > 0.0) {inputSampleL *= bezGate; inputSampleR *= bezGate;} //Dynamics2 const double temp = (double)sampleFrames/inFramesToProcess; - const double hFreq = (hFreqA*temp)+(hFreqB*(1.0-temp)); - if (hFreq > 0.0) { - double lowSampleL = inputSampleL; - double lowSampleR = inputSampleR; - for(int count = 0; count < 21; count++) { - iirHAngleL[count] = (iirHAngleL[count]*(1.0-hFreq))+((lowSampleL-iirHPositionL[count])*hFreq); - lowSampleL = ((iirHPositionL[count]+(iirHAngleL[count]*hFreq))*(1.0-hFreq))+(lowSampleL*hFreq); - iirHPositionL[count] = ((iirHPositionL[count]+(iirHAngleL[count]*hFreq))*(1.0-hFreq))+(lowSampleL*hFreq); - inputSampleL -= (lowSampleL * (1.0/21.0));//left - iirHAngleR[count] = (iirHAngleR[count]*(1.0-hFreq))+((lowSampleR-iirHPositionR[count])*hFreq); - lowSampleR = ((iirHPositionR[count]+(iirHAngleR[count]*hFreq))*(1.0-hFreq))+(lowSampleR*hFreq); - iirHPositionR[count] = ((iirHPositionR[count]+(iirHAngleR[count]*hFreq))*(1.0-hFreq))+(lowSampleR*hFreq); - inputSampleR -= (lowSampleR * (1.0/21.0));//right - } //the highpass - hBypass = false; - } else { - if (!hBypass) { - hBypass = true; - for(int count = 0; count < 22; count++) { - iirHPositionL[count] = 0.0; - iirHAngleL[count] = 0.0; - iirHPositionR[count] = 0.0; - iirHAngleR[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++) { - iirLAngleL[count] = (iirLAngleL[count]*(1.0-lFreq))+((inputSampleL-iirLPositionL[count])*lFreq); - inputSampleL = ((iirLPositionL[count]+(iirLAngleL[count]*lFreq))*(1.0-lFreq))+(inputSampleL*lFreq); - iirLPositionL[count] = ((iirLPositionL[count]+(iirLAngleL[count]*lFreq))*(1.0-lFreq))+(inputSampleL*lFreq);//left - iirLAngleR[count] = (iirLAngleR[count]*(1.0-lFreq))+((inputSampleR-iirLPositionR[count])*lFreq); - inputSampleR = ((iirLPositionR[count]+(iirLAngleR[count]*lFreq))*(1.0-lFreq))+(inputSampleR*lFreq); - iirLPositionR[count] = ((iirLPositionR[count]+(iirLAngleR[count]*lFreq))*(1.0-lFreq))+(inputSampleR*lFreq);//right - } //the lowpass - lBypass = false; - } else { - if (!lBypass) { - lBypass = true; - for(int count = 0; count < 14; count++) { - iirLPositionL[count] = 0.0; - iirLAngleL[count] = 0.0; - iirLPositionR[count] = 0.0; - iirLAngleR[count] = 0.0; - } - } //blank out lowpass if just switched off - } - //Cabs2 + 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; - //begin Discontinuity section - inputSampleL *= moreDiscontinuity; - dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5); - dBaPosL = fmin(dBaPosL,1.0); - int dBdly = floor(dBaPosL*dscBuf); - double dBi = (dBaPosL*dscBuf)-dBdly; - inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi; - dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0; - inputSampleL /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleL = fmax(fmin(inputSampleL*moreTapeHack,2.305929007734908),-2.305929007734908); + 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); @@ -458,21 +425,11 @@ void ConsoleX2Buss::processReplacing(float **inputs, float **outputs, VstInt32 s empower *= addtwo; //eleventh inputSampleL -= (empower / 9979200.0f); //this is a degenerate form of a Taylor Series to approximate sin() - inputSampleL *= 0.9239; + inputSampleL *= 0.92; //end TapeHack section - //begin Discontinuity section - inputSampleR *= moreDiscontinuity; - dBaR[dBaXR] = inputSampleR; dBaPosR *= 0.5; dBaPosR += fabs((inputSampleR*((inputSampleR*0.25)-0.5))*0.5); - dBaPosR = fmin(dBaPosR,1.0); - dBdly = floor(dBaPosR*dscBuf); - dBi = (dBaPosR*dscBuf)-dBdly; - inputSampleR = dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleR += dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*dBi; - dBaXR++; if (dBaXR < 0 || dBaXR >= dscBuf) dBaXR = 0; - inputSampleR /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleR = fmax(fmin(inputSampleR*moreTapeHack,2.305929007734908),-2.305929007734908); + //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); @@ -485,22 +442,8 @@ void ConsoleX2Buss::processReplacing(float **inputs, float **outputs, VstInt32 s empower *= addtwo; //eleventh inputSampleR -= (empower / 9979200.0f); //this is a degenerate form of a Taylor Series to approximate sin() - inputSampleR *= 0.9239; + inputSampleR *= 0.92; //end TapeHack section - //Discontapeity - - 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 //begin 32 bit stereo floating point dither int expon; frexpf((float)inputSampleL, &expon); @@ -532,6 +475,8 @@ void ConsoleX2Buss::processDoubleReplacing(double **inputs, double **outputs, Vs 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 = (A-0.5)*2.0; trebleGain = 1.0+(trebleGain*fabs(trebleGain)*fabs(trebleGain)); @@ -558,8 +503,8 @@ void ConsoleX2Buss::processDoubleReplacing(double **inputs, double **outputs, Vs highC[biq_freq] = highB[biq_freq] = highA[biq_freq] = fmax(fmin(highA[biq_freq],0.4999),0.00025); double highFreq = pow(highF,3)*20000.0; double omega = 2.0*M_PI*(highFreq/getSampleRate()); - double K = 2.0-cos(omega); - double highCoef = -sqrt((K*K)-1.0)+K; + double biqK = 2.0-cos(omega); + double highCoef = -sqrt((biqK*biqK)-1.0)+biqK; highA[biq_reso] = 2.24697960 * highQ; highB[biq_reso] = 0.80193774 * highQ; highC[biq_reso] = 0.55495813 * highQ; @@ -568,8 +513,8 @@ void ConsoleX2Buss::processDoubleReplacing(double **inputs, double **outputs, Vs midC[biq_freq] = midB[biq_freq] = midA[biq_freq] = fmax(fmin(midA[biq_freq],0.4999),0.00025); double midFreq = pow(midF,3)*20000.0; omega = 2.0*M_PI*(midFreq/getSampleRate()); - K = 2.0-cos(omega); - double midCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double midCoef = -sqrt((biqK*biqK)-1.0)+biqK; midA[biq_reso] = 2.24697960 * midQ; midB[biq_reso] = 0.80193774 * midQ; midC[biq_reso] = 0.55495813 * midQ; @@ -578,97 +523,88 @@ void ConsoleX2Buss::processDoubleReplacing(double **inputs, double **outputs, Vs lowC[biq_freq] = lowB[biq_freq] = lowA[biq_freq] = fmax(fmin(lowA[biq_freq],0.4999),0.00025); double lowFreq = pow(bassF,3)*20000.0; omega = 2.0*M_PI*(lowFreq/getSampleRate()); - K = 2.0-cos(omega); - double lowCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double lowCoef = -sqrt((biqK*biqK)-1.0)+biqK; lowA[biq_reso] = 2.24697960 * lowQ; lowB[biq_reso] = 0.80193774 * lowQ; lowC[biq_reso] = 0.55495813 * lowQ; - K = tan(M_PI * highA[biq_freq]); - double norm = 1.0 / (1.0 + K / highA[biq_reso] + K * K); - highA[biq_a0] = K * K * norm; + biqK = tan(M_PI * highA[biq_freq]); + double norm = 1.0 / (1.0 + biqK / highA[biq_reso] + biqK * biqK); + highA[biq_a0] = biqK * biqK * norm; highA[biq_a1] = 2.0 * highA[biq_a0]; highA[biq_a2] = highA[biq_a0]; - highA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highA[biq_b2] = (1.0 - K / highA[biq_reso] + K * K) * norm; - K = tan(M_PI * highB[biq_freq]); - norm = 1.0 / (1.0 + K / highB[biq_reso] + K * K); - highB[biq_a0] = K * K * norm; + highA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highA[biq_b2] = (1.0 - biqK / highA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highB[biq_freq]); + norm = 1.0 / (1.0 + biqK / highB[biq_reso] + biqK * biqK); + highB[biq_a0] = biqK * biqK * norm; highB[biq_a1] = 2.0 * highB[biq_a0]; highB[biq_a2] = highB[biq_a0]; - highB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highB[biq_b2] = (1.0 - K / highB[biq_reso] + K * K) * norm; - K = tan(M_PI * highC[biq_freq]); - norm = 1.0 / (1.0 + K / highC[biq_reso] + K * K); - highC[biq_a0] = K * K * norm; + highB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highB[biq_b2] = (1.0 - biqK / highB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highC[biq_freq]); + norm = 1.0 / (1.0 + biqK / highC[biq_reso] + biqK * biqK); + highC[biq_a0] = biqK * biqK * norm; highC[biq_a1] = 2.0 * highC[biq_a0]; highC[biq_a2] = highC[biq_a0]; - highC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highC[biq_b2] = (1.0 - K / highC[biq_reso] + K * K) * norm; + highC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highC[biq_b2] = (1.0 - biqK / highC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * midA[biq_freq]); - norm = 1.0 / (1.0 + K / midA[biq_reso] + K * K); - midA[biq_a0] = K * K * norm; + biqK = tan(M_PI * midA[biq_freq]); + norm = 1.0 / (1.0 + biqK / midA[biq_reso] + biqK * biqK); + midA[biq_a0] = biqK * biqK * norm; midA[biq_a1] = 2.0 * midA[biq_a0]; midA[biq_a2] = midA[biq_a0]; - midA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midA[biq_b2] = (1.0 - K / midA[biq_reso] + K * K) * norm; - K = tan(M_PI * midB[biq_freq]); - norm = 1.0 / (1.0 + K / midB[biq_reso] + K * K); - midB[biq_a0] = K * K * norm; + midA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midA[biq_b2] = (1.0 - biqK / midA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midB[biq_freq]); + norm = 1.0 / (1.0 + biqK / midB[biq_reso] + biqK * biqK); + midB[biq_a0] = biqK * biqK * norm; midB[biq_a1] = 2.0 * midB[biq_a0]; midB[biq_a2] = midB[biq_a0]; - midB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midB[biq_b2] = (1.0 - K / midB[biq_reso] + K * K) * norm; - K = tan(M_PI * midC[biq_freq]); - norm = 1.0 / (1.0 + K / midC[biq_reso] + K * K); - midC[biq_a0] = K * K * norm; + midB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midB[biq_b2] = (1.0 - biqK / midB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midC[biq_freq]); + norm = 1.0 / (1.0 + biqK / midC[biq_reso] + biqK * biqK); + midC[biq_a0] = biqK * biqK * norm; midC[biq_a1] = 2.0 * midC[biq_a0]; midC[biq_a2] = midC[biq_a0]; - midC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midC[biq_b2] = (1.0 - K / midC[biq_reso] + K * K) * norm; + midC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midC[biq_b2] = (1.0 - biqK / midC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * lowA[biq_freq]); - norm = 1.0 / (1.0 + K / lowA[biq_reso] + K * K); - lowA[biq_a0] = K * K * norm; + biqK = tan(M_PI * lowA[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowA[biq_reso] + biqK * biqK); + lowA[biq_a0] = biqK * biqK * norm; lowA[biq_a1] = 2.0 * lowA[biq_a0]; lowA[biq_a2] = lowA[biq_a0]; - lowA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowA[biq_b2] = (1.0 - K / lowA[biq_reso] + K * K) * norm; - K = tan(M_PI * lowB[biq_freq]); - norm = 1.0 / (1.0 + K / lowB[biq_reso] + K * K); - lowB[biq_a0] = K * K * norm; + lowA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowA[biq_b2] = (1.0 - biqK / lowA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowB[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowB[biq_reso] + biqK * biqK); + lowB[biq_a0] = biqK * biqK * norm; lowB[biq_a1] = 2.0 * lowB[biq_a0]; lowB[biq_a2] = lowB[biq_a0]; - lowB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowB[biq_b2] = (1.0 - K / lowB[biq_reso] + K * K) * norm; - K = tan(M_PI * lowC[biq_freq]); - norm = 1.0 / (1.0 + K / lowC[biq_reso] + K * K); - lowC[biq_a0] = K * K * norm; + lowB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowB[biq_b2] = (1.0 - biqK / lowB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowC[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowC[biq_reso] + biqK * biqK); + lowC[biq_a0] = biqK * biqK * norm; lowC[biq_a1] = 2.0 * lowC[biq_a0]; lowC[biq_a2] = lowC[biq_a0]; - lowC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowC[biq_b2] = (1.0 - K / lowC[biq_reso] + K * K) * norm; + lowC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowC[biq_b2] = (1.0 - biqK / lowC[biq_reso] + biqK * biqK) * norm; //SmoothEQ2 double bezCThresh = pow(1.0-I, 6.0) * 8.0; - double bezRez = pow(1.0-J, 8.0) / overallscale; - double sloRez = pow(1.0-K,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(L,4.0),sqrt(bezCThresh+1.0)); + double bezRez = pow(1.0-I, 12.360679774997898) / overallscale; + double sloRez = pow(1.0-I,10.0) / overallscale; + sloRez = fmin(fmax(sloRez,0.00001),1.0); + bezRez = fmin(fmax(bezRez,0.00001),1.0); //Dynamics2 - lFreqA = lFreqB; lFreqB = pow(fmax(M,0.002),overallscale); //the lowpass - hFreqA = hFreqB; hFreqB = pow(N,overallscale+2.0); //the highpass - //Cabs2 - - double moreDiscontinuity = fmax(pow(O*0.42,3.0)*overallscale,0.00001); - double moreTapeHack = (O*1.4152481)+1.2; - //Discontapeity - - panA = panB; panB = P*1.57079633; - inTrimA = inTrimB; inTrimB = Q*2.0; + panA = panB; panB = J*1.57079633; + inTrimA = inTrimB; inTrimB = K*2.0; //Console while (--sampleFrames >= 0) @@ -824,9 +760,6 @@ void ConsoleX2Buss::processDoubleReplacing(double **inputs, double **outputs, Vs //fourth stage of three crossovers is the exponential filters //SmoothEQ2 - if (fmax(fabs(inputSampleL),fabs(inputSampleR)) > gate+(sloRez*bezGate)) bezGate = ((bezGate*overallscale*3.0)+3.0)*(0.25/overallscale); - else bezGate = fmax(0.0, bezGate-(sloRez*sloRez)); - if (bezCThresh > 0.0) { inputSampleL *= ((bezCThresh*0.5)+1.0); inputSampleR *= ((bezCThresh*0.5)+1.0); @@ -839,21 +772,14 @@ void ConsoleX2Buss::processDoubleReplacing(double **inputs, double **outputs, Vs if (bezCompF[bez_cycle] > 1.0) { bezCompF[bez_cycle] -= 1.0; - - if (bezMaxF < gate) bezCompF[bez_SampL] = bezMaxF/gate; //note: SampL is a control voltage, - if (bezCompF[bez_SampL] 1.0) { bezCompS[bez_cycle] -= 1.0; - - if (bezCompS[bez_SampL] 0.0) CBAMax = 1.0/CBAMax; CBAFade = ((CBASR*-CBAMax)+(CBAFR*CBAMax)+1.0)*0.5; if (bezCThresh > 0.0) inputSampleR *= 1.0-(fmin(((CBASR*(1.0-CBAFade))+(CBAFR*CBAFade))*bezCThresh,1.0)); - - if (bezGate < 1.0 && gate > 0.0) {inputSampleL *= bezGate; inputSampleR *= bezGate;} //Dynamics2 const double temp = (double)sampleFrames/inFramesToProcess; - const double hFreq = (hFreqA*temp)+(hFreqB*(1.0-temp)); - if (hFreq > 0.0) { - double lowSampleL = inputSampleL; - double lowSampleR = inputSampleR; - for(int count = 0; count < 21; count++) { - iirHAngleL[count] = (iirHAngleL[count]*(1.0-hFreq))+((lowSampleL-iirHPositionL[count])*hFreq); - lowSampleL = ((iirHPositionL[count]+(iirHAngleL[count]*hFreq))*(1.0-hFreq))+(lowSampleL*hFreq); - iirHPositionL[count] = ((iirHPositionL[count]+(iirHAngleL[count]*hFreq))*(1.0-hFreq))+(lowSampleL*hFreq); - inputSampleL -= (lowSampleL * (1.0/21.0));//left - iirHAngleR[count] = (iirHAngleR[count]*(1.0-hFreq))+((lowSampleR-iirHPositionR[count])*hFreq); - lowSampleR = ((iirHPositionR[count]+(iirHAngleR[count]*hFreq))*(1.0-hFreq))+(lowSampleR*hFreq); - iirHPositionR[count] = ((iirHPositionR[count]+(iirHAngleR[count]*hFreq))*(1.0-hFreq))+(lowSampleR*hFreq); - inputSampleR -= (lowSampleR * (1.0/21.0));//right - } //the highpass - hBypass = false; - } else { - if (!hBypass) { - hBypass = true; - for(int count = 0; count < 22; count++) { - iirHPositionL[count] = 0.0; - iirHAngleL[count] = 0.0; - iirHPositionR[count] = 0.0; - iirHAngleR[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++) { - iirLAngleL[count] = (iirLAngleL[count]*(1.0-lFreq))+((inputSampleL-iirLPositionL[count])*lFreq); - inputSampleL = ((iirLPositionL[count]+(iirLAngleL[count]*lFreq))*(1.0-lFreq))+(inputSampleL*lFreq); - iirLPositionL[count] = ((iirLPositionL[count]+(iirLAngleL[count]*lFreq))*(1.0-lFreq))+(inputSampleL*lFreq);//left - iirLAngleR[count] = (iirLAngleR[count]*(1.0-lFreq))+((inputSampleR-iirLPositionR[count])*lFreq); - inputSampleR = ((iirLPositionR[count]+(iirLAngleR[count]*lFreq))*(1.0-lFreq))+(inputSampleR*lFreq); - iirLPositionR[count] = ((iirLPositionR[count]+(iirLAngleR[count]*lFreq))*(1.0-lFreq))+(inputSampleR*lFreq);//right - } //the lowpass - lBypass = false; - } else { - if (!lBypass) { - lBypass = true; - for(int count = 0; count < 14; count++) { - iirLPositionL[count] = 0.0; - iirLAngleL[count] = 0.0; - iirLPositionR[count] = 0.0; - iirLAngleR[count] = 0.0; - } - } //blank out lowpass if just switched off - } - //Cabs2 + 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; - //begin Discontinuity section - inputSampleL *= moreDiscontinuity; - dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5); - dBaPosL = fmin(dBaPosL,1.0); - int dBdly = floor(dBaPosL*dscBuf); - double dBi = (dBaPosL*dscBuf)-dBdly; - inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi; - dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0; - inputSampleL /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleL = fmax(fmin(inputSampleL*moreTapeHack,2.305929007734908),-2.305929007734908); + 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); @@ -972,21 +882,11 @@ void ConsoleX2Buss::processDoubleReplacing(double **inputs, double **outputs, Vs empower *= addtwo; //eleventh inputSampleL -= (empower / 9979200.0f); //this is a degenerate form of a Taylor Series to approximate sin() - inputSampleL *= 0.9239; + inputSampleL *= 0.92; //end TapeHack section - //begin Discontinuity section - inputSampleR *= moreDiscontinuity; - dBaR[dBaXR] = inputSampleR; dBaPosR *= 0.5; dBaPosR += fabs((inputSampleR*((inputSampleR*0.25)-0.5))*0.5); - dBaPosR = fmin(dBaPosR,1.0); - dBdly = floor(dBaPosR*dscBuf); - dBi = (dBaPosR*dscBuf)-dBdly; - inputSampleR = dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleR += dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*dBi; - dBaXR++; if (dBaXR < 0 || dBaXR >= dscBuf) dBaXR = 0; - inputSampleR /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleR = fmax(fmin(inputSampleR*moreTapeHack,2.305929007734908),-2.305929007734908); + //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); @@ -999,23 +899,10 @@ void ConsoleX2Buss::processDoubleReplacing(double **inputs, double **outputs, Vs empower *= addtwo; //eleventh inputSampleR -= (empower / 9979200.0f); //this is a degenerate form of a Taylor Series to approximate sin() - inputSampleR *= 0.9239; + inputSampleR *= 0.92; //end TapeHack section //Discontapeity - 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 - //begin 64 bit stereo floating point dither //int expon; frexp((double)inputSampleL, &expon); fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5; diff --git a/plugins/MacSignedVST/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/christopherjohnson.pbxuser b/plugins/MacSignedVST/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/christopherjohnson.pbxuser index e98bad508..82e525f60 100755 --- a/plugins/MacSignedVST/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/christopherjohnson.pbxuser +++ b/plugins/MacSignedVST/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/christopherjohnson.pbxuser @@ -49,12 +49,13 @@ PBXFileDataSource_Warnings_ColumnID, ); }; - PBXPerProjectTemplateStateSaveDate = 781897461; - PBXWorkspaceStateSaveDate = 781897461; + PBXPerProjectTemplateStateSaveDate = 783605003; + PBXWorkspaceStateSaveDate = 783605003; }; perUserProjectItems = { - 8B962A8C2E9AD02B000EAC04 /* PBXTextBookmark */ = 8B962A8C2E9AD02B000EAC04 /* PBXTextBookmark */; - 8B962A8D2E9AD02B000EAC04 /* PBXTextBookmark */ = 8B962A8D2E9AD02B000EAC04 /* PBXTextBookmark */; + 8B692BEA2EB4E28E00F51381 /* PBXTextBookmark */ = 8B692BEA2EB4E28E00F51381 /* PBXTextBookmark */; + 8BC5BE2E2EB165A900031C01 /* PBXTextBookmark */ = 8BC5BE2E2EB165A900031C01 /* PBXTextBookmark */; + 8BC5BE302EB165A900031C01 /* PBXTextBookmark */ = 8BC5BE302EB165A900031C01 /* PBXTextBookmark */; }; sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */; userBuildSettings = { @@ -62,17 +63,17 @@ }; 2407DEB6089929BA00EB68BF /* ConsoleX2Channel.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {848, 4644}}"; - sepNavSelRange = "{9567, 1255}"; - sepNavVisRange = "{9393, 2046}"; - sepNavWindowFrame = "{{763, 47}, {895, 831}}"; + sepNavIntBoundsRect = "{{0, 0}, {723, 5742}}"; + sepNavSelRange = "{8738, 73}"; + sepNavVisRange = "{8222, 217}"; + sepNavWindowFrame = "{{545, 47}, {895, 831}}"; }; }; 245463B80991757100464AD3 /* ConsoleX2Channel.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1110, 3240}}"; - sepNavSelRange = "{548, 0}"; - sepNavVisRange = "{3723, 648}"; + sepNavIntBoundsRect = "{{0, 0}, {1002, 4176}}"; + sepNavSelRange = "{4572, 0}"; + sepNavVisRange = "{4107, 593}"; sepNavWindowFrame = "{{545, 38}, {895, 831}}"; }; }; @@ -86,10 +87,10 @@ }; 24D8286F09A914000093AEF8 /* ConsoleX2ChannelProc.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1308, 18396}}"; - sepNavSelRange = "{6369, 16591}"; - sepNavVisRange = "{21848, 149}"; - sepNavWindowFrame = "{{545, 47}, {895, 831}}"; + sepNavIntBoundsRect = "{{0, 0}, {858, 20862}}"; + sepNavSelRange = "{51155, 0}"; + sepNavVisRange = "{31760, 1474}"; + sepNavWindowFrame = "{{459, 45}, {895, 831}}"; }; }; 8B02375E1D42B1C400E1E8C8 /* Source Control */ = { @@ -106,25 +107,35 @@ isa = PBXCodeSenseManager; indexTemplatePath = ""; }; - 8B962A8C2E9AD02B000EAC04 /* PBXTextBookmark */ = { + 8B692BEA2EB4E28E00F51381 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 24D8286F09A914000093AEF8 /* ConsoleX2ChannelProc.cpp */; - name = "ConsoleX2ChannelProc.cpp: 166"; - rLen = 16591; - rLoc = 6369; + fRef = 2407DEB6089929BA00EB68BF /* ConsoleX2Channel.cpp */; + name = "ConsoleX2Channel.cpp: 261"; + rLen = 73; + rLoc = 8738; rType = 0; - vrLen = 149; - vrLoc = 21848; + vrLen = 217; + vrLoc = 8222; }; - 8B962A8D2E9AD02B000EAC04 /* PBXTextBookmark */ = { + 8BC5BE2E2EB165A900031C01 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 24D8286F09A914000093AEF8 /* ConsoleX2ChannelProc.cpp */; - name = "ConsoleX2ChannelProc.cpp: 166"; - rLen = 16591; - rLoc = 6369; + name = "ConsoleX2ChannelProc.cpp: 492"; + rLen = 0; + rLoc = 24427; rType = 0; - vrLen = 149; - vrLoc = 21848; + vrLen = 98; + vrLoc = 22602; + }; + 8BC5BE302EB165A900031C01 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2407DEB6089929BA00EB68BF /* ConsoleX2Channel.cpp */; + name = "ConsoleX2Channel.cpp: 251"; + rLen = 73; + rLoc = 8738; + rType = 0; + vrLen = 176; + vrLoc = 8282; }; 8D01CCC60486CAD60068D4B7 /* ConsoleX2Channel */ = { activeExec = 0; diff --git a/plugins/MacSignedVST/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacSignedVST/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/christopherjohnson.perspectivev3 index 2fb20372b..dbcc634ad 100755 --- a/plugins/MacSignedVST/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/christopherjohnson.perspectivev3 +++ b/plugins/MacSignedVST/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/christopherjohnson.perspectivev3 @@ -323,7 +323,7 @@ 185 RubberWindowFrame - 630 341 810 487 0 0 1440 878 + 767 257 810 487 0 0 1440 878 Module PBXSmartGroupTreeModule @@ -339,7 +339,7 @@ PBXProjectModuleGUID 8B0237581D42B1C400E1E8C8 PBXProjectModuleLabel - ConsoleX2ChannelProc.cpp + ConsoleX2Channel.cpp PBXSplitModuleInNavigatorKey Split0 @@ -347,14 +347,15 @@ PBXProjectModuleGUID 8B0237591D42B1C400E1E8C8 PBXProjectModuleLabel - ConsoleX2ChannelProc.cpp + ConsoleX2Channel.cpp _historyCapacity 0 bookmark - 8B962A8D2E9AD02B000EAC04 + 8B692BEA2EB4E28E00F51381 history - 8B962A8C2E9AD02B000EAC04 + 8BC5BE2E2EB165A900031C01 + 8BC5BE302EB165A900031C01 SplitCount @@ -368,18 +369,18 @@ GeometryConfiguration Frame - {{0, 0}, {603, 132}} + {{0, 0}, {603, 69}} RubberWindowFrame - 630 341 810 487 0 0 1440 878 + 767 257 810 487 0 0 1440 878 Module PBXNavigatorGroup Proportion - 132pt + 69pt Proportion - 309pt + 372pt Tabs @@ -393,9 +394,9 @@ GeometryConfiguration Frame - {{10, 27}, {603, 282}} + {{10, 27}, {603, 345}} RubberWindowFrame - 630 341 810 487 0 0 1440 878 + 767 257 810 487 0 0 1440 878 Module XCDetailModule @@ -477,11 +478,11 @@ TableOfContents - 8B962A8E2E9AD02B000EAC04 + 8B692BEB2EB4E28E00F51381 1CA23ED40692098700951B8B - 8B962A8F2E9AD02B000EAC04 + 8B692BEC2EB4E28E00F51381 8B0237581D42B1C400E1E8C8 - 8B962A902E9AD02B000EAC04 + 8B692BED2EB4E28E00F51381 1CA23EDF0692099D00951B8B 1CA23EE00692099D00951B8B 1CA23EE10692099D00951B8B @@ -634,7 +635,7 @@ StatusbarIsVisible TimeStamp - 781897771.98097897 + 783606414.77670801 ToolbarConfigUserDefaultsMinorVersion 2 ToolbarDisplayMode @@ -651,11 +652,11 @@ 5 WindowOrderList - 8B962A912E9AD02B000EAC04 - /Users/christopherjohnson/Desktop/ConsoleX2Channel/ConsoleX2Channel.xcodeproj + 8B692BEE2EB4E28E00F51381 + /Users/christopherjohnson/Desktop/airwindows/plugins/MacVST/ConsoleX2Channel/ConsoleX2Channel.xcodeproj WindowString - 630 341 810 487 0 0 1440 878 + 767 257 810 487 0 0 1440 878 WindowToolsV3 diff --git a/plugins/MacSignedVST/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/project.pbxproj b/plugins/MacSignedVST/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/project.pbxproj index adc51bb09..e703d5d12 100755 --- a/plugins/MacSignedVST/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/project.pbxproj +++ b/plugins/MacSignedVST/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/project.pbxproj @@ -12,15 +12,15 @@ 24CFB70407E7A0220081BD57 /* PkgInfo in Resources */ = {isa = PBXBuildFile; fileRef = 24CFB70307E7A0220081BD57 /* PkgInfo */; }; 24D8287009A914000093AEF8 /* ConsoleX2ChannelProc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 24D8286F09A914000093AEF8 /* ConsoleX2ChannelProc.cpp */; }; 24D8287F09A9164A0093AEF8 /* xcode_vst_prefix.h in Headers */ = {isa = PBXBuildFile; fileRef = 24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */; }; - 8BEE226B2E9DBB54001FB1BD /* vstfxstore.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BEE225F2E9DBB54001FB1BD /* vstfxstore.h */; }; - 8BEE226C2E9DBB54001FB1BD /* aeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BEE22602E9DBB54001FB1BD /* aeffect.h */; }; - 8BEE226D2E9DBB54001FB1BD /* aeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BEE22612E9DBB54001FB1BD /* aeffectx.h */; }; - 8BEE226E2E9DBB54001FB1BD /* audioeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BEE22652E9DBB54001FB1BD /* audioeffectx.h */; }; - 8BEE226F2E9DBB54001FB1BD /* audioeffect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BEE22662E9DBB54001FB1BD /* audioeffect.cpp */; }; - 8BEE22702E9DBB54001FB1BD /* audioeffectx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BEE22672E9DBB54001FB1BD /* audioeffectx.cpp */; }; - 8BEE22712E9DBB54001FB1BD /* aeffeditor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BEE22682E9DBB54001FB1BD /* aeffeditor.h */; }; - 8BEE22722E9DBB54001FB1BD /* vstplugmain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BEE22692E9DBB54001FB1BD /* vstplugmain.cpp */; }; - 8BEE22732E9DBB54001FB1BD /* audioeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BEE226A2E9DBB54001FB1BD /* audioeffect.h */; }; + 8B7A4B092EB571E600B07840 /* vstfxstore.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4AFD2EB571E600B07840 /* vstfxstore.h */; }; + 8B7A4B0A2EB571E600B07840 /* aeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4AFE2EB571E600B07840 /* aeffect.h */; }; + 8B7A4B0B2EB571E600B07840 /* aeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4AFF2EB571E600B07840 /* aeffectx.h */; }; + 8B7A4B0C2EB571E600B07840 /* audioeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4B032EB571E600B07840 /* audioeffectx.h */; }; + 8B7A4B0D2EB571E600B07840 /* audioeffect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A4B042EB571E600B07840 /* audioeffect.cpp */; }; + 8B7A4B0E2EB571E600B07840 /* audioeffectx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A4B052EB571E600B07840 /* audioeffectx.cpp */; }; + 8B7A4B0F2EB571E600B07840 /* aeffeditor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4B062EB571E600B07840 /* aeffeditor.h */; }; + 8B7A4B102EB571E600B07840 /* vstplugmain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A4B072EB571E600B07840 /* vstplugmain.cpp */; }; + 8B7A4B112EB571E600B07840 /* audioeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4B082EB571E600B07840 /* audioeffect.h */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -30,15 +30,15 @@ 24CFB70307E7A0220081BD57 /* PkgInfo */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = PkgInfo; path = mac/PkgInfo; sourceTree = ""; }; 24D8286F09A914000093AEF8 /* ConsoleX2ChannelProc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ConsoleX2ChannelProc.cpp; path = source/ConsoleX2ChannelProc.cpp; sourceTree = ""; }; 24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = xcode_vst_prefix.h; path = mac/xcode_vst_prefix.h; sourceTree = SOURCE_ROOT; }; - 8BEE225F2E9DBB54001FB1BD /* vstfxstore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstfxstore.h; sourceTree = ""; }; - 8BEE22602E9DBB54001FB1BD /* aeffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffect.h; sourceTree = ""; }; - 8BEE22612E9DBB54001FB1BD /* aeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffectx.h; sourceTree = ""; }; - 8BEE22652E9DBB54001FB1BD /* audioeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audioeffectx.h; sourceTree = ""; }; - 8BEE22662E9DBB54001FB1BD /* audioeffect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffect.cpp; sourceTree = ""; }; - 8BEE22672E9DBB54001FB1BD /* audioeffectx.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffectx.cpp; sourceTree = ""; }; - 8BEE22682E9DBB54001FB1BD /* aeffeditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffeditor.h; sourceTree = ""; }; - 8BEE22692E9DBB54001FB1BD /* vstplugmain.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstplugmain.cpp; sourceTree = ""; }; - 8BEE226A2E9DBB54001FB1BD /* audioeffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audioeffect.h; sourceTree = ""; }; + 8B7A4AFD2EB571E600B07840 /* vstfxstore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstfxstore.h; sourceTree = ""; }; + 8B7A4AFE2EB571E600B07840 /* aeffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffect.h; sourceTree = ""; }; + 8B7A4AFF2EB571E600B07840 /* aeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffectx.h; sourceTree = ""; }; + 8B7A4B032EB571E600B07840 /* audioeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audioeffectx.h; sourceTree = ""; }; + 8B7A4B042EB571E600B07840 /* audioeffect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffect.cpp; sourceTree = ""; }; + 8B7A4B052EB571E600B07840 /* audioeffectx.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffectx.cpp; sourceTree = ""; }; + 8B7A4B062EB571E600B07840 /* aeffeditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffeditor.h; sourceTree = ""; }; + 8B7A4B072EB571E600B07840 /* vstplugmain.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstplugmain.cpp; sourceTree = ""; }; + 8B7A4B082EB571E600B07840 /* audioeffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audioeffect.h; sourceTree = ""; }; 8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = mac/Info.plist; sourceTree = ""; }; /* End PBXFileReference section */ @@ -66,7 +66,7 @@ 08FB77ADFE841716C02AAC07 /* Source */ = { isa = PBXGroup; children = ( - 8BEE225C2E9DBB54001FB1BD /* vstsdk2.4 */, + 8B7A4AFA2EB571E600B07840 /* vstsdk2.4 */, 2407DEB6089929BA00EB68BF /* ConsoleX2Channel.cpp */, 24D8286F09A914000093AEF8 /* ConsoleX2ChannelProc.cpp */, 245463B80991757100464AD3 /* ConsoleX2Channel.h */, @@ -82,59 +82,59 @@ name = Products; sourceTree = ""; }; - 8BEE225C2E9DBB54001FB1BD /* vstsdk2.4 */ = { + 8B7A4AFA2EB571E600B07840 /* vstsdk2.4 */ = { isa = PBXGroup; children = ( - 8BEE225D2E9DBB54001FB1BD /* pluginterfaces */, - 8BEE22622E9DBB54001FB1BD /* public.sdk */, + 8B7A4AFB2EB571E600B07840 /* pluginterfaces */, + 8B7A4B002EB571E600B07840 /* public.sdk */, ); name = vstsdk2.4; path = ../../../../vstsdk2.4; sourceTree = ""; }; - 8BEE225D2E9DBB54001FB1BD /* pluginterfaces */ = { + 8B7A4AFB2EB571E600B07840 /* pluginterfaces */ = { isa = PBXGroup; children = ( - 8BEE225E2E9DBB54001FB1BD /* vst2.x */, + 8B7A4AFC2EB571E600B07840 /* vst2.x */, ); path = pluginterfaces; sourceTree = ""; }; - 8BEE225E2E9DBB54001FB1BD /* vst2.x */ = { + 8B7A4AFC2EB571E600B07840 /* vst2.x */ = { isa = PBXGroup; children = ( - 8BEE225F2E9DBB54001FB1BD /* vstfxstore.h */, - 8BEE22602E9DBB54001FB1BD /* aeffect.h */, - 8BEE22612E9DBB54001FB1BD /* aeffectx.h */, + 8B7A4AFD2EB571E600B07840 /* vstfxstore.h */, + 8B7A4AFE2EB571E600B07840 /* aeffect.h */, + 8B7A4AFF2EB571E600B07840 /* aeffectx.h */, ); path = vst2.x; sourceTree = ""; }; - 8BEE22622E9DBB54001FB1BD /* public.sdk */ = { + 8B7A4B002EB571E600B07840 /* public.sdk */ = { isa = PBXGroup; children = ( - 8BEE22632E9DBB54001FB1BD /* source */, + 8B7A4B012EB571E600B07840 /* source */, ); path = public.sdk; sourceTree = ""; }; - 8BEE22632E9DBB54001FB1BD /* source */ = { + 8B7A4B012EB571E600B07840 /* source */ = { isa = PBXGroup; children = ( - 8BEE22642E9DBB54001FB1BD /* vst2.x */, + 8B7A4B022EB571E600B07840 /* vst2.x */, ); path = source; sourceTree = ""; }; - 8BEE22642E9DBB54001FB1BD /* vst2.x */ = { + 8B7A4B022EB571E600B07840 /* vst2.x */ = { isa = PBXGroup; children = ( - 8BEE22652E9DBB54001FB1BD /* audioeffectx.h */, - 8BEE22662E9DBB54001FB1BD /* audioeffect.cpp */, - 8BEE22672E9DBB54001FB1BD /* audioeffectx.cpp */, - 8BEE22682E9DBB54001FB1BD /* aeffeditor.h */, - 8BEE22692E9DBB54001FB1BD /* vstplugmain.cpp */, - 8BEE226A2E9DBB54001FB1BD /* audioeffect.h */, + 8B7A4B032EB571E600B07840 /* audioeffectx.h */, + 8B7A4B042EB571E600B07840 /* audioeffect.cpp */, + 8B7A4B052EB571E600B07840 /* audioeffectx.cpp */, + 8B7A4B062EB571E600B07840 /* aeffeditor.h */, + 8B7A4B072EB571E600B07840 /* vstplugmain.cpp */, + 8B7A4B082EB571E600B07840 /* audioeffect.h */, ); path = vst2.x; sourceTree = ""; @@ -146,14 +146,14 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 8BEE22712E9DBB54001FB1BD /* aeffeditor.h in Headers */, + 8B7A4B0F2EB571E600B07840 /* aeffeditor.h in Headers */, 245463B90991757100464AD3 /* ConsoleX2Channel.h in Headers */, - 8BEE22732E9DBB54001FB1BD /* audioeffect.h in Headers */, - 8BEE226C2E9DBB54001FB1BD /* aeffect.h in Headers */, + 8B7A4B112EB571E600B07840 /* audioeffect.h in Headers */, + 8B7A4B0A2EB571E600B07840 /* aeffect.h in Headers */, 24D8287F09A9164A0093AEF8 /* xcode_vst_prefix.h in Headers */, - 8BEE226E2E9DBB54001FB1BD /* audioeffectx.h in Headers */, - 8BEE226B2E9DBB54001FB1BD /* vstfxstore.h in Headers */, - 8BEE226D2E9DBB54001FB1BD /* aeffectx.h in Headers */, + 8B7A4B0C2EB571E600B07840 /* audioeffectx.h in Headers */, + 8B7A4B092EB571E600B07840 /* vstfxstore.h in Headers */, + 8B7A4B0B2EB571E600B07840 /* aeffectx.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -193,9 +193,9 @@ hasScannedForEncodings = 1; knownRegions = ( ja, - en, fr, Base, + en, de, ); mainGroup = 089C166AFE841209C02AAC07 /* FM-Chopper */; @@ -240,10 +240,10 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 8BEE22702E9DBB54001FB1BD /* audioeffectx.cpp in Sources */, + 8B7A4B0E2EB571E600B07840 /* audioeffectx.cpp in Sources */, 2407DEB9089929BA00EB68BF /* ConsoleX2Channel.cpp in Sources */, - 8BEE226F2E9DBB54001FB1BD /* audioeffect.cpp in Sources */, - 8BEE22722E9DBB54001FB1BD /* vstplugmain.cpp in Sources */, + 8B7A4B0D2EB571E600B07840 /* audioeffect.cpp in Sources */, + 8B7A4B102EB571E600B07840 /* vstplugmain.cpp in Sources */, 24D8287009A914000093AEF8 /* ConsoleX2ChannelProc.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/plugins/MacSignedVST/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacSignedVST/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate index 685a0ce77..8b3e781a0 100755 Binary files a/plugins/MacSignedVST/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate and b/plugins/MacSignedVST/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/plugins/MacSignedVST/ConsoleX2Channel/source/ConsoleX2Channel.cpp b/plugins/MacSignedVST/ConsoleX2Channel/source/ConsoleX2Channel.cpp index 3f8c92558..1d253c15a 100755 --- a/plugins/MacSignedVST/ConsoleX2Channel/source/ConsoleX2Channel.cpp +++ b/plugins/MacSignedVST/ConsoleX2Channel/source/ConsoleX2Channel.cpp @@ -12,23 +12,24 @@ AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new C ConsoleX2Channel::ConsoleX2Channel(audioMasterCallback audioMaster) : AudioEffectX(audioMaster, kNumPrograms, kNumParameters) { - A = 0.5; - B = 0.5; + A = 0.25; + B = 0.0; C = 0.5; D = 0.5; E = 0.5; F = 0.5; G = 0.5; H = 0.5; - I = 1.0; + I = 0.5; J = 0.5; - K = 0.5; - L = 0.0; - M = 1.0; + K = 1.0; + L = 0.5; + M = 0.5; N = 0.0; - O = 0.0; - P = 0.5; + O = 1.0; + P = 0.0; Q = 0.5; + R = 0.5; for (int x = 0; x < biq_total; x++) { highA[x] = 0.0; @@ -81,6 +82,16 @@ ConsoleX2Channel::ConsoleX2Channel(audioMasterCallback audioMaster) : 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; @@ -136,6 +147,7 @@ VstInt32 ConsoleX2Channel::getChunk (void** data, bool isPreset) chunkData[14] = O; chunkData[15] = P; chunkData[16] = Q; + chunkData[17] = R; /* 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. */ @@ -164,6 +176,7 @@ VstInt32 ConsoleX2Channel::setChunk (void* data, VstInt32 byteSize, bool isPrese O = pinParameter(chunkData[14]); P = pinParameter(chunkData[15]); Q = pinParameter(chunkData[16]); + R = pinParameter(chunkData[17]); /* We're ignoring byteSize as we found it to be a filthy liar */ /* calculate any other fields you need here - you could copy in @@ -190,6 +203,7 @@ void ConsoleX2Channel::setParameter(VstInt32 index, float value) { case kParamO: O = value; break; case kParamP: P = value; break; case kParamQ: Q = value; break; + case kParamR: R = value; break; default: throw; // unknown parameter, shouldn't happen! } } @@ -213,36 +227,38 @@ float ConsoleX2Channel::getParameter(VstInt32 index) { case kParamO: return O; break; case kParamP: return P; break; case kParamQ: return Q; break; + case kParamR: return R; 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 ConsoleX2Channel::getParameterName(VstInt32 index, char *text) { switch (index) { - case kParamA: vst_strncpy (text, "High", kVstMaxParamStrLen); break; - case kParamB: vst_strncpy (text, "HMid", kVstMaxParamStrLen); break; - case kParamC: vst_strncpy (text, "LMid", kVstMaxParamStrLen); break; - case kParamD: vst_strncpy (text, "Bass", kVstMaxParamStrLen); break; - case kParamE: vst_strncpy (text, "HighF", kVstMaxParamStrLen); break; - case kParamF: vst_strncpy (text, "HMidF", kVstMaxParamStrLen); break; - case kParamG: vst_strncpy (text, "LMidF", kVstMaxParamStrLen); break; - case kParamH: vst_strncpy (text, "BassF", kVstMaxParamStrLen); break; - case kParamI: vst_strncpy (text, "Thresh", kVstMaxParamStrLen); break; - case kParamJ: vst_strncpy (text, "Attack", kVstMaxParamStrLen); break; - case kParamK: vst_strncpy (text, "Release", kVstMaxParamStrLen); break; - case kParamL: vst_strncpy (text, "Gate", kVstMaxParamStrLen); break; - case kParamM: vst_strncpy (text, "Lowpass", kVstMaxParamStrLen); break; - case kParamN: vst_strncpy (text, "Hipass", kVstMaxParamStrLen); break; - case kParamO: vst_strncpy (text, "More", kVstMaxParamStrLen); break; - case kParamP: vst_strncpy (text, "Pan", kVstMaxParamStrLen); break; - case kParamQ: vst_strncpy (text, "Fader", kVstMaxParamStrLen); break; + case kParamA: vst_strncpy (text, "Trim", kVstMaxParamStrLen); break; + case kParamB: vst_strncpy (text, "More", kVstMaxParamStrLen); break; + case kParamC: vst_strncpy (text, "High", kVstMaxParamStrLen); break; + case kParamD: vst_strncpy (text, "HMid", kVstMaxParamStrLen); break; + case kParamE: vst_strncpy (text, "LMid", kVstMaxParamStrLen); break; + case kParamF: vst_strncpy (text, "Bass", kVstMaxParamStrLen); break; + case kParamG: vst_strncpy (text, "HighF", kVstMaxParamStrLen); break; + case kParamH: vst_strncpy (text, "HMidF", kVstMaxParamStrLen); break; + case kParamI: vst_strncpy (text, "LMidF", kVstMaxParamStrLen); break; + case kParamJ: vst_strncpy (text, "BassF", kVstMaxParamStrLen); break; + case kParamK: vst_strncpy (text, "Thresh", kVstMaxParamStrLen); break; + case kParamL: vst_strncpy (text, "Attack", kVstMaxParamStrLen); break; + case kParamM: vst_strncpy (text, "Release", kVstMaxParamStrLen); break; + case kParamN: vst_strncpy (text, "Gate", kVstMaxParamStrLen); break; + case kParamO: vst_strncpy (text, "Lowpass", kVstMaxParamStrLen); break; + case kParamP: vst_strncpy (text, "Hipass", kVstMaxParamStrLen); break; + case kParamQ: vst_strncpy (text, "Pan", kVstMaxParamStrLen); break; + case kParamR: vst_strncpy (text, "Fader", kVstMaxParamStrLen); break; default: break; // unknown parameter, shouldn't happen! } //this is our labels for displaying in the VST host } void ConsoleX2Channel::getParameterDisplay(VstInt32 index, char *text) { switch (index) { - case kParamA: float2string (A, text, kVstMaxParamStrLen); break; + case kParamA: int2string ((int)(A*4.0), text, kVstMaxParamStrLen); break; case kParamB: float2string (B, text, kVstMaxParamStrLen); break; case kParamC: float2string (C, text, kVstMaxParamStrLen); break; case kParamD: float2string (D, text, kVstMaxParamStrLen); break; @@ -259,29 +275,31 @@ void ConsoleX2Channel::getParameterDisplay(VstInt32 index, char *text) { case kParamO: float2string (O, text, kVstMaxParamStrLen); break; case kParamP: float2string (P, text, kVstMaxParamStrLen); break; case kParamQ: float2string (Q, text, kVstMaxParamStrLen); break; + case kParamR: float2string (R, text, kVstMaxParamStrLen); break; default: break; // unknown parameter, shouldn't happen! } //this displays the values and handles 'popups' where it's discrete choices } void ConsoleX2Channel::getParameterLabel(VstInt32 index, char *text) { switch (index) { - case kParamA: vst_strncpy (text, "eq", kVstMaxParamStrLen); break; + case kParamA: vst_strncpy (text, "", kVstMaxParamStrLen); break; case kParamB: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamC: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamC: vst_strncpy (text, "eq", kVstMaxParamStrLen); break; case kParamD: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamE: vst_strncpy (text, "freq", kVstMaxParamStrLen); break; + case kParamE: vst_strncpy (text, "", kVstMaxParamStrLen); break; case kParamF: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamG: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamG: vst_strncpy (text, "freq", kVstMaxParamStrLen); break; case kParamH: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamI: vst_strncpy (text, "dyn", kVstMaxParamStrLen); break; + case kParamI: vst_strncpy (text, "", kVstMaxParamStrLen); break; case kParamJ: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamK: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamK: vst_strncpy (text, "dyn", kVstMaxParamStrLen); break; case kParamL: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamM: vst_strncpy (text, "fltr", kVstMaxParamStrLen); break; + case kParamM: vst_strncpy (text, "", kVstMaxParamStrLen); break; case kParamN: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamO: vst_strncpy (text, "+", kVstMaxParamStrLen); break; + case kParamO: vst_strncpy (text, "fltr", kVstMaxParamStrLen); break; case kParamP: vst_strncpy (text, "", kVstMaxParamStrLen); break; case kParamQ: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamR: vst_strncpy (text, "", kVstMaxParamStrLen); break; default: break; // unknown parameter, shouldn't happen! } } diff --git a/plugins/MacSignedVST/ConsoleX2Channel/source/ConsoleX2Channel.h b/plugins/MacSignedVST/ConsoleX2Channel/source/ConsoleX2Channel.h index aac04efbb..7862eafbc 100755 --- a/plugins/MacSignedVST/ConsoleX2Channel/source/ConsoleX2Channel.h +++ b/plugins/MacSignedVST/ConsoleX2Channel/source/ConsoleX2Channel.h @@ -33,7 +33,8 @@ enum { kParamO =14, kParamP =15, kParamQ =16, - kNumParameters = 17 + kParamR =17, + kNumParameters = 18 }; // const int dscBuf = 256; @@ -86,6 +87,7 @@ private: float O; float P; float Q; + float R; enum { biq_freq, @@ -166,6 +168,23 @@ private: 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; diff --git a/plugins/MacSignedVST/ConsoleX2Channel/source/ConsoleX2ChannelProc.cpp b/plugins/MacSignedVST/ConsoleX2Channel/source/ConsoleX2ChannelProc.cpp index 69a9b1b55..906bc23a4 100755 --- a/plugins/MacSignedVST/ConsoleX2Channel/source/ConsoleX2ChannelProc.cpp +++ b/plugins/MacSignedVST/ConsoleX2Channel/source/ConsoleX2ChannelProc.cpp @@ -18,20 +18,33 @@ void ConsoleX2Channel::processReplacing(float **inputs, float **outputs, VstInt3 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 = (A-0.5)*2.0; + double moreTapeHack = (B*2.0)+1.0; + switch ((int)(A*4.0)){ + 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(B*0.42,3.0)*overallscale,0.00001); + //Discontapeity + + double trebleGain = (C-0.5)*2.0; trebleGain = 1.0+(trebleGain*fabs(trebleGain)*fabs(trebleGain)); - double highmidGain = (B-0.5)*2.0; + double highmidGain = (D-0.5)*2.0; highmidGain = 1.0+(highmidGain*fabs(highmidGain)*fabs(highmidGain)); - double lowmidGain = (C-0.5)*2.0; + double lowmidGain = (E-0.5)*2.0; lowmidGain = 1.0+(lowmidGain*fabs(lowmidGain)*fabs(lowmidGain)); - double bassGain = (D-0.5)*2.0; + double bassGain = (F-0.5)*2.0; bassGain = 1.0+(bassGain*fabs(bassGain)*fabs(bassGain)); - double trebleRef = E-0.5; - double highmidRef = F-0.5; - double lowmidRef = G-0.5; - double bassRef = H-0.5; + double trebleRef = G-0.5; + double highmidRef = H-0.5; + double lowmidRef = I-0.5; + double bassRef = J-0.5; double highF = 0.75 + ((trebleRef+trebleRef+trebleRef+highmidRef)*0.125); double bassF = 0.25 + ((lowmidRef+bassRef+bassRef+bassRef)*0.125); double midF = (highF*0.5) + (bassF*0.5) + ((highmidRef+lowmidRef)*0.125); @@ -44,8 +57,8 @@ void ConsoleX2Channel::processReplacing(float **inputs, float **outputs, VstInt3 highC[biq_freq] = highB[biq_freq] = highA[biq_freq] = fmax(fmin(highA[biq_freq],0.4999),0.00025); double highFreq = pow(highF,3)*20000.0; double omega = 2.0*M_PI*(highFreq/getSampleRate()); - double K = 2.0-cos(omega); - double highCoef = -sqrt((K*K)-1.0)+K; + double biqK = 2.0-cos(omega); + double highCoef = -sqrt((biqK*biqK)-1.0)+biqK; highA[biq_reso] = 2.24697960 * highQ; highB[biq_reso] = 0.80193774 * highQ; highC[biq_reso] = 0.55495813 * highQ; @@ -54,8 +67,8 @@ void ConsoleX2Channel::processReplacing(float **inputs, float **outputs, VstInt3 midC[biq_freq] = midB[biq_freq] = midA[biq_freq] = fmax(fmin(midA[biq_freq],0.4999),0.00025); double midFreq = pow(midF,3)*20000.0; omega = 2.0*M_PI*(midFreq/getSampleRate()); - K = 2.0-cos(omega); - double midCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double midCoef = -sqrt((biqK*biqK)-1.0)+biqK; midA[biq_reso] = 2.24697960 * midQ; midB[biq_reso] = 0.80193774 * midQ; midC[biq_reso] = 0.55495813 * midQ; @@ -64,97 +77,93 @@ void ConsoleX2Channel::processReplacing(float **inputs, float **outputs, VstInt3 lowC[biq_freq] = lowB[biq_freq] = lowA[biq_freq] = fmax(fmin(lowA[biq_freq],0.4999),0.00025); double lowFreq = pow(bassF,3)*20000.0; omega = 2.0*M_PI*(lowFreq/getSampleRate()); - K = 2.0-cos(omega); - double lowCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double lowCoef = -sqrt((biqK*biqK)-1.0)+biqK; lowA[biq_reso] = 2.24697960 * lowQ; lowB[biq_reso] = 0.80193774 * lowQ; lowC[biq_reso] = 0.55495813 * lowQ; - K = tan(M_PI * highA[biq_freq]); - double norm = 1.0 / (1.0 + K / highA[biq_reso] + K * K); - highA[biq_a0] = K * K * norm; + biqK = tan(M_PI * highA[biq_freq]); + double norm = 1.0 / (1.0 + biqK / highA[biq_reso] + biqK * biqK); + highA[biq_a0] = biqK * biqK * norm; highA[biq_a1] = 2.0 * highA[biq_a0]; highA[biq_a2] = highA[biq_a0]; - highA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highA[biq_b2] = (1.0 - K / highA[biq_reso] + K * K) * norm; - K = tan(M_PI * highB[biq_freq]); - norm = 1.0 / (1.0 + K / highB[biq_reso] + K * K); - highB[biq_a0] = K * K * norm; + highA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highA[biq_b2] = (1.0 - biqK / highA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highB[biq_freq]); + norm = 1.0 / (1.0 + biqK / highB[biq_reso] + biqK * biqK); + highB[biq_a0] = biqK * biqK * norm; highB[biq_a1] = 2.0 * highB[biq_a0]; highB[biq_a2] = highB[biq_a0]; - highB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highB[biq_b2] = (1.0 - K / highB[biq_reso] + K * K) * norm; - K = tan(M_PI * highC[biq_freq]); - norm = 1.0 / (1.0 + K / highC[biq_reso] + K * K); - highC[biq_a0] = K * K * norm; + highB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highB[biq_b2] = (1.0 - biqK / highB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highC[biq_freq]); + norm = 1.0 / (1.0 + biqK / highC[biq_reso] + biqK * biqK); + highC[biq_a0] = biqK * biqK * norm; highC[biq_a1] = 2.0 * highC[biq_a0]; highC[biq_a2] = highC[biq_a0]; - highC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highC[biq_b2] = (1.0 - K / highC[biq_reso] + K * K) * norm; + highC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highC[biq_b2] = (1.0 - biqK / highC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * midA[biq_freq]); - norm = 1.0 / (1.0 + K / midA[biq_reso] + K * K); - midA[biq_a0] = K * K * norm; + biqK = tan(M_PI * midA[biq_freq]); + norm = 1.0 / (1.0 + biqK / midA[biq_reso] + biqK * biqK); + midA[biq_a0] = biqK * biqK * norm; midA[biq_a1] = 2.0 * midA[biq_a0]; midA[biq_a2] = midA[biq_a0]; - midA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midA[biq_b2] = (1.0 - K / midA[biq_reso] + K * K) * norm; - K = tan(M_PI * midB[biq_freq]); - norm = 1.0 / (1.0 + K / midB[biq_reso] + K * K); - midB[biq_a0] = K * K * norm; + midA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midA[biq_b2] = (1.0 - biqK / midA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midB[biq_freq]); + norm = 1.0 / (1.0 + biqK / midB[biq_reso] + biqK * biqK); + midB[biq_a0] = biqK * biqK * norm; midB[biq_a1] = 2.0 * midB[biq_a0]; midB[biq_a2] = midB[biq_a0]; - midB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midB[biq_b2] = (1.0 - K / midB[biq_reso] + K * K) * norm; - K = tan(M_PI * midC[biq_freq]); - norm = 1.0 / (1.0 + K / midC[biq_reso] + K * K); - midC[biq_a0] = K * K * norm; + midB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midB[biq_b2] = (1.0 - biqK / midB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midC[biq_freq]); + norm = 1.0 / (1.0 + biqK / midC[biq_reso] + biqK * biqK); + midC[biq_a0] = biqK * biqK * norm; midC[biq_a1] = 2.0 * midC[biq_a0]; midC[biq_a2] = midC[biq_a0]; - midC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midC[biq_b2] = (1.0 - K / midC[biq_reso] + K * K) * norm; + midC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midC[biq_b2] = (1.0 - biqK / midC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * lowA[biq_freq]); - norm = 1.0 / (1.0 + K / lowA[biq_reso] + K * K); - lowA[biq_a0] = K * K * norm; + biqK = tan(M_PI * lowA[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowA[biq_reso] + biqK * biqK); + lowA[biq_a0] = biqK * biqK * norm; lowA[biq_a1] = 2.0 * lowA[biq_a0]; lowA[biq_a2] = lowA[biq_a0]; - lowA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowA[biq_b2] = (1.0 - K / lowA[biq_reso] + K * K) * norm; - K = tan(M_PI * lowB[biq_freq]); - norm = 1.0 / (1.0 + K / lowB[biq_reso] + K * K); - lowB[biq_a0] = K * K * norm; + lowA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowA[biq_b2] = (1.0 - biqK / lowA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowB[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowB[biq_reso] + biqK * biqK); + lowB[biq_a0] = biqK * biqK * norm; lowB[biq_a1] = 2.0 * lowB[biq_a0]; lowB[biq_a2] = lowB[biq_a0]; - lowB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowB[biq_b2] = (1.0 - K / lowB[biq_reso] + K * K) * norm; - K = tan(M_PI * lowC[biq_freq]); - norm = 1.0 / (1.0 + K / lowC[biq_reso] + K * K); - lowC[biq_a0] = K * K * norm; + lowB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowB[biq_b2] = (1.0 - biqK / lowB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowC[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowC[biq_reso] + biqK * biqK); + lowC[biq_a0] = biqK * biqK * norm; lowC[biq_a1] = 2.0 * lowC[biq_a0]; lowC[biq_a2] = lowC[biq_a0]; - lowC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowC[biq_b2] = (1.0 - K / lowC[biq_reso] + K * K) * norm; + lowC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowC[biq_b2] = (1.0 - biqK / lowC[biq_reso] + biqK * biqK) * norm; //SmoothEQ2 - double bezCThresh = pow(1.0-I, 6.0) * 8.0; - double bezRez = pow(1.0-J, 8.0) / overallscale; - double sloRez = pow(1.0-K,12.0) / overallscale; + double bezCThresh = pow(1.0-K, 6.0) * 8.0; + double bezRez = pow(1.0-L, 8.0) / overallscale; + double sloRez = pow(1.0-M,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(L,4.0),sqrt(bezCThresh+1.0)); + double gate = pow(pow(N,4.0),sqrt(bezCThresh+1.0)); //Dynamics2 - lFreqA = lFreqB; lFreqB = pow(fmax(M,0.002),overallscale); //the lowpass - hFreqA = hFreqB; hFreqB = pow(N,overallscale+2.0); //the highpass + lFreqA = lFreqB; lFreqB = pow(fmax(O,0.002),overallscale); //the lowpass + hFreqA = hFreqB; hFreqB = pow(P,overallscale+2.0); //the highpass //Cabs2 - double moreDiscontinuity = fmax(pow(O*0.42,3.0)*overallscale,0.00001); - double moreTapeHack = (O*1.4152481)+1.2; - //Discontapeity - - panA = panB; panB = P*1.57079633; - inTrimA = inTrimB; inTrimB = Q*2.0; + panA = panB; panB = Q*1.57079633; + inTrimA = inTrimB; inTrimB = R*2.0; //Console while (--sampleFrames >= 0) @@ -164,6 +173,99 @@ void ConsoleX2Channel::processReplacing(float **inputs, float **outputs, VstInt3 if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17; if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17; + double darkSampleL = inputSampleL; + double darkSampleR = inputSampleR; + if (avgPos > 31) avgPos = 0; + if (spacing > 31) { + avg32L[avgPos] = darkSampleL; avg32R[avgPos] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 32; x++) {darkSampleL += avg32L[x]; darkSampleR += avg32R[x];} + darkSampleL /= 32.0; darkSampleR /= 32.0; + } if (spacing > 15) { + avg16L[avgPos%16] = darkSampleL; avg16R[avgPos%16] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 16; x++) {darkSampleL += avg16L[x]; darkSampleR += avg16R[x];} + darkSampleL /= 16.0; darkSampleR /= 16.0; + } if (spacing > 7) { + avg8L[avgPos%8] = darkSampleL; avg8R[avgPos%8] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 8; x++) {darkSampleL += avg8L[x]; darkSampleR += avg8R[x];} + darkSampleL /= 8.0; darkSampleR /= 8.0; + } if (spacing > 3) { + avg4L[avgPos%4] = darkSampleL; avg4R[avgPos%4] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 4; x++) {darkSampleL += avg4L[x]; darkSampleR += avg4R[x];} + darkSampleL /= 4.0; darkSampleR /= 4.0; + } if (spacing > 1) { + avg2L[avgPos%2] = darkSampleL; avg2R[avgPos%2] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 2; x++) {darkSampleL += avg2L[x]; darkSampleR += avg2R[x];} + darkSampleL /= 2.0; darkSampleR /= 2.0; + } avgPos++; + lastSlewL += fabs(lastSlewpleL-inputSampleL); lastSlewpleL = inputSampleL; + double avgSlewL = fmin(lastSlewL,1.0); + lastSlewL = fmax(lastSlewL*0.78,2.39996322972865332223); + lastSlewR += fabs(lastSlewpleR-inputSampleR); lastSlewpleR = inputSampleR; + double avgSlewR = fmin(lastSlewR,1.0); + lastSlewR = fmax(lastSlewR*0.78,2.39996322972865332223); //look up Golden Angle, it's cool + inputSampleL = (inputSampleL*(1.0-avgSlewL)) + (darkSampleL*avgSlewL); + inputSampleR = (inputSampleR*(1.0-avgSlewR)) + (darkSampleR*avgSlewR); + + //begin Discontinuity section + inputSampleL *= moreTapeHack; + inputSampleL *= moreDiscontinuity; + dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5); + dBaPosL = fmin(dBaPosL,1.0); + int dBdly = floor(dBaPosL*dscBuf); + double dBi = (dBaPosL*dscBuf)-dBdly; + inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi); + dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi; + dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0; + inputSampleL /= moreDiscontinuity; + //end Discontinuity section, begin TapeHack section + inputSampleL = fmax(fmin(inputSampleL,2.305929007734908),-2.305929007734908); + double addtwo = inputSampleL * inputSampleL; + double empower = inputSampleL * addtwo; // inputSampleL to the third power + inputSampleL -= (empower / 6.0); + empower *= addtwo; // to the fifth power + inputSampleL += (empower / 69.0); + empower *= addtwo; //seventh + inputSampleL -= (empower / 2530.08); + empower *= addtwo; //ninth + inputSampleL += (empower / 224985.6); + empower *= addtwo; //eleventh + inputSampleL -= (empower / 9979200.0f); + //this is a degenerate form of a Taylor Series to approximate sin() + //end TapeHack section + + //begin Discontinuity section + inputSampleR *= moreTapeHack; + inputSampleR *= moreDiscontinuity; + dBaR[dBaXR] = inputSampleR; dBaPosR *= 0.5; dBaPosR += fabs((inputSampleR*((inputSampleR*0.25)-0.5))*0.5); + dBaPosR = fmin(dBaPosR,1.0); + dBdly = floor(dBaPosR*dscBuf); + dBi = (dBaPosR*dscBuf)-dBdly; + inputSampleR = dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*(1.0-dBi); + dBdly++; inputSampleR += dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*dBi; + dBaXR++; if (dBaXR < 0 || dBaXR >= dscBuf) dBaXR = 0; + inputSampleR /= moreDiscontinuity; + //end Discontinuity section, begin TapeHack section + inputSampleR = fmax(fmin(inputSampleR,2.305929007734908),-2.305929007734908); + addtwo = inputSampleR * inputSampleR; + empower = inputSampleR * addtwo; // inputSampleR to the third power + inputSampleR -= (empower / 6.0); + empower *= addtwo; // to the fifth power + inputSampleR += (empower / 69.0); + empower *= addtwo; //seventh + inputSampleR -= (empower / 2530.08); + empower *= addtwo; //ninth + inputSampleR += (empower / 224985.6); + empower *= addtwo; //eleventh + inputSampleR -= (empower / 9979200.0f); + //this is a degenerate form of a Taylor Series to approximate sin() + //end TapeHack section + //Discontapeity + double trebleL = inputSampleL; double outSample = (trebleL * highA[biq_a0]) + highA[biq_sL1]; highA[biq_sL1] = (trebleL * highA[biq_a1]) - (outSample * highA[biq_b1]) + highA[biq_sL2]; @@ -423,62 +525,7 @@ void ConsoleX2Channel::processReplacing(float **inputs, float **outputs, VstInt3 } //blank out lowpass if just switched off } //Cabs2 - - //begin Discontinuity section - inputSampleL *= moreDiscontinuity; - dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5); - dBaPosL = fmin(dBaPosL,1.0); - int dBdly = floor(dBaPosL*dscBuf); - double dBi = (dBaPosL*dscBuf)-dBdly; - inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi; - dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0; - inputSampleL /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleL = fmax(fmin(inputSampleL*moreTapeHack,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.9239; - //end TapeHack section - - //begin Discontinuity section - inputSampleR *= moreDiscontinuity; - dBaR[dBaXR] = inputSampleR; dBaPosR *= 0.5; dBaPosR += fabs((inputSampleR*((inputSampleR*0.25)-0.5))*0.5); - dBaPosR = fmin(dBaPosR,1.0); - dBdly = floor(dBaPosR*dscBuf); - dBi = (dBaPosR*dscBuf)-dBdly; - inputSampleR = dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleR += dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*dBi; - dBaXR++; if (dBaXR < 0 || dBaXR >= dscBuf) dBaXR = 0; - inputSampleR /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleR = fmax(fmin(inputSampleR*moreTapeHack,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.9239; - //end TapeHack section - //Discontapeity - + double gainR = (panA*temp)+(panB*(1.0-temp)); double gainL = 1.57079633-gainR; gainR = sin(gainR); gainL = sin(gainL); @@ -486,19 +533,16 @@ void ConsoleX2Channel::processReplacing(float **inputs, float **outputs, VstInt3 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 *= 0.763932022500211; inputSampleL = inputSampleL * gainL * gain; inputSampleR = inputSampleR * gainR * gain; //applies pan section, and smoothed fader gain - inputSampleL *= 0.618033988749895; if (inputSampleL > 1.0) inputSampleL = 1.0; else if (inputSampleL > 0.0) inputSampleL = -expm1((log1p(-inputSampleL) * 1.618033988749895)); if (inputSampleL < -1.0) inputSampleL = -1.0; else if (inputSampleL < 0.0) inputSampleL = expm1((log1p(inputSampleL) * 1.618033988749895)); - inputSampleR *= 0.618033988749895; if (inputSampleR > 1.0) inputSampleR = 1.0; else if (inputSampleR > 0.0) inputSampleR = -expm1((log1p(-inputSampleR) * 1.618033988749895)); if (inputSampleR < -1.0) inputSampleR = -1.0; @@ -534,20 +578,33 @@ void ConsoleX2Channel::processDoubleReplacing(double **inputs, double **outputs, 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 = (A-0.5)*2.0; + double moreTapeHack = (B*2.0)+1.0; + switch ((int)(A*4.0)){ + 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(B*0.42,3.0)*overallscale,0.00001); + //Discontapeity + + double trebleGain = (C-0.5)*2.0; trebleGain = 1.0+(trebleGain*fabs(trebleGain)*fabs(trebleGain)); - double highmidGain = (B-0.5)*2.0; + double highmidGain = (D-0.5)*2.0; highmidGain = 1.0+(highmidGain*fabs(highmidGain)*fabs(highmidGain)); - double lowmidGain = (C-0.5)*2.0; + double lowmidGain = (E-0.5)*2.0; lowmidGain = 1.0+(lowmidGain*fabs(lowmidGain)*fabs(lowmidGain)); - double bassGain = (D-0.5)*2.0; + double bassGain = (F-0.5)*2.0; bassGain = 1.0+(bassGain*fabs(bassGain)*fabs(bassGain)); - double trebleRef = E-0.5; - double highmidRef = F-0.5; - double lowmidRef = G-0.5; - double bassRef = H-0.5; + double trebleRef = G-0.5; + double highmidRef = H-0.5; + double lowmidRef = I-0.5; + double bassRef = J-0.5; double highF = 0.75 + ((trebleRef+trebleRef+trebleRef+highmidRef)*0.125); double bassF = 0.25 + ((lowmidRef+bassRef+bassRef+bassRef)*0.125); double midF = (highF*0.5) + (bassF*0.5) + ((highmidRef+lowmidRef)*0.125); @@ -560,8 +617,8 @@ void ConsoleX2Channel::processDoubleReplacing(double **inputs, double **outputs, highC[biq_freq] = highB[biq_freq] = highA[biq_freq] = fmax(fmin(highA[biq_freq],0.4999),0.00025); double highFreq = pow(highF,3)*20000.0; double omega = 2.0*M_PI*(highFreq/getSampleRate()); - double K = 2.0-cos(omega); - double highCoef = -sqrt((K*K)-1.0)+K; + double biqK = 2.0-cos(omega); + double highCoef = -sqrt((biqK*biqK)-1.0)+biqK; highA[biq_reso] = 2.24697960 * highQ; highB[biq_reso] = 0.80193774 * highQ; highC[biq_reso] = 0.55495813 * highQ; @@ -570,8 +627,8 @@ void ConsoleX2Channel::processDoubleReplacing(double **inputs, double **outputs, midC[biq_freq] = midB[biq_freq] = midA[biq_freq] = fmax(fmin(midA[biq_freq],0.4999),0.00025); double midFreq = pow(midF,3)*20000.0; omega = 2.0*M_PI*(midFreq/getSampleRate()); - K = 2.0-cos(omega); - double midCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double midCoef = -sqrt((biqK*biqK)-1.0)+biqK; midA[biq_reso] = 2.24697960 * midQ; midB[biq_reso] = 0.80193774 * midQ; midC[biq_reso] = 0.55495813 * midQ; @@ -580,97 +637,93 @@ void ConsoleX2Channel::processDoubleReplacing(double **inputs, double **outputs, lowC[biq_freq] = lowB[biq_freq] = lowA[biq_freq] = fmax(fmin(lowA[biq_freq],0.4999),0.00025); double lowFreq = pow(bassF,3)*20000.0; omega = 2.0*M_PI*(lowFreq/getSampleRate()); - K = 2.0-cos(omega); - double lowCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double lowCoef = -sqrt((biqK*biqK)-1.0)+biqK; lowA[biq_reso] = 2.24697960 * lowQ; lowB[biq_reso] = 0.80193774 * lowQ; lowC[biq_reso] = 0.55495813 * lowQ; - K = tan(M_PI * highA[biq_freq]); - double norm = 1.0 / (1.0 + K / highA[biq_reso] + K * K); - highA[biq_a0] = K * K * norm; + biqK = tan(M_PI * highA[biq_freq]); + double norm = 1.0 / (1.0 + biqK / highA[biq_reso] + biqK * biqK); + highA[biq_a0] = biqK * biqK * norm; highA[biq_a1] = 2.0 * highA[biq_a0]; highA[biq_a2] = highA[biq_a0]; - highA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highA[biq_b2] = (1.0 - K / highA[biq_reso] + K * K) * norm; - K = tan(M_PI * highB[biq_freq]); - norm = 1.0 / (1.0 + K / highB[biq_reso] + K * K); - highB[biq_a0] = K * K * norm; + highA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highA[biq_b2] = (1.0 - biqK / highA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highB[biq_freq]); + norm = 1.0 / (1.0 + biqK / highB[biq_reso] + biqK * biqK); + highB[biq_a0] = biqK * biqK * norm; highB[biq_a1] = 2.0 * highB[biq_a0]; highB[biq_a2] = highB[biq_a0]; - highB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highB[biq_b2] = (1.0 - K / highB[biq_reso] + K * K) * norm; - K = tan(M_PI * highC[biq_freq]); - norm = 1.0 / (1.0 + K / highC[biq_reso] + K * K); - highC[biq_a0] = K * K * norm; + highB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highB[biq_b2] = (1.0 - biqK / highB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highC[biq_freq]); + norm = 1.0 / (1.0 + biqK / highC[biq_reso] + biqK * biqK); + highC[biq_a0] = biqK * biqK * norm; highC[biq_a1] = 2.0 * highC[biq_a0]; highC[biq_a2] = highC[biq_a0]; - highC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highC[biq_b2] = (1.0 - K / highC[biq_reso] + K * K) * norm; + highC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highC[biq_b2] = (1.0 - biqK / highC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * midA[biq_freq]); - norm = 1.0 / (1.0 + K / midA[biq_reso] + K * K); - midA[biq_a0] = K * K * norm; + biqK = tan(M_PI * midA[biq_freq]); + norm = 1.0 / (1.0 + biqK / midA[biq_reso] + biqK * biqK); + midA[biq_a0] = biqK * biqK * norm; midA[biq_a1] = 2.0 * midA[biq_a0]; midA[biq_a2] = midA[biq_a0]; - midA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midA[biq_b2] = (1.0 - K / midA[biq_reso] + K * K) * norm; - K = tan(M_PI * midB[biq_freq]); - norm = 1.0 / (1.0 + K / midB[biq_reso] + K * K); - midB[biq_a0] = K * K * norm; + midA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midA[biq_b2] = (1.0 - biqK / midA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midB[biq_freq]); + norm = 1.0 / (1.0 + biqK / midB[biq_reso] + biqK * biqK); + midB[biq_a0] = biqK * biqK * norm; midB[biq_a1] = 2.0 * midB[biq_a0]; midB[biq_a2] = midB[biq_a0]; - midB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midB[biq_b2] = (1.0 - K / midB[biq_reso] + K * K) * norm; - K = tan(M_PI * midC[biq_freq]); - norm = 1.0 / (1.0 + K / midC[biq_reso] + K * K); - midC[biq_a0] = K * K * norm; + midB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midB[biq_b2] = (1.0 - biqK / midB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midC[biq_freq]); + norm = 1.0 / (1.0 + biqK / midC[biq_reso] + biqK * biqK); + midC[biq_a0] = biqK * biqK * norm; midC[biq_a1] = 2.0 * midC[biq_a0]; midC[biq_a2] = midC[biq_a0]; - midC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midC[biq_b2] = (1.0 - K / midC[biq_reso] + K * K) * norm; + midC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midC[biq_b2] = (1.0 - biqK / midC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * lowA[biq_freq]); - norm = 1.0 / (1.0 + K / lowA[biq_reso] + K * K); - lowA[biq_a0] = K * K * norm; + biqK = tan(M_PI * lowA[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowA[biq_reso] + biqK * biqK); + lowA[biq_a0] = biqK * biqK * norm; lowA[biq_a1] = 2.0 * lowA[biq_a0]; lowA[biq_a2] = lowA[biq_a0]; - lowA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowA[biq_b2] = (1.0 - K / lowA[biq_reso] + K * K) * norm; - K = tan(M_PI * lowB[biq_freq]); - norm = 1.0 / (1.0 + K / lowB[biq_reso] + K * K); - lowB[biq_a0] = K * K * norm; + lowA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowA[biq_b2] = (1.0 - biqK / lowA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowB[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowB[biq_reso] + biqK * biqK); + lowB[biq_a0] = biqK * biqK * norm; lowB[biq_a1] = 2.0 * lowB[biq_a0]; lowB[biq_a2] = lowB[biq_a0]; - lowB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowB[biq_b2] = (1.0 - K / lowB[biq_reso] + K * K) * norm; - K = tan(M_PI * lowC[biq_freq]); - norm = 1.0 / (1.0 + K / lowC[biq_reso] + K * K); - lowC[biq_a0] = K * K * norm; + lowB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowB[biq_b2] = (1.0 - biqK / lowB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowC[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowC[biq_reso] + biqK * biqK); + lowC[biq_a0] = biqK * biqK * norm; lowC[biq_a1] = 2.0 * lowC[biq_a0]; lowC[biq_a2] = lowC[biq_a0]; - lowC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowC[biq_b2] = (1.0 - K / lowC[biq_reso] + K * K) * norm; + lowC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowC[biq_b2] = (1.0 - biqK / lowC[biq_reso] + biqK * biqK) * norm; //SmoothEQ2 - double bezCThresh = pow(1.0-I, 6.0) * 8.0; - double bezRez = pow(1.0-J, 8.0) / overallscale; - double sloRez = pow(1.0-K,12.0) / overallscale; + double bezCThresh = pow(1.0-K, 6.0) * 8.0; + double bezRez = pow(1.0-L, 8.0) / overallscale; + double sloRez = pow(1.0-M,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(L,4.0),sqrt(bezCThresh+1.0)); + double gate = pow(pow(N,4.0),sqrt(bezCThresh+1.0)); //Dynamics2 - lFreqA = lFreqB; lFreqB = pow(fmax(M,0.002),overallscale); //the lowpass - hFreqA = hFreqB; hFreqB = pow(N,overallscale+2.0); //the highpass + lFreqA = lFreqB; lFreqB = pow(fmax(O,0.002),overallscale); //the lowpass + hFreqA = hFreqB; hFreqB = pow(P,overallscale+2.0); //the highpass //Cabs2 - double moreDiscontinuity = fmax(pow(O*0.42,3.0)*overallscale,0.00001); - double moreTapeHack = (O*1.4152481)+1.2; - //Discontapeity - - panA = panB; panB = P*1.57079633; - inTrimA = inTrimB; inTrimB = Q*2.0; + panA = panB; panB = Q*1.57079633; + inTrimA = inTrimB; inTrimB = R*2.0; //Console while (--sampleFrames >= 0) @@ -680,6 +733,99 @@ void ConsoleX2Channel::processDoubleReplacing(double **inputs, double **outputs, if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17; if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17; + double darkSampleL = inputSampleL; + double darkSampleR = inputSampleR; + if (avgPos > 31) avgPos = 0; + if (spacing > 31) { + avg32L[avgPos] = darkSampleL; avg32R[avgPos] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 32; x++) {darkSampleL += avg32L[x]; darkSampleR += avg32R[x];} + darkSampleL /= 32.0; darkSampleR /= 32.0; + } if (spacing > 15) { + avg16L[avgPos%16] = darkSampleL; avg16R[avgPos%16] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 16; x++) {darkSampleL += avg16L[x]; darkSampleR += avg16R[x];} + darkSampleL /= 16.0; darkSampleR /= 16.0; + } if (spacing > 7) { + avg8L[avgPos%8] = darkSampleL; avg8R[avgPos%8] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 8; x++) {darkSampleL += avg8L[x]; darkSampleR += avg8R[x];} + darkSampleL /= 8.0; darkSampleR /= 8.0; + } if (spacing > 3) { + avg4L[avgPos%4] = darkSampleL; avg4R[avgPos%4] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 4; x++) {darkSampleL += avg4L[x]; darkSampleR += avg4R[x];} + darkSampleL /= 4.0; darkSampleR /= 4.0; + } if (spacing > 1) { + avg2L[avgPos%2] = darkSampleL; avg2R[avgPos%2] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 2; x++) {darkSampleL += avg2L[x]; darkSampleR += avg2R[x];} + darkSampleL /= 2.0; darkSampleR /= 2.0; + } avgPos++; + lastSlewL += fabs(lastSlewpleL-inputSampleL); lastSlewpleL = inputSampleL; + double avgSlewL = fmin(lastSlewL,1.0); + lastSlewL = fmax(lastSlewL*0.78,2.39996322972865332223); + lastSlewR += fabs(lastSlewpleR-inputSampleR); lastSlewpleR = inputSampleR; + double avgSlewR = fmin(lastSlewR,1.0); + lastSlewR = fmax(lastSlewR*0.78,2.39996322972865332223); //look up Golden Angle, it's cool + inputSampleL = (inputSampleL*(1.0-avgSlewL)) + (darkSampleL*avgSlewL); + inputSampleR = (inputSampleR*(1.0-avgSlewR)) + (darkSampleR*avgSlewR); + + //begin Discontinuity section + inputSampleL *= moreTapeHack; + inputSampleL *= moreDiscontinuity; + dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5); + dBaPosL = fmin(dBaPosL,1.0); + int dBdly = floor(dBaPosL*dscBuf); + double dBi = (dBaPosL*dscBuf)-dBdly; + inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi); + dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi; + dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0; + inputSampleL /= moreDiscontinuity; + //end Discontinuity section, begin TapeHack section + inputSampleL = fmax(fmin(inputSampleL,2.305929007734908),-2.305929007734908); + double addtwo = inputSampleL * inputSampleL; + double empower = inputSampleL * addtwo; // inputSampleL to the third power + inputSampleL -= (empower / 6.0); + empower *= addtwo; // to the fifth power + inputSampleL += (empower / 69.0); + empower *= addtwo; //seventh + inputSampleL -= (empower / 2530.08); + empower *= addtwo; //ninth + inputSampleL += (empower / 224985.6); + empower *= addtwo; //eleventh + inputSampleL -= (empower / 9979200.0f); + //this is a degenerate form of a Taylor Series to approximate sin() + //end TapeHack section + + //begin Discontinuity section + inputSampleR *= moreTapeHack; + inputSampleR *= moreDiscontinuity; + dBaR[dBaXR] = inputSampleR; dBaPosR *= 0.5; dBaPosR += fabs((inputSampleR*((inputSampleR*0.25)-0.5))*0.5); + dBaPosR = fmin(dBaPosR,1.0); + dBdly = floor(dBaPosR*dscBuf); + dBi = (dBaPosR*dscBuf)-dBdly; + inputSampleR = dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*(1.0-dBi); + dBdly++; inputSampleR += dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*dBi; + dBaXR++; if (dBaXR < 0 || dBaXR >= dscBuf) dBaXR = 0; + inputSampleR /= moreDiscontinuity; + //end Discontinuity section, begin TapeHack section + inputSampleR = fmax(fmin(inputSampleR,2.305929007734908),-2.305929007734908); + addtwo = inputSampleR * inputSampleR; + empower = inputSampleR * addtwo; // inputSampleR to the third power + inputSampleR -= (empower / 6.0); + empower *= addtwo; // to the fifth power + inputSampleR += (empower / 69.0); + empower *= addtwo; //seventh + inputSampleR -= (empower / 2530.08); + empower *= addtwo; //ninth + inputSampleR += (empower / 224985.6); + empower *= addtwo; //eleventh + inputSampleR -= (empower / 9979200.0f); + //this is a degenerate form of a Taylor Series to approximate sin() + //end TapeHack section + //Discontapeity + double trebleL = inputSampleL; double outSample = (trebleL * highA[biq_a0]) + highA[biq_sL1]; highA[biq_sL1] = (trebleL * highA[biq_a1]) - (outSample * highA[biq_b1]) + highA[biq_sL2]; @@ -940,61 +1086,6 @@ void ConsoleX2Channel::processDoubleReplacing(double **inputs, double **outputs, } //Cabs2 - //begin Discontinuity section - inputSampleL *= moreDiscontinuity; - dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5); - dBaPosL = fmin(dBaPosL,1.0); - int dBdly = floor(dBaPosL*dscBuf); - double dBi = (dBaPosL*dscBuf)-dBdly; - inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi; - dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0; - inputSampleL /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleL = fmax(fmin(inputSampleL*moreTapeHack,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.9239; - //end TapeHack section - - //begin Discontinuity section - inputSampleR *= moreDiscontinuity; - dBaR[dBaXR] = inputSampleR; dBaPosR *= 0.5; dBaPosR += fabs((inputSampleR*((inputSampleR*0.25)-0.5))*0.5); - dBaPosR = fmin(dBaPosR,1.0); - dBdly = floor(dBaPosR*dscBuf); - dBi = (dBaPosR*dscBuf)-dBdly; - inputSampleR = dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleR += dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*dBi; - dBaXR++; if (dBaXR < 0 || dBaXR >= dscBuf) dBaXR = 0; - inputSampleR /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleR = fmax(fmin(inputSampleR*moreTapeHack,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.9239; - //end TapeHack section - //Discontapeity - double gainR = (panA*temp)+(panB*(1.0-temp)); double gainL = 1.57079633-gainR; gainR = sin(gainR); gainL = sin(gainL); @@ -1002,19 +1093,16 @@ void ConsoleX2Channel::processDoubleReplacing(double **inputs, double **outputs, 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 *= 0.763932022500211; inputSampleL = inputSampleL * gainL * gain; inputSampleR = inputSampleR * gainR * gain; //applies pan section, and smoothed fader gain - inputSampleL *= 0.618033988749895; if (inputSampleL > 1.0) inputSampleL = 1.0; else if (inputSampleL > 0.0) inputSampleL = -expm1((log1p(-inputSampleL) * 1.618033988749895)); if (inputSampleL < -1.0) inputSampleL = -1.0; else if (inputSampleL < 0.0) inputSampleL = expm1((log1p(inputSampleL) * 1.618033988749895)); - inputSampleR *= 0.618033988749895; if (inputSampleR > 1.0) inputSampleR = 1.0; else if (inputSampleR > 0.0) inputSampleR = -expm1((log1p(-inputSampleR) * 1.618033988749895)); if (inputSampleR < -1.0) inputSampleR = -1.0; diff --git a/plugins/MacSignedVST/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/christopherjohnson.pbxuser b/plugins/MacSignedVST/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/christopherjohnson.pbxuser index 638c62e6c..9eb110d68 100755 --- a/plugins/MacSignedVST/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/christopherjohnson.pbxuser +++ b/plugins/MacSignedVST/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/christopherjohnson.pbxuser @@ -49,12 +49,13 @@ PBXFileDataSource_Warnings_ColumnID, ); }; - PBXPerProjectTemplateStateSaveDate = 781916144; - PBXWorkspaceStateSaveDate = 781916144; + PBXPerProjectTemplateStateSaveDate = 783603931; + PBXWorkspaceStateSaveDate = 783603931; }; perUserProjectItems = { - 8B962B6D2E9AD516000EAC04 /* PBXTextBookmark */ = 8B962B6D2E9AD516000EAC04 /* PBXTextBookmark */; - 8B962C112E9B1814000EAC04 /* PBXTextBookmark */ = 8B962C112E9B1814000EAC04 /* PBXTextBookmark */; + 8B692BB82EB4DCCF00F51381 /* PBXTextBookmark */ = 8B692BB82EB4DCCF00F51381 /* PBXTextBookmark */; + 8B692BB92EB4DCCF00F51381 /* PBXBookmark */ = 8B692BB92EB4DCCF00F51381 /* PBXBookmark */; + 8B692BBA2EB4DCCF00F51381 /* PBXTextBookmark */ = 8B692BBA2EB4DCCF00F51381 /* PBXTextBookmark */; }; sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */; userBuildSettings = { @@ -62,18 +63,18 @@ }; 2407DEB6089929BA00EB68BF /* ConsoleX2Pre.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {831, 5850}}"; - sepNavSelRange = "{1794, 0}"; - sepNavVisRange = "{744, 68}"; - sepNavWindowFrame = "{{12, 47}, {895, 831}}"; + sepNavIntBoundsRect = "{{0, 0}, {848, 5256}}"; + sepNavSelRange = "{1603, 0}"; + sepNavVisRange = "{6887, 2487}"; + sepNavWindowFrame = "{{545, 47}, {895, 831}}"; }; }; 245463B80991757100464AD3 /* ConsoleX2Pre.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1110, 2934}}"; - sepNavSelRange = "{4217, 0}"; - sepNavVisRange = "{220, 639}"; - sepNavWindowFrame = "{{20, 47}, {895, 831}}"; + sepNavIntBoundsRect = "{{0, 0}, {554, 3618}}"; + sepNavSelRange = "{2830, 0}"; + sepNavVisRange = "{2805, 39}"; + sepNavWindowFrame = "{{545, 47}, {895, 831}}"; }; }; 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = { @@ -86,10 +87,10 @@ }; 24D8286F09A914000093AEF8 /* ConsoleX2PreProc.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1182, 18360}}"; - sepNavSelRange = "{44702, 0}"; - sepNavVisRange = "{44158, 1272}"; - sepNavWindowFrame = "{{31, 42}, {895, 831}}"; + sepNavIntBoundsRect = "{{0, 0}, {1182, 19944}}"; + sepNavSelRange = "{49326, 0}"; + sepNavVisRange = "{48536, 1773}"; + sepNavWindowFrame = "{{524, 47}, {895, 831}}"; }; }; 8B02375E1D42B1C400E1E8C8 /* Source Control */ = { @@ -106,25 +107,29 @@ isa = PBXCodeSenseManager; indexTemplatePath = ""; }; - 8B962B6D2E9AD516000EAC04 /* PBXTextBookmark */ = { + 8B692BB82EB4DCCF00F51381 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 2407DEB6089929BA00EB68BF /* ConsoleX2Pre.cpp */; - name = "ConsoleX2Pre.cpp: 89"; + name = "ConsoleX2Pre.cpp: 88"; rLen = 0; - rLoc = 1794; + rLoc = 2198; rType = 0; - vrLen = 86; - vrLoc = 726; + vrLen = 51; + vrLoc = 779; }; - 8B962C112E9B1814000EAC04 /* PBXTextBookmark */ = { + 8B692BB92EB4DCCF00F51381 /* PBXBookmark */ = { + isa = PBXBookmark; + fRef = 245463B80991757100464AD3 /* ConsoleX2Pre.h */; + }; + 8B692BBA2EB4DCCF00F51381 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 2407DEB6089929BA00EB68BF /* ConsoleX2Pre.cpp */; - name = "ConsoleX2Pre.cpp: 89"; + fRef = 245463B80991757100464AD3 /* ConsoleX2Pre.h */; + name = "ConsoleX2Pre.h: 85"; rLen = 0; - rLoc = 1794; + rLoc = 2830; rType = 0; - vrLen = 68; - vrLoc = 744; + vrLen = 39; + vrLoc = 2805; }; 8D01CCC60486CAD60068D4B7 /* ConsoleX2Pre */ = { activeExec = 0; diff --git a/plugins/MacSignedVST/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacSignedVST/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/christopherjohnson.perspectivev3 index 1edfc895d..713c7ad50 100755 --- a/plugins/MacSignedVST/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/christopherjohnson.perspectivev3 +++ b/plugins/MacSignedVST/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/christopherjohnson.perspectivev3 @@ -323,7 +323,7 @@ 185 RubberWindowFrame - 34 365 810 487 0 0 1440 878 + 639 298 810 487 0 0 1440 878 Module PBXSmartGroupTreeModule @@ -339,7 +339,7 @@ PBXProjectModuleGUID 8B0237581D42B1C400E1E8C8 PBXProjectModuleLabel - ConsoleX2Pre.cpp + ConsoleX2Pre.h PBXSplitModuleInNavigatorKey Split0 @@ -347,14 +347,15 @@ PBXProjectModuleGUID 8B0237591D42B1C400E1E8C8 PBXProjectModuleLabel - ConsoleX2Pre.cpp + ConsoleX2Pre.h _historyCapacity 0 bookmark - 8B962C112E9B1814000EAC04 + 8B692BBA2EB4DCCF00F51381 history - 8B962B6D2E9AD516000EAC04 + 8B692BB82EB4DCCF00F51381 + 8B692BB92EB4DCCF00F51381 SplitCount @@ -368,18 +369,18 @@ GeometryConfiguration Frame - {{0, 0}, {603, 102}} + {{0, 0}, {603, 69}} RubberWindowFrame - 34 365 810 487 0 0 1440 878 + 639 298 810 487 0 0 1440 878 Module PBXNavigatorGroup Proportion - 102pt + 69pt Proportion - 339pt + 372pt Tabs @@ -393,9 +394,9 @@ GeometryConfiguration Frame - {{10, 27}, {603, 312}} + {{10, 27}, {603, 345}} RubberWindowFrame - 34 365 810 487 0 0 1440 878 + 639 298 810 487 0 0 1440 878 Module XCDetailModule @@ -449,7 +450,7 @@ GeometryConfiguration Frame - {{10, 27}, {603, 282}} + {{10, 27}, {603, 328}} Module PBXBuildResultsModule @@ -477,11 +478,11 @@ TableOfContents - 8B962C122E9B1814000EAC04 + 8B692BBB2EB4DCCF00F51381 1CA23ED40692098700951B8B - 8B962C132E9B1814000EAC04 + 8B692BBC2EB4DCCF00F51381 8B0237581D42B1C400E1E8C8 - 8B962C142E9B1814000EAC04 + 8B692BBD2EB4DCCF00F51381 1CA23EDF0692099D00951B8B 1CA23EE00692099D00951B8B 1CA23EE10692099D00951B8B @@ -634,7 +635,7 @@ StatusbarIsVisible TimeStamp - 781916180.50450897 + 783604943.16103494 ToolbarConfigUserDefaultsMinorVersion 2 ToolbarDisplayMode @@ -651,11 +652,11 @@ 5 WindowOrderList - 8B962C152E9B1814000EAC04 + 8B692BBE2EB4DCCF00F51381 /Users/christopherjohnson/Desktop/airwindows/plugins/MacVST/ConsoleX2Pre/ConsoleX2Pre.xcodeproj WindowString - 34 365 810 487 0 0 1440 878 + 639 298 810 487 0 0 1440 878 WindowToolsV3 diff --git a/plugins/MacSignedVST/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/project.pbxproj b/plugins/MacSignedVST/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/project.pbxproj index 647ec39e0..d6db1a540 100755 --- a/plugins/MacSignedVST/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/project.pbxproj +++ b/plugins/MacSignedVST/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/project.pbxproj @@ -12,15 +12,15 @@ 24CFB70407E7A0220081BD57 /* PkgInfo in Resources */ = {isa = PBXBuildFile; fileRef = 24CFB70307E7A0220081BD57 /* PkgInfo */; }; 24D8287009A914000093AEF8 /* ConsoleX2PreProc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 24D8286F09A914000093AEF8 /* ConsoleX2PreProc.cpp */; }; 24D8287F09A9164A0093AEF8 /* xcode_vst_prefix.h in Headers */ = {isa = PBXBuildFile; fileRef = 24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */; }; - 8BEE22502E9DB9A9001FB1BD /* vstfxstore.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BEE22442E9DB9A9001FB1BD /* vstfxstore.h */; }; - 8BEE22512E9DB9A9001FB1BD /* aeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BEE22452E9DB9A9001FB1BD /* aeffect.h */; }; - 8BEE22522E9DB9A9001FB1BD /* aeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BEE22462E9DB9A9001FB1BD /* aeffectx.h */; }; - 8BEE22532E9DB9A9001FB1BD /* audioeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BEE224A2E9DB9A9001FB1BD /* audioeffectx.h */; }; - 8BEE22542E9DB9A9001FB1BD /* audioeffect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BEE224B2E9DB9A9001FB1BD /* audioeffect.cpp */; }; - 8BEE22552E9DB9A9001FB1BD /* audioeffectx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BEE224C2E9DB9A9001FB1BD /* audioeffectx.cpp */; }; - 8BEE22562E9DB9A9001FB1BD /* aeffeditor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BEE224D2E9DB9A9001FB1BD /* aeffeditor.h */; }; - 8BEE22572E9DB9A9001FB1BD /* vstplugmain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BEE224E2E9DB9A9001FB1BD /* vstplugmain.cpp */; }; - 8BEE22582E9DB9A9001FB1BD /* audioeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BEE224F2E9DB9A9001FB1BD /* audioeffect.h */; }; + 8B7A4B242EB572E000B07840 /* vstfxstore.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4B182EB572E000B07840 /* vstfxstore.h */; }; + 8B7A4B252EB572E000B07840 /* aeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4B192EB572E000B07840 /* aeffect.h */; }; + 8B7A4B262EB572E000B07840 /* aeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4B1A2EB572E000B07840 /* aeffectx.h */; }; + 8B7A4B272EB572E000B07840 /* audioeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4B1E2EB572E000B07840 /* audioeffectx.h */; }; + 8B7A4B282EB572E000B07840 /* audioeffect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A4B1F2EB572E000B07840 /* audioeffect.cpp */; }; + 8B7A4B292EB572E000B07840 /* audioeffectx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A4B202EB572E000B07840 /* audioeffectx.cpp */; }; + 8B7A4B2A2EB572E000B07840 /* aeffeditor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4B212EB572E000B07840 /* aeffeditor.h */; }; + 8B7A4B2B2EB572E000B07840 /* vstplugmain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A4B222EB572E000B07840 /* vstplugmain.cpp */; }; + 8B7A4B2C2EB572E000B07840 /* audioeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4B232EB572E000B07840 /* audioeffect.h */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -30,15 +30,15 @@ 24CFB70307E7A0220081BD57 /* PkgInfo */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = PkgInfo; path = mac/PkgInfo; sourceTree = ""; }; 24D8286F09A914000093AEF8 /* ConsoleX2PreProc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ConsoleX2PreProc.cpp; path = source/ConsoleX2PreProc.cpp; sourceTree = ""; }; 24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = xcode_vst_prefix.h; path = mac/xcode_vst_prefix.h; sourceTree = SOURCE_ROOT; }; - 8BEE22442E9DB9A9001FB1BD /* vstfxstore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstfxstore.h; sourceTree = ""; }; - 8BEE22452E9DB9A9001FB1BD /* aeffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffect.h; sourceTree = ""; }; - 8BEE22462E9DB9A9001FB1BD /* aeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffectx.h; sourceTree = ""; }; - 8BEE224A2E9DB9A9001FB1BD /* audioeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audioeffectx.h; sourceTree = ""; }; - 8BEE224B2E9DB9A9001FB1BD /* audioeffect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffect.cpp; sourceTree = ""; }; - 8BEE224C2E9DB9A9001FB1BD /* audioeffectx.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffectx.cpp; sourceTree = ""; }; - 8BEE224D2E9DB9A9001FB1BD /* aeffeditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffeditor.h; sourceTree = ""; }; - 8BEE224E2E9DB9A9001FB1BD /* vstplugmain.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstplugmain.cpp; sourceTree = ""; }; - 8BEE224F2E9DB9A9001FB1BD /* audioeffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audioeffect.h; sourceTree = ""; }; + 8B7A4B182EB572E000B07840 /* vstfxstore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstfxstore.h; sourceTree = ""; }; + 8B7A4B192EB572E000B07840 /* aeffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffect.h; sourceTree = ""; }; + 8B7A4B1A2EB572E000B07840 /* aeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffectx.h; sourceTree = ""; }; + 8B7A4B1E2EB572E000B07840 /* audioeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audioeffectx.h; sourceTree = ""; }; + 8B7A4B1F2EB572E000B07840 /* audioeffect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffect.cpp; sourceTree = ""; }; + 8B7A4B202EB572E000B07840 /* audioeffectx.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffectx.cpp; sourceTree = ""; }; + 8B7A4B212EB572E000B07840 /* aeffeditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffeditor.h; sourceTree = ""; }; + 8B7A4B222EB572E000B07840 /* vstplugmain.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstplugmain.cpp; sourceTree = ""; }; + 8B7A4B232EB572E000B07840 /* audioeffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audioeffect.h; sourceTree = ""; }; 8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = mac/Info.plist; sourceTree = ""; }; /* End PBXFileReference section */ @@ -66,7 +66,7 @@ 08FB77ADFE841716C02AAC07 /* Source */ = { isa = PBXGroup; children = ( - 8BEE22412E9DB9A9001FB1BD /* vstsdk2.4 */, + 8B7A4B152EB572E000B07840 /* vstsdk2.4 */, 2407DEB6089929BA00EB68BF /* ConsoleX2Pre.cpp */, 24D8286F09A914000093AEF8 /* ConsoleX2PreProc.cpp */, 245463B80991757100464AD3 /* ConsoleX2Pre.h */, @@ -82,59 +82,59 @@ name = Products; sourceTree = ""; }; - 8BEE22412E9DB9A9001FB1BD /* vstsdk2.4 */ = { + 8B7A4B152EB572E000B07840 /* vstsdk2.4 */ = { isa = PBXGroup; children = ( - 8BEE22422E9DB9A9001FB1BD /* pluginterfaces */, - 8BEE22472E9DB9A9001FB1BD /* public.sdk */, + 8B7A4B162EB572E000B07840 /* pluginterfaces */, + 8B7A4B1B2EB572E000B07840 /* public.sdk */, ); name = vstsdk2.4; path = ../../../../vstsdk2.4; sourceTree = ""; }; - 8BEE22422E9DB9A9001FB1BD /* pluginterfaces */ = { + 8B7A4B162EB572E000B07840 /* pluginterfaces */ = { isa = PBXGroup; children = ( - 8BEE22432E9DB9A9001FB1BD /* vst2.x */, + 8B7A4B172EB572E000B07840 /* vst2.x */, ); path = pluginterfaces; sourceTree = ""; }; - 8BEE22432E9DB9A9001FB1BD /* vst2.x */ = { + 8B7A4B172EB572E000B07840 /* vst2.x */ = { isa = PBXGroup; children = ( - 8BEE22442E9DB9A9001FB1BD /* vstfxstore.h */, - 8BEE22452E9DB9A9001FB1BD /* aeffect.h */, - 8BEE22462E9DB9A9001FB1BD /* aeffectx.h */, + 8B7A4B182EB572E000B07840 /* vstfxstore.h */, + 8B7A4B192EB572E000B07840 /* aeffect.h */, + 8B7A4B1A2EB572E000B07840 /* aeffectx.h */, ); path = vst2.x; sourceTree = ""; }; - 8BEE22472E9DB9A9001FB1BD /* public.sdk */ = { + 8B7A4B1B2EB572E000B07840 /* public.sdk */ = { isa = PBXGroup; children = ( - 8BEE22482E9DB9A9001FB1BD /* source */, + 8B7A4B1C2EB572E000B07840 /* source */, ); path = public.sdk; sourceTree = ""; }; - 8BEE22482E9DB9A9001FB1BD /* source */ = { + 8B7A4B1C2EB572E000B07840 /* source */ = { isa = PBXGroup; children = ( - 8BEE22492E9DB9A9001FB1BD /* vst2.x */, + 8B7A4B1D2EB572E000B07840 /* vst2.x */, ); path = source; sourceTree = ""; }; - 8BEE22492E9DB9A9001FB1BD /* vst2.x */ = { + 8B7A4B1D2EB572E000B07840 /* vst2.x */ = { isa = PBXGroup; children = ( - 8BEE224A2E9DB9A9001FB1BD /* audioeffectx.h */, - 8BEE224B2E9DB9A9001FB1BD /* audioeffect.cpp */, - 8BEE224C2E9DB9A9001FB1BD /* audioeffectx.cpp */, - 8BEE224D2E9DB9A9001FB1BD /* aeffeditor.h */, - 8BEE224E2E9DB9A9001FB1BD /* vstplugmain.cpp */, - 8BEE224F2E9DB9A9001FB1BD /* audioeffect.h */, + 8B7A4B1E2EB572E000B07840 /* audioeffectx.h */, + 8B7A4B1F2EB572E000B07840 /* audioeffect.cpp */, + 8B7A4B202EB572E000B07840 /* audioeffectx.cpp */, + 8B7A4B212EB572E000B07840 /* aeffeditor.h */, + 8B7A4B222EB572E000B07840 /* vstplugmain.cpp */, + 8B7A4B232EB572E000B07840 /* audioeffect.h */, ); path = vst2.x; sourceTree = ""; @@ -146,14 +146,14 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 8BEE22562E9DB9A9001FB1BD /* aeffeditor.h in Headers */, + 8B7A4B2A2EB572E000B07840 /* aeffeditor.h in Headers */, 245463B90991757100464AD3 /* ConsoleX2Pre.h in Headers */, - 8BEE22582E9DB9A9001FB1BD /* audioeffect.h in Headers */, - 8BEE22512E9DB9A9001FB1BD /* aeffect.h in Headers */, + 8B7A4B2C2EB572E000B07840 /* audioeffect.h in Headers */, + 8B7A4B252EB572E000B07840 /* aeffect.h in Headers */, 24D8287F09A9164A0093AEF8 /* xcode_vst_prefix.h in Headers */, - 8BEE22532E9DB9A9001FB1BD /* audioeffectx.h in Headers */, - 8BEE22502E9DB9A9001FB1BD /* vstfxstore.h in Headers */, - 8BEE22522E9DB9A9001FB1BD /* aeffectx.h in Headers */, + 8B7A4B272EB572E000B07840 /* audioeffectx.h in Headers */, + 8B7A4B242EB572E000B07840 /* vstfxstore.h in Headers */, + 8B7A4B262EB572E000B07840 /* aeffectx.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -192,10 +192,10 @@ developmentRegion = en; hasScannedForEncodings = 1; knownRegions = ( + en, + Base, fr, de, - Base, - en, ja, ); mainGroup = 089C166AFE841209C02AAC07 /* FM-Chopper */; @@ -240,10 +240,10 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 8BEE22552E9DB9A9001FB1BD /* audioeffectx.cpp in Sources */, + 8B7A4B292EB572E000B07840 /* audioeffectx.cpp in Sources */, 2407DEB9089929BA00EB68BF /* ConsoleX2Pre.cpp in Sources */, - 8BEE22542E9DB9A9001FB1BD /* audioeffect.cpp in Sources */, - 8BEE22572E9DB9A9001FB1BD /* vstplugmain.cpp in Sources */, + 8B7A4B282EB572E000B07840 /* audioeffect.cpp in Sources */, + 8B7A4B2B2EB572E000B07840 /* vstplugmain.cpp in Sources */, 24D8287009A914000093AEF8 /* ConsoleX2PreProc.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/plugins/MacSignedVST/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacSignedVST/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate index f067eaefc..ac2c8378d 100755 Binary files a/plugins/MacSignedVST/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate and b/plugins/MacSignedVST/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/plugins/MacSignedVST/ConsoleX2Pre/source/ConsoleX2Pre.cpp b/plugins/MacSignedVST/ConsoleX2Pre/source/ConsoleX2Pre.cpp index 7f5bee3dc..1d6244eab 100755 --- a/plugins/MacSignedVST/ConsoleX2Pre/source/ConsoleX2Pre.cpp +++ b/plugins/MacSignedVST/ConsoleX2Pre/source/ConsoleX2Pre.cpp @@ -12,22 +12,22 @@ AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new C ConsoleX2Pre::ConsoleX2Pre(audioMasterCallback audioMaster) : AudioEffectX(audioMaster, kNumPrograms, kNumParameters) { - A = 0.5; - B = 0.5; + A = 0.25; + B = 0.0; C = 0.5; D = 0.5; E = 0.5; F = 0.5; G = 0.5; H = 0.5; - I = 1.0; + I = 0.5; J = 0.5; - K = 0.5; - L = 0.0; - M = 1.0; + K = 1.0; + L = 0.5; + M = 0.5; N = 0.0; - O = 0.0; - P = 0.5; + O = 1.0; + P = 0.0; Q = 0.5; for (int x = 0; x < biq_total; x++) { @@ -81,9 +81,18 @@ ConsoleX2Pre::ConsoleX2Pre(audioMasterCallback audioMaster) : 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; @@ -219,22 +228,22 @@ float ConsoleX2Pre::getParameter(VstInt32 index) { void ConsoleX2Pre::getParameterName(VstInt32 index, char *text) { switch (index) { - case kParamA: vst_strncpy (text, "High", kVstMaxParamStrLen); break; - case kParamB: vst_strncpy (text, "HMid", kVstMaxParamStrLen); break; - case kParamC: vst_strncpy (text, "LMid", kVstMaxParamStrLen); break; - case kParamD: vst_strncpy (text, "Bass", kVstMaxParamStrLen); break; - case kParamE: vst_strncpy (text, "HighF", kVstMaxParamStrLen); break; - case kParamF: vst_strncpy (text, "HMidF", kVstMaxParamStrLen); break; - case kParamG: vst_strncpy (text, "LMidF", kVstMaxParamStrLen); break; - case kParamH: vst_strncpy (text, "BassF", kVstMaxParamStrLen); break; - case kParamI: vst_strncpy (text, "Thresh", kVstMaxParamStrLen); break; - case kParamJ: vst_strncpy (text, "Attack", kVstMaxParamStrLen); break; - case kParamK: vst_strncpy (text, "Release", kVstMaxParamStrLen); break; - case kParamL: vst_strncpy (text, "Gate", kVstMaxParamStrLen); break; - case kParamM: vst_strncpy (text, "Lowpass", kVstMaxParamStrLen); break; - case kParamN: vst_strncpy (text, "Hipass", kVstMaxParamStrLen); break; - case kParamO: vst_strncpy (text, "More", kVstMaxParamStrLen); break; - case kParamP: vst_strncpy (text, "Pan", kVstMaxParamStrLen); break; + case kParamA: vst_strncpy (text, "Trim", kVstMaxParamStrLen); break; + case kParamB: vst_strncpy (text, "More", kVstMaxParamStrLen); break; + case kParamC: vst_strncpy (text, "High", kVstMaxParamStrLen); break; + case kParamD: vst_strncpy (text, "HMid", kVstMaxParamStrLen); break; + case kParamE: vst_strncpy (text, "LMid", kVstMaxParamStrLen); break; + case kParamF: vst_strncpy (text, "Bass", kVstMaxParamStrLen); break; + case kParamG: vst_strncpy (text, "HighF", kVstMaxParamStrLen); break; + case kParamH: vst_strncpy (text, "HMidF", kVstMaxParamStrLen); break; + case kParamI: vst_strncpy (text, "LMidF", kVstMaxParamStrLen); break; + case kParamJ: vst_strncpy (text, "BassF", kVstMaxParamStrLen); break; + case kParamK: vst_strncpy (text, "Thresh", kVstMaxParamStrLen); break; + case kParamL: vst_strncpy (text, "Attack", kVstMaxParamStrLen); break; + case kParamM: vst_strncpy (text, "Release", kVstMaxParamStrLen); break; + case kParamN: vst_strncpy (text, "Gate", kVstMaxParamStrLen); break; + case kParamO: vst_strncpy (text, "Lowpass", kVstMaxParamStrLen); break; + case kParamP: vst_strncpy (text, "Hipass", kVstMaxParamStrLen); break; case kParamQ: vst_strncpy (text, "Fader", kVstMaxParamStrLen); break; default: break; // unknown parameter, shouldn't happen! } //this is our labels for displaying in the VST host @@ -242,7 +251,7 @@ void ConsoleX2Pre::getParameterName(VstInt32 index, char *text) { void ConsoleX2Pre::getParameterDisplay(VstInt32 index, char *text) { switch (index) { - case kParamA: float2string (A, text, kVstMaxParamStrLen); break; + case kParamA: int2string ((int)(A*4.0), text, kVstMaxParamStrLen); break; case kParamB: float2string (B, text, kVstMaxParamStrLen); break; case kParamC: float2string (C, text, kVstMaxParamStrLen); break; case kParamD: float2string (D, text, kVstMaxParamStrLen); break; @@ -265,21 +274,21 @@ void ConsoleX2Pre::getParameterDisplay(VstInt32 index, char *text) { void ConsoleX2Pre::getParameterLabel(VstInt32 index, char *text) { switch (index) { - case kParamA: vst_strncpy (text, "eq", kVstMaxParamStrLen); break; + case kParamA: vst_strncpy (text, "", kVstMaxParamStrLen); break; case kParamB: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamC: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamC: vst_strncpy (text, "eq", kVstMaxParamStrLen); break; case kParamD: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamE: vst_strncpy (text, "freq", kVstMaxParamStrLen); break; + case kParamE: vst_strncpy (text, "", kVstMaxParamStrLen); break; case kParamF: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamG: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamG: vst_strncpy (text, "freq", kVstMaxParamStrLen); break; case kParamH: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamI: vst_strncpy (text, "dyn", kVstMaxParamStrLen); break; + case kParamI: vst_strncpy (text, "", kVstMaxParamStrLen); break; case kParamJ: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamK: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamK: vst_strncpy (text, "dyn", kVstMaxParamStrLen); break; case kParamL: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamM: vst_strncpy (text, "fltr", kVstMaxParamStrLen); break; + case kParamM: vst_strncpy (text, "", kVstMaxParamStrLen); break; case kParamN: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamO: vst_strncpy (text, "+", kVstMaxParamStrLen); break; + case kParamO: vst_strncpy (text, "fltr", kVstMaxParamStrLen); break; case kParamP: vst_strncpy (text, "", kVstMaxParamStrLen); break; case kParamQ: vst_strncpy (text, "", kVstMaxParamStrLen); break; default: break; // unknown parameter, shouldn't happen! diff --git a/plugins/MacSignedVST/ConsoleX2Pre/source/ConsoleX2Pre.h b/plugins/MacSignedVST/ConsoleX2Pre/source/ConsoleX2Pre.h index 2162a3d0c..3fa48a8f8 100755 --- a/plugins/MacSignedVST/ConsoleX2Pre/source/ConsoleX2Pre.h +++ b/plugins/MacSignedVST/ConsoleX2Pre/source/ConsoleX2Pre.h @@ -166,8 +166,23 @@ private: int dBaXR; //Discontapeity - double panA; - double panB; + 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; diff --git a/plugins/MacSignedVST/ConsoleX2Pre/source/ConsoleX2PreProc.cpp b/plugins/MacSignedVST/ConsoleX2Pre/source/ConsoleX2PreProc.cpp index 377839b00..4c8abed86 100755 --- a/plugins/MacSignedVST/ConsoleX2Pre/source/ConsoleX2PreProc.cpp +++ b/plugins/MacSignedVST/ConsoleX2Pre/source/ConsoleX2PreProc.cpp @@ -18,20 +18,33 @@ void ConsoleX2Pre::processReplacing(float **inputs, float **outputs, VstInt32 sa 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 = (A-0.5)*2.0; + double moreTapeHack = (B*2.0)+1.0; + switch ((int)(A*4.0)){ + 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(B*0.42,3.0)*overallscale,0.00001); + //Discontapeity + + double trebleGain = (C-0.5)*2.0; trebleGain = 1.0+(trebleGain*fabs(trebleGain)*fabs(trebleGain)); - double highmidGain = (B-0.5)*2.0; + double highmidGain = (D-0.5)*2.0; highmidGain = 1.0+(highmidGain*fabs(highmidGain)*fabs(highmidGain)); - double lowmidGain = (C-0.5)*2.0; + double lowmidGain = (E-0.5)*2.0; lowmidGain = 1.0+(lowmidGain*fabs(lowmidGain)*fabs(lowmidGain)); - double bassGain = (D-0.5)*2.0; + double bassGain = (F-0.5)*2.0; bassGain = 1.0+(bassGain*fabs(bassGain)*fabs(bassGain)); - double trebleRef = E-0.5; - double highmidRef = F-0.5; - double lowmidRef = G-0.5; - double bassRef = H-0.5; + double trebleRef = G-0.5; + double highmidRef = H-0.5; + double lowmidRef = I-0.5; + double bassRef = J-0.5; double highF = 0.75 + ((trebleRef+trebleRef+trebleRef+highmidRef)*0.125); double bassF = 0.25 + ((lowmidRef+bassRef+bassRef+bassRef)*0.125); double midF = (highF*0.5) + (bassF*0.5) + ((highmidRef+lowmidRef)*0.125); @@ -44,8 +57,8 @@ void ConsoleX2Pre::processReplacing(float **inputs, float **outputs, VstInt32 sa highC[biq_freq] = highB[biq_freq] = highA[biq_freq] = fmax(fmin(highA[biq_freq],0.4999),0.00025); double highFreq = pow(highF,3)*20000.0; double omega = 2.0*M_PI*(highFreq/getSampleRate()); - double K = 2.0-cos(omega); - double highCoef = -sqrt((K*K)-1.0)+K; + double biqK = 2.0-cos(omega); + double highCoef = -sqrt((biqK*biqK)-1.0)+biqK; highA[biq_reso] = 2.24697960 * highQ; highB[biq_reso] = 0.80193774 * highQ; highC[biq_reso] = 0.55495813 * highQ; @@ -54,8 +67,8 @@ void ConsoleX2Pre::processReplacing(float **inputs, float **outputs, VstInt32 sa midC[biq_freq] = midB[biq_freq] = midA[biq_freq] = fmax(fmin(midA[biq_freq],0.4999),0.00025); double midFreq = pow(midF,3)*20000.0; omega = 2.0*M_PI*(midFreq/getSampleRate()); - K = 2.0-cos(omega); - double midCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double midCoef = -sqrt((biqK*biqK)-1.0)+biqK; midA[biq_reso] = 2.24697960 * midQ; midB[biq_reso] = 0.80193774 * midQ; midC[biq_reso] = 0.55495813 * midQ; @@ -64,96 +77,91 @@ void ConsoleX2Pre::processReplacing(float **inputs, float **outputs, VstInt32 sa lowC[biq_freq] = lowB[biq_freq] = lowA[biq_freq] = fmax(fmin(lowA[biq_freq],0.4999),0.00025); double lowFreq = pow(bassF,3)*20000.0; omega = 2.0*M_PI*(lowFreq/getSampleRate()); - K = 2.0-cos(omega); - double lowCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double lowCoef = -sqrt((biqK*biqK)-1.0)+biqK; lowA[biq_reso] = 2.24697960 * lowQ; lowB[biq_reso] = 0.80193774 * lowQ; lowC[biq_reso] = 0.55495813 * lowQ; - K = tan(M_PI * highA[biq_freq]); - double norm = 1.0 / (1.0 + K / highA[biq_reso] + K * K); - highA[biq_a0] = K * K * norm; + biqK = tan(M_PI * highA[biq_freq]); + double norm = 1.0 / (1.0 + biqK / highA[biq_reso] + biqK * biqK); + highA[biq_a0] = biqK * biqK * norm; highA[biq_a1] = 2.0 * highA[biq_a0]; highA[biq_a2] = highA[biq_a0]; - highA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highA[biq_b2] = (1.0 - K / highA[biq_reso] + K * K) * norm; - K = tan(M_PI * highB[biq_freq]); - norm = 1.0 / (1.0 + K / highB[biq_reso] + K * K); - highB[biq_a0] = K * K * norm; + highA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highA[biq_b2] = (1.0 - biqK / highA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highB[biq_freq]); + norm = 1.0 / (1.0 + biqK / highB[biq_reso] + biqK * biqK); + highB[biq_a0] = biqK * biqK * norm; highB[biq_a1] = 2.0 * highB[biq_a0]; highB[biq_a2] = highB[biq_a0]; - highB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highB[biq_b2] = (1.0 - K / highB[biq_reso] + K * K) * norm; - K = tan(M_PI * highC[biq_freq]); - norm = 1.0 / (1.0 + K / highC[biq_reso] + K * K); - highC[biq_a0] = K * K * norm; + highB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highB[biq_b2] = (1.0 - biqK / highB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highC[biq_freq]); + norm = 1.0 / (1.0 + biqK / highC[biq_reso] + biqK * biqK); + highC[biq_a0] = biqK * biqK * norm; highC[biq_a1] = 2.0 * highC[biq_a0]; highC[biq_a2] = highC[biq_a0]; - highC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highC[biq_b2] = (1.0 - K / highC[biq_reso] + K * K) * norm; + highC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highC[biq_b2] = (1.0 - biqK / highC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * midA[biq_freq]); - norm = 1.0 / (1.0 + K / midA[biq_reso] + K * K); - midA[biq_a0] = K * K * norm; + biqK = tan(M_PI * midA[biq_freq]); + norm = 1.0 / (1.0 + biqK / midA[biq_reso] + biqK * biqK); + midA[biq_a0] = biqK * biqK * norm; midA[biq_a1] = 2.0 * midA[biq_a0]; midA[biq_a2] = midA[biq_a0]; - midA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midA[biq_b2] = (1.0 - K / midA[biq_reso] + K * K) * norm; - K = tan(M_PI * midB[biq_freq]); - norm = 1.0 / (1.0 + K / midB[biq_reso] + K * K); - midB[biq_a0] = K * K * norm; + midA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midA[biq_b2] = (1.0 - biqK / midA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midB[biq_freq]); + norm = 1.0 / (1.0 + biqK / midB[biq_reso] + biqK * biqK); + midB[biq_a0] = biqK * biqK * norm; midB[biq_a1] = 2.0 * midB[biq_a0]; midB[biq_a2] = midB[biq_a0]; - midB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midB[biq_b2] = (1.0 - K / midB[biq_reso] + K * K) * norm; - K = tan(M_PI * midC[biq_freq]); - norm = 1.0 / (1.0 + K / midC[biq_reso] + K * K); - midC[biq_a0] = K * K * norm; + midB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midB[biq_b2] = (1.0 - biqK / midB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midC[biq_freq]); + norm = 1.0 / (1.0 + biqK / midC[biq_reso] + biqK * biqK); + midC[biq_a0] = biqK * biqK * norm; midC[biq_a1] = 2.0 * midC[biq_a0]; midC[biq_a2] = midC[biq_a0]; - midC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midC[biq_b2] = (1.0 - K / midC[biq_reso] + K * K) * norm; + midC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midC[biq_b2] = (1.0 - biqK / midC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * lowA[biq_freq]); - norm = 1.0 / (1.0 + K / lowA[biq_reso] + K * K); - lowA[biq_a0] = K * K * norm; + biqK = tan(M_PI * lowA[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowA[biq_reso] + biqK * biqK); + lowA[biq_a0] = biqK * biqK * norm; lowA[biq_a1] = 2.0 * lowA[biq_a0]; lowA[biq_a2] = lowA[biq_a0]; - lowA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowA[biq_b2] = (1.0 - K / lowA[biq_reso] + K * K) * norm; - K = tan(M_PI * lowB[biq_freq]); - norm = 1.0 / (1.0 + K / lowB[biq_reso] + K * K); - lowB[biq_a0] = K * K * norm; + lowA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowA[biq_b2] = (1.0 - biqK / lowA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowB[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowB[biq_reso] + biqK * biqK); + lowB[biq_a0] = biqK * biqK * norm; lowB[biq_a1] = 2.0 * lowB[biq_a0]; lowB[biq_a2] = lowB[biq_a0]; - lowB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowB[biq_b2] = (1.0 - K / lowB[biq_reso] + K * K) * norm; - K = tan(M_PI * lowC[biq_freq]); - norm = 1.0 / (1.0 + K / lowC[biq_reso] + K * K); - lowC[biq_a0] = K * K * norm; + lowB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowB[biq_b2] = (1.0 - biqK / lowB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowC[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowC[biq_reso] + biqK * biqK); + lowC[biq_a0] = biqK * biqK * norm; lowC[biq_a1] = 2.0 * lowC[biq_a0]; lowC[biq_a2] = lowC[biq_a0]; - lowC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowC[biq_b2] = (1.0 - K / lowC[biq_reso] + K * K) * norm; + lowC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowC[biq_b2] = (1.0 - biqK / lowC[biq_reso] + biqK * biqK) * norm; //SmoothEQ2 - double bezCThresh = pow(1.0-I, 6.0) * 8.0; - double bezRez = pow(1.0-J, 8.0) / overallscale; - double sloRez = pow(1.0-K,12.0) / overallscale; + double bezCThresh = pow(1.0-K, 6.0) * 8.0; + double bezRez = pow(1.0-L, 8.0) / overallscale; + double sloRez = pow(1.0-M,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(L,4.0),sqrt(bezCThresh+1.0)); + double gate = pow(pow(N,4.0),sqrt(bezCThresh+1.0)); //Dynamics2 - lFreqA = lFreqB; lFreqB = pow(fmax(M,0.002),overallscale); //the lowpass - hFreqA = hFreqB; hFreqB = pow(N,overallscale+2.0); //the highpass + lFreqA = lFreqB; lFreqB = pow(fmax(O,0.002),overallscale); //the lowpass + hFreqA = hFreqB; hFreqB = pow(P,overallscale+2.0); //the highpass //Cabs2 - - double moreDiscontinuity = fmax(pow(O*0.42,3.0)*overallscale,0.00001); - double moreTapeHack = (O*1.4152481)+1.2; - //Discontapeity - - panA = panB; panB = P*1.57079633; + inTrimA = inTrimB; inTrimB = Q*2.0; //Console @@ -164,6 +172,101 @@ void ConsoleX2Pre::processReplacing(float **inputs, float **outputs, VstInt32 sa if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17; if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17; + double darkSampleL = inputSampleL; + double darkSampleR = inputSampleR; + if (avgPos > 31) avgPos = 0; + if (spacing > 31) { + avg32L[avgPos] = darkSampleL; avg32R[avgPos] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 32; x++) {darkSampleL += avg32L[x]; darkSampleR += avg32R[x];} + darkSampleL /= 32.0; darkSampleR /= 32.0; + } if (spacing > 15) { + avg16L[avgPos%16] = darkSampleL; avg16R[avgPos%16] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 16; x++) {darkSampleL += avg16L[x]; darkSampleR += avg16R[x];} + darkSampleL /= 16.0; darkSampleR /= 16.0; + } if (spacing > 7) { + avg8L[avgPos%8] = darkSampleL; avg8R[avgPos%8] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 8; x++) {darkSampleL += avg8L[x]; darkSampleR += avg8R[x];} + darkSampleL /= 8.0; darkSampleR /= 8.0; + } if (spacing > 3) { + avg4L[avgPos%4] = darkSampleL; avg4R[avgPos%4] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 4; x++) {darkSampleL += avg4L[x]; darkSampleR += avg4R[x];} + darkSampleL /= 4.0; darkSampleR /= 4.0; + } if (spacing > 1) { + avg2L[avgPos%2] = darkSampleL; avg2R[avgPos%2] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 2; x++) {darkSampleL += avg2L[x]; darkSampleR += avg2R[x];} + darkSampleL /= 2.0; darkSampleR /= 2.0; + } avgPos++; + lastSlewL += fabs(lastSlewpleL-inputSampleL); lastSlewpleL = inputSampleL; + double avgSlewL = fmin(lastSlewL,1.0); + lastSlewL = fmax(lastSlewL*0.78,2.39996322972865332223); + lastSlewR += fabs(lastSlewpleR-inputSampleR); lastSlewpleR = inputSampleR; + double avgSlewR = fmin(lastSlewR,1.0); + lastSlewR = fmax(lastSlewR*0.78,2.39996322972865332223); //look up Golden Angle, it's cool + inputSampleL = (inputSampleL*(1.0-avgSlewL)) + (darkSampleL*avgSlewL); + inputSampleR = (inputSampleR*(1.0-avgSlewR)) + (darkSampleR*avgSlewR); + + //begin Discontinuity section + inputSampleL *= moreTapeHack; + inputSampleL *= moreDiscontinuity; + dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5); + dBaPosL = fmin(dBaPosL,1.0); + int dBdly = floor(dBaPosL*dscBuf); + double dBi = (dBaPosL*dscBuf)-dBdly; + inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi); + dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi; + dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0; + inputSampleL /= moreDiscontinuity; + //end Discontinuity section, begin TapeHack section + inputSampleL = fmax(fmin(inputSampleL*moreTapeHack,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.9239; + //end TapeHack section + + //begin Discontinuity section + inputSampleR *= moreTapeHack; + inputSampleR *= moreDiscontinuity; + dBaR[dBaXR] = inputSampleR; dBaPosR *= 0.5; dBaPosR += fabs((inputSampleR*((inputSampleR*0.25)-0.5))*0.5); + dBaPosR = fmin(dBaPosR,1.0); + dBdly = floor(dBaPosR*dscBuf); + dBi = (dBaPosR*dscBuf)-dBdly; + inputSampleR = dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*(1.0-dBi); + dBdly++; inputSampleR += dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*dBi; + dBaXR++; if (dBaXR < 0 || dBaXR >= dscBuf) dBaXR = 0; + inputSampleR /= moreDiscontinuity; + //end Discontinuity section, begin TapeHack section + inputSampleR = fmax(fmin(inputSampleR*moreTapeHack,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.9239; + //end TapeHack section + //Discontapeity + double trebleL = inputSampleL; double outSample = (trebleL * highA[biq_a0]) + highA[biq_sL1]; highA[biq_sL1] = (trebleL * highA[biq_a1]) - (outSample * highA[biq_b1]) + highA[biq_sL2]; @@ -423,72 +526,13 @@ void ConsoleX2Pre::processReplacing(float **inputs, float **outputs, VstInt32 sa } //blank out lowpass if just switched off } //Cabs2 - - //begin Discontinuity section - inputSampleL *= moreDiscontinuity; - dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5); - dBaPosL = fmin(dBaPosL,1.0); - int dBdly = floor(dBaPosL*dscBuf); - double dBi = (dBaPosL*dscBuf)-dBdly; - inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi; - dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0; - inputSampleL /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleL = fmax(fmin(inputSampleL*moreTapeHack,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.9239; - //end TapeHack section - - //begin Discontinuity section - inputSampleR *= moreDiscontinuity; - dBaR[dBaXR] = inputSampleR; dBaPosR *= 0.5; dBaPosR += fabs((inputSampleR*((inputSampleR*0.25)-0.5))*0.5); - dBaPosR = fmin(dBaPosR,1.0); - dBdly = floor(dBaPosR*dscBuf); - dBi = (dBaPosR*dscBuf)-dBdly; - inputSampleR = dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleR += dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*dBi; - dBaXR++; if (dBaXR < 0 || dBaXR >= dscBuf) dBaXR = 0; - inputSampleR /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleR = fmax(fmin(inputSampleR*moreTapeHack,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.9239; - //end TapeHack section - //Discontapeity - - 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); - inputSampleL = inputSampleL * gainL * gain; - inputSampleR = inputSampleR * gainR * gain; + inputSampleL = inputSampleL * gain; + inputSampleR = inputSampleR * gain; //applies pan section, and smoothed fader gain //begin 32 bit stereo floating point dither @@ -521,20 +565,33 @@ void ConsoleX2Pre::processDoubleReplacing(double **inputs, double **outputs, Vst 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 = (B*2.0)+1.0; + switch ((int)(A*4.0)){ + 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(B*0.42,3.0)*overallscale,0.00001); + //Discontapeity - double trebleGain = (A-0.5)*2.0; + double trebleGain = (C-0.5)*2.0; trebleGain = 1.0+(trebleGain*fabs(trebleGain)*fabs(trebleGain)); - double highmidGain = (B-0.5)*2.0; + double highmidGain = (D-0.5)*2.0; highmidGain = 1.0+(highmidGain*fabs(highmidGain)*fabs(highmidGain)); - double lowmidGain = (C-0.5)*2.0; + double lowmidGain = (E-0.5)*2.0; lowmidGain = 1.0+(lowmidGain*fabs(lowmidGain)*fabs(lowmidGain)); - double bassGain = (D-0.5)*2.0; + double bassGain = (F-0.5)*2.0; bassGain = 1.0+(bassGain*fabs(bassGain)*fabs(bassGain)); - double trebleRef = E-0.5; - double highmidRef = F-0.5; - double lowmidRef = G-0.5; - double bassRef = H-0.5; + double trebleRef = G-0.5; + double highmidRef = H-0.5; + double lowmidRef = I-0.5; + double bassRef = J-0.5; double highF = 0.75 + ((trebleRef+trebleRef+trebleRef+highmidRef)*0.125); double bassF = 0.25 + ((lowmidRef+bassRef+bassRef+bassRef)*0.125); double midF = (highF*0.5) + (bassF*0.5) + ((highmidRef+lowmidRef)*0.125); @@ -547,8 +604,8 @@ void ConsoleX2Pre::processDoubleReplacing(double **inputs, double **outputs, Vst highC[biq_freq] = highB[biq_freq] = highA[biq_freq] = fmax(fmin(highA[biq_freq],0.4999),0.00025); double highFreq = pow(highF,3)*20000.0; double omega = 2.0*M_PI*(highFreq/getSampleRate()); - double K = 2.0-cos(omega); - double highCoef = -sqrt((K*K)-1.0)+K; + double biqK = 2.0-cos(omega); + double highCoef = -sqrt((biqK*biqK)-1.0)+biqK; highA[biq_reso] = 2.24697960 * highQ; highB[biq_reso] = 0.80193774 * highQ; highC[biq_reso] = 0.55495813 * highQ; @@ -557,8 +614,8 @@ void ConsoleX2Pre::processDoubleReplacing(double **inputs, double **outputs, Vst midC[biq_freq] = midB[biq_freq] = midA[biq_freq] = fmax(fmin(midA[biq_freq],0.4999),0.00025); double midFreq = pow(midF,3)*20000.0; omega = 2.0*M_PI*(midFreq/getSampleRate()); - K = 2.0-cos(omega); - double midCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double midCoef = -sqrt((biqK*biqK)-1.0)+biqK; midA[biq_reso] = 2.24697960 * midQ; midB[biq_reso] = 0.80193774 * midQ; midC[biq_reso] = 0.55495813 * midQ; @@ -567,96 +624,91 @@ void ConsoleX2Pre::processDoubleReplacing(double **inputs, double **outputs, Vst lowC[biq_freq] = lowB[biq_freq] = lowA[biq_freq] = fmax(fmin(lowA[biq_freq],0.4999),0.00025); double lowFreq = pow(bassF,3)*20000.0; omega = 2.0*M_PI*(lowFreq/getSampleRate()); - K = 2.0-cos(omega); - double lowCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double lowCoef = -sqrt((biqK*biqK)-1.0)+biqK; lowA[biq_reso] = 2.24697960 * lowQ; lowB[biq_reso] = 0.80193774 * lowQ; lowC[biq_reso] = 0.55495813 * lowQ; - K = tan(M_PI * highA[biq_freq]); - double norm = 1.0 / (1.0 + K / highA[biq_reso] + K * K); - highA[biq_a0] = K * K * norm; + biqK = tan(M_PI * highA[biq_freq]); + double norm = 1.0 / (1.0 + biqK / highA[biq_reso] + biqK * biqK); + highA[biq_a0] = biqK * biqK * norm; highA[biq_a1] = 2.0 * highA[biq_a0]; highA[biq_a2] = highA[biq_a0]; - highA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highA[biq_b2] = (1.0 - K / highA[biq_reso] + K * K) * norm; - K = tan(M_PI * highB[biq_freq]); - norm = 1.0 / (1.0 + K / highB[biq_reso] + K * K); - highB[biq_a0] = K * K * norm; + highA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highA[biq_b2] = (1.0 - biqK / highA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highB[biq_freq]); + norm = 1.0 / (1.0 + biqK / highB[biq_reso] + biqK * biqK); + highB[biq_a0] = biqK * biqK * norm; highB[biq_a1] = 2.0 * highB[biq_a0]; highB[biq_a2] = highB[biq_a0]; - highB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highB[biq_b2] = (1.0 - K / highB[biq_reso] + K * K) * norm; - K = tan(M_PI * highC[biq_freq]); - norm = 1.0 / (1.0 + K / highC[biq_reso] + K * K); - highC[biq_a0] = K * K * norm; + highB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highB[biq_b2] = (1.0 - biqK / highB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highC[biq_freq]); + norm = 1.0 / (1.0 + biqK / highC[biq_reso] + biqK * biqK); + highC[biq_a0] = biqK * biqK * norm; highC[biq_a1] = 2.0 * highC[biq_a0]; highC[biq_a2] = highC[biq_a0]; - highC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highC[biq_b2] = (1.0 - K / highC[biq_reso] + K * K) * norm; + highC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highC[biq_b2] = (1.0 - biqK / highC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * midA[biq_freq]); - norm = 1.0 / (1.0 + K / midA[biq_reso] + K * K); - midA[biq_a0] = K * K * norm; + biqK = tan(M_PI * midA[biq_freq]); + norm = 1.0 / (1.0 + biqK / midA[biq_reso] + biqK * biqK); + midA[biq_a0] = biqK * biqK * norm; midA[biq_a1] = 2.0 * midA[biq_a0]; midA[biq_a2] = midA[biq_a0]; - midA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midA[biq_b2] = (1.0 - K / midA[biq_reso] + K * K) * norm; - K = tan(M_PI * midB[biq_freq]); - norm = 1.0 / (1.0 + K / midB[biq_reso] + K * K); - midB[biq_a0] = K * K * norm; + midA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midA[biq_b2] = (1.0 - biqK / midA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midB[biq_freq]); + norm = 1.0 / (1.0 + biqK / midB[biq_reso] + biqK * biqK); + midB[biq_a0] = biqK * biqK * norm; midB[biq_a1] = 2.0 * midB[biq_a0]; midB[biq_a2] = midB[biq_a0]; - midB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midB[biq_b2] = (1.0 - K / midB[biq_reso] + K * K) * norm; - K = tan(M_PI * midC[biq_freq]); - norm = 1.0 / (1.0 + K / midC[biq_reso] + K * K); - midC[biq_a0] = K * K * norm; + midB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midB[biq_b2] = (1.0 - biqK / midB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midC[biq_freq]); + norm = 1.0 / (1.0 + biqK / midC[biq_reso] + biqK * biqK); + midC[biq_a0] = biqK * biqK * norm; midC[biq_a1] = 2.0 * midC[biq_a0]; midC[biq_a2] = midC[biq_a0]; - midC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midC[biq_b2] = (1.0 - K / midC[biq_reso] + K * K) * norm; + midC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midC[biq_b2] = (1.0 - biqK / midC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * lowA[biq_freq]); - norm = 1.0 / (1.0 + K / lowA[biq_reso] + K * K); - lowA[biq_a0] = K * K * norm; + biqK = tan(M_PI * lowA[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowA[biq_reso] + biqK * biqK); + lowA[biq_a0] = biqK * biqK * norm; lowA[biq_a1] = 2.0 * lowA[biq_a0]; lowA[biq_a2] = lowA[biq_a0]; - lowA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowA[biq_b2] = (1.0 - K / lowA[biq_reso] + K * K) * norm; - K = tan(M_PI * lowB[biq_freq]); - norm = 1.0 / (1.0 + K / lowB[biq_reso] + K * K); - lowB[biq_a0] = K * K * norm; + lowA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowA[biq_b2] = (1.0 - biqK / lowA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowB[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowB[biq_reso] + biqK * biqK); + lowB[biq_a0] = biqK * biqK * norm; lowB[biq_a1] = 2.0 * lowB[biq_a0]; lowB[biq_a2] = lowB[biq_a0]; - lowB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowB[biq_b2] = (1.0 - K / lowB[biq_reso] + K * K) * norm; - K = tan(M_PI * lowC[biq_freq]); - norm = 1.0 / (1.0 + K / lowC[biq_reso] + K * K); - lowC[biq_a0] = K * K * norm; + lowB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowB[biq_b2] = (1.0 - biqK / lowB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowC[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowC[biq_reso] + biqK * biqK); + lowC[biq_a0] = biqK * biqK * norm; lowC[biq_a1] = 2.0 * lowC[biq_a0]; lowC[biq_a2] = lowC[biq_a0]; - lowC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowC[biq_b2] = (1.0 - K / lowC[biq_reso] + K * K) * norm; + lowC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowC[biq_b2] = (1.0 - biqK / lowC[biq_reso] + biqK * biqK) * norm; //SmoothEQ2 - double bezCThresh = pow(1.0-I, 6.0) * 8.0; - double bezRez = pow(1.0-J, 8.0) / overallscale; - double sloRez = pow(1.0-K,12.0) / overallscale; + double bezCThresh = pow(1.0-K, 6.0) * 8.0; + double bezRez = pow(1.0-L, 8.0) / overallscale; + double sloRez = pow(1.0-M,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(L,4.0),sqrt(bezCThresh+1.0)); + double gate = pow(pow(N,4.0),sqrt(bezCThresh+1.0)); //Dynamics2 - lFreqA = lFreqB; lFreqB = pow(fmax(M,0.002),overallscale); //the lowpass - hFreqA = hFreqB; hFreqB = pow(N,overallscale+2.0); //the highpass + lFreqA = lFreqB; lFreqB = pow(fmax(O,0.002),overallscale); //the lowpass + hFreqA = hFreqB; hFreqB = pow(P,overallscale+2.0); //the highpass //Cabs2 - double moreDiscontinuity = fmax(pow(O*0.42,3.0)*overallscale,0.00001); - double moreTapeHack = (O*1.4152481)+1.2; - //Discontapeity - - panA = panB; panB = P*1.57079633; inTrimA = inTrimB; inTrimB = Q*2.0; //Console @@ -666,6 +718,101 @@ void ConsoleX2Pre::processDoubleReplacing(double **inputs, double **outputs, Vst double inputSampleR = *in2; if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17; if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17; + + double darkSampleL = inputSampleL; + double darkSampleR = inputSampleR; + if (avgPos > 31) avgPos = 0; + if (spacing > 31) { + avg32L[avgPos] = darkSampleL; avg32R[avgPos] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 32; x++) {darkSampleL += avg32L[x]; darkSampleR += avg32R[x];} + darkSampleL /= 32.0; darkSampleR /= 32.0; + } if (spacing > 15) { + avg16L[avgPos%16] = darkSampleL; avg16R[avgPos%16] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 16; x++) {darkSampleL += avg16L[x]; darkSampleR += avg16R[x];} + darkSampleL /= 16.0; darkSampleR /= 16.0; + } if (spacing > 7) { + avg8L[avgPos%8] = darkSampleL; avg8R[avgPos%8] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 8; x++) {darkSampleL += avg8L[x]; darkSampleR += avg8R[x];} + darkSampleL /= 8.0; darkSampleR /= 8.0; + } if (spacing > 3) { + avg4L[avgPos%4] = darkSampleL; avg4R[avgPos%4] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 4; x++) {darkSampleL += avg4L[x]; darkSampleR += avg4R[x];} + darkSampleL /= 4.0; darkSampleR /= 4.0; + } if (spacing > 1) { + avg2L[avgPos%2] = darkSampleL; avg2R[avgPos%2] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 2; x++) {darkSampleL += avg2L[x]; darkSampleR += avg2R[x];} + darkSampleL /= 2.0; darkSampleR /= 2.0; + } avgPos++; + lastSlewL += fabs(lastSlewpleL-inputSampleL); lastSlewpleL = inputSampleL; + double avgSlewL = fmin(lastSlewL,1.0); + lastSlewL = fmax(lastSlewL*0.78,2.39996322972865332223); + lastSlewR += fabs(lastSlewpleR-inputSampleR); lastSlewpleR = inputSampleR; + double avgSlewR = fmin(lastSlewR,1.0); + lastSlewR = fmax(lastSlewR*0.78,2.39996322972865332223); //look up Golden Angle, it's cool + inputSampleL = (inputSampleL*(1.0-avgSlewL)) + (darkSampleL*avgSlewL); + inputSampleR = (inputSampleR*(1.0-avgSlewR)) + (darkSampleR*avgSlewR); + + //begin Discontinuity section + inputSampleL *= moreTapeHack; + inputSampleL *= moreDiscontinuity; + dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5); + dBaPosL = fmin(dBaPosL,1.0); + int dBdly = floor(dBaPosL*dscBuf); + double dBi = (dBaPosL*dscBuf)-dBdly; + inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi); + dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi; + dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0; + inputSampleL /= moreDiscontinuity; + //end Discontinuity section, begin TapeHack section + inputSampleL = fmax(fmin(inputSampleL*moreTapeHack,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.9239; + //end TapeHack section + + //begin Discontinuity section + inputSampleR *= moreTapeHack; + inputSampleR *= moreDiscontinuity; + dBaR[dBaXR] = inputSampleR; dBaPosR *= 0.5; dBaPosR += fabs((inputSampleR*((inputSampleR*0.25)-0.5))*0.5); + dBaPosR = fmin(dBaPosR,1.0); + dBdly = floor(dBaPosR*dscBuf); + dBi = (dBaPosR*dscBuf)-dBdly; + inputSampleR = dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*(1.0-dBi); + dBdly++; inputSampleR += dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*dBi; + dBaXR++; if (dBaXR < 0 || dBaXR >= dscBuf) dBaXR = 0; + inputSampleR /= moreDiscontinuity; + //end Discontinuity section, begin TapeHack section + inputSampleR = fmax(fmin(inputSampleR*moreTapeHack,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.9239; + //end TapeHack section + //Discontapeity double trebleL = inputSampleL; double outSample = (trebleL * highA[biq_a0]) + highA[biq_sL1]; @@ -927,73 +1074,14 @@ void ConsoleX2Pre::processDoubleReplacing(double **inputs, double **outputs, Vst } //Cabs2 - //begin Discontinuity section - inputSampleL *= moreDiscontinuity; - dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5); - dBaPosL = fmin(dBaPosL,1.0); - int dBdly = floor(dBaPosL*dscBuf); - double dBi = (dBaPosL*dscBuf)-dBdly; - inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi; - dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0; - inputSampleL /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleL = fmax(fmin(inputSampleL*moreTapeHack,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.9239; - //end TapeHack section - - //begin Discontinuity section - inputSampleR *= moreDiscontinuity; - dBaR[dBaXR] = inputSampleR; dBaPosR *= 0.5; dBaPosR += fabs((inputSampleR*((inputSampleR*0.25)-0.5))*0.5); - dBaPosR = fmin(dBaPosR,1.0); - dBdly = floor(dBaPosR*dscBuf); - dBi = (dBaPosR*dscBuf)-dBdly; - inputSampleR = dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleR += dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*dBi; - dBaXR++; if (dBaXR < 0 || dBaXR >= dscBuf) dBaXR = 0; - inputSampleR /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleR = fmax(fmin(inputSampleR*moreTapeHack,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.9239; - //end TapeHack section - //Discontapeity - - 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); - inputSampleL = inputSampleL * gainL * gain; - inputSampleR = inputSampleR * gainR * gain; + inputSampleL = inputSampleL * gain; + inputSampleR = inputSampleR * gain; //applies pan section, and smoothed fader gain - + //begin 64 bit stereo floating point dither //int expon; frexp((double)inputSampleL, &expon); fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5; diff --git a/plugins/MacSignedVST/X2Buss/X2Buss.xcodeproj/christopherjohnson.pbxuser b/plugins/MacSignedVST/X2Buss/X2Buss.xcodeproj/christopherjohnson.pbxuser new file mode 100755 index 000000000..00c926107 --- /dev/null +++ b/plugins/MacSignedVST/X2Buss/X2Buss.xcodeproj/christopherjohnson.pbxuser @@ -0,0 +1,108 @@ +// !$*UTF8*$! +{ + 089C1669FE841209C02AAC07 /* Project object */ = { + activeBuildConfigurationName = Release; + activeTarget = 8D01CCC60486CAD60068D4B7 /* X2Buss */; + codeSenseManager = 8B02375F1D42B1C400E1E8C8 /* 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, + 324, + 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 = 783620271; + PBXWorkspaceStateSaveDate = 783620271; + }; + sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */; + userBuildSettings = { + }; + }; + 2407DEB6089929BA00EB68BF /* X2Buss.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {848, 3528}}"; + sepNavSelRange = "{7889, 0}"; + sepNavVisRange = "{6703, 1806}"; + sepNavWindowFrame = "{{677, 47}, {895, 831}}"; + }; + }; + 245463B80991757100464AD3 /* X2Buss.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1110, 2790}}"; + sepNavSelRange = "{2615, 0}"; + sepNavVisRange = "{3237, 642}"; + sepNavWindowFrame = "{{619, 47}, {895, 831}}"; + }; + }; + 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {859, 20267}}"; + sepNavSelRange = "{10616, 0}"; + sepNavVisRange = "{9653, 2414}"; + sepNavWindowFrame = "{{15, 42}, {895, 831}}"; + }; + }; + 24D8286F09A914000093AEF8 /* X2BussProc.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1029, 22914}}"; + sepNavSelRange = "{37584, 0}"; + sepNavVisRange = "{40433, 1315}"; + sepNavWindowFrame = "{{498, 47}, {895, 831}}"; + }; + }; + 8B02375E1D42B1C400E1E8C8 /* Source Control */ = { + isa = PBXSourceControlManager; + fallbackIsa = XCSourceControlManager; + isSCMEnabled = 0; + scmConfiguration = { + repositoryNamesForRoots = { + "" = ""; + }; + }; + }; + 8B02375F1D42B1C400E1E8C8 /* Code sense */ = { + isa = PBXCodeSenseManager; + indexTemplatePath = ""; + }; + 8D01CCC60486CAD60068D4B7 /* X2Buss */ = { + activeExec = 0; + }; +} diff --git a/plugins/MacSignedVST/X2Buss/X2Buss.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacSignedVST/X2Buss/X2Buss.xcodeproj/christopherjohnson.perspectivev3 new file mode 100755 index 000000000..f31d604c7 --- /dev/null +++ b/plugins/MacSignedVST/X2Buss/X2Buss.xcodeproj/christopherjohnson.perspectivev3 @@ -0,0 +1,1502 @@ + + + + + ActivePerspectiveName + Project + AllowedModules + + + BundleLoadPath + + MaxInstances + n + Module + PBXSmartGroupTreeModule + Name + Groups and Files Outline View + + + BundleLoadPath + + MaxInstances + n + Module + PBXNavigatorGroup + Name + Editor + + + BundleLoadPath + + MaxInstances + n + Module + XCTaskListModule + Name + Task List + + + BundleLoadPath + + MaxInstances + n + Module + XCDetailModule + Name + File and Smart Group Detail Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXBuildResultsModule + Name + Detailed Build Results Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXProjectFindModule + Name + Project Batch Find Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCProjectFormatConflictsModule + Name + Project Format Conflicts List + + + BundleLoadPath + + MaxInstances + n + Module + PBXBookmarksModule + Name + Bookmarks Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXClassBrowserModule + Name + Class Browser + + + BundleLoadPath + + MaxInstances + n + Module + PBXCVSModule + Name + Source Code Control Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXDebugBreakpointsModule + Name + Debug Breakpoints Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCDockableInspector + Name + Inspector + + + BundleLoadPath + + MaxInstances + n + Module + PBXOpenQuicklyModule + Name + Open Quickly Tool + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugSessionModule + Name + Debugger + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugCLIModule + Name + Debug Console + + + BundleLoadPath + + MaxInstances + n + Module + XCSnapshotModule + Name + Snapshots Tool + + + BundlePath + /Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources + Description + AIODescriptionKey + DockingSystemVisible + + Extension + perspectivev3 + FavBarConfig + + PBXProjectModuleGUID + 8B02375D1D42B1C400E1E8C8 + XCBarModuleItemNames + + XCBarModuleItems + + + FirstTimeWindowDisplayed + + Identifier + com.apple.perspectives.project.defaultV3 + MajorVersion + 34 + MinorVersion + 0 + Name + All-In-One + Notifications + + + XCObserverAutoDisconnectKey + + XCObserverDefintionKey + + PBXStatusErrorsKey + 0 + + XCObserverFactoryKey + XCPerspectivesSpecificationIdentifier + XCObserverGUIDKey + XCObserverProjectIdentifier + XCObserverNotificationKey + PBXStatusBuildStateMessageNotification + XCObserverTargetKey + XCMainBuildResultsModuleGUID + XCObserverTriggerKey + awakenModuleWithObserver: + XCObserverValidationKey + + PBXStatusErrorsKey + 2 + + + + OpenEditors + + PerspectiveWidths + + 810 + 810 + + Perspectives + + + ChosenToolbarItems + + XCToolbarPerspectiveControl + NSToolbarSeparatorItem + active-combo-popup + action + NSToolbarFlexibleSpaceItem + debugger-enable-breakpoints + build-and-go + com.apple.ide.PBXToolbarStopButton + get-info + NSToolbarFlexibleSpaceItem + com.apple.pbx.toolbar.searchfield + + ControllerClassBaseName + + IconName + WindowOfProject + Identifier + perspective.project + IsVertical + + Layout + + + BecomeActive + + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 1C37FABC05509CD000000102 + 1C37FABC05539CD112110102 + E2644B35053B69B200211256 + 1C37FABC04509CD000100104 + 1CC0EA4004350EF90044410B + 1CC0EA4004350EF90041110B + 1C77FABC04509CD000000102 + + PBXProjectModuleGUID + 1CA23ED40692098700951B8B + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + yes + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 185 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 089C166AFE841209C02AAC07 + 08FB77ADFE841716C02AAC07 + 1C37FBAC04509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 6 + 4 + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {185, 428}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + + + GeometryConfiguration + + Frame + {{0, 0}, {202, 446}} + GroupTreeTableConfiguration + + MainColumn + 185 + + RubberWindowFrame + 620 311 810 487 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 202pt + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 8B0237581D42B1C400E1E8C8 + PBXProjectModuleLabel + Gain.h + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 8B0237591D42B1C400E1E8C8 + PBXProjectModuleLabel + Gain.h + + SplitCount + 1 + + StatusBarVisibility + + XCSharingToken + com.apple.Xcode.CommonNavigatorGroupSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {603, 0}} + RubberWindowFrame + 620 311 810 487 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 0pt + + + Proportion + 441pt + Tabs + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA23EDF0692099D00951B8B + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{10, 27}, {603, 414}} + RubberWindowFrame + 620 311 810 487 0 0 1440 878 + + Module + XCDetailModule + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA23EE00692099D00951B8B + PBXProjectModuleLabel + Project Find + + GeometryConfiguration + + Frame + {{10, 31}, {603, 297}} + + Module + PBXProjectFindModule + + + ContentConfiguration + + PBXCVSModuleFilterTypeKey + 1032 + PBXProjectModuleGUID + 1CA23EE10692099D00951B8B + PBXProjectModuleLabel + SCM Results + + GeometryConfiguration + + Frame + {{10, 31}, {603, 297}} + + Module + PBXCVSModule + + + ContentConfiguration + + PBXProjectModuleGUID + XCMainBuildResultsModuleGUID + PBXProjectModuleLabel + Build Results + XCBuildResultsTrigger_Collapse + 1023 + XCBuildResultsTrigger_Open + 1012 + + GeometryConfiguration + + Frame + {{10, 27}, {603, 282}} + + Module + PBXBuildResultsModule + + + + + Proportion + 603pt + + + Name + Project + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + XCModuleDock + PBXNavigatorGroup + XCDockableTabModule + XCDetailModule + PBXProjectFindModule + PBXCVSModule + PBXBuildResultsModule + + TableOfContents + + 8B5C9E842EB51CE1008B9860 + 1CA23ED40692098700951B8B + 8B5C9E852EB51CE1008B9860 + 8B0237581D42B1C400E1E8C8 + 8B5C9E862EB51CE1008B9860 + 1CA23EDF0692099D00951B8B + 1CA23EE00692099D00951B8B + 1CA23EE10692099D00951B8B + XCMainBuildResultsModuleGUID + + ToolbarConfigUserDefaultsMinorVersion + 2 + ToolbarConfiguration + xcode.toolbar.config.defaultV3 + + + ChosenToolbarItems + + XCToolbarPerspectiveControl + NSToolbarSeparatorItem + active-combo-popup + NSToolbarFlexibleSpaceItem + debugger-enable-breakpoints + build-and-go + com.apple.ide.PBXToolbarStopButton + debugger-restart-executable + debugger-pause + debugger-step-over + debugger-step-into + debugger-step-out + NSToolbarFlexibleSpaceItem + servicesModulebreakpoints + debugger-show-console-window + + ControllerClassBaseName + PBXDebugSessionModule + IconName + DebugTabIcon + Identifier + perspective.debug + IsVertical + 1 + Layout + + + ContentConfiguration + + PBXProjectModuleGUID + 1CCC7628064C1048000F2A68 + PBXProjectModuleLabel + Debugger Console + + GeometryConfiguration + + Frame + {{0, 0}, {810, 0}} + + Module + PBXDebugCLIModule + Proportion + 0% + + + ContentConfiguration + + Debugger + + HorizontalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {395, 213}} + {{395, 0}, {415, 213}} + + + VerticalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {810, 213}} + {{0, 213}, {810, 225}} + + + + LauncherConfigVersion + 8 + PBXProjectModuleGUID + 1CCC7629064C1048000F2A68 + PBXProjectModuleLabel + Debug + + GeometryConfiguration + + DebugConsoleDrawerSize + {100, 120} + DebugConsoleVisible + None + DebugConsoleWindowFrame + {{200, 200}, {500, 300}} + DebugSTDIOWindowFrame + {{200, 200}, {500, 300}} + Frame + {{0, 7}, {810, 438}} + + Module + PBXDebugSessionModule + Proportion + 443pt + + + Name + Debug + ServiceClasses + + XCModuleDock + XCModuleDock + PBXDebugCLIModule + PBXDebugSessionModule + XCConsole + + TableOfContents + + 1CC8E6A5069209BD00BB180A + 1CC8E6A6069209BD00BB180A + 1CCC7628064C1048000F2A68 + 1CCC7629064C1048000F2A68 + 1CC8E6A7069209BD00BB180A + + ToolbarConfiguration + xcode.toolbar.config.debugV3 + + + PerspectivesBarVisible + + ShelfIsVisible + + SourceDescription + file at '/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecification.xcperspec' + StatusbarIsVisible + + TimeStamp + 783621345.05743098 + ToolbarConfigUserDefaultsMinorVersion + 2 + ToolbarDisplayMode + 1 + ToolbarIsVisible + + ToolbarSizeMode + 2 + Type + Perspectives + UpdateMessage + + WindowJustification + 5 + WindowOrderList + + /Users/christopherjohnson/Desktop/X2Buss/X2Buss.xcodeproj + + WindowString + 620 311 810 487 0 0 1440 878 + WindowToolsV3 + + + Identifier + windowTool.debugger + Layout + + + Dock + + + ContentConfiguration + + Debugger + + HorizontalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {317, 164}} + {{317, 0}, {377, 164}} + + + VerticalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {694, 164}} + {{0, 164}, {694, 216}} + + + + LauncherConfigVersion + 8 + PBXProjectModuleGUID + 1C162984064C10D400B95A72 + PBXProjectModuleLabel + Debug - GLUTExamples (Underwater) + + GeometryConfiguration + + DebugConsoleDrawerSize + {100, 120} + DebugConsoleVisible + None + DebugConsoleWindowFrame + {{200, 200}, {500, 300}} + DebugSTDIOWindowFrame + {{200, 200}, {500, 300}} + Frame + {{0, 0}, {694, 380}} + RubberWindowFrame + 321 238 694 422 0 0 1440 878 + + Module + PBXDebugSessionModule + Proportion + 100% + + + Proportion + 100% + + + Name + Debugger + ServiceClasses + + PBXDebugSessionModule + + StatusbarIsVisible + 1 + TableOfContents + + 1CD10A99069EF8BA00B06720 + 1C0AD2AB069F1E9B00FABCE6 + 1C162984064C10D400B95A72 + 1C0AD2AC069F1E9B00FABCE6 + + ToolbarConfiguration + xcode.toolbar.config.debugV3 + WindowString + 321 238 694 422 0 0 1440 878 + WindowToolGUID + 1CD10A99069EF8BA00B06720 + WindowToolIsVisible + 0 + + + Identifier + windowTool.build + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528F0623707200166675 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CD052900623707200166675 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {500, 215}} + RubberWindowFrame + 192 257 500 500 0 0 1280 1002 + + Module + PBXNavigatorGroup + Proportion + 218pt + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + XCMainBuildResultsModuleGUID + PBXProjectModuleLabel + Build Results + + GeometryConfiguration + + Frame + {{0, 222}, {500, 236}} + RubberWindowFrame + 192 257 500 500 0 0 1280 1002 + + Module + PBXBuildResultsModule + Proportion + 236pt + + + Proportion + 458pt + + + Name + Build Results + ServiceClasses + + PBXBuildResultsModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C78EAA5065D492600B07095 + 1C78EAA6065D492600B07095 + 1CD0528F0623707200166675 + XCMainBuildResultsModuleGUID + + ToolbarConfiguration + xcode.toolbar.config.buildV3 + WindowString + 192 257 500 500 0 0 1280 1002 + + + Identifier + windowTool.find + Layout + + + Dock + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CDD528C0622207200134675 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CD0528D0623707200166675 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {781, 167}} + RubberWindowFrame + 62 385 781 470 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 781pt + + + Proportion + 50% + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528E0623707200166675 + PBXProjectModuleLabel + Project Find + + GeometryConfiguration + + Frame + {{8, 0}, {773, 254}} + RubberWindowFrame + 62 385 781 470 0 0 1440 878 + + Module + PBXProjectFindModule + Proportion + 50% + + + Proportion + 428pt + + + Name + Project Find + ServiceClasses + + PBXProjectFindModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C530D57069F1CE1000CFCEE + 1C530D58069F1CE1000CFCEE + 1C530D59069F1CE1000CFCEE + 1CDD528C0622207200134675 + 1C530D5A069F1CE1000CFCEE + 1CE0B1FE06471DED0097A5F4 + 1CD0528E0623707200166675 + + WindowString + 62 385 781 470 0 0 1440 878 + WindowToolGUID + 1C530D57069F1CE1000CFCEE + WindowToolIsVisible + 0 + + + Identifier + windowTool.snapshots + Layout + + + Dock + + + Module + XCSnapshotModule + Proportion + 100% + + + Proportion + 100% + + + Name + Snapshots + ServiceClasses + + XCSnapshotModule + + StatusbarIsVisible + Yes + ToolbarConfiguration + xcode.toolbar.config.snapshots + WindowString + 315 824 300 550 0 0 1440 878 + WindowToolIsVisible + Yes + + + Identifier + windowTool.debuggerConsole + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAAC065D492600B07095 + PBXProjectModuleLabel + Debugger Console + + GeometryConfiguration + + Frame + {{0, 0}, {700, 358}} + RubberWindowFrame + 149 87 700 400 0 0 1440 878 + + Module + PBXDebugCLIModule + Proportion + 358pt + + + Proportion + 358pt + + + Name + Debugger Console + ServiceClasses + + PBXDebugCLIModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C530D5B069F1CE1000CFCEE + 1C530D5C069F1CE1000CFCEE + 1C78EAAC065D492600B07095 + + ToolbarConfiguration + xcode.toolbar.config.consoleV3 + WindowString + 149 87 440 400 0 0 1440 878 + WindowToolGUID + 1C530D5B069F1CE1000CFCEE + WindowToolIsVisible + 0 + + + Identifier + windowTool.scm + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAB2065D492600B07095 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1C78EAB3065D492600B07095 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {452, 0}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + + Module + PBXNavigatorGroup + Proportion + 0pt + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD052920623707200166675 + PBXProjectModuleLabel + SCM + + GeometryConfiguration + + ConsoleFrame + {{0, 259}, {452, 0}} + Frame + {{0, 7}, {452, 259}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + TableConfiguration + + Status + 30 + FileName + 199 + Path + 197.09500122070312 + + TableFrame + {{0, 0}, {452, 250}} + + Module + PBXCVSModule + Proportion + 262pt + + + Proportion + 266pt + + + Name + SCM + ServiceClasses + + PBXCVSModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C78EAB4065D492600B07095 + 1C78EAB5065D492600B07095 + 1C78EAB2065D492600B07095 + 1CD052920623707200166675 + + ToolbarConfiguration + xcode.toolbar.config.scmV3 + WindowString + 743 379 452 308 0 0 1280 1002 + + + Identifier + windowTool.breakpoints + IsVertical + 0 + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C77FABC04509CD000000102 + + PBXProjectModuleGUID + 1CE0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + no + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 168 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 1C77FABC04509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {168, 350}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + 0 + + GeometryConfiguration + + Frame + {{0, 0}, {185, 368}} + GroupTreeTableConfiguration + + MainColumn + 168 + + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 185pt + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA1AED706398EBD00589147 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{190, 0}, {554, 368}} + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + XCDetailModule + Proportion + 554pt + + + Proportion + 368pt + + + MajorVersion + 3 + MinorVersion + 0 + Name + Breakpoints + ServiceClasses + + PBXSmartGroupTreeModule + XCDetailModule + + StatusbarIsVisible + 1 + TableOfContents + + 1CDDB66807F98D9800BB5817 + 1CDDB66907F98D9800BB5817 + 1CE0B1FE06471DED0097A5F4 + 1CA1AED706398EBD00589147 + + ToolbarConfiguration + xcode.toolbar.config.breakpointsV3 + WindowString + 315 424 744 409 0 0 1440 878 + WindowToolGUID + 1CDDB66807F98D9800BB5817 + WindowToolIsVisible + 1 + + + Identifier + windowTool.debugAnimator + Layout + + + Dock + + + Module + PBXNavigatorGroup + Proportion + 100% + + + Proportion + 100% + + + Name + Debug Visualizer + ServiceClasses + + PBXNavigatorGroup + + StatusbarIsVisible + 1 + ToolbarConfiguration + xcode.toolbar.config.debugAnimatorV3 + WindowString + 100 100 700 500 0 0 1280 1002 + + + Identifier + windowTool.bookmarks + Layout + + + Dock + + + Module + PBXBookmarksModule + Proportion + 166pt + + + Proportion + 166pt + + + Name + Bookmarks + ServiceClasses + + PBXBookmarksModule + + StatusbarIsVisible + 0 + WindowString + 538 42 401 187 0 0 1280 1002 + + + FirstTimeWindowDisplayed + + Identifier + windowTool.projectFormatConflicts + IsVertical + + Layout + + + Dock + + + BecomeActive + + ContentConfiguration + + PBXProjectModuleGUID + 8BCAE52E1D49920D0047D4BD + + GeometryConfiguration + + Frame + {{0, 0}, {472, 302}} + RubberWindowFrame + 569 378 472 322 0 0 1440 878 + + Module + XCProjectFormatConflictsModule + Proportion + 302pt + + + Proportion + 302pt + + + Name + Project Format Conflicts + ServiceClasses + + XCProjectFormatConflictsModule + + StatusbarIsVisible + + TableOfContents + + 8BCAE52F1D49920D0047D4BD + 8BCAE5301D49920D0047D4BD + 8BCAE52E1D49920D0047D4BD + + WindowContentMinSize + 450 300 + WindowString + 569 378 472 322 0 0 1440 878 + WindowToolGUID + 8BCAE52F1D49920D0047D4BD + WindowToolIsVisible + + + + Identifier + windowTool.classBrowser + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + OptionsSetName + Hierarchy, all classes + PBXProjectModuleGUID + 1CA6456E063B45B4001379D8 + PBXProjectModuleLabel + Class Browser - NSObject + + GeometryConfiguration + + ClassesFrame + {{0, 0}, {369, 96}} + ClassesTreeTableConfiguration + + PBXClassNameColumnIdentifier + 208 + PBXClassBookColumnIdentifier + 22 + + Frame + {{0, 0}, {616, 353}} + MembersFrame + {{0, 105}, {369, 395}} + MembersTreeTableConfiguration + + PBXMemberTypeIconColumnIdentifier + 22 + PBXMemberNameColumnIdentifier + 216 + PBXMemberTypeColumnIdentifier + 94 + PBXMemberBookColumnIdentifier + 22 + + PBXModuleWindowStatusBarHidden2 + 1 + RubberWindowFrame + 597 125 616 374 0 0 1280 1002 + + Module + PBXClassBrowserModule + Proportion + 354pt + + + Proportion + 354pt + + + Name + Class Browser + ServiceClasses + + PBXClassBrowserModule + + StatusbarIsVisible + 0 + TableOfContents + + 1C78EABA065D492600B07095 + 1C78EABB065D492600B07095 + 1CA6456E063B45B4001379D8 + + ToolbarConfiguration + xcode.toolbar.config.classbrowser + WindowString + 597 125 616 374 0 0 1280 1002 + + + Identifier + windowTool.refactoring + IncludeInToolsMenu + 0 + Layout + + + Dock + + + BecomeActive + 1 + GeometryConfiguration + + Frame + {0, 0}, {500, 335} + RubberWindowFrame + {0, 0}, {500, 335} + + Module + XCRefactoringModule + Proportion + 100% + + + Proportion + 100% + + + Name + Refactoring + ServiceClasses + + XCRefactoringModule + + WindowString + 200 200 500 356 0 0 1920 1200 + + + + diff --git a/plugins/MacSignedVST/X2Buss/X2Buss.xcodeproj/project.pbxproj b/plugins/MacSignedVST/X2Buss/X2Buss.xcodeproj/project.pbxproj new file mode 100755 index 000000000..209767153 --- /dev/null +++ b/plugins/MacSignedVST/X2Buss/X2Buss.xcodeproj/project.pbxproj @@ -0,0 +1,462 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 2407DEB9089929BA00EB68BF /* X2Buss.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2407DEB6089929BA00EB68BF /* X2Buss.cpp */; }; + 245463B90991757100464AD3 /* X2Buss.h in Headers */ = {isa = PBXBuildFile; fileRef = 245463B80991757100464AD3 /* X2Buss.h */; }; + 24CFB70407E7A0220081BD57 /* PkgInfo in Resources */ = {isa = PBXBuildFile; fileRef = 24CFB70307E7A0220081BD57 /* PkgInfo */; }; + 24D8287009A914000093AEF8 /* X2BussProc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 24D8286F09A914000093AEF8 /* X2BussProc.cpp */; }; + 24D8287F09A9164A0093AEF8 /* xcode_vst_prefix.h in Headers */ = {isa = PBXBuildFile; fileRef = 24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */; }; + 8B7A4B3F2EB573DB00B07840 /* vstfxstore.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4B332EB573DB00B07840 /* vstfxstore.h */; }; + 8B7A4B402EB573DB00B07840 /* aeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4B342EB573DB00B07840 /* aeffect.h */; }; + 8B7A4B412EB573DB00B07840 /* aeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4B352EB573DB00B07840 /* aeffectx.h */; }; + 8B7A4B422EB573DB00B07840 /* audioeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4B392EB573DB00B07840 /* audioeffectx.h */; }; + 8B7A4B432EB573DB00B07840 /* audioeffect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A4B3A2EB573DB00B07840 /* audioeffect.cpp */; }; + 8B7A4B442EB573DB00B07840 /* audioeffectx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A4B3B2EB573DB00B07840 /* audioeffectx.cpp */; }; + 8B7A4B452EB573DB00B07840 /* aeffeditor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4B3C2EB573DB00B07840 /* aeffeditor.h */; }; + 8B7A4B462EB573DB00B07840 /* vstplugmain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7A4B3D2EB573DB00B07840 /* vstplugmain.cpp */; }; + 8B7A4B472EB573DB00B07840 /* audioeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4B3E2EB573DB00B07840 /* audioeffect.h */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 2407DE920899296600EB68BF /* X2Buss.vst */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = X2Buss.vst; sourceTree = BUILT_PRODUCTS_DIR; }; + 2407DEB6089929BA00EB68BF /* X2Buss.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = X2Buss.cpp; path = source/X2Buss.cpp; sourceTree = ""; }; + 245463B80991757100464AD3 /* X2Buss.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = X2Buss.h; path = source/X2Buss.h; sourceTree = ""; }; + 24CFB70307E7A0220081BD57 /* PkgInfo */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = PkgInfo; path = mac/PkgInfo; sourceTree = ""; }; + 24D8286F09A914000093AEF8 /* X2BussProc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = X2BussProc.cpp; path = source/X2BussProc.cpp; sourceTree = ""; }; + 24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = xcode_vst_prefix.h; path = mac/xcode_vst_prefix.h; sourceTree = SOURCE_ROOT; }; + 8B7A4B332EB573DB00B07840 /* vstfxstore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstfxstore.h; sourceTree = ""; }; + 8B7A4B342EB573DB00B07840 /* aeffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffect.h; sourceTree = ""; }; + 8B7A4B352EB573DB00B07840 /* aeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffectx.h; sourceTree = ""; }; + 8B7A4B392EB573DB00B07840 /* audioeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audioeffectx.h; sourceTree = ""; }; + 8B7A4B3A2EB573DB00B07840 /* audioeffect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffect.cpp; sourceTree = ""; }; + 8B7A4B3B2EB573DB00B07840 /* audioeffectx.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffectx.cpp; sourceTree = ""; }; + 8B7A4B3C2EB573DB00B07840 /* aeffeditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffeditor.h; sourceTree = ""; }; + 8B7A4B3D2EB573DB00B07840 /* vstplugmain.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstplugmain.cpp; sourceTree = ""; }; + 8B7A4B3E2EB573DB00B07840 /* audioeffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audioeffect.h; sourceTree = ""; }; + 8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = mac/Info.plist; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXGroup section */ + 089C166AFE841209C02AAC07 /* FM-Chopper */ = { + isa = PBXGroup; + children = ( + 19C28FB4FE9D528D11CA2CBB /* Products */, + 089C167CFE841241C02AAC07 /* Resources */, + 08FB77ADFE841716C02AAC07 /* Source */, + ); + name = "FM-Chopper"; + sourceTree = ""; + }; + 089C167CFE841241C02AAC07 /* Resources */ = { + isa = PBXGroup; + children = ( + 24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */, + 24CFB70307E7A0220081BD57 /* PkgInfo */, + 8D01CCD10486CAD60068D4B7 /* Info.plist */, + ); + name = Resources; + sourceTree = ""; + }; + 08FB77ADFE841716C02AAC07 /* Source */ = { + isa = PBXGroup; + children = ( + 8B7A4B302EB573DB00B07840 /* vstsdk2.4 */, + 2407DEB6089929BA00EB68BF /* X2Buss.cpp */, + 24D8286F09A914000093AEF8 /* X2BussProc.cpp */, + 245463B80991757100464AD3 /* X2Buss.h */, + ); + name = Source; + sourceTree = ""; + }; + 19C28FB4FE9D528D11CA2CBB /* Products */ = { + isa = PBXGroup; + children = ( + 2407DE920899296600EB68BF /* X2Buss.vst */, + ); + name = Products; + sourceTree = ""; + }; + 8B7A4B302EB573DB00B07840 /* vstsdk2.4 */ = { + isa = PBXGroup; + children = ( + 8B7A4B312EB573DB00B07840 /* pluginterfaces */, + 8B7A4B362EB573DB00B07840 /* public.sdk */, + ); + name = vstsdk2.4; + path = ../../../../vstsdk2.4; + sourceTree = ""; + }; + 8B7A4B312EB573DB00B07840 /* pluginterfaces */ = { + isa = PBXGroup; + children = ( + 8B7A4B322EB573DB00B07840 /* vst2.x */, + ); + path = pluginterfaces; + sourceTree = ""; + }; + 8B7A4B322EB573DB00B07840 /* vst2.x */ = { + isa = PBXGroup; + children = ( + 8B7A4B332EB573DB00B07840 /* vstfxstore.h */, + 8B7A4B342EB573DB00B07840 /* aeffect.h */, + 8B7A4B352EB573DB00B07840 /* aeffectx.h */, + ); + path = vst2.x; + sourceTree = ""; + }; + 8B7A4B362EB573DB00B07840 /* public.sdk */ = { + isa = PBXGroup; + children = ( + 8B7A4B372EB573DB00B07840 /* source */, + ); + path = public.sdk; + sourceTree = ""; + }; + 8B7A4B372EB573DB00B07840 /* source */ = { + isa = PBXGroup; + children = ( + 8B7A4B382EB573DB00B07840 /* vst2.x */, + ); + path = source; + sourceTree = ""; + }; + 8B7A4B382EB573DB00B07840 /* vst2.x */ = { + isa = PBXGroup; + children = ( + 8B7A4B392EB573DB00B07840 /* audioeffectx.h */, + 8B7A4B3A2EB573DB00B07840 /* audioeffect.cpp */, + 8B7A4B3B2EB573DB00B07840 /* audioeffectx.cpp */, + 8B7A4B3C2EB573DB00B07840 /* aeffeditor.h */, + 8B7A4B3D2EB573DB00B07840 /* vstplugmain.cpp */, + 8B7A4B3E2EB573DB00B07840 /* audioeffect.h */, + ); + path = vst2.x; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 8D01CCC70486CAD60068D4B7 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 8B7A4B452EB573DB00B07840 /* aeffeditor.h in Headers */, + 245463B90991757100464AD3 /* X2Buss.h in Headers */, + 8B7A4B472EB573DB00B07840 /* audioeffect.h in Headers */, + 8B7A4B402EB573DB00B07840 /* aeffect.h in Headers */, + 24D8287F09A9164A0093AEF8 /* xcode_vst_prefix.h in Headers */, + 8B7A4B422EB573DB00B07840 /* audioeffectx.h in Headers */, + 8B7A4B3F2EB573DB00B07840 /* vstfxstore.h in Headers */, + 8B7A4B412EB573DB00B07840 /* aeffectx.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 8D01CCC60486CAD60068D4B7 /* X2Buss */ = { + isa = PBXNativeTarget; + buildConfigurationList = 24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "X2Buss" */; + buildPhases = ( + 8D01CCC70486CAD60068D4B7 /* Headers */, + 8D01CCC90486CAD60068D4B7 /* Resources */, + 8D01CCCB0486CAD60068D4B7 /* Sources */, + 24CFB70807E7A07C0081BD57 /* Copy PkgInfo */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = X2Buss; + productInstallPath = "$(HOME)/Library/Bundles"; + productName = "FM-Chopper"; + productReference = 2407DE920899296600EB68BF /* X2Buss.vst */; + productType = "com.apple.product-type.bundle"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 089C1669FE841209C02AAC07 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1420; + }; + buildConfigurationList = 24BEAAF108919AE700E695F9 /* Build configuration list for PBXProject "X2Buss" */; + compatibilityVersion = "Xcode 2.4"; + developmentRegion = en; + hasScannedForEncodings = 1; + knownRegions = ( + de, + fr, + Base, + en, + ja, + ); + mainGroup = 089C166AFE841209C02AAC07 /* FM-Chopper */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 8D01CCC60486CAD60068D4B7 /* X2Buss */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 8D01CCC90486CAD60068D4B7 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 24CFB70407E7A0220081BD57 /* PkgInfo in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 24CFB70807E7A07C0081BD57 /* Copy PkgInfo */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Copy PkgInfo"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/bash; + shellScript = "cp mac/PkgInfo \"$BUILT_PRODUCTS_DIR/$PRODUCT_NAME.vst/Contents/\""; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 8D01CCCB0486CAD60068D4B7 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 8B7A4B442EB573DB00B07840 /* audioeffectx.cpp in Sources */, + 2407DEB9089929BA00EB68BF /* X2Buss.cpp in Sources */, + 8B7A4B432EB573DB00B07840 /* audioeffect.cpp in Sources */, + 8B7A4B462EB573DB00B07840 /* vstplugmain.cpp in Sources */, + 24D8287009A914000093AEF8 /* X2BussProc.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 24BEAAEE08919AE700E695F9 /* 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; + COPY_PHASE_STRIP = NO; + DEAD_CODE_STRIPPING = YES; + DEVELOPMENT_TEAM = ""; + "DEVELOPMENT_TEAM[sdk=macosx*]" = 9BMAKYA76W; + FRAMEWORK_SEARCH_PATHS = ""; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_TRIGRAPHS = NO; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_MODEL_TUNING = ""; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ""; + GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO; + GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO; + GCC_WARN_UNKNOWN_PRAGMAS = NO; + HEADER_SEARCH_PATHS = "/Users/christopherjohnson/Desktop/vstsdk2.4/**"; + INFOPLIST_FILE = ./mac/Info.plist; + INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/VST"; + LIBRARY_SEARCH_PATHS = ""; + MACOSX_DEPLOYMENT_TARGET = 11.1; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ""; + OTHER_REZFLAGS = ""; + PRODUCT_BUNDLE_IDENTIFIER = com.airwindows.X2Buss; + PRODUCT_NAME = X2Buss; + PROVISIONING_PROFILE_SPECIFIER = ""; + SDKROOT = macosx; + SECTORDER_FLAGS = ""; + STRIP_STYLE = debugging; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + WRAPPER_EXTENSION = vst; + }; + name = Debug; + }; + 24BEAAEF08919AE700E695F9 /* 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; + COPY_PHASE_STRIP = YES; + DEAD_CODE_STRIPPING = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEVELOPMENT_TEAM = ""; + "DEVELOPMENT_TEAM[sdk=macosx*]" = 9BMAKYA76W; + FRAMEWORK_SEARCH_PATHS = ""; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_ENABLE_TRIGRAPHS = NO; + GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + GCC_MODEL_TUNING = ""; + GCC_OPTIMIZATION_LEVEL = s; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ""; + GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO; + GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO; + GCC_WARN_UNKNOWN_PRAGMAS = NO; + HEADER_SEARCH_PATHS = "/Users/christopherjohnson/Desktop/vstsdk2.4/**"; + INFOPLIST_FILE = ./mac/Info.plist; + INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/VST"; + LIBRARY_SEARCH_PATHS = ""; + MACOSX_DEPLOYMENT_TARGET = 11.1; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ""; + OTHER_REZFLAGS = ""; + PRODUCT_BUNDLE_IDENTIFIER = com.airwindows.X2Buss; + PRODUCT_NAME = X2Buss; + PROVISIONING_PROFILE_SPECIFIER = ""; + SDKROOT = macosx; + SECTORDER_FLAGS = ""; + SKIP_INSTALL = NO; + STRIP_INSTALLED_PRODUCT = YES; + STRIP_STYLE = debugging; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + WRAPPER_EXTENSION = vst; + }; + name = Release; + }; + 24BEAAF208919AE700E695F9 /* 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; + DEAD_CODE_STRIPPING = YES; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_MODEL_TUNING = G5; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = "DEBUG=1"; + 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; + INFOPLIST_FILE = ""; + INFOPLIST_PREPROCESS = NO; + MACOSX_DEPLOYMENT_TARGET = 11.1; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + }; + name = Debug; + }; + 24BEAAF308919AE700E695F9 /* 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_MODEL_TUNING = G4; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = s; + 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; + INFOPLIST_FILE = ""; + INFOPLIST_PREPROCESS = NO; + MACOSX_DEPLOYMENT_TARGET = 11.1; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "X2Buss" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 24BEAAEE08919AE700E695F9 /* Debug */, + 24BEAAEF08919AE700E695F9 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 24BEAAF108919AE700E695F9 /* Build configuration list for PBXProject "X2Buss" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 24BEAAF208919AE700E695F9 /* Debug */, + 24BEAAF308919AE700E695F9 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; +/* End XCConfigurationList section */ + }; + rootObject = 089C1669FE841209C02AAC07 /* Project object */; +} diff --git a/plugins/MacSignedVST/X2Buss/X2Buss.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/plugins/MacSignedVST/X2Buss/X2Buss.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100755 index 000000000..a80c03824 --- /dev/null +++ b/plugins/MacSignedVST/X2Buss/X2Buss.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/plugins/MacSignedVST/X2Buss/X2Buss.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/plugins/MacSignedVST/X2Buss/X2Buss.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..18d981003 --- /dev/null +++ b/plugins/MacSignedVST/X2Buss/X2Buss.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/plugins/MacSignedVST/X2Buss/X2Buss.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacSignedVST/X2Buss/X2Buss.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100755 index 000000000..4ffb64ab0 Binary files /dev/null and b/plugins/MacSignedVST/X2Buss/X2Buss.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/plugins/MacSignedVST/X2Buss/X2Buss.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacSignedVST/X2Buss/X2Buss.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100755 index 000000000..314de0ff8 Binary files /dev/null and b/plugins/MacSignedVST/X2Buss/X2Buss.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/plugins/MacSignedVST/X2Buss/X2Buss.xcodeproj/spiadmin.mode1v3 b/plugins/MacSignedVST/X2Buss/X2Buss.xcodeproj/spiadmin.mode1v3 new file mode 100755 index 000000000..c5723261d --- /dev/null +++ b/plugins/MacSignedVST/X2Buss/X2Buss.xcodeproj/spiadmin.mode1v3 @@ -0,0 +1,1372 @@ + + + + + ActivePerspectiveName + Project + AllowedModules + + + BundleLoadPath + + MaxInstances + n + Module + PBXSmartGroupTreeModule + Name + Groups and Files Outline View + + + BundleLoadPath + + MaxInstances + n + Module + PBXNavigatorGroup + Name + Editor + + + BundleLoadPath + + MaxInstances + n + Module + XCTaskListModule + Name + Task List + + + BundleLoadPath + + MaxInstances + n + Module + XCDetailModule + Name + File and Smart Group Detail Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXBuildResultsModule + Name + Detailed Build Results Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXProjectFindModule + Name + Project Batch Find Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCProjectFormatConflictsModule + Name + Project Format Conflicts List + + + BundleLoadPath + + MaxInstances + n + Module + PBXBookmarksModule + Name + Bookmarks Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXClassBrowserModule + Name + Class Browser + + + BundleLoadPath + + MaxInstances + n + Module + PBXCVSModule + Name + Source Code Control Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXDebugBreakpointsModule + Name + Debug Breakpoints Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCDockableInspector + Name + Inspector + + + BundleLoadPath + + MaxInstances + n + Module + PBXOpenQuicklyModule + Name + Open Quickly Tool + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugSessionModule + Name + Debugger + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugCLIModule + Name + Debug Console + + + BundleLoadPath + + MaxInstances + n + Module + XCSnapshotModule + Name + Snapshots Tool + + + BundlePath + /Xcode3/Library/PrivateFrameworks/DevToolsInterface.framework/Resources + Description + DefaultDescriptionKey + DockingSystemVisible + + Extension + mode1v3 + FavBarConfig + + PBXProjectModuleGUID + 91857D9F148EF61800AAA11B + XCBarModuleItemNames + + XCBarModuleItems + + + FirstTimeWindowDisplayed + + Identifier + com.apple.perspectives.project.mode1v3 + MajorVersion + 33 + MinorVersion + 0 + Name + Default + Notifications + + OpenEditors + + PerspectiveWidths + + -1 + -1 + + Perspectives + + + ChosenToolbarItems + + active-combo-popup + action + NSToolbarFlexibleSpaceItem + debugger-enable-breakpoints + build-and-go + com.apple.ide.PBXToolbarStopButton + get-info + NSToolbarFlexibleSpaceItem + com.apple.pbx.toolbar.searchfield + + ControllerClassBaseName + + IconName + WindowOfProjectWithEditor + Identifier + perspective.project + IsVertical + + Layout + + + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 1C37FABC05509CD000000102 + 1C37FABC05539CD112110102 + E2644B35053B69B200211256 + 1C37FABC04509CD000100104 + 1CC0EA4004350EF90044410B + 1CC0EA4004350EF90041110B + + PBXProjectModuleGUID + 1CE0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + yes + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 186 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 089C166AFE841209C02AAC07 + 089C1671FE841209C02AAC07 + 19C28FB4FE9D528D11CA2CBB + 089C167CFE841241C02AAC07 + 08FB77ADFE841716C02AAC07 + 1C37FBAC04509CD000000102 + 1C37FABC05509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 11 + 10 + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {186, 693}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + + XCSharingToken + com.apple.Xcode.GFSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {203, 711}} + GroupTreeTableConfiguration + + MainColumn + 186 + + RubberWindowFrame + 286 197 1261 752 0 0 1680 1028 + + Module + PBXSmartGroupTreeModule + Proportion + 203pt + + + Dock + + + BecomeActive + + ContentConfiguration + + PBXProjectModuleGUID + 1CE0B20306471E060097A5F4 + PBXProjectModuleLabel + Gain.cpp + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CE0B20406471E060097A5F4 + PBXProjectModuleLabel + Gain.cpp + _historyCapacity + 0 + bookmark + 911C2A9D1491A5F600A430AF + history + + 915DCCBB1491A5B8008574E6 + + + SplitCount + 1 + + StatusBarVisibility + + + GeometryConfiguration + + Frame + {{0, 0}, {1053, 508}} + RubberWindowFrame + 286 197 1261 752 0 0 1680 1028 + + Module + PBXNavigatorGroup + Proportion + 508pt + + + ContentConfiguration + + PBXProjectModuleGUID + 1CE0B20506471E060097A5F4 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{0, 513}, {1053, 198}} + RubberWindowFrame + 286 197 1261 752 0 0 1680 1028 + + Module + XCDetailModule + Proportion + 198pt + + + Proportion + 1053pt + + + Name + Project + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + XCModuleDock + PBXNavigatorGroup + XCDetailModule + + TableOfContents + + 911C2A901491A5F600A430AF + 1CE0B1FE06471DED0097A5F4 + 911C2A911491A5F600A430AF + 1CE0B20306471E060097A5F4 + 1CE0B20506471E060097A5F4 + + ToolbarConfigUserDefaultsMinorVersion + 2 + ToolbarConfiguration + xcode.toolbar.config.defaultV3 + + + ControllerClassBaseName + + IconName + WindowOfProject + Identifier + perspective.morph + IsVertical + 0 + Layout + + + BecomeActive + 1 + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 1C08E77C0454961000C914BD + 1C37FABC05509CD000000102 + 1C37FABC05539CD112110102 + E2644B35053B69B200211256 + 1C37FABC04509CD000100104 + 1CC0EA4004350EF90044410B + 1CC0EA4004350EF90041110B + + PBXProjectModuleGUID + 11E0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + yes + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 186 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 29B97314FDCFA39411CA2CEA + 1C37FABC05509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {186, 337}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + 1 + XCSharingToken + com.apple.Xcode.GFSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {203, 355}} + GroupTreeTableConfiguration + + MainColumn + 186 + + RubberWindowFrame + 373 269 690 397 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 100% + + + Name + Morph + PreferredWidth + 300 + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + + TableOfContents + + 11E0B1FE06471DED0097A5F4 + + ToolbarConfiguration + xcode.toolbar.config.default.shortV3 + + + PerspectivesBarVisible + + ShelfIsVisible + + SourceDescription + file at '/Xcode3/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecificationMode1.xcperspec' + StatusbarIsVisible + + TimeStamp + 0.0 + ToolbarConfigUserDefaultsMinorVersion + 2 + ToolbarDisplayMode + 1 + ToolbarIsVisible + + ToolbarSizeMode + 1 + Type + Perspectives + UpdateMessage + The Default Workspace in this version of Xcode now includes support to hide and show the detail view (what has been referred to as the "Metro-Morph" feature). You must discard your current Default Workspace settings and update to the latest Default Workspace in order to gain this feature. Do you wish to update to the latest Workspace defaults for project '%@'? + WindowJustification + 5 + WindowOrderList + + 91857DA0148EF61800AAA11B + /Users/spiadmin/Documents/Gain/Gain.xcodeproj + + WindowString + 286 197 1261 752 0 0 1680 1028 + WindowToolsV3 + + + FirstTimeWindowDisplayed + + Identifier + windowTool.build + IsVertical + + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528F0623707200166675 + PBXProjectModuleLabel + + StatusBarVisibility + + + GeometryConfiguration + + Frame + {{0, 0}, {743, 413}} + RubberWindowFrame + 112 208 743 695 0 0 1680 1028 + + Module + PBXNavigatorGroup + Proportion + 413pt + + + ContentConfiguration + + PBXProjectModuleGUID + XCMainBuildResultsModuleGUID + PBXProjectModuleLabel + Build Results + XCBuildResultsTrigger_Collapse + 1021 + XCBuildResultsTrigger_Open + 1011 + + GeometryConfiguration + + Frame + {{0, 418}, {743, 236}} + RubberWindowFrame + 112 208 743 695 0 0 1680 1028 + + Module + PBXBuildResultsModule + Proportion + 236pt + + + Proportion + 654pt + + + Name + Build Results + ServiceClasses + + PBXBuildResultsModule + + StatusbarIsVisible + + TableOfContents + + 91857DA0148EF61800AAA11B + 911C2A921491A5F600A430AF + 1CD0528F0623707200166675 + XCMainBuildResultsModuleGUID + + ToolbarConfiguration + xcode.toolbar.config.buildV3 + WindowContentMinSize + 486 300 + WindowString + 112 208 743 695 0 0 1680 1028 + WindowToolGUID + 91857DA0148EF61800AAA11B + WindowToolIsVisible + + + + Identifier + windowTool.debugger + Layout + + + Dock + + + ContentConfiguration + + Debugger + + HorizontalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {317, 164}} + {{317, 0}, {377, 164}} + + + VerticalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {694, 164}} + {{0, 164}, {694, 216}} + + + + LauncherConfigVersion + 8 + PBXProjectModuleGUID + 1C162984064C10D400B95A72 + PBXProjectModuleLabel + Debug - GLUTExamples (Underwater) + + GeometryConfiguration + + DebugConsoleDrawerSize + {100, 120} + DebugConsoleVisible + None + DebugConsoleWindowFrame + {{200, 200}, {500, 300}} + DebugSTDIOWindowFrame + {{200, 200}, {500, 300}} + Frame + {{0, 0}, {694, 380}} + RubberWindowFrame + 321 238 694 422 0 0 1440 878 + + Module + PBXDebugSessionModule + Proportion + 100% + + + Proportion + 100% + + + Name + Debugger + ServiceClasses + + PBXDebugSessionModule + + StatusbarIsVisible + 1 + TableOfContents + + 1CD10A99069EF8BA00B06720 + 1C0AD2AB069F1E9B00FABCE6 + 1C162984064C10D400B95A72 + 1C0AD2AC069F1E9B00FABCE6 + + ToolbarConfiguration + xcode.toolbar.config.debugV3 + WindowString + 321 238 694 422 0 0 1440 878 + WindowToolGUID + 1CD10A99069EF8BA00B06720 + WindowToolIsVisible + 0 + + + Identifier + windowTool.find + Layout + + + Dock + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CDD528C0622207200134675 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CD0528D0623707200166675 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {781, 167}} + RubberWindowFrame + 62 385 781 470 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 781pt + + + Proportion + 50% + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528E0623707200166675 + PBXProjectModuleLabel + Project Find + + GeometryConfiguration + + Frame + {{8, 0}, {773, 254}} + RubberWindowFrame + 62 385 781 470 0 0 1440 878 + + Module + PBXProjectFindModule + Proportion + 50% + + + Proportion + 428pt + + + Name + Project Find + ServiceClasses + + PBXProjectFindModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C530D57069F1CE1000CFCEE + 1C530D58069F1CE1000CFCEE + 1C530D59069F1CE1000CFCEE + 1CDD528C0622207200134675 + 1C530D5A069F1CE1000CFCEE + 1CE0B1FE06471DED0097A5F4 + 1CD0528E0623707200166675 + + WindowString + 62 385 781 470 0 0 1440 878 + WindowToolGUID + 1C530D57069F1CE1000CFCEE + WindowToolIsVisible + 0 + + + Identifier + MENUSEPARATOR + + + Identifier + windowTool.debuggerConsole + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAAC065D492600B07095 + PBXProjectModuleLabel + Debugger Console + + GeometryConfiguration + + Frame + {{0, 0}, {650, 250}} + RubberWindowFrame + 516 632 650 250 0 0 1680 1027 + + Module + PBXDebugCLIModule + Proportion + 209pt + + + Proportion + 209pt + + + Name + Debugger Console + ServiceClasses + + PBXDebugCLIModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C78EAAD065D492600B07095 + 1C78EAAE065D492600B07095 + 1C78EAAC065D492600B07095 + + ToolbarConfiguration + xcode.toolbar.config.consoleV3 + WindowString + 650 41 650 250 0 0 1280 1002 + WindowToolGUID + 1C78EAAD065D492600B07095 + WindowToolIsVisible + 0 + + + Identifier + windowTool.snapshots + Layout + + + Dock + + + Module + XCSnapshotModule + Proportion + 100% + + + Proportion + 100% + + + Name + Snapshots + ServiceClasses + + XCSnapshotModule + + StatusbarIsVisible + Yes + ToolbarConfiguration + xcode.toolbar.config.snapshots + WindowString + 315 824 300 550 0 0 1440 878 + WindowToolIsVisible + Yes + + + Identifier + windowTool.scm + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAB2065D492600B07095 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1C78EAB3065D492600B07095 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {452, 0}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + + Module + PBXNavigatorGroup + Proportion + 0pt + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD052920623707200166675 + PBXProjectModuleLabel + SCM + + GeometryConfiguration + + ConsoleFrame + {{0, 259}, {452, 0}} + Frame + {{0, 7}, {452, 259}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + TableConfiguration + + Status + 30 + FileName + 199 + Path + 197.0950012207031 + + TableFrame + {{0, 0}, {452, 250}} + + Module + PBXCVSModule + Proportion + 262pt + + + Proportion + 266pt + + + Name + SCM + ServiceClasses + + PBXCVSModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C78EAB4065D492600B07095 + 1C78EAB5065D492600B07095 + 1C78EAB2065D492600B07095 + 1CD052920623707200166675 + + ToolbarConfiguration + xcode.toolbar.config.scm + WindowString + 743 379 452 308 0 0 1280 1002 + + + Identifier + windowTool.breakpoints + IsVertical + 0 + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C77FABC04509CD000000102 + + PBXProjectModuleGUID + 1CE0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + no + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 168 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 1C77FABC04509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {168, 350}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + 0 + + GeometryConfiguration + + Frame + {{0, 0}, {185, 368}} + GroupTreeTableConfiguration + + MainColumn + 168 + + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 185pt + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA1AED706398EBD00589147 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{190, 0}, {554, 368}} + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + XCDetailModule + Proportion + 554pt + + + Proportion + 368pt + + + MajorVersion + 3 + MinorVersion + 0 + Name + Breakpoints + ServiceClasses + + PBXSmartGroupTreeModule + XCDetailModule + + StatusbarIsVisible + 1 + TableOfContents + + 1CDDB66807F98D9800BB5817 + 1CDDB66907F98D9800BB5817 + 1CE0B1FE06471DED0097A5F4 + 1CA1AED706398EBD00589147 + + ToolbarConfiguration + xcode.toolbar.config.breakpointsV3 + WindowString + 315 424 744 409 0 0 1440 878 + WindowToolGUID + 1CDDB66807F98D9800BB5817 + WindowToolIsVisible + 1 + + + Identifier + windowTool.debugAnimator + Layout + + + Dock + + + Module + PBXNavigatorGroup + Proportion + 100% + + + Proportion + 100% + + + Name + Debug Visualizer + ServiceClasses + + PBXNavigatorGroup + + StatusbarIsVisible + 1 + ToolbarConfiguration + xcode.toolbar.config.debugAnimatorV3 + WindowString + 100 100 700 500 0 0 1280 1002 + + + Identifier + windowTool.bookmarks + Layout + + + Dock + + + Module + PBXBookmarksModule + Proportion + 100% + + + Proportion + 100% + + + Name + Bookmarks + ServiceClasses + + PBXBookmarksModule + + StatusbarIsVisible + 0 + WindowString + 538 42 401 187 0 0 1280 1002 + + + Identifier + windowTool.projectFormatConflicts + Layout + + + Dock + + + Module + XCProjectFormatConflictsModule + Proportion + 100% + + + Proportion + 100% + + + Name + Project Format Conflicts + ServiceClasses + + XCProjectFormatConflictsModule + + StatusbarIsVisible + 0 + WindowContentMinSize + 450 300 + WindowString + 50 850 472 307 0 0 1440 877 + + + Identifier + windowTool.classBrowser + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + OptionsSetName + Hierarchy, all classes + PBXProjectModuleGUID + 1CA6456E063B45B4001379D8 + PBXProjectModuleLabel + Class Browser - NSObject + + GeometryConfiguration + + ClassesFrame + {{0, 0}, {374, 96}} + ClassesTreeTableConfiguration + + PBXClassNameColumnIdentifier + 208 + PBXClassBookColumnIdentifier + 22 + + Frame + {{0, 0}, {630, 331}} + MembersFrame + {{0, 105}, {374, 395}} + MembersTreeTableConfiguration + + PBXMemberTypeIconColumnIdentifier + 22 + PBXMemberNameColumnIdentifier + 216 + PBXMemberTypeColumnIdentifier + 97 + PBXMemberBookColumnIdentifier + 22 + + PBXModuleWindowStatusBarHidden2 + 1 + RubberWindowFrame + 385 179 630 352 0 0 1440 878 + + Module + PBXClassBrowserModule + Proportion + 332pt + + + Proportion + 332pt + + + Name + Class Browser + ServiceClasses + + PBXClassBrowserModule + + StatusbarIsVisible + 0 + TableOfContents + + 1C0AD2AF069F1E9B00FABCE6 + 1C0AD2B0069F1E9B00FABCE6 + 1CA6456E063B45B4001379D8 + + ToolbarConfiguration + xcode.toolbar.config.classbrowser + WindowString + 385 179 630 352 0 0 1440 878 + WindowToolGUID + 1C0AD2AF069F1E9B00FABCE6 + WindowToolIsVisible + 0 + + + Identifier + windowTool.refactoring + IncludeInToolsMenu + 0 + Layout + + + Dock + + + BecomeActive + 1 + GeometryConfiguration + + Frame + {0, 0}, {500, 335} + RubberWindowFrame + {0, 0}, {500, 335} + + Module + XCRefactoringModule + Proportion + 100% + + + Proportion + 100% + + + Name + Refactoring + ServiceClasses + + XCRefactoringModule + + WindowString + 200 200 500 356 0 0 1920 1200 + + + + diff --git a/plugins/MacSignedVST/X2Buss/X2Buss.xcodeproj/spiadmin.pbxuser b/plugins/MacSignedVST/X2Buss/X2Buss.xcodeproj/spiadmin.pbxuser new file mode 100755 index 000000000..df947808e --- /dev/null +++ b/plugins/MacSignedVST/X2Buss/X2Buss.xcodeproj/spiadmin.pbxuser @@ -0,0 +1,143 @@ +// !$*UTF8*$! +{ + 089C1669FE841209C02AAC07 /* Project object */ = { + activeBuildConfigurationName = Release; + activeTarget = 8D01CCC60486CAD60068D4B7 /* Gain */; + codeSenseManager = 91857D95148EF55400AAA11B /* Code sense */; + perUserDictionary = { + PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = { + PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; + PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; + PBXFileTableDataSourceColumnWidthsKey = ( + 20, + 829, + 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, + 789, + 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 = 345089498; + PBXWorkspaceStateSaveDate = 345089498; + }; + perUserProjectItems = { + 911C2A9D1491A5F600A430AF /* PBXTextBookmark */ = 911C2A9D1491A5F600A430AF /* PBXTextBookmark */; + 915DCCBB1491A5B8008574E6 /* PBXTextBookmark */ = 915DCCBB1491A5B8008574E6 /* PBXTextBookmark */; + }; + sourceControlManager = 91857D94148EF55400AAA11B /* Source Control */; + userBuildSettings = { + }; + }; + 2407DEB6089929BA00EB68BF /* Gain.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {992, 1768}}"; + sepNavSelRange = "{247, 0}"; + sepNavVisRange = "{0, 1657}"; + }; + }; + 245463B80991757100464AD3 /* Gain.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {992, 975}}"; + sepNavSelRange = "{1552, 0}"; + sepNavVisRange = "{796, 1857}"; + sepNavWindowFrame = "{{15, 465}, {750, 558}}"; + }; + }; + 24A2FF9A0F90D1DD003BB5A7 /* adelaymain.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {992, 488}}"; + sepNavSelRange = "{0, 0}"; + sepNavVisRange = "{0, 798}"; + }; + }; + 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {859, 19825}}"; + sepNavSelRange = "{10641, 0}"; + sepNavVisRange = "{10076, 1095}"; + }; + }; + 24D8286F09A914000093AEF8 /* GainProc.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {992, 482}}"; + sepNavSelRange = "{239, 0}"; + sepNavVisRange = "{0, 950}"; + }; + }; + 24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {992, 493}}"; + sepNavSelRange = "{249, 0}"; + sepNavVisRange = "{0, 249}"; + }; + }; + 8D01CCC60486CAD60068D4B7 /* Gain */ = { + activeExec = 0; + }; + 911C2A9D1491A5F600A430AF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2407DEB6089929BA00EB68BF /* Gain.cpp */; + name = "Gain.cpp: 10"; + rLen = 0; + rLoc = 247; + rType = 0; + vrLen = 1657; + vrLoc = 0; + }; + 915DCCBB1491A5B8008574E6 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2407DEB6089929BA00EB68BF /* Gain.cpp */; + name = "Gain.cpp: 10"; + rLen = 0; + rLoc = 247; + rType = 0; + vrLen = 1625; + vrLoc = 0; + }; + 91857D94148EF55400AAA11B /* Source Control */ = { + isa = PBXSourceControlManager; + fallbackIsa = XCSourceControlManager; + isSCMEnabled = 0; + scmConfiguration = { + repositoryNamesForRoots = { + "" = ""; + }; + }; + }; + 91857D95148EF55400AAA11B /* Code sense */ = { + isa = PBXCodeSenseManager; + indexTemplatePath = ""; + }; +} diff --git a/plugins/MacSignedVST/X2Buss/X2Buss.xcodeproj/xcshareddata/xcschemes/X2Buss.xcscheme b/plugins/MacSignedVST/X2Buss/X2Buss.xcodeproj/xcshareddata/xcschemes/X2Buss.xcscheme new file mode 100644 index 000000000..a5a7956de --- /dev/null +++ b/plugins/MacSignedVST/X2Buss/X2Buss.xcodeproj/xcshareddata/xcschemes/X2Buss.xcscheme @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/MacSignedVST/X2Buss/X2Buss.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist b/plugins/MacSignedVST/X2Buss/X2Buss.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100755 index 000000000..0c1e61927 --- /dev/null +++ b/plugins/MacSignedVST/X2Buss/X2Buss.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,22 @@ + + + + + SchemeUserState + + X2Buss.xcscheme_^#shared#^_ + + orderHint + 1 + + + SuppressBuildableAutocreation + + 8D01CCC60486CAD60068D4B7 + + primary + + + + + diff --git a/plugins/MacSignedVST/X2Buss/X2Buss.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist b/plugins/MacSignedVST/X2Buss/X2Buss.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100755 index 000000000..a7bdd62d4 --- /dev/null +++ b/plugins/MacSignedVST/X2Buss/X2Buss.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,22 @@ + + + + + SchemeUserState + + «PROJECTNAME».xcscheme + + orderHint + 0 + + + SuppressBuildableAutocreation + + 8D01CCC60486CAD60068D4B7 + + primary + + + + + diff --git a/plugins/MacSignedVST/X2Buss/X2Buss.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme b/plugins/MacSignedVST/X2Buss/X2Buss.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme new file mode 100755 index 000000000..0df2de4a3 --- /dev/null +++ b/plugins/MacSignedVST/X2Buss/X2Buss.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/MacSignedVST/X2Buss/mac/Info.plist b/plugins/MacSignedVST/X2Buss/mac/Info.plist new file mode 100755 index 000000000..dbf8eca24 --- /dev/null +++ b/plugins/MacSignedVST/X2Buss/mac/Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + X2Buss + CFBundleIconFile + + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + BNDL + CFBundleSignature + Dthr + CFBundleVersion + 1.0 + CSResourcesFileMapped + + + diff --git a/plugins/MacSignedVST/X2Buss/mac/PkgInfo b/plugins/MacSignedVST/X2Buss/mac/PkgInfo new file mode 100755 index 000000000..19a9cf67e --- /dev/null +++ b/plugins/MacSignedVST/X2Buss/mac/PkgInfo @@ -0,0 +1 @@ +BNDL???? \ No newline at end of file diff --git a/plugins/MacSignedVST/X2Buss/mac/xcode_vst_prefix.h b/plugins/MacSignedVST/X2Buss/mac/xcode_vst_prefix.h new file mode 100755 index 000000000..eaf4c0b4b --- /dev/null +++ b/plugins/MacSignedVST/X2Buss/mac/xcode_vst_prefix.h @@ -0,0 +1,17 @@ +#define MAC 1 +#define MACX 1 + +#define USE_NAMESPACE 0 + +#define TARGET_API_MAC_CARBON 1 +#define USENAVSERVICES 1 + +#define __CF_USE_FRAMEWORK_INCLUDES__ + +#if __MWERKS__ +#define __NOEXTENSIONS__ +#endif + +#define QUARTZ 1 + +#include \ No newline at end of file diff --git a/plugins/MacSignedVST/X2Buss/source/X2Buss.cpp b/plugins/MacSignedVST/X2Buss/source/X2Buss.cpp new file mode 100755 index 000000000..59b50e4ab --- /dev/null +++ b/plugins/MacSignedVST/X2Buss/source/X2Buss.cpp @@ -0,0 +1,228 @@ +/* ======================================== + * X2Buss - X2Buss.h + * Copyright (c) airwindows, Airwindows uses the MIT license + * ======================================== */ + +#ifndef __X2Buss_H +#include "X2Buss.h" +#endif + +AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new X2Buss(audioMaster);} + +X2Buss::X2Buss(audioMasterCallback audioMaster) : + AudioEffectX(audioMaster, kNumPrograms, kNumParameters) +{ + A = 0.5; + B = 0.5; + C = 0.5; + D = 0.5; + E = 0.5; + F = 0.5; + G = 0.5; + H = 0.5; + I = 1.0; + J = 0.5; + + for (int x = 0; x < biq_total; x++) { + highA[x] = 0.0; + highB[x] = 0.0; + highC[x] = 0.0; + midA[x] = 0.0; + midB[x] = 0.0; + midC[x] = 0.0; + lowA[x] = 0.0; + lowB[x] = 0.0; + lowC[x] = 0.0; + } + highLIIR = 0.0; + highRIIR = 0.0; + midLIIR = 0.0; + midRIIR = 0.0; + lowLIIR = 0.0; + lowRIIR = 0.0; + //SmoothEQ2 + + for (int x = 0; x < bez_total; x++) {bezCompF[x] = 0.0;bezCompS[x] = 0.0;} + bezCompF[bez_cycle] = 1.0; bezMaxF = 0.0; + bezCompS[bez_cycle] = 1.0; + //Dynamics2 + + 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 + + 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 +} + +X2Buss::~X2Buss() {} +VstInt32 X2Buss::getVendorVersion () {return 1000;} +void X2Buss::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);} +void X2Buss::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 X2Buss::getChunk (void** data, bool isPreset) +{ + float *chunkData = (float *)calloc(kNumParameters, sizeof(float)); + chunkData[0] = A; + chunkData[1] = B; + chunkData[2] = C; + chunkData[3] = D; + chunkData[4] = E; + chunkData[5] = F; + chunkData[6] = G; + chunkData[7] = H; + chunkData[8] = I; + chunkData[9] = J; + /* 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 X2Buss::setChunk (void* data, VstInt32 byteSize, bool isPreset) +{ + float *chunkData = (float *)data; + A = pinParameter(chunkData[0]); + B = pinParameter(chunkData[1]); + C = pinParameter(chunkData[2]); + D = pinParameter(chunkData[3]); + E = pinParameter(chunkData[4]); + F = pinParameter(chunkData[5]); + G = pinParameter(chunkData[6]); + H = pinParameter(chunkData[7]); + I = pinParameter(chunkData[8]); + J = pinParameter(chunkData[9]); + /* 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 X2Buss::setParameter(VstInt32 index, float value) { + switch (index) { + case kParamA: A = value; break; + case kParamB: B = value; break; + case kParamC: C = value; break; + case kParamD: D = value; break; + case kParamE: E = value; break; + case kParamF: F = value; break; + case kParamG: G = value; break; + case kParamH: H = value; break; + case kParamI: I = value; break; + case kParamJ: J = value; break; + default: throw; // unknown parameter, shouldn't happen! + } +} + +float X2Buss::getParameter(VstInt32 index) { + switch (index) { + case kParamA: return A; break; + case kParamB: return B; break; + case kParamC: return C; break; + case kParamD: return D; break; + case kParamE: return E; break; + case kParamF: return F; break; + case kParamG: return G; break; + case kParamH: return H; break; + case kParamI: return I; break; + case kParamJ: return J; 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 X2Buss::getParameterName(VstInt32 index, char *text) { + switch (index) { + case kParamA: vst_strncpy (text, "High", kVstMaxParamStrLen); break; + case kParamB: vst_strncpy (text, "HMid", kVstMaxParamStrLen); break; + case kParamC: vst_strncpy (text, "LMid", kVstMaxParamStrLen); break; + case kParamD: vst_strncpy (text, "Bass", kVstMaxParamStrLen); break; + case kParamE: vst_strncpy (text, "HighF", kVstMaxParamStrLen); break; + case kParamF: vst_strncpy (text, "HMidF", kVstMaxParamStrLen); break; + case kParamG: vst_strncpy (text, "LMidF", kVstMaxParamStrLen); break; + case kParamH: vst_strncpy (text, "BassF", kVstMaxParamStrLen); break; + case kParamI: vst_strncpy (text, "Thresh", kVstMaxParamStrLen); break; + case kParamJ: vst_strncpy (text, "Fader", kVstMaxParamStrLen); break; + default: break; // unknown parameter, shouldn't happen! + } //this is our labels for displaying in the VST host +} + +void X2Buss::getParameterDisplay(VstInt32 index, char *text) { + switch (index) { + case kParamA: float2string (A, text, kVstMaxParamStrLen); break; + case kParamB: float2string (B, text, kVstMaxParamStrLen); break; + case kParamC: float2string (C, text, kVstMaxParamStrLen); break; + case kParamD: float2string (D, text, kVstMaxParamStrLen); break; + case kParamE: float2string (E, text, kVstMaxParamStrLen); break; + case kParamF: float2string (F, text, kVstMaxParamStrLen); break; + case kParamG: float2string (G, text, kVstMaxParamStrLen); break; + case kParamH: float2string (H, text, kVstMaxParamStrLen); break; + case kParamI: float2string (I, text, kVstMaxParamStrLen); break; + case kParamJ: float2string (J, text, kVstMaxParamStrLen); break; + default: break; // unknown parameter, shouldn't happen! + } //this displays the values and handles 'popups' where it's discrete choices +} + +void X2Buss::getParameterLabel(VstInt32 index, char *text) { + switch (index) { + case kParamA: vst_strncpy (text, "eq", kVstMaxParamStrLen); break; + case kParamB: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamC: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamD: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamE: vst_strncpy (text, "freq", kVstMaxParamStrLen); break; + case kParamF: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamG: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamH: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamI: vst_strncpy (text, "dyn", kVstMaxParamStrLen); break; + case kParamJ: vst_strncpy (text, "", kVstMaxParamStrLen); break; + default: break; // unknown parameter, shouldn't happen! + } +} + +VstInt32 X2Buss::canDo(char *text) +{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know + +bool X2Buss::getEffectName(char* name) { + vst_strncpy(name, "X2Buss", kVstMaxProductStrLen); return true; +} + +VstPlugCategory X2Buss::getPlugCategory() {return kPlugCategEffect;} + +bool X2Buss::getProductString(char* text) { + vst_strncpy (text, "airwindows X2Buss", kVstMaxProductStrLen); return true; +} + +bool X2Buss::getVendorString(char* text) { + vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true; +} diff --git a/plugins/MacSignedVST/X2Buss/source/X2Buss.h b/plugins/MacSignedVST/X2Buss/source/X2Buss.h new file mode 100755 index 000000000..2a192358b --- /dev/null +++ b/plugins/MacSignedVST/X2Buss/source/X2Buss.h @@ -0,0 +1,154 @@ +/* ======================================== + * X2Buss - X2Buss.h + * Created 8/12/11 by SPIAdmin + * Copyright (c) Airwindows, Airwindows uses the MIT license + * ======================================== */ + +#ifndef __X2Buss_H +#define __X2Buss_H + +#ifndef __audioeffect__ +#include "audioeffectx.h" +#endif + +#include +#include +#include + +enum { + kParamA =0, + kParamB =1, + kParamC =2, + kParamD =3, + kParamE =4, + kParamF =5, + kParamG =6, + kParamH =7, + kParamI =8, + kParamJ =9, + kNumParameters = 10 +}; // + +const int kNumPrograms = 0; +const int kNumInputs = 2; +const int kNumOutputs = 2; +const unsigned long kUniqueId = 'x2bs'; //Change this to what the AU identity is! + +class X2Buss : + public AudioEffectX +{ +public: + X2Buss(audioMasterCallback audioMaster); + ~X2Buss(); + virtual bool getEffectName(char* name); // The plug-in name + virtual VstPlugCategory getPlugCategory(); // The general category for the plug-in + virtual bool getProductString(char* text); // This is a unique plug-in string provided by Steinberg + virtual bool getVendorString(char* text); // Vendor info + virtual VstInt32 getVendorVersion(); // Version number + virtual void processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames); + virtual void processDoubleReplacing (double** inputs, double** outputs, VstInt32 sampleFrames); + virtual void getProgramName(char *name); // read the name from the host + virtual void setProgramName(char *name); // changes the name of the preset displayed in the host + virtual VstInt32 getChunk (void** data, bool isPreset); + virtual VstInt32 setChunk (void* data, VstInt32 byteSize, bool isPreset); + virtual float getParameter(VstInt32 index); // get the parameter value at the specified index + virtual void setParameter(VstInt32 index, float value); // set the parameter at index to value + virtual void getParameterLabel(VstInt32 index, char *text); // label for the parameter (eg dB) + virtual void getParameterName(VstInt32 index, char *text); // name of the parameter + virtual void getParameterDisplay(VstInt32 index, char *text); // text description of the current value + virtual VstInt32 canDo(char *text); +private: + char _programName[kVstMaxProgNameLen + 1]; + std::set< std::string > _canDo; + + float A; + float B; + float C; + float D; + float E; + float F; + float G; + float H; + float I; + float J; + + 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 highA[biq_total]; + double highB[biq_total]; + double highC[biq_total]; + double highLIIR; + double highRIIR; + + double midA[biq_total]; + double midB[biq_total]; + double midC[biq_total]; + double midLIIR; + double midRIIR; + + double lowA[biq_total]; + double lowB[biq_total]; + double lowC[biq_total]; + double lowLIIR; + double lowRIIR; + //SmoothEQ2 + + enum { + bez_AL, + bez_BL, + bez_CL, + bez_InL, + bez_UnInL, + bez_SampL, + bez_AR, + bez_BR, + bez_CR, + bez_InR, + bez_UnInR, + bez_SampR, + bez_cycle, + bez_total + }; //the new undersampling. bez signifies the bezier curve reconstruction + double bezCompF[bez_total]; + double bezMaxF; + double bezCompS[bez_total]; + //Dynamics2 + + 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 diff --git a/plugins/MacSignedVST/X2Buss/source/X2BussProc.cpp b/plugins/MacSignedVST/X2Buss/source/X2BussProc.cpp new file mode 100755 index 000000000..d203aadb5 --- /dev/null +++ b/plugins/MacSignedVST/X2Buss/source/X2BussProc.cpp @@ -0,0 +1,915 @@ +/* ======================================== + * X2Buss - X2Buss.h + * Copyright (c) airwindows, Airwindows uses the MIT license + * ======================================== */ + +#ifndef __X2Buss_H +#include "X2Buss.h" +#endif + +void X2Buss::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 = (A-0.5)*2.0; + trebleGain = 1.0+(trebleGain*fabs(trebleGain)*fabs(trebleGain)); + double highmidGain = (B-0.5)*2.0; + highmidGain = 1.0+(highmidGain*fabs(highmidGain)*fabs(highmidGain)); + double lowmidGain = (C-0.5)*2.0; + lowmidGain = 1.0+(lowmidGain*fabs(lowmidGain)*fabs(lowmidGain)); + double bassGain = (D-0.5)*2.0; + bassGain = 1.0+(bassGain*fabs(bassGain)*fabs(bassGain)); + + double trebleRef = E-0.5; + double highmidRef = F-0.5; + double lowmidRef = G-0.5; + double bassRef = H-0.5; + double highF = 0.75 + ((trebleRef+trebleRef+trebleRef+highmidRef)*0.125); + double bassF = 0.25 + ((lowmidRef+bassRef+bassRef+bassRef)*0.125); + double midF = (highF*0.5) + (bassF*0.5) + ((highmidRef+lowmidRef)*0.125); + + double highQ = fmax(fmin(1.0+(highmidRef-trebleRef),4.0),0.125); + double midQ = fmax(fmin(1.0+(lowmidRef-highmidRef),4.0),0.125); + double lowQ = fmax(fmin(1.0+(bassRef-lowmidRef),4.0),0.125); + + highA[biq_freq] = ((pow(highF,3)*20000.0)/getSampleRate()); + highC[biq_freq] = highB[biq_freq] = highA[biq_freq] = fmax(fmin(highA[biq_freq],0.4999),0.00025); + double highFreq = pow(highF,3)*20000.0; + double omega = 2.0*M_PI*(highFreq/getSampleRate()); + double biqK = 2.0-cos(omega); + double highCoef = -sqrt((biqK*biqK)-1.0)+biqK; + highA[biq_reso] = 2.24697960 * highQ; + highB[biq_reso] = 0.80193774 * highQ; + highC[biq_reso] = 0.55495813 * highQ; + + midA[biq_freq] = ((pow(midF,3)*20000.0)/getSampleRate()); + midC[biq_freq] = midB[biq_freq] = midA[biq_freq] = fmax(fmin(midA[biq_freq],0.4999),0.00025); + double midFreq = pow(midF,3)*20000.0; + omega = 2.0*M_PI*(midFreq/getSampleRate()); + biqK = 2.0-cos(omega); + double midCoef = -sqrt((biqK*biqK)-1.0)+biqK; + midA[biq_reso] = 2.24697960 * midQ; + midB[biq_reso] = 0.80193774 * midQ; + midC[biq_reso] = 0.55495813 * midQ; + + lowA[biq_freq] = ((pow(bassF,3)*20000.0)/getSampleRate()); + lowC[biq_freq] = lowB[biq_freq] = lowA[biq_freq] = fmax(fmin(lowA[biq_freq],0.4999),0.00025); + double lowFreq = pow(bassF,3)*20000.0; + omega = 2.0*M_PI*(lowFreq/getSampleRate()); + biqK = 2.0-cos(omega); + double lowCoef = -sqrt((biqK*biqK)-1.0)+biqK; + lowA[biq_reso] = 2.24697960 * lowQ; + lowB[biq_reso] = 0.80193774 * lowQ; + lowC[biq_reso] = 0.55495813 * lowQ; + + biqK = tan(M_PI * highA[biq_freq]); + double norm = 1.0 / (1.0 + biqK / highA[biq_reso] + biqK * biqK); + highA[biq_a0] = biqK * biqK * norm; + highA[biq_a1] = 2.0 * highA[biq_a0]; + highA[biq_a2] = highA[biq_a0]; + highA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highA[biq_b2] = (1.0 - biqK / highA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highB[biq_freq]); + norm = 1.0 / (1.0 + biqK / highB[biq_reso] + biqK * biqK); + highB[biq_a0] = biqK * biqK * norm; + highB[biq_a1] = 2.0 * highB[biq_a0]; + highB[biq_a2] = highB[biq_a0]; + highB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highB[biq_b2] = (1.0 - biqK / highB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highC[biq_freq]); + norm = 1.0 / (1.0 + biqK / highC[biq_reso] + biqK * biqK); + highC[biq_a0] = biqK * biqK * norm; + highC[biq_a1] = 2.0 * highC[biq_a0]; + highC[biq_a2] = highC[biq_a0]; + highC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highC[biq_b2] = (1.0 - biqK / highC[biq_reso] + biqK * biqK) * norm; + + biqK = tan(M_PI * midA[biq_freq]); + norm = 1.0 / (1.0 + biqK / midA[biq_reso] + biqK * biqK); + midA[biq_a0] = biqK * biqK * norm; + midA[biq_a1] = 2.0 * midA[biq_a0]; + midA[biq_a2] = midA[biq_a0]; + midA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midA[biq_b2] = (1.0 - biqK / midA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midB[biq_freq]); + norm = 1.0 / (1.0 + biqK / midB[biq_reso] + biqK * biqK); + midB[biq_a0] = biqK * biqK * norm; + midB[biq_a1] = 2.0 * midB[biq_a0]; + midB[biq_a2] = midB[biq_a0]; + midB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midB[biq_b2] = (1.0 - biqK / midB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midC[biq_freq]); + norm = 1.0 / (1.0 + biqK / midC[biq_reso] + biqK * biqK); + midC[biq_a0] = biqK * biqK * norm; + midC[biq_a1] = 2.0 * midC[biq_a0]; + midC[biq_a2] = midC[biq_a0]; + midC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midC[biq_b2] = (1.0 - biqK / midC[biq_reso] + biqK * biqK) * norm; + + biqK = tan(M_PI * lowA[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowA[biq_reso] + biqK * biqK); + lowA[biq_a0] = biqK * biqK * norm; + lowA[biq_a1] = 2.0 * lowA[biq_a0]; + lowA[biq_a2] = lowA[biq_a0]; + lowA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowA[biq_b2] = (1.0 - biqK / lowA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowB[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowB[biq_reso] + biqK * biqK); + lowB[biq_a0] = biqK * biqK * norm; + lowB[biq_a1] = 2.0 * lowB[biq_a0]; + lowB[biq_a2] = lowB[biq_a0]; + lowB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowB[biq_b2] = (1.0 - biqK / lowB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowC[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowC[biq_reso] + biqK * biqK); + lowC[biq_a0] = biqK * biqK * norm; + lowC[biq_a1] = 2.0 * lowC[biq_a0]; + lowC[biq_a2] = lowC[biq_a0]; + lowC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowC[biq_b2] = (1.0 - biqK / lowC[biq_reso] + biqK * biqK) * norm; + //SmoothEQ2 + + double bezCThresh = pow(1.0-I, 6.0) * 8.0; + double bezRez = pow(1.0-I, 12.360679774997898) / overallscale; + double sloRez = pow(1.0-I,10.0) / overallscale; + sloRez = fmin(fmax(sloRez,0.00001),1.0); + bezRez = fmin(fmax(bezRez,0.00001),1.0); + //Dynamics2 + + inTrimA = inTrimB; inTrimB = J*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; + + 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)); + + double trebleL = inputSampleL; + double outSample = (trebleL * highA[biq_a0]) + highA[biq_sL1]; + highA[biq_sL1] = (trebleL * highA[biq_a1]) - (outSample * highA[biq_b1]) + highA[biq_sL2]; + highA[biq_sL2] = (trebleL * highA[biq_a2]) - (outSample * highA[biq_b2]); + double highmidL = outSample; trebleL -= highmidL; + + outSample = (highmidL * midA[biq_a0]) + midA[biq_sL1]; + midA[biq_sL1] = (highmidL * midA[biq_a1]) - (outSample * midA[biq_b1]) + midA[biq_sL2]; + midA[biq_sL2] = (highmidL * midA[biq_a2]) - (outSample * midA[biq_b2]); + double lowmidL = outSample; highmidL -= lowmidL; + + outSample = (lowmidL * lowA[biq_a0]) + lowA[biq_sL1]; + lowA[biq_sL1] = (lowmidL * lowA[biq_a1]) - (outSample * lowA[biq_b1]) + lowA[biq_sL2]; + lowA[biq_sL2] = (lowmidL * lowA[biq_a2]) - (outSample * lowA[biq_b2]); + double bassL = outSample; lowmidL -= bassL; + + trebleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain); + //first stage of three crossovers + + outSample = (trebleL * highB[biq_a0]) + highB[biq_sL1]; + highB[biq_sL1] = (trebleL * highB[biq_a1]) - (outSample * highB[biq_b1]) + highB[biq_sL2]; + highB[biq_sL2] = (trebleL * highB[biq_a2]) - (outSample * highB[biq_b2]); + highmidL = outSample; trebleL -= highmidL; + + outSample = (highmidL * midB[biq_a0]) + midB[biq_sL1]; + midB[biq_sL1] = (highmidL * midB[biq_a1]) - (outSample * midB[biq_b1]) + midB[biq_sL2]; + midB[biq_sL2] = (highmidL * midB[biq_a2]) - (outSample * midB[biq_b2]); + lowmidL = outSample; highmidL -= lowmidL; + + outSample = (lowmidL * lowB[biq_a0]) + lowB[biq_sL1]; + lowB[biq_sL1] = (lowmidL * lowB[biq_a1]) - (outSample * lowB[biq_b1]) + lowB[biq_sL2]; + lowB[biq_sL2] = (lowmidL * lowB[biq_a2]) - (outSample * lowB[biq_b2]); + bassL = outSample; lowmidL -= bassL; + + trebleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain); + //second stage of three crossovers + + outSample = (trebleL * highC[biq_a0]) + highC[biq_sL1]; + highC[biq_sL1] = (trebleL * highC[biq_a1]) - (outSample * highC[biq_b1]) + highC[biq_sL2]; + highC[biq_sL2] = (trebleL * highC[biq_a2]) - (outSample * highC[biq_b2]); + highmidL = outSample; trebleL -= highmidL; + + outSample = (highmidL * midC[biq_a0]) + midC[biq_sL1]; + midC[biq_sL1] = (highmidL * midC[biq_a1]) - (outSample * midC[biq_b1]) + midC[biq_sL2]; + midC[biq_sL2] = (highmidL * midC[biq_a2]) - (outSample * midC[biq_b2]); + lowmidL = outSample; highmidL -= lowmidL; + + outSample = (lowmidL * lowC[biq_a0]) + lowC[biq_sL1]; + lowC[biq_sL1] = (lowmidL * lowC[biq_a1]) - (outSample * lowC[biq_b1]) + lowC[biq_sL2]; + lowC[biq_sL2] = (lowmidL * lowC[biq_a2]) - (outSample * lowC[biq_b2]); + bassL = outSample; lowmidL -= bassL; + + trebleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain); + //third stage of three crossovers + + highLIIR = (highLIIR*highCoef) + (trebleL*(1.0-highCoef)); + highmidL = highLIIR; trebleL -= highmidL; + + midLIIR = (midLIIR*midCoef) + (highmidL*(1.0-midCoef)); + lowmidL = midLIIR; highmidL -= lowmidL; + + lowLIIR = (lowLIIR*lowCoef) + (lowmidL*(1.0-lowCoef)); + bassL = lowLIIR; lowmidL -= bassL; + + inputSampleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain); + //fourth stage of three crossovers is the exponential filters + + + double trebleR = inputSampleR; + outSample = (trebleR * highA[biq_a0]) + highA[biq_sR1]; + highA[biq_sR1] = (trebleR * highA[biq_a1]) - (outSample * highA[biq_b1]) + highA[biq_sR2]; + highA[biq_sR2] = (trebleR * highA[biq_a2]) - (outSample * highA[biq_b2]); + double highmidR = outSample; trebleR -= highmidR; + + outSample = (highmidR * midA[biq_a0]) + midA[biq_sR1]; + midA[biq_sR1] = (highmidR * midA[biq_a1]) - (outSample * midA[biq_b1]) + midA[biq_sR2]; + midA[biq_sR2] = (highmidR * midA[biq_a2]) - (outSample * midA[biq_b2]); + double lowmidR = outSample; highmidR -= lowmidR; + + outSample = (lowmidR * lowA[biq_a0]) + lowA[biq_sR1]; + lowA[biq_sR1] = (lowmidR * lowA[biq_a1]) - (outSample * lowA[biq_b1]) + lowA[biq_sR2]; + lowA[biq_sR2] = (lowmidR * lowA[biq_a2]) - (outSample * lowA[biq_b2]); + double bassR = outSample; lowmidR -= bassR; + + trebleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain); + //first stage of three crossovers + + outSample = (trebleR * highB[biq_a0]) + highB[biq_sR1]; + highB[biq_sR1] = (trebleR * highB[biq_a1]) - (outSample * highB[biq_b1]) + highB[biq_sR2]; + highB[biq_sR2] = (trebleR * highB[biq_a2]) - (outSample * highB[biq_b2]); + highmidR = outSample; trebleR -= highmidR; + + outSample = (highmidR * midB[biq_a0]) + midB[biq_sR1]; + midB[biq_sR1] = (highmidR * midB[biq_a1]) - (outSample * midB[biq_b1]) + midB[biq_sR2]; + midB[biq_sR2] = (highmidR * midB[biq_a2]) - (outSample * midB[biq_b2]); + lowmidR = outSample; highmidR -= lowmidR; + + outSample = (lowmidR * lowB[biq_a0]) + lowB[biq_sR1]; + lowB[biq_sR1] = (lowmidR * lowB[biq_a1]) - (outSample * lowB[biq_b1]) + lowB[biq_sR2]; + lowB[biq_sR2] = (lowmidR * lowB[biq_a2]) - (outSample * lowB[biq_b2]); + bassR = outSample; lowmidR -= bassR; + + trebleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain); + //second stage of three crossovers + + outSample = (trebleR * highC[biq_a0]) + highC[biq_sR1]; + highC[biq_sR1] = (trebleR * highC[biq_a1]) - (outSample * highC[biq_b1]) + highC[biq_sR2]; + highC[biq_sR2] = (trebleR * highC[biq_a2]) - (outSample * highC[biq_b2]); + highmidR = outSample; trebleR -= highmidR; + + outSample = (highmidR * midC[biq_a0]) + midC[biq_sR1]; + midC[biq_sR1] = (highmidR * midC[biq_a1]) - (outSample * midC[biq_b1]) + midC[biq_sR2]; + midC[biq_sR2] = (highmidR * midC[biq_a2]) - (outSample * midC[biq_b2]); + lowmidR = outSample; highmidR -= lowmidR; + + outSample = (lowmidR * lowC[biq_a0]) + lowC[biq_sR1]; + lowC[biq_sR1] = (lowmidR * lowC[biq_a1]) - (outSample * lowC[biq_b1]) + lowC[biq_sR2]; + lowC[biq_sR2] = (lowmidR * lowC[biq_a2]) - (outSample * lowC[biq_b2]); + bassR = outSample; lowmidR -= bassR; + + trebleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain); + //third stage of three crossovers + + highRIIR = (highRIIR*highCoef) + (trebleR*(1.0-highCoef)); + highmidR = highRIIR; trebleR -= highmidR; + + midRIIR = (midRIIR*midCoef) + (highmidR*(1.0-midCoef)); + lowmidR = midRIIR; highmidR -= lowmidR; + + lowRIIR = (lowRIIR*lowCoef) + (lowmidR*(1.0-lowCoef)); + bassR = lowRIIR; lowmidR -= bassR; + + inputSampleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain); + //fourth stage of three crossovers is the exponential filters + //SmoothEQ2 + + if (bezCThresh > 0.0) { + inputSampleL *= ((bezCThresh*0.5)+1.0); + inputSampleR *= ((bezCThresh*0.5)+1.0); + } + + bezCompF[bez_cycle] += bezRez; + bezCompF[bez_SampL] += (fabs(inputSampleL) * bezRez); + bezCompF[bez_SampR] += (fabs(inputSampleR) * bezRez); + bezMaxF = fmax(bezMaxF,fmax(fabs(inputSampleL),fabs(inputSampleR))); + + if (bezCompF[bez_cycle] > 1.0) { + bezCompF[bez_cycle] -= 1.0; + bezCompF[bez_CL] = bezCompF[bez_BL]; + bezCompF[bez_BL] = bezCompF[bez_AL]; + bezCompF[bez_AL] = bezCompF[bez_SampL]; + bezCompF[bez_SampL] = 0.0; + bezCompF[bez_CR] = bezCompF[bez_BR]; + bezCompF[bez_BR] = bezCompF[bez_AR]; + bezCompF[bez_AR] = bezCompF[bez_SampR]; + bezCompF[bez_SampR] = 0.0; + bezMaxF = 0.0; + } + bezCompS[bez_cycle] += sloRez; + bezCompS[bez_SampL] += (fabs(inputSampleL) * sloRez); //note: SampL is a control voltage + bezCompS[bez_SampR] += (fabs(inputSampleR) * sloRez); //note: SampR is a control voltage + if (bezCompS[bez_cycle] > 1.0) { + bezCompS[bez_cycle] -= 1.0; + bezCompS[bez_CL] = bezCompS[bez_BL]; + bezCompS[bez_BL] = bezCompS[bez_AL]; + bezCompS[bez_AL] = bezCompS[bez_SampL]; + bezCompS[bez_SampL] = 0.0; + bezCompS[bez_CR] = bezCompS[bez_BR]; + bezCompS[bez_BR] = bezCompS[bez_AR]; + bezCompS[bez_AR] = bezCompS[bez_SampR]; + bezCompS[bez_SampR] = 0.0; + } + double CBFL = (bezCompF[bez_CL]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_BL]*bezCompF[bez_cycle]); + double BAFL = (bezCompF[bez_BL]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_AL]*bezCompF[bez_cycle]); + double CBAFL = (bezCompF[bez_BL]+(CBFL*(1.0-bezCompF[bez_cycle]))+(BAFL*bezCompF[bez_cycle]))*0.5; + double CBSL = (bezCompS[bez_CL]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_BL]*bezCompS[bez_cycle]); + double BASL = (bezCompS[bez_BL]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_AL]*bezCompS[bez_cycle]); + double CBASL = (bezCompS[bez_BL]+(CBSL*(1.0-bezCompS[bez_cycle]))+(BASL*bezCompS[bez_cycle]))*0.5; + double CBAMax = fmax(CBASL,CBAFL); if (CBAMax > 0.0) CBAMax = 1.0/CBAMax; + double CBAFade = ((CBASL*-CBAMax)+(CBAFL*CBAMax)+1.0)*0.5; + if (bezCThresh > 0.0) inputSampleL *= 1.0-(fmin(((CBASL*(1.0-CBAFade))+(CBAFL*CBAFade))*bezCThresh,1.0)); + + double CBFR = (bezCompF[bez_CR]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_BR]*bezCompF[bez_cycle]); + double BAFR = (bezCompF[bez_BR]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_AR]*bezCompF[bez_cycle]); + double CBAFR = (bezCompF[bez_BR]+(CBFR*(1.0-bezCompF[bez_cycle]))+(BAFR*bezCompF[bez_cycle]))*0.5; + double CBSR = (bezCompS[bez_CR]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_BR]*bezCompS[bez_cycle]); + double BASR = (bezCompS[bez_BR]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_AR]*bezCompS[bez_cycle]); + double CBASR = (bezCompS[bez_BR]+(CBSR*(1.0-bezCompS[bez_cycle]))+(BASR*bezCompS[bez_cycle]))*0.5; + CBAMax = fmax(CBASR,CBAFR); if (CBAMax > 0.0) CBAMax = 1.0/CBAMax; + CBAFade = ((CBASR*-CBAMax)+(CBAFR*CBAMax)+1.0)*0.5; + if (bezCThresh > 0.0) inputSampleR *= 1.0-(fmin(((CBASR*(1.0-CBAFade))+(CBAFR*CBAFade))*bezCThresh,1.0)); + //Dynamics2 + + const double temp = (double)sampleFrames/inFramesToProcess; + 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 * gain; + inputSampleR = inputSampleR * 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 X2Buss::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 = (A-0.5)*2.0; + trebleGain = 1.0+(trebleGain*fabs(trebleGain)*fabs(trebleGain)); + double highmidGain = (B-0.5)*2.0; + highmidGain = 1.0+(highmidGain*fabs(highmidGain)*fabs(highmidGain)); + double lowmidGain = (C-0.5)*2.0; + lowmidGain = 1.0+(lowmidGain*fabs(lowmidGain)*fabs(lowmidGain)); + double bassGain = (D-0.5)*2.0; + bassGain = 1.0+(bassGain*fabs(bassGain)*fabs(bassGain)); + + double trebleRef = E-0.5; + double highmidRef = F-0.5; + double lowmidRef = G-0.5; + double bassRef = H-0.5; + double highF = 0.75 + ((trebleRef+trebleRef+trebleRef+highmidRef)*0.125); + double bassF = 0.25 + ((lowmidRef+bassRef+bassRef+bassRef)*0.125); + double midF = (highF*0.5) + (bassF*0.5) + ((highmidRef+lowmidRef)*0.125); + + double highQ = fmax(fmin(1.0+(highmidRef-trebleRef),4.0),0.125); + double midQ = fmax(fmin(1.0+(lowmidRef-highmidRef),4.0),0.125); + double lowQ = fmax(fmin(1.0+(bassRef-lowmidRef),4.0),0.125); + + highA[biq_freq] = ((pow(highF,3)*20000.0)/getSampleRate()); + highC[biq_freq] = highB[biq_freq] = highA[biq_freq] = fmax(fmin(highA[biq_freq],0.4999),0.00025); + double highFreq = pow(highF,3)*20000.0; + double omega = 2.0*M_PI*(highFreq/getSampleRate()); + double biqK = 2.0-cos(omega); + double highCoef = -sqrt((biqK*biqK)-1.0)+biqK; + highA[biq_reso] = 2.24697960 * highQ; + highB[biq_reso] = 0.80193774 * highQ; + highC[biq_reso] = 0.55495813 * highQ; + + midA[biq_freq] = ((pow(midF,3)*20000.0)/getSampleRate()); + midC[biq_freq] = midB[biq_freq] = midA[biq_freq] = fmax(fmin(midA[biq_freq],0.4999),0.00025); + double midFreq = pow(midF,3)*20000.0; + omega = 2.0*M_PI*(midFreq/getSampleRate()); + biqK = 2.0-cos(omega); + double midCoef = -sqrt((biqK*biqK)-1.0)+biqK; + midA[biq_reso] = 2.24697960 * midQ; + midB[biq_reso] = 0.80193774 * midQ; + midC[biq_reso] = 0.55495813 * midQ; + + lowA[biq_freq] = ((pow(bassF,3)*20000.0)/getSampleRate()); + lowC[biq_freq] = lowB[biq_freq] = lowA[biq_freq] = fmax(fmin(lowA[biq_freq],0.4999),0.00025); + double lowFreq = pow(bassF,3)*20000.0; + omega = 2.0*M_PI*(lowFreq/getSampleRate()); + biqK = 2.0-cos(omega); + double lowCoef = -sqrt((biqK*biqK)-1.0)+biqK; + lowA[biq_reso] = 2.24697960 * lowQ; + lowB[biq_reso] = 0.80193774 * lowQ; + lowC[biq_reso] = 0.55495813 * lowQ; + + biqK = tan(M_PI * highA[biq_freq]); + double norm = 1.0 / (1.0 + biqK / highA[biq_reso] + biqK * biqK); + highA[biq_a0] = biqK * biqK * norm; + highA[biq_a1] = 2.0 * highA[biq_a0]; + highA[biq_a2] = highA[biq_a0]; + highA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highA[biq_b2] = (1.0 - biqK / highA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highB[biq_freq]); + norm = 1.0 / (1.0 + biqK / highB[biq_reso] + biqK * biqK); + highB[biq_a0] = biqK * biqK * norm; + highB[biq_a1] = 2.0 * highB[biq_a0]; + highB[biq_a2] = highB[biq_a0]; + highB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highB[biq_b2] = (1.0 - biqK / highB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highC[biq_freq]); + norm = 1.0 / (1.0 + biqK / highC[biq_reso] + biqK * biqK); + highC[biq_a0] = biqK * biqK * norm; + highC[biq_a1] = 2.0 * highC[biq_a0]; + highC[biq_a2] = highC[biq_a0]; + highC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highC[biq_b2] = (1.0 - biqK / highC[biq_reso] + biqK * biqK) * norm; + + biqK = tan(M_PI * midA[biq_freq]); + norm = 1.0 / (1.0 + biqK / midA[biq_reso] + biqK * biqK); + midA[biq_a0] = biqK * biqK * norm; + midA[biq_a1] = 2.0 * midA[biq_a0]; + midA[biq_a2] = midA[biq_a0]; + midA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midA[biq_b2] = (1.0 - biqK / midA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midB[biq_freq]); + norm = 1.0 / (1.0 + biqK / midB[biq_reso] + biqK * biqK); + midB[biq_a0] = biqK * biqK * norm; + midB[biq_a1] = 2.0 * midB[biq_a0]; + midB[biq_a2] = midB[biq_a0]; + midB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midB[biq_b2] = (1.0 - biqK / midB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midC[biq_freq]); + norm = 1.0 / (1.0 + biqK / midC[biq_reso] + biqK * biqK); + midC[biq_a0] = biqK * biqK * norm; + midC[biq_a1] = 2.0 * midC[biq_a0]; + midC[biq_a2] = midC[biq_a0]; + midC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midC[biq_b2] = (1.0 - biqK / midC[biq_reso] + biqK * biqK) * norm; + + biqK = tan(M_PI * lowA[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowA[biq_reso] + biqK * biqK); + lowA[biq_a0] = biqK * biqK * norm; + lowA[biq_a1] = 2.0 * lowA[biq_a0]; + lowA[biq_a2] = lowA[biq_a0]; + lowA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowA[biq_b2] = (1.0 - biqK / lowA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowB[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowB[biq_reso] + biqK * biqK); + lowB[biq_a0] = biqK * biqK * norm; + lowB[biq_a1] = 2.0 * lowB[biq_a0]; + lowB[biq_a2] = lowB[biq_a0]; + lowB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowB[biq_b2] = (1.0 - biqK / lowB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowC[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowC[biq_reso] + biqK * biqK); + lowC[biq_a0] = biqK * biqK * norm; + lowC[biq_a1] = 2.0 * lowC[biq_a0]; + lowC[biq_a2] = lowC[biq_a0]; + lowC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowC[biq_b2] = (1.0 - biqK / lowC[biq_reso] + biqK * biqK) * norm; + //SmoothEQ2 + + double bezCThresh = pow(1.0-I, 6.0) * 8.0; + double bezRez = pow(1.0-I, 12.360679774997898) / overallscale; + double sloRez = pow(1.0-I,10.0) / overallscale; + sloRez = fmin(fmax(sloRez,0.00001),1.0); + bezRez = fmin(fmax(bezRez,0.00001),1.0); + //Dynamics2 + + inTrimA = inTrimB; inTrimB = J*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; + + 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)); + + double trebleL = inputSampleL; + double outSample = (trebleL * highA[biq_a0]) + highA[biq_sL1]; + highA[biq_sL1] = (trebleL * highA[biq_a1]) - (outSample * highA[biq_b1]) + highA[biq_sL2]; + highA[biq_sL2] = (trebleL * highA[biq_a2]) - (outSample * highA[biq_b2]); + double highmidL = outSample; trebleL -= highmidL; + + outSample = (highmidL * midA[biq_a0]) + midA[biq_sL1]; + midA[biq_sL1] = (highmidL * midA[biq_a1]) - (outSample * midA[biq_b1]) + midA[biq_sL2]; + midA[biq_sL2] = (highmidL * midA[biq_a2]) - (outSample * midA[biq_b2]); + double lowmidL = outSample; highmidL -= lowmidL; + + outSample = (lowmidL * lowA[biq_a0]) + lowA[biq_sL1]; + lowA[biq_sL1] = (lowmidL * lowA[biq_a1]) - (outSample * lowA[biq_b1]) + lowA[biq_sL2]; + lowA[biq_sL2] = (lowmidL * lowA[biq_a2]) - (outSample * lowA[biq_b2]); + double bassL = outSample; lowmidL -= bassL; + + trebleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain); + //first stage of three crossovers + + outSample = (trebleL * highB[biq_a0]) + highB[biq_sL1]; + highB[biq_sL1] = (trebleL * highB[biq_a1]) - (outSample * highB[biq_b1]) + highB[biq_sL2]; + highB[biq_sL2] = (trebleL * highB[biq_a2]) - (outSample * highB[biq_b2]); + highmidL = outSample; trebleL -= highmidL; + + outSample = (highmidL * midB[biq_a0]) + midB[biq_sL1]; + midB[biq_sL1] = (highmidL * midB[biq_a1]) - (outSample * midB[biq_b1]) + midB[biq_sL2]; + midB[biq_sL2] = (highmidL * midB[biq_a2]) - (outSample * midB[biq_b2]); + lowmidL = outSample; highmidL -= lowmidL; + + outSample = (lowmidL * lowB[biq_a0]) + lowB[biq_sL1]; + lowB[biq_sL1] = (lowmidL * lowB[biq_a1]) - (outSample * lowB[biq_b1]) + lowB[biq_sL2]; + lowB[biq_sL2] = (lowmidL * lowB[biq_a2]) - (outSample * lowB[biq_b2]); + bassL = outSample; lowmidL -= bassL; + + trebleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain); + //second stage of three crossovers + + outSample = (trebleL * highC[biq_a0]) + highC[biq_sL1]; + highC[biq_sL1] = (trebleL * highC[biq_a1]) - (outSample * highC[biq_b1]) + highC[biq_sL2]; + highC[biq_sL2] = (trebleL * highC[biq_a2]) - (outSample * highC[biq_b2]); + highmidL = outSample; trebleL -= highmidL; + + outSample = (highmidL * midC[biq_a0]) + midC[biq_sL1]; + midC[biq_sL1] = (highmidL * midC[biq_a1]) - (outSample * midC[biq_b1]) + midC[biq_sL2]; + midC[biq_sL2] = (highmidL * midC[biq_a2]) - (outSample * midC[biq_b2]); + lowmidL = outSample; highmidL -= lowmidL; + + outSample = (lowmidL * lowC[biq_a0]) + lowC[biq_sL1]; + lowC[biq_sL1] = (lowmidL * lowC[biq_a1]) - (outSample * lowC[biq_b1]) + lowC[biq_sL2]; + lowC[biq_sL2] = (lowmidL * lowC[biq_a2]) - (outSample * lowC[biq_b2]); + bassL = outSample; lowmidL -= bassL; + + trebleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain); + //third stage of three crossovers + + highLIIR = (highLIIR*highCoef) + (trebleL*(1.0-highCoef)); + highmidL = highLIIR; trebleL -= highmidL; + + midLIIR = (midLIIR*midCoef) + (highmidL*(1.0-midCoef)); + lowmidL = midLIIR; highmidL -= lowmidL; + + lowLIIR = (lowLIIR*lowCoef) + (lowmidL*(1.0-lowCoef)); + bassL = lowLIIR; lowmidL -= bassL; + + inputSampleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain); + //fourth stage of three crossovers is the exponential filters + + + double trebleR = inputSampleR; + outSample = (trebleR * highA[biq_a0]) + highA[biq_sR1]; + highA[biq_sR1] = (trebleR * highA[biq_a1]) - (outSample * highA[biq_b1]) + highA[biq_sR2]; + highA[biq_sR2] = (trebleR * highA[biq_a2]) - (outSample * highA[biq_b2]); + double highmidR = outSample; trebleR -= highmidR; + + outSample = (highmidR * midA[biq_a0]) + midA[biq_sR1]; + midA[biq_sR1] = (highmidR * midA[biq_a1]) - (outSample * midA[biq_b1]) + midA[biq_sR2]; + midA[biq_sR2] = (highmidR * midA[biq_a2]) - (outSample * midA[biq_b2]); + double lowmidR = outSample; highmidR -= lowmidR; + + outSample = (lowmidR * lowA[biq_a0]) + lowA[biq_sR1]; + lowA[biq_sR1] = (lowmidR * lowA[biq_a1]) - (outSample * lowA[biq_b1]) + lowA[biq_sR2]; + lowA[biq_sR2] = (lowmidR * lowA[biq_a2]) - (outSample * lowA[biq_b2]); + double bassR = outSample; lowmidR -= bassR; + + trebleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain); + //first stage of three crossovers + + outSample = (trebleR * highB[biq_a0]) + highB[biq_sR1]; + highB[biq_sR1] = (trebleR * highB[biq_a1]) - (outSample * highB[biq_b1]) + highB[biq_sR2]; + highB[biq_sR2] = (trebleR * highB[biq_a2]) - (outSample * highB[biq_b2]); + highmidR = outSample; trebleR -= highmidR; + + outSample = (highmidR * midB[biq_a0]) + midB[biq_sR1]; + midB[biq_sR1] = (highmidR * midB[biq_a1]) - (outSample * midB[biq_b1]) + midB[biq_sR2]; + midB[biq_sR2] = (highmidR * midB[biq_a2]) - (outSample * midB[biq_b2]); + lowmidR = outSample; highmidR -= lowmidR; + + outSample = (lowmidR * lowB[biq_a0]) + lowB[biq_sR1]; + lowB[biq_sR1] = (lowmidR * lowB[biq_a1]) - (outSample * lowB[biq_b1]) + lowB[biq_sR2]; + lowB[biq_sR2] = (lowmidR * lowB[biq_a2]) - (outSample * lowB[biq_b2]); + bassR = outSample; lowmidR -= bassR; + + trebleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain); + //second stage of three crossovers + + outSample = (trebleR * highC[biq_a0]) + highC[biq_sR1]; + highC[biq_sR1] = (trebleR * highC[biq_a1]) - (outSample * highC[biq_b1]) + highC[biq_sR2]; + highC[biq_sR2] = (trebleR * highC[biq_a2]) - (outSample * highC[biq_b2]); + highmidR = outSample; trebleR -= highmidR; + + outSample = (highmidR * midC[biq_a0]) + midC[biq_sR1]; + midC[biq_sR1] = (highmidR * midC[biq_a1]) - (outSample * midC[biq_b1]) + midC[biq_sR2]; + midC[biq_sR2] = (highmidR * midC[biq_a2]) - (outSample * midC[biq_b2]); + lowmidR = outSample; highmidR -= lowmidR; + + outSample = (lowmidR * lowC[biq_a0]) + lowC[biq_sR1]; + lowC[biq_sR1] = (lowmidR * lowC[biq_a1]) - (outSample * lowC[biq_b1]) + lowC[biq_sR2]; + lowC[biq_sR2] = (lowmidR * lowC[biq_a2]) - (outSample * lowC[biq_b2]); + bassR = outSample; lowmidR -= bassR; + + trebleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain); + //third stage of three crossovers + + highRIIR = (highRIIR*highCoef) + (trebleR*(1.0-highCoef)); + highmidR = highRIIR; trebleR -= highmidR; + + midRIIR = (midRIIR*midCoef) + (highmidR*(1.0-midCoef)); + lowmidR = midRIIR; highmidR -= lowmidR; + + lowRIIR = (lowRIIR*lowCoef) + (lowmidR*(1.0-lowCoef)); + bassR = lowRIIR; lowmidR -= bassR; + + inputSampleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain); + //fourth stage of three crossovers is the exponential filters + //SmoothEQ2 + + if (bezCThresh > 0.0) { + inputSampleL *= ((bezCThresh*0.5)+1.0); + inputSampleR *= ((bezCThresh*0.5)+1.0); + } + + bezCompF[bez_cycle] += bezRez; + bezCompF[bez_SampL] += (fabs(inputSampleL) * bezRez); + bezCompF[bez_SampR] += (fabs(inputSampleR) * bezRez); + bezMaxF = fmax(bezMaxF,fmax(fabs(inputSampleL),fabs(inputSampleR))); + + if (bezCompF[bez_cycle] > 1.0) { + bezCompF[bez_cycle] -= 1.0; + bezCompF[bez_CL] = bezCompF[bez_BL]; + bezCompF[bez_BL] = bezCompF[bez_AL]; + bezCompF[bez_AL] = bezCompF[bez_SampL]; + bezCompF[bez_SampL] = 0.0; + bezCompF[bez_CR] = bezCompF[bez_BR]; + bezCompF[bez_BR] = bezCompF[bez_AR]; + bezCompF[bez_AR] = bezCompF[bez_SampR]; + bezCompF[bez_SampR] = 0.0; + bezMaxF = 0.0; + } + bezCompS[bez_cycle] += sloRez; + bezCompS[bez_SampL] += (fabs(inputSampleL) * sloRez); //note: SampL is a control voltage + bezCompS[bez_SampR] += (fabs(inputSampleR) * sloRez); //note: SampR is a control voltage + if (bezCompS[bez_cycle] > 1.0) { + bezCompS[bez_cycle] -= 1.0; + bezCompS[bez_CL] = bezCompS[bez_BL]; + bezCompS[bez_BL] = bezCompS[bez_AL]; + bezCompS[bez_AL] = bezCompS[bez_SampL]; + bezCompS[bez_SampL] = 0.0; + bezCompS[bez_CR] = bezCompS[bez_BR]; + bezCompS[bez_BR] = bezCompS[bez_AR]; + bezCompS[bez_AR] = bezCompS[bez_SampR]; + bezCompS[bez_SampR] = 0.0; + } + double CBFL = (bezCompF[bez_CL]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_BL]*bezCompF[bez_cycle]); + double BAFL = (bezCompF[bez_BL]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_AL]*bezCompF[bez_cycle]); + double CBAFL = (bezCompF[bez_BL]+(CBFL*(1.0-bezCompF[bez_cycle]))+(BAFL*bezCompF[bez_cycle]))*0.5; + double CBSL = (bezCompS[bez_CL]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_BL]*bezCompS[bez_cycle]); + double BASL = (bezCompS[bez_BL]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_AL]*bezCompS[bez_cycle]); + double CBASL = (bezCompS[bez_BL]+(CBSL*(1.0-bezCompS[bez_cycle]))+(BASL*bezCompS[bez_cycle]))*0.5; + double CBAMax = fmax(CBASL,CBAFL); if (CBAMax > 0.0) CBAMax = 1.0/CBAMax; + double CBAFade = ((CBASL*-CBAMax)+(CBAFL*CBAMax)+1.0)*0.5; + if (bezCThresh > 0.0) inputSampleL *= 1.0-(fmin(((CBASL*(1.0-CBAFade))+(CBAFL*CBAFade))*bezCThresh,1.0)); + + double CBFR = (bezCompF[bez_CR]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_BR]*bezCompF[bez_cycle]); + double BAFR = (bezCompF[bez_BR]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_AR]*bezCompF[bez_cycle]); + double CBAFR = (bezCompF[bez_BR]+(CBFR*(1.0-bezCompF[bez_cycle]))+(BAFR*bezCompF[bez_cycle]))*0.5; + double CBSR = (bezCompS[bez_CR]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_BR]*bezCompS[bez_cycle]); + double BASR = (bezCompS[bez_BR]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_AR]*bezCompS[bez_cycle]); + double CBASR = (bezCompS[bez_BR]+(CBSR*(1.0-bezCompS[bez_cycle]))+(BASR*bezCompS[bez_cycle]))*0.5; + CBAMax = fmax(CBASR,CBAFR); if (CBAMax > 0.0) CBAMax = 1.0/CBAMax; + CBAFade = ((CBASR*-CBAMax)+(CBAFR*CBAMax)+1.0)*0.5; + if (bezCThresh > 0.0) inputSampleR *= 1.0-(fmin(((CBASR*(1.0-CBAFade))+(CBAFR*CBAFade))*bezCThresh,1.0)); + //Dynamics2 + + const double temp = (double)sampleFrames/inFramesToProcess; + 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 * gain; + inputSampleR = inputSampleR * 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 + //Discontapeity + + //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++; + } +} diff --git a/plugins/MacSignedVST/kWoodRoom/kWoodRoom.xcodeproj/christopherjohnson.pbxuser b/plugins/MacSignedVST/kWoodRoom/kWoodRoom.xcodeproj/christopherjohnson.pbxuser new file mode 100755 index 000000000..321851ca5 --- /dev/null +++ b/plugins/MacSignedVST/kWoodRoom/kWoodRoom.xcodeproj/christopherjohnson.pbxuser @@ -0,0 +1,108 @@ +// !$*UTF8*$! +{ + 089C1669FE841209C02AAC07 /* Project object */ = { + activeBuildConfigurationName = Release; + activeTarget = 8D01CCC60486CAD60068D4B7 /* kWoodRoom */; + codeSenseManager = 8B02375F1D42B1C400E1E8C8 /* 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, + 324, + 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 = 783774281; + PBXWorkspaceStateSaveDate = 783774281; + }; + sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */; + userBuildSettings = { + }; + }; + 2407DEB6089929BA00EB68BF /* kWoodRoom.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {849, 4410}}"; + sepNavSelRange = "{507, 0}"; + sepNavVisRange = "{8305, 1769}"; + sepNavWindowFrame = "{{545, 47}, {895, 831}}"; + }; + }; + 245463B80991757100464AD3 /* kWoodRoom.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {7041, 3618}}"; + sepNavSelRange = "{1734, 0}"; + sepNavVisRange = "{4267, 862}"; + sepNavWindowFrame = "{{545, 47}, {895, 831}}"; + }; + }; + 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {859, 20267}}"; + sepNavSelRange = "{10616, 0}"; + sepNavVisRange = "{9653, 2414}"; + sepNavWindowFrame = "{{15, 42}, {895, 831}}"; + }; + }; + 24D8286F09A914000093AEF8 /* kWoodRoomProc.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1029, 19206}}"; + sepNavSelRange = "{45767, 0}"; + sepNavVisRange = "{25294, 1430}"; + sepNavWindowFrame = "{{255, 47}, {895, 831}}"; + }; + }; + 8B02375E1D42B1C400E1E8C8 /* Source Control */ = { + isa = PBXSourceControlManager; + fallbackIsa = XCSourceControlManager; + isSCMEnabled = 0; + scmConfiguration = { + repositoryNamesForRoots = { + "" = ""; + }; + }; + }; + 8B02375F1D42B1C400E1E8C8 /* Code sense */ = { + isa = PBXCodeSenseManager; + indexTemplatePath = ""; + }; + 8D01CCC60486CAD60068D4B7 /* kWoodRoom */ = { + activeExec = 0; + }; +} diff --git a/plugins/MacSignedVST/kWoodRoom/kWoodRoom.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacSignedVST/kWoodRoom/kWoodRoom.xcodeproj/christopherjohnson.perspectivev3 new file mode 100755 index 000000000..8ae8bc0c2 --- /dev/null +++ b/plugins/MacSignedVST/kWoodRoom/kWoodRoom.xcodeproj/christopherjohnson.perspectivev3 @@ -0,0 +1,1502 @@ + + + + + ActivePerspectiveName + Project + AllowedModules + + + BundleLoadPath + + MaxInstances + n + Module + PBXSmartGroupTreeModule + Name + Groups and Files Outline View + + + BundleLoadPath + + MaxInstances + n + Module + PBXNavigatorGroup + Name + Editor + + + BundleLoadPath + + MaxInstances + n + Module + XCTaskListModule + Name + Task List + + + BundleLoadPath + + MaxInstances + n + Module + XCDetailModule + Name + File and Smart Group Detail Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXBuildResultsModule + Name + Detailed Build Results Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXProjectFindModule + Name + Project Batch Find Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCProjectFormatConflictsModule + Name + Project Format Conflicts List + + + BundleLoadPath + + MaxInstances + n + Module + PBXBookmarksModule + Name + Bookmarks Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXClassBrowserModule + Name + Class Browser + + + BundleLoadPath + + MaxInstances + n + Module + PBXCVSModule + Name + Source Code Control Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXDebugBreakpointsModule + Name + Debug Breakpoints Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCDockableInspector + Name + Inspector + + + BundleLoadPath + + MaxInstances + n + Module + PBXOpenQuicklyModule + Name + Open Quickly Tool + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugSessionModule + Name + Debugger + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugCLIModule + Name + Debug Console + + + BundleLoadPath + + MaxInstances + n + Module + XCSnapshotModule + Name + Snapshots Tool + + + BundlePath + /Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources + Description + AIODescriptionKey + DockingSystemVisible + + Extension + perspectivev3 + FavBarConfig + + PBXProjectModuleGUID + 8B02375D1D42B1C400E1E8C8 + XCBarModuleItemNames + + XCBarModuleItems + + + FirstTimeWindowDisplayed + + Identifier + com.apple.perspectives.project.defaultV3 + MajorVersion + 34 + MinorVersion + 0 + Name + All-In-One + Notifications + + + XCObserverAutoDisconnectKey + + XCObserverDefintionKey + + PBXStatusErrorsKey + 0 + + XCObserverFactoryKey + XCPerspectivesSpecificationIdentifier + XCObserverGUIDKey + XCObserverProjectIdentifier + XCObserverNotificationKey + PBXStatusBuildStateMessageNotification + XCObserverTargetKey + XCMainBuildResultsModuleGUID + XCObserverTriggerKey + awakenModuleWithObserver: + XCObserverValidationKey + + PBXStatusErrorsKey + 2 + + + + OpenEditors + + PerspectiveWidths + + 810 + 810 + + Perspectives + + + ChosenToolbarItems + + XCToolbarPerspectiveControl + NSToolbarSeparatorItem + active-combo-popup + action + NSToolbarFlexibleSpaceItem + debugger-enable-breakpoints + build-and-go + com.apple.ide.PBXToolbarStopButton + get-info + NSToolbarFlexibleSpaceItem + com.apple.pbx.toolbar.searchfield + + ControllerClassBaseName + + IconName + WindowOfProject + Identifier + perspective.project + IsVertical + + Layout + + + BecomeActive + + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 1C37FABC05509CD000000102 + 1C37FABC05539CD112110102 + E2644B35053B69B200211256 + 1C37FABC04509CD000100104 + 1CC0EA4004350EF90044410B + 1CC0EA4004350EF90041110B + 1C77FABC04509CD000000102 + + PBXProjectModuleGUID + 1CA23ED40692098700951B8B + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + yes + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 185 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 089C166AFE841209C02AAC07 + 08FB77ADFE841716C02AAC07 + 1C37FBAC04509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 6 + 4 + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {185, 428}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + + + GeometryConfiguration + + Frame + {{0, 0}, {202, 446}} + GroupTreeTableConfiguration + + MainColumn + 185 + + RubberWindowFrame + 614 270 810 487 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 202pt + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 8B0237581D42B1C400E1E8C8 + PBXProjectModuleLabel + Gain.h + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 8B0237591D42B1C400E1E8C8 + PBXProjectModuleLabel + Gain.h + + SplitCount + 1 + + StatusBarVisibility + + XCSharingToken + com.apple.Xcode.CommonNavigatorGroupSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {603, 0}} + RubberWindowFrame + 614 270 810 487 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 0pt + + + Proportion + 441pt + Tabs + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA23EDF0692099D00951B8B + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{10, 27}, {603, 414}} + RubberWindowFrame + 614 270 810 487 0 0 1440 878 + + Module + XCDetailModule + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA23EE00692099D00951B8B + PBXProjectModuleLabel + Project Find + + GeometryConfiguration + + Frame + {{10, 31}, {603, 297}} + + Module + PBXProjectFindModule + + + ContentConfiguration + + PBXCVSModuleFilterTypeKey + 1032 + PBXProjectModuleGUID + 1CA23EE10692099D00951B8B + PBXProjectModuleLabel + SCM Results + + GeometryConfiguration + + Frame + {{10, 31}, {603, 297}} + + Module + PBXCVSModule + + + ContentConfiguration + + PBXProjectModuleGUID + XCMainBuildResultsModuleGUID + PBXProjectModuleLabel + Build Results + XCBuildResultsTrigger_Collapse + 1023 + XCBuildResultsTrigger_Open + 1012 + + GeometryConfiguration + + Frame + {{10, 27}, {603, 282}} + + Module + PBXBuildResultsModule + + + + + Proportion + 603pt + + + Name + Project + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + XCModuleDock + PBXNavigatorGroup + XCDockableTabModule + XCDetailModule + PBXProjectFindModule + PBXCVSModule + PBXBuildResultsModule + + TableOfContents + + 8B28295C2EB7769B003789A7 + 1CA23ED40692098700951B8B + 8B28295D2EB7769B003789A7 + 8B0237581D42B1C400E1E8C8 + 8B28295E2EB7769B003789A7 + 1CA23EDF0692099D00951B8B + 1CA23EE00692099D00951B8B + 1CA23EE10692099D00951B8B + XCMainBuildResultsModuleGUID + + ToolbarConfigUserDefaultsMinorVersion + 2 + ToolbarConfiguration + xcode.toolbar.config.defaultV3 + + + ChosenToolbarItems + + XCToolbarPerspectiveControl + NSToolbarSeparatorItem + active-combo-popup + NSToolbarFlexibleSpaceItem + debugger-enable-breakpoints + build-and-go + com.apple.ide.PBXToolbarStopButton + debugger-restart-executable + debugger-pause + debugger-step-over + debugger-step-into + debugger-step-out + NSToolbarFlexibleSpaceItem + servicesModulebreakpoints + debugger-show-console-window + + ControllerClassBaseName + PBXDebugSessionModule + IconName + DebugTabIcon + Identifier + perspective.debug + IsVertical + 1 + Layout + + + ContentConfiguration + + PBXProjectModuleGUID + 1CCC7628064C1048000F2A68 + PBXProjectModuleLabel + Debugger Console + + GeometryConfiguration + + Frame + {{0, 0}, {810, 0}} + + Module + PBXDebugCLIModule + Proportion + 0% + + + ContentConfiguration + + Debugger + + HorizontalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {395, 213}} + {{395, 0}, {415, 213}} + + + VerticalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {810, 213}} + {{0, 213}, {810, 225}} + + + + LauncherConfigVersion + 8 + PBXProjectModuleGUID + 1CCC7629064C1048000F2A68 + PBXProjectModuleLabel + Debug + + GeometryConfiguration + + DebugConsoleDrawerSize + {100, 120} + DebugConsoleVisible + None + DebugConsoleWindowFrame + {{200, 200}, {500, 300}} + DebugSTDIOWindowFrame + {{200, 200}, {500, 300}} + Frame + {{0, 7}, {810, 438}} + + Module + PBXDebugSessionModule + Proportion + 443pt + + + Name + Debug + ServiceClasses + + XCModuleDock + XCModuleDock + PBXDebugCLIModule + PBXDebugSessionModule + XCConsole + + TableOfContents + + 1CC8E6A5069209BD00BB180A + 1CC8E6A6069209BD00BB180A + 1CCC7628064C1048000F2A68 + 1CCC7629064C1048000F2A68 + 1CC8E6A7069209BD00BB180A + + ToolbarConfiguration + xcode.toolbar.config.debugV3 + + + PerspectivesBarVisible + + ShelfIsVisible + + SourceDescription + file at '/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecification.xcperspec' + StatusbarIsVisible + + TimeStamp + 783775387.98298597 + ToolbarConfigUserDefaultsMinorVersion + 2 + ToolbarDisplayMode + 1 + ToolbarIsVisible + + ToolbarSizeMode + 2 + Type + Perspectives + UpdateMessage + + WindowJustification + 5 + WindowOrderList + + /Users/christopherjohnson/Desktop/kWoodRoom/kWoodRoom.xcodeproj + + WindowString + 614 270 810 487 0 0 1440 878 + WindowToolsV3 + + + Identifier + windowTool.debugger + Layout + + + Dock + + + ContentConfiguration + + Debugger + + HorizontalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {317, 164}} + {{317, 0}, {377, 164}} + + + VerticalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {694, 164}} + {{0, 164}, {694, 216}} + + + + LauncherConfigVersion + 8 + PBXProjectModuleGUID + 1C162984064C10D400B95A72 + PBXProjectModuleLabel + Debug - GLUTExamples (Underwater) + + GeometryConfiguration + + DebugConsoleDrawerSize + {100, 120} + DebugConsoleVisible + None + DebugConsoleWindowFrame + {{200, 200}, {500, 300}} + DebugSTDIOWindowFrame + {{200, 200}, {500, 300}} + Frame + {{0, 0}, {694, 380}} + RubberWindowFrame + 321 238 694 422 0 0 1440 878 + + Module + PBXDebugSessionModule + Proportion + 100% + + + Proportion + 100% + + + Name + Debugger + ServiceClasses + + PBXDebugSessionModule + + StatusbarIsVisible + 1 + TableOfContents + + 1CD10A99069EF8BA00B06720 + 1C0AD2AB069F1E9B00FABCE6 + 1C162984064C10D400B95A72 + 1C0AD2AC069F1E9B00FABCE6 + + ToolbarConfiguration + xcode.toolbar.config.debugV3 + WindowString + 321 238 694 422 0 0 1440 878 + WindowToolGUID + 1CD10A99069EF8BA00B06720 + WindowToolIsVisible + 0 + + + Identifier + windowTool.build + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528F0623707200166675 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CD052900623707200166675 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {500, 215}} + RubberWindowFrame + 192 257 500 500 0 0 1280 1002 + + Module + PBXNavigatorGroup + Proportion + 218pt + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + XCMainBuildResultsModuleGUID + PBXProjectModuleLabel + Build Results + + GeometryConfiguration + + Frame + {{0, 222}, {500, 236}} + RubberWindowFrame + 192 257 500 500 0 0 1280 1002 + + Module + PBXBuildResultsModule + Proportion + 236pt + + + Proportion + 458pt + + + Name + Build Results + ServiceClasses + + PBXBuildResultsModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C78EAA5065D492600B07095 + 1C78EAA6065D492600B07095 + 1CD0528F0623707200166675 + XCMainBuildResultsModuleGUID + + ToolbarConfiguration + xcode.toolbar.config.buildV3 + WindowString + 192 257 500 500 0 0 1280 1002 + + + Identifier + windowTool.find + Layout + + + Dock + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CDD528C0622207200134675 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CD0528D0623707200166675 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {781, 167}} + RubberWindowFrame + 62 385 781 470 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 781pt + + + Proportion + 50% + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528E0623707200166675 + PBXProjectModuleLabel + Project Find + + GeometryConfiguration + + Frame + {{8, 0}, {773, 254}} + RubberWindowFrame + 62 385 781 470 0 0 1440 878 + + Module + PBXProjectFindModule + Proportion + 50% + + + Proportion + 428pt + + + Name + Project Find + ServiceClasses + + PBXProjectFindModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C530D57069F1CE1000CFCEE + 1C530D58069F1CE1000CFCEE + 1C530D59069F1CE1000CFCEE + 1CDD528C0622207200134675 + 1C530D5A069F1CE1000CFCEE + 1CE0B1FE06471DED0097A5F4 + 1CD0528E0623707200166675 + + WindowString + 62 385 781 470 0 0 1440 878 + WindowToolGUID + 1C530D57069F1CE1000CFCEE + WindowToolIsVisible + 0 + + + Identifier + windowTool.snapshots + Layout + + + Dock + + + Module + XCSnapshotModule + Proportion + 100% + + + Proportion + 100% + + + Name + Snapshots + ServiceClasses + + XCSnapshotModule + + StatusbarIsVisible + Yes + ToolbarConfiguration + xcode.toolbar.config.snapshots + WindowString + 315 824 300 550 0 0 1440 878 + WindowToolIsVisible + Yes + + + Identifier + windowTool.debuggerConsole + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAAC065D492600B07095 + PBXProjectModuleLabel + Debugger Console + + GeometryConfiguration + + Frame + {{0, 0}, {700, 358}} + RubberWindowFrame + 149 87 700 400 0 0 1440 878 + + Module + PBXDebugCLIModule + Proportion + 358pt + + + Proportion + 358pt + + + Name + Debugger Console + ServiceClasses + + PBXDebugCLIModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C530D5B069F1CE1000CFCEE + 1C530D5C069F1CE1000CFCEE + 1C78EAAC065D492600B07095 + + ToolbarConfiguration + xcode.toolbar.config.consoleV3 + WindowString + 149 87 440 400 0 0 1440 878 + WindowToolGUID + 1C530D5B069F1CE1000CFCEE + WindowToolIsVisible + 0 + + + Identifier + windowTool.scm + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAB2065D492600B07095 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1C78EAB3065D492600B07095 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {452, 0}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + + Module + PBXNavigatorGroup + Proportion + 0pt + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD052920623707200166675 + PBXProjectModuleLabel + SCM + + GeometryConfiguration + + ConsoleFrame + {{0, 259}, {452, 0}} + Frame + {{0, 7}, {452, 259}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + TableConfiguration + + Status + 30 + FileName + 199 + Path + 197.09500122070312 + + TableFrame + {{0, 0}, {452, 250}} + + Module + PBXCVSModule + Proportion + 262pt + + + Proportion + 266pt + + + Name + SCM + ServiceClasses + + PBXCVSModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C78EAB4065D492600B07095 + 1C78EAB5065D492600B07095 + 1C78EAB2065D492600B07095 + 1CD052920623707200166675 + + ToolbarConfiguration + xcode.toolbar.config.scmV3 + WindowString + 743 379 452 308 0 0 1280 1002 + + + Identifier + windowTool.breakpoints + IsVertical + 0 + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C77FABC04509CD000000102 + + PBXProjectModuleGUID + 1CE0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + no + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 168 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 1C77FABC04509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {168, 350}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + 0 + + GeometryConfiguration + + Frame + {{0, 0}, {185, 368}} + GroupTreeTableConfiguration + + MainColumn + 168 + + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 185pt + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA1AED706398EBD00589147 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{190, 0}, {554, 368}} + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + XCDetailModule + Proportion + 554pt + + + Proportion + 368pt + + + MajorVersion + 3 + MinorVersion + 0 + Name + Breakpoints + ServiceClasses + + PBXSmartGroupTreeModule + XCDetailModule + + StatusbarIsVisible + 1 + TableOfContents + + 1CDDB66807F98D9800BB5817 + 1CDDB66907F98D9800BB5817 + 1CE0B1FE06471DED0097A5F4 + 1CA1AED706398EBD00589147 + + ToolbarConfiguration + xcode.toolbar.config.breakpointsV3 + WindowString + 315 424 744 409 0 0 1440 878 + WindowToolGUID + 1CDDB66807F98D9800BB5817 + WindowToolIsVisible + 1 + + + Identifier + windowTool.debugAnimator + Layout + + + Dock + + + Module + PBXNavigatorGroup + Proportion + 100% + + + Proportion + 100% + + + Name + Debug Visualizer + ServiceClasses + + PBXNavigatorGroup + + StatusbarIsVisible + 1 + ToolbarConfiguration + xcode.toolbar.config.debugAnimatorV3 + WindowString + 100 100 700 500 0 0 1280 1002 + + + Identifier + windowTool.bookmarks + Layout + + + Dock + + + Module + PBXBookmarksModule + Proportion + 166pt + + + Proportion + 166pt + + + Name + Bookmarks + ServiceClasses + + PBXBookmarksModule + + StatusbarIsVisible + 0 + WindowString + 538 42 401 187 0 0 1280 1002 + + + FirstTimeWindowDisplayed + + Identifier + windowTool.projectFormatConflicts + IsVertical + + Layout + + + Dock + + + BecomeActive + + ContentConfiguration + + PBXProjectModuleGUID + 8BCAE52E1D49920D0047D4BD + + GeometryConfiguration + + Frame + {{0, 0}, {472, 302}} + RubberWindowFrame + 569 378 472 322 0 0 1440 878 + + Module + XCProjectFormatConflictsModule + Proportion + 302pt + + + Proportion + 302pt + + + Name + Project Format Conflicts + ServiceClasses + + XCProjectFormatConflictsModule + + StatusbarIsVisible + + TableOfContents + + 8BCAE52F1D49920D0047D4BD + 8BCAE5301D49920D0047D4BD + 8BCAE52E1D49920D0047D4BD + + WindowContentMinSize + 450 300 + WindowString + 569 378 472 322 0 0 1440 878 + WindowToolGUID + 8BCAE52F1D49920D0047D4BD + WindowToolIsVisible + + + + Identifier + windowTool.classBrowser + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + OptionsSetName + Hierarchy, all classes + PBXProjectModuleGUID + 1CA6456E063B45B4001379D8 + PBXProjectModuleLabel + Class Browser - NSObject + + GeometryConfiguration + + ClassesFrame + {{0, 0}, {369, 96}} + ClassesTreeTableConfiguration + + PBXClassNameColumnIdentifier + 208 + PBXClassBookColumnIdentifier + 22 + + Frame + {{0, 0}, {616, 353}} + MembersFrame + {{0, 105}, {369, 395}} + MembersTreeTableConfiguration + + PBXMemberTypeIconColumnIdentifier + 22 + PBXMemberNameColumnIdentifier + 216 + PBXMemberTypeColumnIdentifier + 94 + PBXMemberBookColumnIdentifier + 22 + + PBXModuleWindowStatusBarHidden2 + 1 + RubberWindowFrame + 597 125 616 374 0 0 1280 1002 + + Module + PBXClassBrowserModule + Proportion + 354pt + + + Proportion + 354pt + + + Name + Class Browser + ServiceClasses + + PBXClassBrowserModule + + StatusbarIsVisible + 0 + TableOfContents + + 1C78EABA065D492600B07095 + 1C78EABB065D492600B07095 + 1CA6456E063B45B4001379D8 + + ToolbarConfiguration + xcode.toolbar.config.classbrowser + WindowString + 597 125 616 374 0 0 1280 1002 + + + Identifier + windowTool.refactoring + IncludeInToolsMenu + 0 + Layout + + + Dock + + + BecomeActive + 1 + GeometryConfiguration + + Frame + {0, 0}, {500, 335} + RubberWindowFrame + {0, 0}, {500, 335} + + Module + XCRefactoringModule + Proportion + 100% + + + Proportion + 100% + + + Name + Refactoring + ServiceClasses + + XCRefactoringModule + + WindowString + 200 200 500 356 0 0 1920 1200 + + + + diff --git a/plugins/MacSignedVST/kWoodRoom/kWoodRoom.xcodeproj/project.pbxproj b/plugins/MacSignedVST/kWoodRoom/kWoodRoom.xcodeproj/project.pbxproj new file mode 100755 index 000000000..78297ffd4 --- /dev/null +++ b/plugins/MacSignedVST/kWoodRoom/kWoodRoom.xcodeproj/project.pbxproj @@ -0,0 +1,2201 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 42; + objects = { + +/* Begin PBXBuildFile section */ + 2407DEB9089929BA00EB68BF /* kWoodRoom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2407DEB6089929BA00EB68BF /* kWoodRoom.cpp */; }; + 245463B90991757100464AD3 /* kWoodRoom.h in Headers */ = {isa = PBXBuildFile; fileRef = 245463B80991757100464AD3 /* kWoodRoom.h */; }; + 24A202190F90D1DE003BB5A7 /* aeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FF910F90D1DD003BB5A7 /* aeffect.h */; }; + 24A2021A0F90D1DE003BB5A7 /* aeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FF920F90D1DD003BB5A7 /* aeffectx.h */; }; + 24A2021B0F90D1DE003BB5A7 /* vstfxstore.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FF930F90D1DD003BB5A7 /* vstfxstore.h */; }; + 24A2021D0F90D1DE003BB5A7 /* adelay.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FF990F90D1DD003BB5A7 /* adelay.h */; }; + 24A202240F90D1DE003BB5A7 /* sdeditor.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFA20F90D1DD003BB5A7 /* sdeditor.h */; }; + 24A202260F90D1DE003BB5A7 /* surrounddelay.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFA40F90D1DD003BB5A7 /* surrounddelay.h */; }; + 24A2022A0F90D1DE003BB5A7 /* again.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFAB0F90D1DD003BB5A7 /* again.h */; }; + 24A202330F90D1DE003BB5A7 /* gmnames.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFBF0F90D1DD003BB5A7 /* gmnames.h */; }; + 24A202350F90D1DE003BB5A7 /* vstxsynth.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFC10F90D1DD003BB5A7 /* vstxsynth.h */; }; + 24A202460F90D1DE003BB5A7 /* aeffeditor.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFD80F90D1DD003BB5A7 /* aeffeditor.h */; }; + 24A202480F90D1DE003BB5A7 /* audioeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFDA0F90D1DD003BB5A7 /* audioeffect.h */; }; + 24A2024A0F90D1DE003BB5A7 /* audioeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFDC0F90D1DD003BB5A7 /* audioeffectx.h */; }; + 24A2024D0F90D1DE003BB5A7 /* cw_vst_prefix.pch++ in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFE20F90D1DD003BB5A7 /* cw_vst_prefix.pch++ */; }; + 24A202510F90D1DE003BB5A7 /* xcode_au_prefix.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFEC0F90D1DD003BB5A7 /* xcode_au_prefix.h */; }; + 24A202520F90D1DE003BB5A7 /* xcode_vst_prefix.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFED0F90D1DD003BB5A7 /* xcode_vst_prefix.h */; }; + 24A202680F90D1DE003BB5A7 /* controlsgui.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A200050F90D1DD003BB5A7 /* controlsgui.h */; }; + 24A2026A0F90D1DE003BB5A7 /* pdrawtesteditor.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A200070F90D1DD003BB5A7 /* pdrawtesteditor.h */; }; + 24A2026C0F90D1DE003BB5A7 /* pdrawtesteffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A200090F90D1DD003BB5A7 /* pdrawtesteffect.h */; }; + 24A2026F0F90D1DE003BB5A7 /* pdrawtestview.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2000C0F90D1DD003BB5A7 /* pdrawtestview.h */; }; + 24A202710F90D1DE003BB5A7 /* pprimitivesviews.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2000E0F90D1DD003BB5A7 /* pprimitivesviews.h */; }; + 24A202780F90D1DE003BB5A7 /* aeffguieditor.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A200180F90D1DD003BB5A7 /* aeffguieditor.h */; }; + 24A2027A0F90D1DE003BB5A7 /* cfileselector.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2001A0F90D1DD003BB5A7 /* cfileselector.h */; }; + 24A2027D0F90D1DE003BB5A7 /* cscrollview.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2001D0F90D1DD003BB5A7 /* cscrollview.h */; }; + 24A2027F0F90D1DE003BB5A7 /* ctabview.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2001F0F90D1DD003BB5A7 /* ctabview.h */; }; + 24A203A50F90D1DE003BB5A7 /* plugguieditor.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A201470F90D1DE003BB5A7 /* plugguieditor.h */; }; + 24A203A70F90D1DE003BB5A7 /* vstcontrols.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A201490F90D1DE003BB5A7 /* vstcontrols.h */; }; + 24A203A90F90D1DE003BB5A7 /* vstgui.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2014B0F90D1DE003BB5A7 /* vstgui.h */; }; + 24A203AA0F90D1DE003BB5A7 /* vstkeycode.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2014C0F90D1DE003BB5A7 /* vstkeycode.h */; }; + 24A203AB0F90D1DE003BB5A7 /* vstplugscarbon.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2014D0F90D1DE003BB5A7 /* vstplugscarbon.h */; }; + 24A203AC0F90D1DE003BB5A7 /* vstplugsmac.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2014E0F90D1DE003BB5A7 /* vstplugsmac.h */; }; + 24A203AD0F90D1DE003BB5A7 /* vstplugsmacho.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2014F0F90D1DE003BB5A7 /* vstplugsmacho.h */; }; + 24A203AE0F90D1DE003BB5A7 /* vstplugsquartz.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A201500F90D1DE003BB5A7 /* vstplugsquartz.h */; }; + 24A203CB0F90D251003BB5A7 /* audioeffect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 24A2FFD90F90D1DD003BB5A7 /* audioeffect.cpp */; }; + 24A203CC0F90D251003BB5A7 /* audioeffectx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */; }; + 24A203CD0F90D251003BB5A7 /* vstplugmain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 24A2FFDD0F90D1DD003BB5A7 /* vstplugmain.cpp */; }; + 24CFB70407E7A0220081BD57 /* PkgInfo in Resources */ = {isa = PBXBuildFile; fileRef = 24CFB70307E7A0220081BD57 /* PkgInfo */; }; + 24D8287009A914000093AEF8 /* kWoodRoomProc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 24D8286F09A914000093AEF8 /* kWoodRoomProc.cpp */; }; + 24D8287F09A9164A0093AEF8 /* xcode_vst_prefix.h in Headers */ = {isa = PBXBuildFile; fileRef = 24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 24A203D60F90D272003BB5A7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 24A2FFB00F90D1DD003BB5A7 /* vst 2.4 examples.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 8D01CCD20486CAD60068D4B7; + remoteInfo = again; + }; + 24A203D80F90D272003BB5A7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 24A2FFB00F90D1DD003BB5A7 /* vst 2.4 examples.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = F4476974093DAE42008998C4; + remoteInfo = adelay; + }; + 24A203DA0F90D272003BB5A7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 24A2FFB00F90D1DD003BB5A7 /* vst 2.4 examples.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = F4FF52220929FBF500DDED7A; + remoteInfo = vstxsynth; + }; + 24A203DC0F90D272003BB5A7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 24A2FFB00F90D1DD003BB5A7 /* vst 2.4 examples.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = F4476A10093DCAF9008998C4; + remoteInfo = surrounddelay; + }; + 24A203DE0F90D272003BB5A7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 24A2FFB00F90D1DD003BB5A7 /* vst 2.4 examples.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = F4FF52F3092A312800DDED7A; + remoteInfo = minihost; + }; + 24A203E40F90D272003BB5A7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 24A2FFE50F90D1DD003BB5A7 /* drawtest.xcode */; + proxyType = 2; + remoteGlobalIDString = 8D01CCD20486CAD60068D4B7; + remoteInfo = AudioUnit; + }; + 24A203E60F90D272003BB5A7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 24A2FFE50F90D1DD003BB5A7 /* drawtest.xcode */; + proxyType = 2; + remoteGlobalIDString = F4C9F1D407B2320800010DAD; + remoteInfo = VST; + }; + 24A203EC0F90D272003BB5A7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 24A2FFE80F90D1DD003BB5A7 /* drawtest.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 8D01CCD20486CAD60068D4B7; + remoteInfo = AudioUnit; + }; + 24A203EE0F90D272003BB5A7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 24A2FFE80F90D1DD003BB5A7 /* drawtest.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = F4C9F1D407B2320800010DAD; + remoteInfo = VST; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 08EA7FFBFE8413EDC02AAC07 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = ""; }; + 2407DE920899296600EB68BF /* kWoodRoom.vst */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = kWoodRoom.vst; sourceTree = BUILT_PRODUCTS_DIR; }; + 2407DEB6089929BA00EB68BF /* kWoodRoom.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = kWoodRoom.cpp; path = source/kWoodRoom.cpp; sourceTree = ""; }; + 2434720A098313350063BBF1 /* QuickTime.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = /System/Library/Frameworks/QuickTime.framework; sourceTree = ""; }; + 245463B80991757100464AD3 /* kWoodRoom.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = kWoodRoom.h; path = source/kWoodRoom.h; sourceTree = ""; }; + 24A200000F90D1DD003BB5A7 /* bmp10014.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10014.bmp; sourceTree = ""; }; + 24A200010F90D1DD003BB5A7 /* bmp10015.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10015.bmp; sourceTree = ""; }; + 24A200020F90D1DD003BB5A7 /* bmp10016.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10016.bmp; sourceTree = ""; }; + 24A200040F90D1DD003BB5A7 /* controlsgui.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = controlsgui.cpp; sourceTree = ""; }; + 24A200050F90D1DD003BB5A7 /* controlsgui.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = controlsgui.h; sourceTree = ""; }; + 24A200060F90D1DD003BB5A7 /* pdrawtesteditor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pdrawtesteditor.cpp; sourceTree = ""; }; + 24A200070F90D1DD003BB5A7 /* pdrawtesteditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pdrawtesteditor.h; sourceTree = ""; }; + 24A200080F90D1DD003BB5A7 /* pdrawtesteffect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pdrawtesteffect.cpp; sourceTree = ""; }; + 24A200090F90D1DD003BB5A7 /* pdrawtesteffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pdrawtesteffect.h; sourceTree = ""; }; + 24A2000A0F90D1DD003BB5A7 /* pdrawtestmain.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pdrawtestmain.cpp; sourceTree = ""; }; + 24A2000B0F90D1DD003BB5A7 /* pdrawtestview.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pdrawtestview.cpp; sourceTree = ""; }; + 24A2000C0F90D1DD003BB5A7 /* pdrawtestview.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pdrawtestview.h; sourceTree = ""; }; + 24A2000D0F90D1DD003BB5A7 /* pprimitivesviews.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pprimitivesviews.cpp; sourceTree = ""; }; + 24A2000E0F90D1DD003BB5A7 /* pprimitivesviews.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pprimitivesviews.h; sourceTree = ""; }; + 24A200100F90D1DD003BB5A7 /* drawtest.def */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = drawtest.def; sourceTree = ""; }; + 24A200110F90D1DD003BB5A7 /* drawtest.rc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = drawtest.rc; sourceTree = ""; }; + 24A200120F90D1DD003BB5A7 /* drawtest.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = drawtest.vcproj; sourceTree = ""; }; + 24A200140F90D1DD003BB5A7 /* drawtest.dsp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = drawtest.dsp; sourceTree = ""; }; + 24A200150F90D1DD003BB5A7 /* drawtest.dsw */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = drawtest.dsw; sourceTree = ""; }; + 24A200170F90D1DD003BB5A7 /* aeffguieditor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = aeffguieditor.cpp; sourceTree = ""; }; + 24A200180F90D1DD003BB5A7 /* aeffguieditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffguieditor.h; sourceTree = ""; }; + 24A200190F90D1DD003BB5A7 /* cfileselector.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cfileselector.cpp; sourceTree = ""; }; + 24A2001A0F90D1DD003BB5A7 /* cfileselector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cfileselector.h; sourceTree = ""; }; + 24A2001B0F90D1DD003BB5A7 /* Changelog */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Changelog; sourceTree = ""; }; + 24A2001C0F90D1DD003BB5A7 /* cscrollview.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cscrollview.cpp; sourceTree = ""; }; + 24A2001D0F90D1DD003BB5A7 /* cscrollview.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cscrollview.h; sourceTree = ""; }; + 24A2001E0F90D1DD003BB5A7 /* ctabview.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ctabview.cpp; sourceTree = ""; }; + 24A2001F0F90D1DD003BB5A7 /* ctabview.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ctabview.h; sourceTree = ""; }; + 24A200220F90D1DD003BB5A7 /* aeffguieditor_8cpp.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = aeffguieditor_8cpp.html; sourceTree = ""; }; + 24A200230F90D1DD003BB5A7 /* aeffguieditor_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = aeffguieditor_8h.html; sourceTree = ""; }; + 24A200240F90D1DD003BB5A7 /* annotated.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = annotated.html; sourceTree = ""; }; + 24A200250F90D1DD003BB5A7 /* cfileselector_8cpp.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = cfileselector_8cpp.html; sourceTree = ""; }; + 24A200260F90D1DD003BB5A7 /* cfileselector_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = cfileselector_8h.html; sourceTree = ""; }; + 24A200270F90D1DD003BB5A7 /* class_a_eff_g_u_i_editor-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_a_eff_g_u_i_editor-members.html"; sourceTree = ""; }; + 24A200280F90D1DD003BB5A7 /* class_a_eff_g_u_i_editor.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_a_eff_g_u_i_editor.html; sourceTree = ""; }; + 24A200290F90D1DD003BB5A7 /* class_c_anim_knob-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_anim_knob-members.html"; sourceTree = ""; }; + 24A2002A0F90D1DD003BB5A7 /* class_c_anim_knob.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_anim_knob.html; sourceTree = ""; }; + 24A2002B0F90D1DD003BB5A7 /* class_c_anim_knob.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_anim_knob.png; sourceTree = ""; }; + 24A2002C0F90D1DD003BB5A7 /* class_c_attribute_list_entry-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_attribute_list_entry-members.html"; sourceTree = ""; }; + 24A2002D0F90D1DD003BB5A7 /* class_c_attribute_list_entry.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_attribute_list_entry.html; sourceTree = ""; }; + 24A2002E0F90D1DD003BB5A7 /* class_c_auto_animation-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_auto_animation-members.html"; sourceTree = ""; }; + 24A2002F0F90D1DD003BB5A7 /* class_c_auto_animation.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_auto_animation.html; sourceTree = ""; }; + 24A200300F90D1DD003BB5A7 /* class_c_auto_animation.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_auto_animation.png; sourceTree = ""; }; + 24A200310F90D1DD003BB5A7 /* class_c_bitmap-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_bitmap-members.html"; sourceTree = ""; }; + 24A200320F90D1DD003BB5A7 /* class_c_bitmap.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_bitmap.html; sourceTree = ""; }; + 24A200330F90D1DD003BB5A7 /* class_c_bitmap.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_bitmap.png; sourceTree = ""; }; + 24A200340F90D1DD003BB5A7 /* class_c_c_view-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_c_view-members.html"; sourceTree = ""; }; + 24A200350F90D1DD003BB5A7 /* class_c_c_view.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_c_view.html; sourceTree = ""; }; + 24A200360F90D1DD003BB5A7 /* class_c_control-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_control-members.html"; sourceTree = ""; }; + 24A200370F90D1DD003BB5A7 /* class_c_control.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_control.html; sourceTree = ""; }; + 24A200380F90D1DD003BB5A7 /* class_c_control.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_control.png; sourceTree = ""; }; + 24A200390F90D1DD003BB5A7 /* class_c_control_listener-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_control_listener-members.html"; sourceTree = ""; }; + 24A2003A0F90D1DD003BB5A7 /* class_c_control_listener.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_control_listener.html; sourceTree = ""; }; + 24A2003B0F90D1DD003BB5A7 /* class_c_control_listener.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_control_listener.png; sourceTree = ""; }; + 24A2003C0F90D1DD003BB5A7 /* class_c_drag_container-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_drag_container-members.html"; sourceTree = ""; }; + 24A2003D0F90D1DD003BB5A7 /* class_c_drag_container.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_drag_container.html; sourceTree = ""; }; + 24A2003E0F90D1DD003BB5A7 /* class_c_drag_container.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_drag_container.png; sourceTree = ""; }; + 24A2003F0F90D1DD003BB5A7 /* class_c_draw_context-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_draw_context-members.html"; sourceTree = ""; }; + 24A200400F90D1DD003BB5A7 /* class_c_draw_context.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_draw_context.html; sourceTree = ""; }; + 24A200410F90D1DD003BB5A7 /* class_c_draw_context.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_draw_context.png; sourceTree = ""; }; + 24A200420F90D1DD003BB5A7 /* class_c_file_selector-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_file_selector-members.html"; sourceTree = ""; }; + 24A200430F90D1DD003BB5A7 /* class_c_file_selector.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_file_selector.html; sourceTree = ""; }; + 24A200440F90D1DD003BB5A7 /* class_c_frame-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_frame-members.html"; sourceTree = ""; }; + 24A200450F90D1DD003BB5A7 /* class_c_frame.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_frame.html; sourceTree = ""; }; + 24A200460F90D1DD003BB5A7 /* class_c_frame.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_frame.png; sourceTree = ""; }; + 24A200470F90D1DD003BB5A7 /* class_c_horizontal_slider-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_horizontal_slider-members.html"; sourceTree = ""; }; + 24A200480F90D1DD003BB5A7 /* class_c_horizontal_slider.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_horizontal_slider.html; sourceTree = ""; }; + 24A200490F90D1DD003BB5A7 /* class_c_horizontal_slider.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_horizontal_slider.png; sourceTree = ""; }; + 24A2004A0F90D1DD003BB5A7 /* class_c_horizontal_switch-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_horizontal_switch-members.html"; sourceTree = ""; }; + 24A2004B0F90D1DD003BB5A7 /* class_c_horizontal_switch.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_horizontal_switch.html; sourceTree = ""; }; + 24A2004C0F90D1DD003BB5A7 /* class_c_horizontal_switch.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_horizontal_switch.png; sourceTree = ""; }; + 24A2004D0F90D1DD003BB5A7 /* class_c_kick_button-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_kick_button-members.html"; sourceTree = ""; }; + 24A2004E0F90D1DD003BB5A7 /* class_c_kick_button.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_kick_button.html; sourceTree = ""; }; + 24A2004F0F90D1DD003BB5A7 /* class_c_kick_button.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_kick_button.png; sourceTree = ""; }; + 24A200500F90D1DD003BB5A7 /* class_c_knob-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_knob-members.html"; sourceTree = ""; }; + 24A200510F90D1DD003BB5A7 /* class_c_knob.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_knob.html; sourceTree = ""; }; + 24A200520F90D1DD003BB5A7 /* class_c_knob.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_knob.png; sourceTree = ""; }; + 24A200530F90D1DD003BB5A7 /* class_c_movie_bitmap-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_movie_bitmap-members.html"; sourceTree = ""; }; + 24A200540F90D1DD003BB5A7 /* class_c_movie_bitmap.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_movie_bitmap.html; sourceTree = ""; }; + 24A200550F90D1DD003BB5A7 /* class_c_movie_bitmap.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_movie_bitmap.png; sourceTree = ""; }; + 24A200560F90D1DD003BB5A7 /* class_c_movie_button-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_movie_button-members.html"; sourceTree = ""; }; + 24A200570F90D1DD003BB5A7 /* class_c_movie_button.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_movie_button.html; sourceTree = ""; }; + 24A200580F90D1DD003BB5A7 /* class_c_movie_button.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_movie_button.png; sourceTree = ""; }; + 24A200590F90D1DD003BB5A7 /* class_c_offscreen_context-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_offscreen_context-members.html"; sourceTree = ""; }; + 24A2005A0F90D1DD003BB5A7 /* class_c_offscreen_context.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_offscreen_context.html; sourceTree = ""; }; + 24A2005B0F90D1DD003BB5A7 /* class_c_offscreen_context.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_offscreen_context.png; sourceTree = ""; }; + 24A2005C0F90D1DD003BB5A7 /* class_c_on_off_button-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_on_off_button-members.html"; sourceTree = ""; }; + 24A2005D0F90D1DD003BB5A7 /* class_c_on_off_button.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_on_off_button.html; sourceTree = ""; }; + 24A2005E0F90D1DD003BB5A7 /* class_c_on_off_button.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_on_off_button.png; sourceTree = ""; }; + 24A2005F0F90D1DD003BB5A7 /* class_c_option_menu-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_option_menu-members.html"; sourceTree = ""; }; + 24A200600F90D1DD003BB5A7 /* class_c_option_menu.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_option_menu.html; sourceTree = ""; }; + 24A200610F90D1DD003BB5A7 /* class_c_option_menu.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_option_menu.png; sourceTree = ""; }; + 24A200620F90D1DD003BB5A7 /* class_c_option_menu_scheme-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_option_menu_scheme-members.html"; sourceTree = ""; }; + 24A200630F90D1DD003BB5A7 /* class_c_option_menu_scheme.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_option_menu_scheme.html; sourceTree = ""; }; + 24A200640F90D1DD003BB5A7 /* class_c_option_menu_scheme.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_option_menu_scheme.png; sourceTree = ""; }; + 24A200650F90D1DD003BB5A7 /* class_c_param_display-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_param_display-members.html"; sourceTree = ""; }; + 24A200660F90D1DD003BB5A7 /* class_c_param_display.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_param_display.html; sourceTree = ""; }; + 24A200670F90D1DD003BB5A7 /* class_c_param_display.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_param_display.png; sourceTree = ""; }; + 24A200680F90D1DD003BB5A7 /* class_c_reference_counter-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_reference_counter-members.html"; sourceTree = ""; }; + 24A200690F90D1DD003BB5A7 /* class_c_reference_counter.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_reference_counter.html; sourceTree = ""; }; + 24A2006A0F90D1DD003BB5A7 /* class_c_reference_counter.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_reference_counter.png; sourceTree = ""; }; + 24A2006B0F90D1DD003BB5A7 /* class_c_rocker_switch-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_rocker_switch-members.html"; sourceTree = ""; }; + 24A2006C0F90D1DD003BB5A7 /* class_c_rocker_switch.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_rocker_switch.html; sourceTree = ""; }; + 24A2006D0F90D1DD003BB5A7 /* class_c_rocker_switch.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_rocker_switch.png; sourceTree = ""; }; + 24A2006E0F90D1DD003BB5A7 /* class_c_scroll_container-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_scroll_container-members.html"; sourceTree = ""; }; + 24A2006F0F90D1DD003BB5A7 /* class_c_scroll_container.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_scroll_container.html; sourceTree = ""; }; + 24A200700F90D1DD003BB5A7 /* class_c_scroll_container.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_scroll_container.png; sourceTree = ""; }; + 24A200710F90D1DD003BB5A7 /* class_c_scroll_view-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_scroll_view-members.html"; sourceTree = ""; }; + 24A200720F90D1DD003BB5A7 /* class_c_scroll_view.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_scroll_view.html; sourceTree = ""; }; + 24A200730F90D1DD003BB5A7 /* class_c_scroll_view.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_scroll_view.png; sourceTree = ""; }; + 24A200740F90D1DD003BB5A7 /* class_c_scrollbar-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_scrollbar-members.html"; sourceTree = ""; }; + 24A200750F90D1DD003BB5A7 /* class_c_scrollbar.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_scrollbar.html; sourceTree = ""; }; + 24A200760F90D1DD003BB5A7 /* class_c_scrollbar.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_scrollbar.png; sourceTree = ""; }; + 24A200770F90D1DD003BB5A7 /* class_c_slider-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_slider-members.html"; sourceTree = ""; }; + 24A200780F90D1DD003BB5A7 /* class_c_slider.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_slider.html; sourceTree = ""; }; + 24A200790F90D1DD003BB5A7 /* class_c_slider.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_slider.png; sourceTree = ""; }; + 24A2007A0F90D1DD003BB5A7 /* class_c_special_digit-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_special_digit-members.html"; sourceTree = ""; }; + 24A2007B0F90D1DD003BB5A7 /* class_c_special_digit.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_special_digit.html; sourceTree = ""; }; + 24A2007C0F90D1DD003BB5A7 /* class_c_special_digit.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_special_digit.png; sourceTree = ""; }; + 24A2007D0F90D1DD003BB5A7 /* class_c_splash_screen-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_splash_screen-members.html"; sourceTree = ""; }; + 24A2007E0F90D1DD003BB5A7 /* class_c_splash_screen.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_splash_screen.html; sourceTree = ""; }; + 24A2007F0F90D1DD003BB5A7 /* class_c_splash_screen.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_splash_screen.png; sourceTree = ""; }; + 24A200800F90D1DD003BB5A7 /* class_c_splash_screen_view-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_splash_screen_view-members.html"; sourceTree = ""; }; + 24A200810F90D1DD003BB5A7 /* class_c_splash_screen_view.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_splash_screen_view.html; sourceTree = ""; }; + 24A200820F90D1DD003BB5A7 /* class_c_splash_screen_view.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_splash_screen_view.png; sourceTree = ""; }; + 24A200830F90D1DD003BB5A7 /* class_c_tab_button-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_tab_button-members.html"; sourceTree = ""; }; + 24A200840F90D1DD003BB5A7 /* class_c_tab_button.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_tab_button.html; sourceTree = ""; }; + 24A200850F90D1DD003BB5A7 /* class_c_tab_button.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_tab_button.png; sourceTree = ""; }; + 24A200860F90D1DD003BB5A7 /* class_c_tab_child_view-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_tab_child_view-members.html"; sourceTree = ""; }; + 24A200870F90D1DD003BB5A7 /* class_c_tab_child_view.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_tab_child_view.html; sourceTree = ""; }; + 24A200880F90D1DD003BB5A7 /* class_c_tab_child_view.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_tab_child_view.png; sourceTree = ""; }; + 24A200890F90D1DD003BB5A7 /* class_c_tab_view-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_tab_view-members.html"; sourceTree = ""; }; + 24A2008A0F90D1DD003BB5A7 /* class_c_tab_view.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_tab_view.html; sourceTree = ""; }; + 24A2008B0F90D1DD003BB5A7 /* class_c_tab_view.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_tab_view.png; sourceTree = ""; }; + 24A2008C0F90D1DD003BB5A7 /* class_c_text_edit-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_text_edit-members.html"; sourceTree = ""; }; + 24A2008D0F90D1DD003BB5A7 /* class_c_text_edit.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_text_edit.html; sourceTree = ""; }; + 24A2008E0F90D1DD003BB5A7 /* class_c_text_edit.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_text_edit.png; sourceTree = ""; }; + 24A2008F0F90D1DD003BB5A7 /* class_c_text_label-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_text_label-members.html"; sourceTree = ""; }; + 24A200900F90D1DD003BB5A7 /* class_c_text_label.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_text_label.html; sourceTree = ""; }; + 24A200910F90D1DD003BB5A7 /* class_c_text_label.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_text_label.png; sourceTree = ""; }; + 24A200920F90D1DD003BB5A7 /* class_c_vertical_slider-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_vertical_slider-members.html"; sourceTree = ""; }; + 24A200930F90D1DD003BB5A7 /* class_c_vertical_slider.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_vertical_slider.html; sourceTree = ""; }; + 24A200940F90D1DD003BB5A7 /* class_c_vertical_slider.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_vertical_slider.png; sourceTree = ""; }; + 24A200950F90D1DD003BB5A7 /* class_c_vertical_switch-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_vertical_switch-members.html"; sourceTree = ""; }; + 24A200960F90D1DD003BB5A7 /* class_c_vertical_switch.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_vertical_switch.html; sourceTree = ""; }; + 24A200970F90D1DD003BB5A7 /* class_c_vertical_switch.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_vertical_switch.png; sourceTree = ""; }; + 24A200980F90D1DD003BB5A7 /* class_c_view-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_view-members.html"; sourceTree = ""; }; + 24A200990F90D1DD003BB5A7 /* class_c_view.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_view.html; sourceTree = ""; }; + 24A2009A0F90D1DD003BB5A7 /* class_c_view.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_view.png; sourceTree = ""; }; + 24A2009B0F90D1DD003BB5A7 /* class_c_view_container-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_view_container-members.html"; sourceTree = ""; }; + 24A2009C0F90D1DD003BB5A7 /* class_c_view_container.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_view_container.html; sourceTree = ""; }; + 24A2009D0F90D1DD003BB5A7 /* class_c_view_container.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_view_container.png; sourceTree = ""; }; + 24A2009E0F90D1DD003BB5A7 /* class_c_vu_meter-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_vu_meter-members.html"; sourceTree = ""; }; + 24A2009F0F90D1DD003BB5A7 /* class_c_vu_meter.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_vu_meter.html; sourceTree = ""; }; + 24A200A00F90D1DD003BB5A7 /* class_c_vu_meter.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_vu_meter.png; sourceTree = ""; }; + 24A200A10F90D1DD003BB5A7 /* class_i_scrollbar_drawer-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_i_scrollbar_drawer-members.html"; sourceTree = ""; }; + 24A200A20F90D1DD003BB5A7 /* class_i_scrollbar_drawer.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_i_scrollbar_drawer.html; sourceTree = ""; }; + 24A200A30F90D1DD003BB5A7 /* class_plugin_g_u_i_editor-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_plugin_g_u_i_editor-members.html"; sourceTree = ""; }; + 24A200A40F90D1DD003BB5A7 /* class_plugin_g_u_i_editor.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_plugin_g_u_i_editor.html; sourceTree = ""; }; + 24A200A50F90D1DD003BB5A7 /* cscrollview_8cpp.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = cscrollview_8cpp.html; sourceTree = ""; }; + 24A200A60F90D1DD003BB5A7 /* cscrollview_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = cscrollview_8h.html; sourceTree = ""; }; + 24A200A70F90D1DD003BB5A7 /* ctabview_8cpp.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = ctabview_8cpp.html; sourceTree = ""; }; + 24A200A80F90D1DD003BB5A7 /* ctabview_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = ctabview_8h.html; sourceTree = ""; }; + 24A200A90F90D1DD003BB5A7 /* deprecated.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = deprecated.html; sourceTree = ""; }; + 24A200AA0F90D1DD003BB5A7 /* doc_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = doc_8h.html; sourceTree = ""; }; + 24A200AB0F90D1DD003BB5A7 /* doxygen.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = doxygen.css; sourceTree = ""; }; + 24A200AC0F90D1DD003BB5A7 /* doxygen.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = doxygen.png; sourceTree = ""; }; + 24A200AD0F90D1DD003BB5A7 /* files.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = files.html; sourceTree = ""; }; + 24A200AE0F90D1DD003BB5A7 /* ftv2blank.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2blank.png; sourceTree = ""; }; + 24A200AF0F90D1DD003BB5A7 /* ftv2doc.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2doc.png; sourceTree = ""; }; + 24A200B00F90D1DD003BB5A7 /* ftv2folderclosed.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2folderclosed.png; sourceTree = ""; }; + 24A200B10F90D1DE003BB5A7 /* ftv2folderopen.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2folderopen.png; sourceTree = ""; }; + 24A200B20F90D1DE003BB5A7 /* ftv2lastnode.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2lastnode.png; sourceTree = ""; }; + 24A200B30F90D1DE003BB5A7 /* ftv2link.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2link.png; sourceTree = ""; }; + 24A200B40F90D1DE003BB5A7 /* ftv2mlastnode.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2mlastnode.png; sourceTree = ""; }; + 24A200B50F90D1DE003BB5A7 /* ftv2mnode.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2mnode.png; sourceTree = ""; }; + 24A200B60F90D1DE003BB5A7 /* ftv2node.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2node.png; sourceTree = ""; }; + 24A200B70F90D1DE003BB5A7 /* ftv2plastnode.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2plastnode.png; sourceTree = ""; }; + 24A200B80F90D1DE003BB5A7 /* ftv2pnode.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2pnode.png; sourceTree = ""; }; + 24A200B90F90D1DE003BB5A7 /* ftv2vertline.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2vertline.png; sourceTree = ""; }; + 24A200BA0F90D1DE003BB5A7 /* functions.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions.html; sourceTree = ""; }; + 24A200BB0F90D1DE003BB5A7 /* functions_0x62.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x62.html; sourceTree = ""; }; + 24A200BC0F90D1DE003BB5A7 /* functions_0x63.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x63.html; sourceTree = ""; }; + 24A200BD0F90D1DE003BB5A7 /* functions_0x64.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x64.html; sourceTree = ""; }; + 24A200BE0F90D1DE003BB5A7 /* functions_0x65.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x65.html; sourceTree = ""; }; + 24A200BF0F90D1DE003BB5A7 /* functions_0x66.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x66.html; sourceTree = ""; }; + 24A200C00F90D1DE003BB5A7 /* functions_0x67.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x67.html; sourceTree = ""; }; + 24A200C10F90D1DE003BB5A7 /* functions_0x68.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x68.html; sourceTree = ""; }; + 24A200C20F90D1DE003BB5A7 /* functions_0x69.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x69.html; sourceTree = ""; }; + 24A200C30F90D1DE003BB5A7 /* functions_0x6b.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x6b.html; sourceTree = ""; }; + 24A200C40F90D1DE003BB5A7 /* functions_0x6c.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x6c.html; sourceTree = ""; }; + 24A200C50F90D1DE003BB5A7 /* functions_0x6d.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x6d.html; sourceTree = ""; }; + 24A200C60F90D1DE003BB5A7 /* functions_0x6e.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x6e.html; sourceTree = ""; }; + 24A200C70F90D1DE003BB5A7 /* functions_0x6f.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x6f.html; sourceTree = ""; }; + 24A200C80F90D1DE003BB5A7 /* functions_0x70.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x70.html; sourceTree = ""; }; + 24A200C90F90D1DE003BB5A7 /* functions_0x72.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x72.html; sourceTree = ""; }; + 24A200CA0F90D1DE003BB5A7 /* functions_0x73.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x73.html; sourceTree = ""; }; + 24A200CB0F90D1DE003BB5A7 /* functions_0x74.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x74.html; sourceTree = ""; }; + 24A200CC0F90D1DE003BB5A7 /* functions_0x75.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x75.html; sourceTree = ""; }; + 24A200CD0F90D1DE003BB5A7 /* functions_0x76.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x76.html; sourceTree = ""; }; + 24A200CE0F90D1DE003BB5A7 /* functions_0x77.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x77.html; sourceTree = ""; }; + 24A200CF0F90D1DE003BB5A7 /* functions_0x78.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x78.html; sourceTree = ""; }; + 24A200D00F90D1DE003BB5A7 /* functions_0x79.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x79.html; sourceTree = ""; }; + 24A200D10F90D1DE003BB5A7 /* functions_0x7a.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x7a.html; sourceTree = ""; }; + 24A200D20F90D1DE003BB5A7 /* functions_0x7e.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x7e.html; sourceTree = ""; }; + 24A200D30F90D1DE003BB5A7 /* functions_eval.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_eval.html; sourceTree = ""; }; + 24A200D40F90D1DE003BB5A7 /* functions_func.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func.html; sourceTree = ""; }; + 24A200D50F90D1DE003BB5A7 /* functions_func_0x62.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x62.html; sourceTree = ""; }; + 24A200D60F90D1DE003BB5A7 /* functions_func_0x63.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x63.html; sourceTree = ""; }; + 24A200D70F90D1DE003BB5A7 /* functions_func_0x64.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x64.html; sourceTree = ""; }; + 24A200D80F90D1DE003BB5A7 /* functions_func_0x65.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x65.html; sourceTree = ""; }; + 24A200D90F90D1DE003BB5A7 /* functions_func_0x66.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x66.html; sourceTree = ""; }; + 24A200DA0F90D1DE003BB5A7 /* functions_func_0x67.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x67.html; sourceTree = ""; }; + 24A200DB0F90D1DE003BB5A7 /* functions_func_0x68.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x68.html; sourceTree = ""; }; + 24A200DC0F90D1DE003BB5A7 /* functions_func_0x69.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x69.html; sourceTree = ""; }; + 24A200DD0F90D1DE003BB5A7 /* functions_func_0x6c.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x6c.html; sourceTree = ""; }; + 24A200DE0F90D1DE003BB5A7 /* functions_func_0x6d.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x6d.html; sourceTree = ""; }; + 24A200DF0F90D1DE003BB5A7 /* functions_func_0x6e.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x6e.html; sourceTree = ""; }; + 24A200E00F90D1DE003BB5A7 /* functions_func_0x6f.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x6f.html; sourceTree = ""; }; + 24A200E10F90D1DE003BB5A7 /* functions_func_0x70.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x70.html; sourceTree = ""; }; + 24A200E20F90D1DE003BB5A7 /* functions_func_0x72.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x72.html; sourceTree = ""; }; + 24A200E30F90D1DE003BB5A7 /* functions_func_0x73.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x73.html; sourceTree = ""; }; + 24A200E40F90D1DE003BB5A7 /* functions_func_0x74.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x74.html; sourceTree = ""; }; + 24A200E50F90D1DE003BB5A7 /* functions_func_0x75.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x75.html; sourceTree = ""; }; + 24A200E60F90D1DE003BB5A7 /* functions_func_0x76.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x76.html; sourceTree = ""; }; + 24A200E70F90D1DE003BB5A7 /* functions_func_0x77.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x77.html; sourceTree = ""; }; + 24A200E80F90D1DE003BB5A7 /* functions_func_0x7e.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x7e.html; sourceTree = ""; }; + 24A200E90F90D1DE003BB5A7 /* functions_rela.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_rela.html; sourceTree = ""; }; + 24A200EA0F90D1DE003BB5A7 /* functions_vars.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars.html; sourceTree = ""; }; + 24A200EB0F90D1DE003BB5A7 /* functions_vars_0x62.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x62.html; sourceTree = ""; }; + 24A200EC0F90D1DE003BB5A7 /* functions_vars_0x63.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x63.html; sourceTree = ""; }; + 24A200ED0F90D1DE003BB5A7 /* functions_vars_0x64.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x64.html; sourceTree = ""; }; + 24A200EE0F90D1DE003BB5A7 /* functions_vars_0x65.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x65.html; sourceTree = ""; }; + 24A200EF0F90D1DE003BB5A7 /* functions_vars_0x66.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x66.html; sourceTree = ""; }; + 24A200F00F90D1DE003BB5A7 /* functions_vars_0x67.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x67.html; sourceTree = ""; }; + 24A200F10F90D1DE003BB5A7 /* functions_vars_0x68.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x68.html; sourceTree = ""; }; + 24A200F20F90D1DE003BB5A7 /* functions_vars_0x69.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x69.html; sourceTree = ""; }; + 24A200F30F90D1DE003BB5A7 /* functions_vars_0x6b.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x6b.html; sourceTree = ""; }; + 24A200F40F90D1DE003BB5A7 /* functions_vars_0x6c.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x6c.html; sourceTree = ""; }; + 24A200F50F90D1DE003BB5A7 /* functions_vars_0x6d.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x6d.html; sourceTree = ""; }; + 24A200F60F90D1DE003BB5A7 /* functions_vars_0x6e.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x6e.html; sourceTree = ""; }; + 24A200F70F90D1DE003BB5A7 /* functions_vars_0x6f.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x6f.html; sourceTree = ""; }; + 24A200F80F90D1DE003BB5A7 /* functions_vars_0x70.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x70.html; sourceTree = ""; }; + 24A200F90F90D1DE003BB5A7 /* functions_vars_0x72.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x72.html; sourceTree = ""; }; + 24A200FA0F90D1DE003BB5A7 /* functions_vars_0x73.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x73.html; sourceTree = ""; }; + 24A200FB0F90D1DE003BB5A7 /* functions_vars_0x74.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x74.html; sourceTree = ""; }; + 24A200FC0F90D1DE003BB5A7 /* functions_vars_0x75.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x75.html; sourceTree = ""; }; + 24A200FD0F90D1DE003BB5A7 /* functions_vars_0x76.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x76.html; sourceTree = ""; }; + 24A200FE0F90D1DE003BB5A7 /* functions_vars_0x77.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x77.html; sourceTree = ""; }; + 24A200FF0F90D1DE003BB5A7 /* functions_vars_0x78.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x78.html; sourceTree = ""; }; + 24A201000F90D1DE003BB5A7 /* functions_vars_0x79.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x79.html; sourceTree = ""; }; + 24A201010F90D1DE003BB5A7 /* functions_vars_0x7a.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x7a.html; sourceTree = ""; }; + 24A201020F90D1DE003BB5A7 /* globals.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals.html; sourceTree = ""; }; + 24A201030F90D1DE003BB5A7 /* globals_0x61.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x61.html; sourceTree = ""; }; + 24A201040F90D1DE003BB5A7 /* globals_0x62.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x62.html; sourceTree = ""; }; + 24A201050F90D1DE003BB5A7 /* globals_0x63.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x63.html; sourceTree = ""; }; + 24A201060F90D1DE003BB5A7 /* globals_0x65.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x65.html; sourceTree = ""; }; + 24A201070F90D1DE003BB5A7 /* globals_0x66.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x66.html; sourceTree = ""; }; + 24A201080F90D1DE003BB5A7 /* globals_0x67.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x67.html; sourceTree = ""; }; + 24A201090F90D1DE003BB5A7 /* globals_0x6b.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x6b.html; sourceTree = ""; }; + 24A2010A0F90D1DE003BB5A7 /* globals_0x6d.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x6d.html; sourceTree = ""; }; + 24A2010B0F90D1DE003BB5A7 /* globals_0x6e.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x6e.html; sourceTree = ""; }; + 24A2010C0F90D1DE003BB5A7 /* globals_0x6f.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x6f.html; sourceTree = ""; }; + 24A2010D0F90D1DE003BB5A7 /* globals_0x71.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x71.html; sourceTree = ""; }; + 24A2010E0F90D1DE003BB5A7 /* globals_0x72.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x72.html; sourceTree = ""; }; + 24A2010F0F90D1DE003BB5A7 /* globals_0x73.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x73.html; sourceTree = ""; }; + 24A201100F90D1DE003BB5A7 /* globals_0x74.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x74.html; sourceTree = ""; }; + 24A201110F90D1DE003BB5A7 /* globals_0x75.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x75.html; sourceTree = ""; }; + 24A201120F90D1DE003BB5A7 /* globals_0x76.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x76.html; sourceTree = ""; }; + 24A201130F90D1DE003BB5A7 /* globals_0x77.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x77.html; sourceTree = ""; }; + 24A201140F90D1DE003BB5A7 /* globals_defs.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_defs.html; sourceTree = ""; }; + 24A201150F90D1DE003BB5A7 /* globals_enum.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_enum.html; sourceTree = ""; }; + 24A201160F90D1DE003BB5A7 /* globals_eval.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_eval.html; sourceTree = ""; }; + 24A201170F90D1DE003BB5A7 /* globals_type.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_type.html; sourceTree = ""; }; + 24A201180F90D1DE003BB5A7 /* globals_vars.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_vars.html; sourceTree = ""; }; + 24A201190F90D1DE003BB5A7 /* hierarchy.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = hierarchy.html; sourceTree = ""; }; + 24A2011A0F90D1DE003BB5A7 /* index.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = index.html; sourceTree = ""; }; + 24A2011B0F90D1DE003BB5A7 /* intro.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = intro.html; sourceTree = ""; }; + 24A2011C0F90D1DE003BB5A7 /* license.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = license.html; sourceTree = ""; }; + 24A2011D0F90D1DE003BB5A7 /* maceditor.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = maceditor.html; sourceTree = ""; }; + 24A2011E0F90D1DE003BB5A7 /* main.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = main.html; sourceTree = ""; }; + 24A2011F0F90D1DE003BB5A7 /* others.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = others.html; sourceTree = ""; }; + 24A201200F90D1DE003BB5A7 /* pages.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = pages.html; sourceTree = ""; }; + 24A201210F90D1DE003BB5A7 /* plugguieditor_8cpp.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = plugguieditor_8cpp.html; sourceTree = ""; }; + 24A201220F90D1DE003BB5A7 /* plugguieditor_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = plugguieditor_8h.html; sourceTree = ""; }; + 24A201230F90D1DE003BB5A7 /* sequences.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = sequences.html; sourceTree = ""; }; + 24A201240F90D1DE003BB5A7 /* struct_c_color-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "struct_c_color-members.html"; sourceTree = ""; }; + 24A201250F90D1DE003BB5A7 /* struct_c_color.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = struct_c_color.html; sourceTree = ""; }; + 24A201260F90D1DE003BB5A7 /* struct_c_point-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "struct_c_point-members.html"; sourceTree = ""; }; + 24A201270F90D1DE003BB5A7 /* struct_c_point.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = struct_c_point.html; sourceTree = ""; }; + 24A201280F90D1DE003BB5A7 /* struct_c_rect-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "struct_c_rect-members.html"; sourceTree = ""; }; + 24A201290F90D1DE003BB5A7 /* struct_c_rect.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = struct_c_rect.html; sourceTree = ""; }; + 24A2012A0F90D1DE003BB5A7 /* struct_e_rect-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "struct_e_rect-members.html"; sourceTree = ""; }; + 24A2012B0F90D1DE003BB5A7 /* struct_e_rect.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = struct_e_rect.html; sourceTree = ""; }; + 24A2012C0F90D1DE003BB5A7 /* struct_vst_file_select-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "struct_vst_file_select-members.html"; sourceTree = ""; }; + 24A2012D0F90D1DE003BB5A7 /* struct_vst_file_select.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = struct_vst_file_select.html; sourceTree = ""; }; + 24A2012E0F90D1DE003BB5A7 /* struct_vst_file_type-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "struct_vst_file_type-members.html"; sourceTree = ""; }; + 24A2012F0F90D1DE003BB5A7 /* struct_vst_file_type.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = struct_vst_file_type.html; sourceTree = ""; }; + 24A201300F90D1DE003BB5A7 /* struct_vst_key_code-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "struct_vst_key_code-members.html"; sourceTree = ""; }; + 24A201310F90D1DE003BB5A7 /* struct_vst_key_code.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = struct_vst_key_code.html; sourceTree = ""; }; + 24A201320F90D1DE003BB5A7 /* tab_b.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = tab_b.gif; sourceTree = ""; }; + 24A201330F90D1DE003BB5A7 /* tab_l.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = tab_l.gif; sourceTree = ""; }; + 24A201340F90D1DE003BB5A7 /* tab_r.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = tab_r.gif; sourceTree = ""; }; + 24A201350F90D1DE003BB5A7 /* tabs.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = tabs.css; sourceTree = ""; }; + 24A201360F90D1DE003BB5A7 /* thanks.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = thanks.html; sourceTree = ""; }; + 24A201370F90D1DE003BB5A7 /* tree.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = tree.html; sourceTree = ""; }; + 24A201380F90D1DE003BB5A7 /* vstcontrols_8cpp.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstcontrols_8cpp.html; sourceTree = ""; }; + 24A201390F90D1DE003BB5A7 /* vstcontrols_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstcontrols_8h.html; sourceTree = ""; }; + 24A2013A0F90D1DE003BB5A7 /* vstgui_8cpp.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstgui_8cpp.html; sourceTree = ""; }; + 24A2013B0F90D1DE003BB5A7 /* vstgui_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstgui_8h.html; sourceTree = ""; }; + 24A2013C0F90D1DE003BB5A7 /* vstkeycode_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstkeycode_8h.html; sourceTree = ""; }; + 24A2013D0F90D1DE003BB5A7 /* vstoffline.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstoffline.html; sourceTree = ""; }; + 24A2013E0F90D1DE003BB5A7 /* vstparamstruct.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstparamstruct.html; sourceTree = ""; }; + 24A2013F0F90D1DE003BB5A7 /* vstplugscarbon_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstplugscarbon_8h.html; sourceTree = ""; }; + 24A201400F90D1DE003BB5A7 /* vstplugsmac_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstplugsmac_8h.html; sourceTree = ""; }; + 24A201410F90D1DE003BB5A7 /* vstplugsmacho_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstplugsmacho_8h.html; sourceTree = ""; }; + 24A201420F90D1DE003BB5A7 /* vstplugsquartz_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstplugsquartz_8h.html; sourceTree = ""; }; + 24A201430F90D1DE003BB5A7 /* whatsnew.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = whatsnew.html; sourceTree = ""; }; + 24A201440F90D1DE003BB5A7 /* index.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = index.html; sourceTree = ""; }; + 24A201450F90D1DE003BB5A7 /* Migrating from 2.3.rtf */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; path = "Migrating from 2.3.rtf"; sourceTree = ""; }; + 24A201460F90D1DE003BB5A7 /* plugguieditor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = plugguieditor.cpp; sourceTree = ""; }; + 24A201470F90D1DE003BB5A7 /* plugguieditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = plugguieditor.h; sourceTree = ""; }; + 24A201480F90D1DE003BB5A7 /* vstcontrols.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstcontrols.cpp; sourceTree = ""; }; + 24A201490F90D1DE003BB5A7 /* vstcontrols.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstcontrols.h; sourceTree = ""; }; + 24A2014A0F90D1DE003BB5A7 /* vstgui.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstgui.cpp; sourceTree = ""; }; + 24A2014B0F90D1DE003BB5A7 /* vstgui.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstgui.h; sourceTree = ""; }; + 24A2014C0F90D1DE003BB5A7 /* vstkeycode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstkeycode.h; sourceTree = ""; }; + 24A2014D0F90D1DE003BB5A7 /* vstplugscarbon.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstplugscarbon.h; sourceTree = ""; }; + 24A2014E0F90D1DE003BB5A7 /* vstplugsmac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstplugsmac.h; sourceTree = ""; }; + 24A2014F0F90D1DE003BB5A7 /* vstplugsmacho.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstplugsmacho.h; sourceTree = ""; }; + 24A201500F90D1DE003BB5A7 /* vstplugsquartz.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstplugsquartz.h; sourceTree = ""; }; + 24A2FEBD0F90D1DC003BB5A7 /* Thumbs.db */ = {isa = PBXFileReference; lastKnownFileType = file; path = Thumbs.db; sourceTree = ""; }; + 24A2FEBE0F90D1DC003BB5A7 /* VST_Logo_Usage_Guideline.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = VST_Logo_Usage_Guideline.pdf; sourceTree = ""; }; + 24A2FEBF0F90D1DC003BB5A7 /* VSTLogoAlpha.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = VSTLogoAlpha.png; sourceTree = ""; }; + 24A2FEC00F90D1DC003BB5A7 /* VSTLogoBlack.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = VSTLogoBlack.jpg; sourceTree = ""; }; + 24A2FEC10F90D1DC003BB5A7 /* VSTLogoWhite.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = VSTLogoWhite.jpg; sourceTree = ""; }; + 24A2FEC60F90D1DC003BB5A7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 24A2FEC80F90D1DC003BB5A7 /* VSTMonitor */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.bundle"; path = VSTMonitor; sourceTree = ""; }; + 24A2FEC90F90D1DC003BB5A7 /* PkgInfo */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = PkgInfo; sourceTree = ""; }; + 24A2FECB0F90D1DC003BB5A7 /* bmp50000.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp50000.bmp; sourceTree = ""; }; + 24A2FECC0F90D1DC003BB5A7 /* bmp50001.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp50001.bmp; sourceTree = ""; }; + 24A2FECD0F90D1DC003BB5A7 /* bmp50002.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp50002.bmp; sourceTree = ""; }; + 24A2FECE0F90D1DC003BB5A7 /* bmp50003.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp50003.bmp; sourceTree = ""; }; + 24A2FECF0F90D1DC003BB5A7 /* bmp50004.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp50004.bmp; sourceTree = ""; }; + 24A2FED00F90D1DC003BB5A7 /* bmp50005.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp50005.bmp; sourceTree = ""; }; + 24A2FED10F90D1DC003BB5A7 /* bmp50006.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp50006.bmp; sourceTree = ""; }; + 24A2FED20F90D1DC003BB5A7 /* bmp50007.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp50007.bmp; sourceTree = ""; }; + 24A2FED30F90D1DC003BB5A7 /* bmp50008.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp50008.bmp; sourceTree = ""; }; + 24A2FED40F90D1DC003BB5A7 /* VSTParamTool.app */ = {isa = PBXFileReference; lastKnownFileType = wrapper.application; path = VSTParamTool.app; sourceTree = ""; }; + 24A2FED60F90D1DC003BB5A7 /* vstmonitor.dll */ = {isa = PBXFileReference; lastKnownFileType = file; path = vstmonitor.dll; sourceTree = ""; }; + 24A2FED70F90D1DC003BB5A7 /* vstparamtool.exe */ = {isa = PBXFileReference; lastKnownFileType = file; path = vstparamtool.exe; sourceTree = ""; }; + 24A2FEDA0F90D1DC003BB5A7 /* folder.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = folder.gif; sourceTree = ""; }; + 24A2FEDB0F90D1DC003BB5A7 /* mac.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = mac.gif; sourceTree = ""; }; + 24A2FEDC0F90D1DC003BB5A7 /* vstpluglogo_small.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = vstpluglogo_small.jpg; sourceTree = ""; }; + 24A2FEDD0F90D1DC003BB5A7 /* win.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = win.gif; sourceTree = ""; }; + 24A2FEDF0F90D1DC003BB5A7 /* aeffect_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = aeffect_8h.html; sourceTree = ""; }; + 24A2FEE00F90D1DC003BB5A7 /* aeffectx_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = aeffectx_8h.html; sourceTree = ""; }; + 24A2FEE10F90D1DC003BB5A7 /* aeffeditor_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = aeffeditor_8h.html; sourceTree = ""; }; + 24A2FEE20F90D1DC003BB5A7 /* annotated.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = annotated.html; sourceTree = ""; }; + 24A2FEE30F90D1DC003BB5A7 /* audioeffect_8cpp.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = audioeffect_8cpp.html; sourceTree = ""; }; + 24A2FEE40F90D1DC003BB5A7 /* audioeffect_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = audioeffect_8h.html; sourceTree = ""; }; + 24A2FEE50F90D1DC003BB5A7 /* audioeffectx_8cpp.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = audioeffectx_8cpp.html; sourceTree = ""; }; + 24A2FEE60F90D1DC003BB5A7 /* audioeffectx_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = audioeffectx_8h.html; sourceTree = ""; }; + 24A2FEE70F90D1DC003BB5A7 /* Blocksizechange.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = Blocksizechange.gif; sourceTree = ""; }; + 24A2FEE80F90D1DC003BB5A7 /* class_a_eff_editor-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "class_a_eff_editor-members.html"; sourceTree = ""; }; + 24A2FEE90F90D1DC003BB5A7 /* class_a_eff_editor.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = class_a_eff_editor.html; sourceTree = ""; }; + 24A2FEEA0F90D1DC003BB5A7 /* class_audio_effect-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "class_audio_effect-members.html"; sourceTree = ""; }; + 24A2FEEB0F90D1DC003BB5A7 /* class_audio_effect.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = class_audio_effect.html; sourceTree = ""; }; + 24A2FEEC0F90D1DC003BB5A7 /* class_audio_effect.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_audio_effect.png; sourceTree = ""; }; + 24A2FEED0F90D1DC003BB5A7 /* class_audio_effect_x-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "class_audio_effect_x-members.html"; sourceTree = ""; }; + 24A2FEEE0F90D1DC003BB5A7 /* class_audio_effect_x.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = class_audio_effect_x.html; sourceTree = ""; }; + 24A2FEEF0F90D1DC003BB5A7 /* class_audio_effect_x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_audio_effect_x.png; sourceTree = ""; }; + 24A2FEF00F90D1DC003BB5A7 /* ControlChanged.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = ControlChanged.gif; sourceTree = ""; }; + 24A2FEF10F90D1DC003BB5A7 /* deprecated.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = deprecated.html; sourceTree = ""; }; + 24A2FEF20F90D1DC003BB5A7 /* dir_2d3252dd12c84c66c1d25b26bb45a1f5.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = dir_2d3252dd12c84c66c1d25b26bb45a1f5.html; sourceTree = ""; }; + 24A2FEF30F90D1DC003BB5A7 /* dir_77c628dfee72e555f82d5ef53b733f38.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = dir_77c628dfee72e555f82d5ef53b733f38.html; sourceTree = ""; }; + 24A2FEF40F90D1DC003BB5A7 /* dir_f81105d3b854bea570aaf3bae5cb64c1.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = dir_f81105d3b854bea570aaf3bae5cb64c1.html; sourceTree = ""; }; + 24A2FEF50F90D1DC003BB5A7 /* dir_fa0454ab79b4262333bf837ea3d765e9.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = dir_fa0454ab79b4262333bf837ea3d765e9.html; sourceTree = ""; }; + 24A2FEF60F90D1DC003BB5A7 /* dirs.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = dirs.html; sourceTree = ""; }; + 24A2FEF70F90D1DC003BB5A7 /* doc_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = doc_8h.html; sourceTree = ""; }; + 24A2FEF80F90D1DC003BB5A7 /* doxygen.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = doxygen.css; sourceTree = ""; }; + 24A2FEF90F90D1DC003BB5A7 /* doxygen.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = doxygen.png; sourceTree = ""; }; + 24A2FEFA0F90D1DC003BB5A7 /* files.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = files.html; sourceTree = ""; }; + 24A2FEFB0F90D1DC003BB5A7 /* ftv2blank.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2blank.png; sourceTree = ""; }; + 24A2FEFC0F90D1DC003BB5A7 /* ftv2doc.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2doc.png; sourceTree = ""; }; + 24A2FEFD0F90D1DC003BB5A7 /* ftv2folderclosed.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2folderclosed.png; sourceTree = ""; }; + 24A2FEFE0F90D1DC003BB5A7 /* ftv2folderopen.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2folderopen.png; sourceTree = ""; }; + 24A2FEFF0F90D1DC003BB5A7 /* ftv2lastnode.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2lastnode.png; sourceTree = ""; }; + 24A2FF000F90D1DC003BB5A7 /* ftv2link.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2link.png; sourceTree = ""; }; + 24A2FF010F90D1DC003BB5A7 /* ftv2mlastnode.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2mlastnode.png; sourceTree = ""; }; + 24A2FF020F90D1DC003BB5A7 /* ftv2mnode.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2mnode.png; sourceTree = ""; }; + 24A2FF030F90D1DC003BB5A7 /* ftv2node.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2node.png; sourceTree = ""; }; + 24A2FF040F90D1DC003BB5A7 /* ftv2plastnode.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2plastnode.png; sourceTree = ""; }; + 24A2FF050F90D1DC003BB5A7 /* ftv2pnode.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2pnode.png; sourceTree = ""; }; + 24A2FF060F90D1DC003BB5A7 /* ftv2vertline.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2vertline.png; sourceTree = ""; }; + 24A2FF070F90D1DC003BB5A7 /* functions.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions.html; sourceTree = ""; }; + 24A2FF080F90D1DC003BB5A7 /* functions_0x62.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x62.html; sourceTree = ""; }; + 24A2FF090F90D1DC003BB5A7 /* functions_0x63.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x63.html; sourceTree = ""; }; + 24A2FF0A0F90D1DC003BB5A7 /* functions_0x64.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x64.html; sourceTree = ""; }; + 24A2FF0B0F90D1DC003BB5A7 /* functions_0x65.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x65.html; sourceTree = ""; }; + 24A2FF0C0F90D1DC003BB5A7 /* functions_0x66.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x66.html; sourceTree = ""; }; + 24A2FF0D0F90D1DC003BB5A7 /* functions_0x67.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x67.html; sourceTree = ""; }; + 24A2FF0E0F90D1DC003BB5A7 /* functions_0x68.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x68.html; sourceTree = ""; }; + 24A2FF0F0F90D1DC003BB5A7 /* functions_0x69.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x69.html; sourceTree = ""; }; + 24A2FF100F90D1DC003BB5A7 /* functions_0x6b.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x6b.html; sourceTree = ""; }; + 24A2FF110F90D1DC003BB5A7 /* functions_0x6c.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x6c.html; sourceTree = ""; }; + 24A2FF120F90D1DC003BB5A7 /* functions_0x6d.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x6d.html; sourceTree = ""; }; + 24A2FF130F90D1DC003BB5A7 /* functions_0x6e.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x6e.html; sourceTree = ""; }; + 24A2FF140F90D1DC003BB5A7 /* functions_0x6f.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x6f.html; sourceTree = ""; }; + 24A2FF150F90D1DC003BB5A7 /* functions_0x70.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x70.html; sourceTree = ""; }; + 24A2FF160F90D1DC003BB5A7 /* functions_0x72.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x72.html; sourceTree = ""; }; + 24A2FF170F90D1DC003BB5A7 /* functions_0x73.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x73.html; sourceTree = ""; }; + 24A2FF180F90D1DC003BB5A7 /* functions_0x74.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x74.html; sourceTree = ""; }; + 24A2FF190F90D1DC003BB5A7 /* functions_0x75.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x75.html; sourceTree = ""; }; + 24A2FF1A0F90D1DC003BB5A7 /* functions_0x76.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x76.html; sourceTree = ""; }; + 24A2FF1B0F90D1DC003BB5A7 /* functions_0x77.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x77.html; sourceTree = ""; }; + 24A2FF1C0F90D1DC003BB5A7 /* functions_0x78.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x78.html; sourceTree = ""; }; + 24A2FF1D0F90D1DC003BB5A7 /* functions_0x79.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x79.html; sourceTree = ""; }; + 24A2FF1E0F90D1DC003BB5A7 /* functions_0x7e.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x7e.html; sourceTree = ""; }; + 24A2FF1F0F90D1DC003BB5A7 /* functions_func.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_func.html; sourceTree = ""; }; + 24A2FF200F90D1DC003BB5A7 /* functions_vars.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_vars.html; sourceTree = ""; }; + 24A2FF210F90D1DC003BB5A7 /* globals.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals.html; sourceTree = ""; }; + 24A2FF220F90D1DC003BB5A7 /* globals_0x62.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_0x62.html; sourceTree = ""; }; + 24A2FF230F90D1DC003BB5A7 /* globals_0x63.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_0x63.html; sourceTree = ""; }; + 24A2FF240F90D1DC003BB5A7 /* globals_0x64.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_0x64.html; sourceTree = ""; }; + 24A2FF250F90D1DC003BB5A7 /* globals_0x65.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_0x65.html; sourceTree = ""; }; + 24A2FF260F90D1DC003BB5A7 /* globals_0x66.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_0x66.html; sourceTree = ""; }; + 24A2FF270F90D1DC003BB5A7 /* globals_0x6b.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_0x6b.html; sourceTree = ""; }; + 24A2FF280F90D1DC003BB5A7 /* globals_0x6d.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_0x6d.html; sourceTree = ""; }; + 24A2FF290F90D1DC003BB5A7 /* globals_0x74.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_0x74.html; sourceTree = ""; }; + 24A2FF2A0F90D1DC003BB5A7 /* globals_0x76.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_0x76.html; sourceTree = ""; }; + 24A2FF2B0F90D1DC003BB5A7 /* globals_defs.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_defs.html; sourceTree = ""; }; + 24A2FF2C0F90D1DC003BB5A7 /* globals_enum.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_enum.html; sourceTree = ""; }; + 24A2FF2D0F90D1DC003BB5A7 /* globals_eval.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_eval.html; sourceTree = ""; }; + 24A2FF2E0F90D1DC003BB5A7 /* globals_eval_0x65.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_eval_0x65.html; sourceTree = ""; }; + 24A2FF2F0F90D1DC003BB5A7 /* globals_eval_0x6b.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_eval_0x6b.html; sourceTree = ""; }; + 24A2FF300F90D1DC003BB5A7 /* globals_eval_0x6d.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_eval_0x6d.html; sourceTree = ""; }; + 24A2FF310F90D1DC003BB5A7 /* globals_eval_0x76.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_eval_0x76.html; sourceTree = ""; }; + 24A2FF320F90D1DC003BB5A7 /* globals_func.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_func.html; sourceTree = ""; }; + 24A2FF330F90D1DC003BB5A7 /* globals_type.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_type.html; sourceTree = ""; }; + 24A2FF340F90D1DC003BB5A7 /* globals_vars.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_vars.html; sourceTree = ""; }; + 24A2FF350F90D1DC003BB5A7 /* hierarchy.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = hierarchy.html; sourceTree = ""; }; + 24A2FF360F90D1DC003BB5A7 /* history.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = history.html; sourceTree = ""; }; + 24A2FF370F90D1DC003BB5A7 /* index.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = index.html; sourceTree = ""; }; + 24A2FF380F90D1DC003BB5A7 /* Initialisation.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = Initialisation.gif; sourceTree = ""; }; + 24A2FF390F90D1DC003BB5A7 /* intro.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = intro.html; sourceTree = ""; }; + 24A2FF3A0F90D1DC003BB5A7 /* IOchange.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = IOchange.gif; sourceTree = ""; }; + 24A2FF3B0F90D1DC003BB5A7 /* license.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = license.html; sourceTree = ""; }; + 24A2FF3C0F90D1DC003BB5A7 /* maceditor.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = maceditor.html; sourceTree = ""; }; + 24A2FF3D0F90D1DC003BB5A7 /* main.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = main.html; sourceTree = ""; }; + 24A2FF3E0F90D1DC003BB5A7 /* namespace_host_can_dos.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = namespace_host_can_dos.html; sourceTree = ""; }; + 24A2FF3F0F90D1DC003BB5A7 /* namespace_plug_can_dos.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = namespace_plug_can_dos.html; sourceTree = ""; }; + 24A2FF400F90D1DC003BB5A7 /* namespacemembers.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = namespacemembers.html; sourceTree = ""; }; + 24A2FF410F90D1DC003BB5A7 /* namespacemembers_vars.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = namespacemembers_vars.html; sourceTree = ""; }; + 24A2FF420F90D1DC003BB5A7 /* namespaces.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = namespaces.html; sourceTree = ""; }; + 24A2FF430F90D1DC003BB5A7 /* Offlineprocessing.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = Offlineprocessing.gif; sourceTree = ""; }; + 24A2FF440F90D1DC003BB5A7 /* others.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = others.html; sourceTree = ""; }; + 24A2FF450F90D1DC003BB5A7 /* pages.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = pages.html; sourceTree = ""; }; + 24A2FF460F90D1DC003BB5A7 /* Sampleratechange.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = Sampleratechange.gif; sourceTree = ""; }; + 24A2FF470F90D1DC003BB5A7 /* sequences.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = sequences.html; sourceTree = ""; }; + 24A2FF480F90D1DC003BB5A7 /* SpeakerarrangementnegotiationforVSTfx.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = SpeakerarrangementnegotiationforVSTfx.gif; sourceTree = ""; }; + 24A2FF490F90D1DC003BB5A7 /* struct_a_effect-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_a_effect-members.html"; sourceTree = ""; }; + 24A2FF4A0F90D1DC003BB5A7 /* struct_a_effect.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_a_effect.html; sourceTree = ""; }; + 24A2FF4B0F90D1DC003BB5A7 /* struct_e_rect-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_e_rect-members.html"; sourceTree = ""; }; + 24A2FF4C0F90D1DC003BB5A7 /* struct_e_rect.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_e_rect.html; sourceTree = ""; }; + 24A2FF4D0F90D1DC003BB5A7 /* struct_midi_key_name-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_midi_key_name-members.html"; sourceTree = ""; }; + 24A2FF4E0F90D1DC003BB5A7 /* struct_midi_key_name.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_midi_key_name.html; sourceTree = ""; }; + 24A2FF4F0F90D1DC003BB5A7 /* struct_midi_program_category-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_midi_program_category-members.html"; sourceTree = ""; }; + 24A2FF500F90D1DC003BB5A7 /* struct_midi_program_category.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_midi_program_category.html; sourceTree = ""; }; + 24A2FF510F90D1DC003BB5A7 /* struct_midi_program_name-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_midi_program_name-members.html"; sourceTree = ""; }; + 24A2FF520F90D1DC003BB5A7 /* struct_midi_program_name.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_midi_program_name.html; sourceTree = ""; }; + 24A2FF530F90D1DC003BB5A7 /* struct_vst_audio_file-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_audio_file-members.html"; sourceTree = ""; }; + 24A2FF540F90D1DC003BB5A7 /* struct_vst_audio_file.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_audio_file.html; sourceTree = ""; }; + 24A2FF550F90D1DC003BB5A7 /* struct_vst_audio_file_marker-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_audio_file_marker-members.html"; sourceTree = ""; }; + 24A2FF560F90D1DC003BB5A7 /* struct_vst_audio_file_marker.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_audio_file_marker.html; sourceTree = ""; }; + 24A2FF570F90D1DC003BB5A7 /* struct_vst_event-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_event-members.html"; sourceTree = ""; }; + 24A2FF580F90D1DC003BB5A7 /* struct_vst_event.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_event.html; sourceTree = ""; }; + 24A2FF590F90D1DD003BB5A7 /* struct_vst_events-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_events-members.html"; sourceTree = ""; }; + 24A2FF5A0F90D1DD003BB5A7 /* struct_vst_events.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_events.html; sourceTree = ""; }; + 24A2FF5B0F90D1DD003BB5A7 /* struct_vst_file_select-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_file_select-members.html"; sourceTree = ""; }; + 24A2FF5C0F90D1DD003BB5A7 /* struct_vst_file_select.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_file_select.html; sourceTree = ""; }; + 24A2FF5D0F90D1DD003BB5A7 /* struct_vst_file_type-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_file_type-members.html"; sourceTree = ""; }; + 24A2FF5E0F90D1DD003BB5A7 /* struct_vst_file_type.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_file_type.html; sourceTree = ""; }; + 24A2FF5F0F90D1DD003BB5A7 /* struct_vst_key_code-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_key_code-members.html"; sourceTree = ""; }; + 24A2FF600F90D1DD003BB5A7 /* struct_vst_key_code.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_key_code.html; sourceTree = ""; }; + 24A2FF610F90D1DD003BB5A7 /* struct_vst_midi_event-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_midi_event-members.html"; sourceTree = ""; }; + 24A2FF620F90D1DD003BB5A7 /* struct_vst_midi_event.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_midi_event.html; sourceTree = ""; }; + 24A2FF630F90D1DD003BB5A7 /* struct_vst_midi_sysex_event-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_midi_sysex_event-members.html"; sourceTree = ""; }; + 24A2FF640F90D1DD003BB5A7 /* struct_vst_midi_sysex_event.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_midi_sysex_event.html; sourceTree = ""; }; + 24A2FF650F90D1DD003BB5A7 /* struct_vst_offline_task-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_offline_task-members.html"; sourceTree = ""; }; + 24A2FF660F90D1DD003BB5A7 /* struct_vst_offline_task.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_offline_task.html; sourceTree = ""; }; + 24A2FF670F90D1DD003BB5A7 /* struct_vst_parameter_properties-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_parameter_properties-members.html"; sourceTree = ""; }; + 24A2FF680F90D1DD003BB5A7 /* struct_vst_parameter_properties.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_parameter_properties.html; sourceTree = ""; }; + 24A2FF690F90D1DD003BB5A7 /* struct_vst_patch_chunk_info-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_patch_chunk_info-members.html"; sourceTree = ""; }; + 24A2FF6A0F90D1DD003BB5A7 /* struct_vst_patch_chunk_info.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_patch_chunk_info.html; sourceTree = ""; }; + 24A2FF6B0F90D1DD003BB5A7 /* struct_vst_pin_properties-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_pin_properties-members.html"; sourceTree = ""; }; + 24A2FF6C0F90D1DD003BB5A7 /* struct_vst_pin_properties.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_pin_properties.html; sourceTree = ""; }; + 24A2FF6D0F90D1DD003BB5A7 /* struct_vst_speaker_arrangement-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_speaker_arrangement-members.html"; sourceTree = ""; }; + 24A2FF6E0F90D1DD003BB5A7 /* struct_vst_speaker_arrangement.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_speaker_arrangement.html; sourceTree = ""; }; + 24A2FF6F0F90D1DD003BB5A7 /* struct_vst_speaker_properties-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_speaker_properties-members.html"; sourceTree = ""; }; + 24A2FF700F90D1DD003BB5A7 /* struct_vst_speaker_properties.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_speaker_properties.html; sourceTree = ""; }; + 24A2FF710F90D1DD003BB5A7 /* struct_vst_time_info-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_time_info-members.html"; sourceTree = ""; }; + 24A2FF720F90D1DD003BB5A7 /* struct_vst_time_info.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_time_info.html; sourceTree = ""; }; + 24A2FF730F90D1DD003BB5A7 /* struct_vst_variable_io-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_variable_io-members.html"; sourceTree = ""; }; + 24A2FF740F90D1DD003BB5A7 /* struct_vst_variable_io.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_variable_io.html; sourceTree = ""; }; + 24A2FF750F90D1DD003BB5A7 /* struct_vst_window-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_window-members.html"; sourceTree = ""; }; + 24A2FF760F90D1DD003BB5A7 /* struct_vst_window.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_window.html; sourceTree = ""; }; + 24A2FF770F90D1DD003BB5A7 /* structfx_bank-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "structfx_bank-members.html"; sourceTree = ""; }; + 24A2FF780F90D1DD003BB5A7 /* structfx_bank.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = structfx_bank.html; sourceTree = ""; }; + 24A2FF790F90D1DD003BB5A7 /* structfx_program-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "structfx_program-members.html"; sourceTree = ""; }; + 24A2FF7A0F90D1DD003BB5A7 /* structfx_program.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = structfx_program.html; sourceTree = ""; }; + 24A2FF7B0F90D1DD003BB5A7 /* tab_b.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = tab_b.gif; sourceTree = ""; }; + 24A2FF7C0F90D1DD003BB5A7 /* tab_l.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = tab_l.gif; sourceTree = ""; }; + 24A2FF7D0F90D1DD003BB5A7 /* tab_r.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = tab_r.gif; sourceTree = ""; }; + 24A2FF7E0F90D1DD003BB5A7 /* tabs.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = tabs.css; sourceTree = ""; }; + 24A2FF7F0F90D1DD003BB5A7 /* Termination.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = Termination.gif; sourceTree = ""; }; + 24A2FF800F90D1DD003BB5A7 /* thanks.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = thanks.html; sourceTree = ""; }; + 24A2FF810F90D1DD003BB5A7 /* tree.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = tree.html; sourceTree = ""; }; + 24A2FF820F90D1DD003BB5A7 /* TurnOff.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = TurnOff.gif; sourceTree = ""; }; + 24A2FF830F90D1DD003BB5A7 /* TurnOn.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = TurnOn.gif; sourceTree = ""; }; + 24A2FF840F90D1DD003BB5A7 /* vstfxstore_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = vstfxstore_8h.html; sourceTree = ""; }; + 24A2FF850F90D1DD003BB5A7 /* vstoffline.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = vstoffline.html; sourceTree = ""; }; + 24A2FF860F90D1DD003BB5A7 /* vstparamstruct.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = vstparamstruct.html; sourceTree = ""; }; + 24A2FF870F90D1DD003BB5A7 /* vstpluglogo.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = vstpluglogo.jpg; sourceTree = ""; }; + 24A2FF880F90D1DD003BB5A7 /* vstplugmain_8cpp.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = vstplugmain_8cpp.html; sourceTree = ""; }; + 24A2FF890F90D1DD003BB5A7 /* whatsnew.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = whatsnew.html; sourceTree = ""; }; + 24A2FF8A0F90D1DD003BB5A7 /* sdk.menu.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = sdk.menu.html; sourceTree = ""; }; + 24A2FF8B0F90D1DD003BB5A7 /* sdk.overview.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = sdk.overview.html; sourceTree = ""; }; + 24A2FF8C0F90D1DD003BB5A7 /* sdkdoc.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = sdkdoc.css; sourceTree = ""; }; + 24A2FF8D0F90D1DD003BB5A7 /* VST Licensing Agreement.rtf */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; path = "VST Licensing Agreement.rtf"; sourceTree = ""; }; + 24A2FF8E0F90D1DD003BB5A7 /* index.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = index.html; sourceTree = ""; }; + 24A2FF910F90D1DD003BB5A7 /* aeffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffect.h; sourceTree = ""; }; + 24A2FF920F90D1DD003BB5A7 /* aeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffectx.h; sourceTree = ""; }; + 24A2FF930F90D1DD003BB5A7 /* vstfxstore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstfxstore.h; sourceTree = ""; }; + 24A2FF980F90D1DD003BB5A7 /* adelay.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = adelay.cpp; sourceTree = ""; }; + 24A2FF990F90D1DD003BB5A7 /* adelay.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = adelay.h; sourceTree = ""; }; + 24A2FF9A0F90D1DD003BB5A7 /* adelaymain.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = adelaymain.cpp; sourceTree = ""; }; + 24A2FF9D0F90D1DD003BB5A7 /* bmp00128.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp00128.bmp; sourceTree = ""; }; + 24A2FF9E0F90D1DD003BB5A7 /* bmp00129.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp00129.bmp; sourceTree = ""; }; + 24A2FF9F0F90D1DD003BB5A7 /* bmp00130.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp00130.bmp; sourceTree = ""; }; + 24A2FFA00F90D1DD003BB5A7 /* surrounddelay.rc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = surrounddelay.rc; sourceTree = ""; }; + 24A2FFA10F90D1DD003BB5A7 /* sdeditor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = sdeditor.cpp; sourceTree = ""; }; + 24A2FFA20F90D1DD003BB5A7 /* sdeditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sdeditor.h; sourceTree = ""; }; + 24A2FFA30F90D1DD003BB5A7 /* surrounddelay.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = surrounddelay.cpp; sourceTree = ""; }; + 24A2FFA40F90D1DD003BB5A7 /* surrounddelay.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = surrounddelay.h; sourceTree = ""; }; + 24A2FFA60F90D1DD003BB5A7 /* adelay.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = adelay.vcproj; sourceTree = ""; }; + 24A2FFA70F90D1DD003BB5A7 /* surrounddelay.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = surrounddelay.vcproj; sourceTree = ""; }; + 24A2FFAA0F90D1DD003BB5A7 /* again.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = again.cpp; sourceTree = ""; }; + 24A2FFAB0F90D1DD003BB5A7 /* again.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = again.h; sourceTree = ""; }; + 24A2FFAD0F90D1DD003BB5A7 /* again.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = again.vcproj; sourceTree = ""; }; + 24A2FFAF0F90D1DD003BB5A7 /* minihost-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "minihost-Info.plist"; sourceTree = ""; }; + 24A2FFB00F90D1DD003BB5A7 /* vst 2.4 examples.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; path = "vst 2.4 examples.xcodeproj"; sourceTree = ""; }; + 24A2FFB30F90D1DD003BB5A7 /* vst2.4Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = vst2.4Info.plist; sourceTree = ""; }; + 24A2FFB60F90D1DD003BB5A7 /* minieditor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = minieditor.cpp; sourceTree = ""; }; + 24A2FFB70F90D1DD003BB5A7 /* minihost.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = minihost.cpp; sourceTree = ""; }; + 24A2FFB90F90D1DD003BB5A7 /* minihost.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = minihost.vcproj; sourceTree = ""; }; + 24A2FFBC0F90D1DD003BB5A7 /* vstxsynth.rc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = vstxsynth.rc; sourceTree = ""; }; + 24A2FFBD0F90D1DD003BB5A7 /* vstxsynth.vstxml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = vstxsynth.vstxml; sourceTree = ""; }; + 24A2FFBF0F90D1DD003BB5A7 /* gmnames.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = gmnames.h; sourceTree = ""; }; + 24A2FFC00F90D1DD003BB5A7 /* vstxsynth.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstxsynth.cpp; sourceTree = ""; }; + 24A2FFC10F90D1DD003BB5A7 /* vstxsynth.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstxsynth.h; sourceTree = ""; }; + 24A2FFC20F90D1DD003BB5A7 /* vstxsynthproc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstxsynthproc.cpp; sourceTree = ""; }; + 24A2FFC40F90D1DD003BB5A7 /* vstxsynth.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = vstxsynth.vcproj; sourceTree = ""; }; + 24A2FFC60F90D1DD003BB5A7 /* samples.sln */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = samples.sln; sourceTree = ""; }; + 24A2FFC70F90D1DD003BB5A7 /* vstplug.def */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = vstplug.def; sourceTree = ""; }; + 24A2FFC90F90D1DD003BB5A7 /* adelay.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = adelay.vcproj; sourceTree = ""; }; + 24A2FFCA0F90D1DD003BB5A7 /* again.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = again.vcproj; sourceTree = ""; }; + 24A2FFCB0F90D1DD003BB5A7 /* minihost.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = minihost.vcproj; sourceTree = ""; }; + 24A2FFCC0F90D1DD003BB5A7 /* samples.sln */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = samples.sln; sourceTree = ""; }; + 24A2FFCD0F90D1DD003BB5A7 /* surrounddelay.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = surrounddelay.vcproj; sourceTree = ""; }; + 24A2FFCE0F90D1DD003BB5A7 /* vstxsynth.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = vstxsynth.vcproj; sourceTree = ""; }; + 24A2FFD00F90D1DD003BB5A7 /* adelay.dsp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = adelay.dsp; sourceTree = ""; }; + 24A2FFD10F90D1DD003BB5A7 /* again.dsp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = again.dsp; sourceTree = ""; }; + 24A2FFD20F90D1DD003BB5A7 /* minihost.dsp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = minihost.dsp; sourceTree = ""; }; + 24A2FFD30F90D1DD003BB5A7 /* samples.dsw */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = samples.dsw; sourceTree = ""; }; + 24A2FFD40F90D1DD003BB5A7 /* surrounddelay.dsp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = surrounddelay.dsp; sourceTree = ""; }; + 24A2FFD50F90D1DD003BB5A7 /* vstxsynth.dsp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = vstxsynth.dsp; sourceTree = ""; }; + 24A2FFD80F90D1DD003BB5A7 /* aeffeditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffeditor.h; sourceTree = ""; }; + 24A2FFD90F90D1DD003BB5A7 /* audioeffect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffect.cpp; sourceTree = ""; }; + 24A2FFDA0F90D1DD003BB5A7 /* audioeffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audioeffect.h; sourceTree = ""; }; + 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffectx.cpp; sourceTree = ""; }; + 24A2FFDC0F90D1DD003BB5A7 /* audioeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audioeffectx.h; sourceTree = ""; }; + 24A2FFDD0F90D1DD003BB5A7 /* vstplugmain.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstplugmain.cpp; sourceTree = ""; }; + 24A2FFE10F90D1DD003BB5A7 /* audiounit.exp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.exports; path = audiounit.exp; sourceTree = ""; }; + 24A2FFE20F90D1DD003BB5A7 /* cw_vst_prefix.pch++ */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = "cw_vst_prefix.pch++"; sourceTree = ""; }; + 24A2FFE30F90D1DD003BB5A7 /* drawtest.cw9prj */ = {isa = PBXFileReference; lastKnownFileType = file; path = drawtest.cw9prj; sourceTree = ""; }; + 24A2FFE40F90D1DD003BB5A7 /* drawtest.plc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = drawtest.plc; sourceTree = ""; }; + 24A2FFE50F90D1DD003BB5A7 /* drawtest.xcode */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; path = drawtest.xcode; sourceTree = ""; }; + 24A2FFE80F90D1DD003BB5A7 /* drawtest.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; path = drawtest.xcodeproj; sourceTree = ""; }; + 24A2FFEB0F90D1DD003BB5A7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 24A2FFEC0F90D1DD003BB5A7 /* xcode_au_prefix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = xcode_au_prefix.h; sourceTree = ""; }; + 24A2FFED0F90D1DD003BB5A7 /* xcode_vst_prefix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = xcode_vst_prefix.h; sourceTree = ""; }; + 24A2FFEF0F90D1DD003BB5A7 /* audiounit.r */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; path = audiounit.r; sourceTree = ""; }; + 24A2FFF00F90D1DD003BB5A7 /* bmp00001.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = bmp00001.png; sourceTree = ""; }; + 24A2FFF10F90D1DD003BB5A7 /* bmp00100.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = bmp00100.png; sourceTree = ""; }; + 24A2FFF20F90D1DD003BB5A7 /* bmp01000.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = bmp01000.png; sourceTree = ""; }; + 24A2FFF30F90D1DD003BB5A7 /* bmp10001.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10001.bmp; sourceTree = ""; }; + 24A2FFF40F90D1DD003BB5A7 /* bmp10002.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10002.bmp; sourceTree = ""; }; + 24A2FFF50F90D1DD003BB5A7 /* bmp10003.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10003.bmp; sourceTree = ""; }; + 24A2FFF60F90D1DD003BB5A7 /* bmp10004.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10004.bmp; sourceTree = ""; }; + 24A2FFF70F90D1DD003BB5A7 /* bmp10005.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10005.bmp; sourceTree = ""; }; + 24A2FFF80F90D1DD003BB5A7 /* bmp10006.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10006.bmp; sourceTree = ""; }; + 24A2FFF90F90D1DD003BB5A7 /* bmp10007.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10007.bmp; sourceTree = ""; }; + 24A2FFFA0F90D1DD003BB5A7 /* bmp10008.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10008.bmp; sourceTree = ""; }; + 24A2FFFB0F90D1DD003BB5A7 /* bmp10009.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10009.bmp; sourceTree = ""; }; + 24A2FFFC0F90D1DD003BB5A7 /* bmp10010.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10010.bmp; sourceTree = ""; }; + 24A2FFFD0F90D1DD003BB5A7 /* bmp10011.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10011.bmp; sourceTree = ""; }; + 24A2FFFE0F90D1DD003BB5A7 /* bmp10012.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10012.bmp; sourceTree = ""; }; + 24A2FFFF0F90D1DD003BB5A7 /* bmp10013.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10013.bmp; sourceTree = ""; }; + 24CFB70307E7A0220081BD57 /* PkgInfo */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = PkgInfo; path = mac/PkgInfo; sourceTree = ""; }; + 24D8286F09A914000093AEF8 /* kWoodRoomProc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = kWoodRoomProc.cpp; path = source/kWoodRoomProc.cpp; sourceTree = ""; }; + 24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = xcode_vst_prefix.h; path = mac/xcode_vst_prefix.h; sourceTree = SOURCE_ROOT; }; + 8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = mac/Info.plist; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXGroup section */ + 089C166AFE841209C02AAC07 /* FM-Chopper */ = { + isa = PBXGroup; + children = ( + 089C1671FE841209C02AAC07 /* External Frameworks and Libraries */, + 19C28FB4FE9D528D11CA2CBB /* Products */, + 089C167CFE841241C02AAC07 /* Resources */, + 08FB77ADFE841716C02AAC07 /* Source */, + 24A2FEBB0F90D1DB003BB5A7 /* vstsdk2.4 */, + ); + name = "FM-Chopper"; + sourceTree = ""; + }; + 089C1671FE841209C02AAC07 /* External Frameworks and Libraries */ = { + isa = PBXGroup; + children = ( + 2434720A098313350063BBF1 /* QuickTime.framework */, + 08EA7FFBFE8413EDC02AAC07 /* Carbon.framework */, + ); + name = "External Frameworks and Libraries"; + sourceTree = ""; + }; + 089C167CFE841241C02AAC07 /* Resources */ = { + isa = PBXGroup; + children = ( + 24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */, + 24CFB70307E7A0220081BD57 /* PkgInfo */, + 8D01CCD10486CAD60068D4B7 /* Info.plist */, + ); + name = Resources; + sourceTree = ""; + }; + 08FB77ADFE841716C02AAC07 /* Source */ = { + isa = PBXGroup; + children = ( + 2407DEB6089929BA00EB68BF /* kWoodRoom.cpp */, + 24D8286F09A914000093AEF8 /* kWoodRoomProc.cpp */, + 245463B80991757100464AD3 /* kWoodRoom.h */, + ); + name = Source; + sourceTree = ""; + }; + 19C28FB4FE9D528D11CA2CBB /* Products */ = { + isa = PBXGroup; + children = ( + 2407DE920899296600EB68BF /* kWoodRoom.vst */, + ); + name = Products; + sourceTree = ""; + }; + 24A200030F90D1DD003BB5A7 /* source */ = { + isa = PBXGroup; + children = ( + 24A200040F90D1DD003BB5A7 /* controlsgui.cpp */, + 24A200050F90D1DD003BB5A7 /* controlsgui.h */, + 24A200060F90D1DD003BB5A7 /* pdrawtesteditor.cpp */, + 24A200070F90D1DD003BB5A7 /* pdrawtesteditor.h */, + 24A200080F90D1DD003BB5A7 /* pdrawtesteffect.cpp */, + 24A200090F90D1DD003BB5A7 /* pdrawtesteffect.h */, + 24A2000A0F90D1DD003BB5A7 /* pdrawtestmain.cpp */, + 24A2000B0F90D1DD003BB5A7 /* pdrawtestview.cpp */, + 24A2000C0F90D1DD003BB5A7 /* pdrawtestview.h */, + 24A2000D0F90D1DD003BB5A7 /* pprimitivesviews.cpp */, + 24A2000E0F90D1DD003BB5A7 /* pprimitivesviews.h */, + ); + name = source; + path = /vstsdk2.4/vstgui.sf/drawtest/source; + sourceTree = ""; + }; + 24A2000F0F90D1DD003BB5A7 /* win */ = { + isa = PBXGroup; + children = ( + 24A200100F90D1DD003BB5A7 /* drawtest.def */, + 24A200110F90D1DD003BB5A7 /* drawtest.rc */, + 24A200120F90D1DD003BB5A7 /* drawtest.vcproj */, + ); + name = win; + path = /vstsdk2.4/vstgui.sf/drawtest/win; + sourceTree = ""; + }; + 24A200130F90D1DD003BB5A7 /* win.vc6 */ = { + isa = PBXGroup; + children = ( + 24A200140F90D1DD003BB5A7 /* drawtest.dsp */, + 24A200150F90D1DD003BB5A7 /* drawtest.dsw */, + ); + name = win.vc6; + path = /vstsdk2.4/vstgui.sf/drawtest/win.vc6; + sourceTree = ""; + }; + 24A200160F90D1DD003BB5A7 /* vstgui */ = { + isa = PBXGroup; + children = ( + 24A200170F90D1DD003BB5A7 /* aeffguieditor.cpp */, + 24A200180F90D1DD003BB5A7 /* aeffguieditor.h */, + 24A200190F90D1DD003BB5A7 /* cfileselector.cpp */, + 24A2001A0F90D1DD003BB5A7 /* cfileselector.h */, + 24A2001B0F90D1DD003BB5A7 /* Changelog */, + 24A2001C0F90D1DD003BB5A7 /* cscrollview.cpp */, + 24A2001D0F90D1DD003BB5A7 /* cscrollview.h */, + 24A2001E0F90D1DD003BB5A7 /* ctabview.cpp */, + 24A2001F0F90D1DD003BB5A7 /* ctabview.h */, + 24A200200F90D1DD003BB5A7 /* Documentation */, + 24A201460F90D1DE003BB5A7 /* plugguieditor.cpp */, + 24A201470F90D1DE003BB5A7 /* plugguieditor.h */, + 24A201480F90D1DE003BB5A7 /* vstcontrols.cpp */, + 24A201490F90D1DE003BB5A7 /* vstcontrols.h */, + 24A2014A0F90D1DE003BB5A7 /* vstgui.cpp */, + 24A2014B0F90D1DE003BB5A7 /* vstgui.h */, + 24A2014C0F90D1DE003BB5A7 /* vstkeycode.h */, + 24A2014D0F90D1DE003BB5A7 /* vstplugscarbon.h */, + 24A2014E0F90D1DE003BB5A7 /* vstplugsmac.h */, + 24A2014F0F90D1DE003BB5A7 /* vstplugsmacho.h */, + 24A201500F90D1DE003BB5A7 /* vstplugsquartz.h */, + ); + name = vstgui; + path = /vstsdk2.4/vstgui.sf/vstgui; + sourceTree = ""; + }; + 24A200200F90D1DD003BB5A7 /* Documentation */ = { + isa = PBXGroup; + children = ( + 24A200210F90D1DD003BB5A7 /* html */, + 24A201440F90D1DE003BB5A7 /* index.html */, + 24A201450F90D1DE003BB5A7 /* Migrating from 2.3.rtf */, + ); + name = Documentation; + path = /vstsdk2.4/vstgui.sf/vstgui/Documentation; + sourceTree = ""; + }; + 24A200210F90D1DD003BB5A7 /* html */ = { + isa = PBXGroup; + children = ( + 24A200220F90D1DD003BB5A7 /* aeffguieditor_8cpp.html */, + 24A200230F90D1DD003BB5A7 /* aeffguieditor_8h.html */, + 24A200240F90D1DD003BB5A7 /* annotated.html */, + 24A200250F90D1DD003BB5A7 /* cfileselector_8cpp.html */, + 24A200260F90D1DD003BB5A7 /* cfileselector_8h.html */, + 24A200270F90D1DD003BB5A7 /* class_a_eff_g_u_i_editor-members.html */, + 24A200280F90D1DD003BB5A7 /* class_a_eff_g_u_i_editor.html */, + 24A200290F90D1DD003BB5A7 /* class_c_anim_knob-members.html */, + 24A2002A0F90D1DD003BB5A7 /* class_c_anim_knob.html */, + 24A2002B0F90D1DD003BB5A7 /* class_c_anim_knob.png */, + 24A2002C0F90D1DD003BB5A7 /* class_c_attribute_list_entry-members.html */, + 24A2002D0F90D1DD003BB5A7 /* class_c_attribute_list_entry.html */, + 24A2002E0F90D1DD003BB5A7 /* class_c_auto_animation-members.html */, + 24A2002F0F90D1DD003BB5A7 /* class_c_auto_animation.html */, + 24A200300F90D1DD003BB5A7 /* class_c_auto_animation.png */, + 24A200310F90D1DD003BB5A7 /* class_c_bitmap-members.html */, + 24A200320F90D1DD003BB5A7 /* class_c_bitmap.html */, + 24A200330F90D1DD003BB5A7 /* class_c_bitmap.png */, + 24A200340F90D1DD003BB5A7 /* class_c_c_view-members.html */, + 24A200350F90D1DD003BB5A7 /* class_c_c_view.html */, + 24A200360F90D1DD003BB5A7 /* class_c_control-members.html */, + 24A200370F90D1DD003BB5A7 /* class_c_control.html */, + 24A200380F90D1DD003BB5A7 /* class_c_control.png */, + 24A200390F90D1DD003BB5A7 /* class_c_control_listener-members.html */, + 24A2003A0F90D1DD003BB5A7 /* class_c_control_listener.html */, + 24A2003B0F90D1DD003BB5A7 /* class_c_control_listener.png */, + 24A2003C0F90D1DD003BB5A7 /* class_c_drag_container-members.html */, + 24A2003D0F90D1DD003BB5A7 /* class_c_drag_container.html */, + 24A2003E0F90D1DD003BB5A7 /* class_c_drag_container.png */, + 24A2003F0F90D1DD003BB5A7 /* class_c_draw_context-members.html */, + 24A200400F90D1DD003BB5A7 /* class_c_draw_context.html */, + 24A200410F90D1DD003BB5A7 /* class_c_draw_context.png */, + 24A200420F90D1DD003BB5A7 /* class_c_file_selector-members.html */, + 24A200430F90D1DD003BB5A7 /* class_c_file_selector.html */, + 24A200440F90D1DD003BB5A7 /* class_c_frame-members.html */, + 24A200450F90D1DD003BB5A7 /* class_c_frame.html */, + 24A200460F90D1DD003BB5A7 /* class_c_frame.png */, + 24A200470F90D1DD003BB5A7 /* class_c_horizontal_slider-members.html */, + 24A200480F90D1DD003BB5A7 /* class_c_horizontal_slider.html */, + 24A200490F90D1DD003BB5A7 /* class_c_horizontal_slider.png */, + 24A2004A0F90D1DD003BB5A7 /* class_c_horizontal_switch-members.html */, + 24A2004B0F90D1DD003BB5A7 /* class_c_horizontal_switch.html */, + 24A2004C0F90D1DD003BB5A7 /* class_c_horizontal_switch.png */, + 24A2004D0F90D1DD003BB5A7 /* class_c_kick_button-members.html */, + 24A2004E0F90D1DD003BB5A7 /* class_c_kick_button.html */, + 24A2004F0F90D1DD003BB5A7 /* class_c_kick_button.png */, + 24A200500F90D1DD003BB5A7 /* class_c_knob-members.html */, + 24A200510F90D1DD003BB5A7 /* class_c_knob.html */, + 24A200520F90D1DD003BB5A7 /* class_c_knob.png */, + 24A200530F90D1DD003BB5A7 /* class_c_movie_bitmap-members.html */, + 24A200540F90D1DD003BB5A7 /* class_c_movie_bitmap.html */, + 24A200550F90D1DD003BB5A7 /* class_c_movie_bitmap.png */, + 24A200560F90D1DD003BB5A7 /* class_c_movie_button-members.html */, + 24A200570F90D1DD003BB5A7 /* class_c_movie_button.html */, + 24A200580F90D1DD003BB5A7 /* class_c_movie_button.png */, + 24A200590F90D1DD003BB5A7 /* class_c_offscreen_context-members.html */, + 24A2005A0F90D1DD003BB5A7 /* class_c_offscreen_context.html */, + 24A2005B0F90D1DD003BB5A7 /* class_c_offscreen_context.png */, + 24A2005C0F90D1DD003BB5A7 /* class_c_on_off_button-members.html */, + 24A2005D0F90D1DD003BB5A7 /* class_c_on_off_button.html */, + 24A2005E0F90D1DD003BB5A7 /* class_c_on_off_button.png */, + 24A2005F0F90D1DD003BB5A7 /* class_c_option_menu-members.html */, + 24A200600F90D1DD003BB5A7 /* class_c_option_menu.html */, + 24A200610F90D1DD003BB5A7 /* class_c_option_menu.png */, + 24A200620F90D1DD003BB5A7 /* class_c_option_menu_scheme-members.html */, + 24A200630F90D1DD003BB5A7 /* class_c_option_menu_scheme.html */, + 24A200640F90D1DD003BB5A7 /* class_c_option_menu_scheme.png */, + 24A200650F90D1DD003BB5A7 /* class_c_param_display-members.html */, + 24A200660F90D1DD003BB5A7 /* class_c_param_display.html */, + 24A200670F90D1DD003BB5A7 /* class_c_param_display.png */, + 24A200680F90D1DD003BB5A7 /* class_c_reference_counter-members.html */, + 24A200690F90D1DD003BB5A7 /* class_c_reference_counter.html */, + 24A2006A0F90D1DD003BB5A7 /* class_c_reference_counter.png */, + 24A2006B0F90D1DD003BB5A7 /* class_c_rocker_switch-members.html */, + 24A2006C0F90D1DD003BB5A7 /* class_c_rocker_switch.html */, + 24A2006D0F90D1DD003BB5A7 /* class_c_rocker_switch.png */, + 24A2006E0F90D1DD003BB5A7 /* class_c_scroll_container-members.html */, + 24A2006F0F90D1DD003BB5A7 /* class_c_scroll_container.html */, + 24A200700F90D1DD003BB5A7 /* class_c_scroll_container.png */, + 24A200710F90D1DD003BB5A7 /* class_c_scroll_view-members.html */, + 24A200720F90D1DD003BB5A7 /* class_c_scroll_view.html */, + 24A200730F90D1DD003BB5A7 /* class_c_scroll_view.png */, + 24A200740F90D1DD003BB5A7 /* class_c_scrollbar-members.html */, + 24A200750F90D1DD003BB5A7 /* class_c_scrollbar.html */, + 24A200760F90D1DD003BB5A7 /* class_c_scrollbar.png */, + 24A200770F90D1DD003BB5A7 /* class_c_slider-members.html */, + 24A200780F90D1DD003BB5A7 /* class_c_slider.html */, + 24A200790F90D1DD003BB5A7 /* class_c_slider.png */, + 24A2007A0F90D1DD003BB5A7 /* class_c_special_digit-members.html */, + 24A2007B0F90D1DD003BB5A7 /* class_c_special_digit.html */, + 24A2007C0F90D1DD003BB5A7 /* class_c_special_digit.png */, + 24A2007D0F90D1DD003BB5A7 /* class_c_splash_screen-members.html */, + 24A2007E0F90D1DD003BB5A7 /* class_c_splash_screen.html */, + 24A2007F0F90D1DD003BB5A7 /* class_c_splash_screen.png */, + 24A200800F90D1DD003BB5A7 /* class_c_splash_screen_view-members.html */, + 24A200810F90D1DD003BB5A7 /* class_c_splash_screen_view.html */, + 24A200820F90D1DD003BB5A7 /* class_c_splash_screen_view.png */, + 24A200830F90D1DD003BB5A7 /* class_c_tab_button-members.html */, + 24A200840F90D1DD003BB5A7 /* class_c_tab_button.html */, + 24A200850F90D1DD003BB5A7 /* class_c_tab_button.png */, + 24A200860F90D1DD003BB5A7 /* class_c_tab_child_view-members.html */, + 24A200870F90D1DD003BB5A7 /* class_c_tab_child_view.html */, + 24A200880F90D1DD003BB5A7 /* class_c_tab_child_view.png */, + 24A200890F90D1DD003BB5A7 /* class_c_tab_view-members.html */, + 24A2008A0F90D1DD003BB5A7 /* class_c_tab_view.html */, + 24A2008B0F90D1DD003BB5A7 /* class_c_tab_view.png */, + 24A2008C0F90D1DD003BB5A7 /* class_c_text_edit-members.html */, + 24A2008D0F90D1DD003BB5A7 /* class_c_text_edit.html */, + 24A2008E0F90D1DD003BB5A7 /* class_c_text_edit.png */, + 24A2008F0F90D1DD003BB5A7 /* class_c_text_label-members.html */, + 24A200900F90D1DD003BB5A7 /* class_c_text_label.html */, + 24A200910F90D1DD003BB5A7 /* class_c_text_label.png */, + 24A200920F90D1DD003BB5A7 /* class_c_vertical_slider-members.html */, + 24A200930F90D1DD003BB5A7 /* class_c_vertical_slider.html */, + 24A200940F90D1DD003BB5A7 /* class_c_vertical_slider.png */, + 24A200950F90D1DD003BB5A7 /* class_c_vertical_switch-members.html */, + 24A200960F90D1DD003BB5A7 /* class_c_vertical_switch.html */, + 24A200970F90D1DD003BB5A7 /* class_c_vertical_switch.png */, + 24A200980F90D1DD003BB5A7 /* class_c_view-members.html */, + 24A200990F90D1DD003BB5A7 /* class_c_view.html */, + 24A2009A0F90D1DD003BB5A7 /* class_c_view.png */, + 24A2009B0F90D1DD003BB5A7 /* class_c_view_container-members.html */, + 24A2009C0F90D1DD003BB5A7 /* class_c_view_container.html */, + 24A2009D0F90D1DD003BB5A7 /* class_c_view_container.png */, + 24A2009E0F90D1DD003BB5A7 /* class_c_vu_meter-members.html */, + 24A2009F0F90D1DD003BB5A7 /* class_c_vu_meter.html */, + 24A200A00F90D1DD003BB5A7 /* class_c_vu_meter.png */, + 24A200A10F90D1DD003BB5A7 /* class_i_scrollbar_drawer-members.html */, + 24A200A20F90D1DD003BB5A7 /* class_i_scrollbar_drawer.html */, + 24A200A30F90D1DD003BB5A7 /* class_plugin_g_u_i_editor-members.html */, + 24A200A40F90D1DD003BB5A7 /* class_plugin_g_u_i_editor.html */, + 24A200A50F90D1DD003BB5A7 /* cscrollview_8cpp.html */, + 24A200A60F90D1DD003BB5A7 /* cscrollview_8h.html */, + 24A200A70F90D1DD003BB5A7 /* ctabview_8cpp.html */, + 24A200A80F90D1DD003BB5A7 /* ctabview_8h.html */, + 24A200A90F90D1DD003BB5A7 /* deprecated.html */, + 24A200AA0F90D1DD003BB5A7 /* doc_8h.html */, + 24A200AB0F90D1DD003BB5A7 /* doxygen.css */, + 24A200AC0F90D1DD003BB5A7 /* doxygen.png */, + 24A200AD0F90D1DD003BB5A7 /* files.html */, + 24A200AE0F90D1DD003BB5A7 /* ftv2blank.png */, + 24A200AF0F90D1DD003BB5A7 /* ftv2doc.png */, + 24A200B00F90D1DD003BB5A7 /* ftv2folderclosed.png */, + 24A200B10F90D1DE003BB5A7 /* ftv2folderopen.png */, + 24A200B20F90D1DE003BB5A7 /* ftv2lastnode.png */, + 24A200B30F90D1DE003BB5A7 /* ftv2link.png */, + 24A200B40F90D1DE003BB5A7 /* ftv2mlastnode.png */, + 24A200B50F90D1DE003BB5A7 /* ftv2mnode.png */, + 24A200B60F90D1DE003BB5A7 /* ftv2node.png */, + 24A200B70F90D1DE003BB5A7 /* ftv2plastnode.png */, + 24A200B80F90D1DE003BB5A7 /* ftv2pnode.png */, + 24A200B90F90D1DE003BB5A7 /* ftv2vertline.png */, + 24A200BA0F90D1DE003BB5A7 /* functions.html */, + 24A200BB0F90D1DE003BB5A7 /* functions_0x62.html */, + 24A200BC0F90D1DE003BB5A7 /* functions_0x63.html */, + 24A200BD0F90D1DE003BB5A7 /* functions_0x64.html */, + 24A200BE0F90D1DE003BB5A7 /* functions_0x65.html */, + 24A200BF0F90D1DE003BB5A7 /* functions_0x66.html */, + 24A200C00F90D1DE003BB5A7 /* functions_0x67.html */, + 24A200C10F90D1DE003BB5A7 /* functions_0x68.html */, + 24A200C20F90D1DE003BB5A7 /* functions_0x69.html */, + 24A200C30F90D1DE003BB5A7 /* functions_0x6b.html */, + 24A200C40F90D1DE003BB5A7 /* functions_0x6c.html */, + 24A200C50F90D1DE003BB5A7 /* functions_0x6d.html */, + 24A200C60F90D1DE003BB5A7 /* functions_0x6e.html */, + 24A200C70F90D1DE003BB5A7 /* functions_0x6f.html */, + 24A200C80F90D1DE003BB5A7 /* functions_0x70.html */, + 24A200C90F90D1DE003BB5A7 /* functions_0x72.html */, + 24A200CA0F90D1DE003BB5A7 /* functions_0x73.html */, + 24A200CB0F90D1DE003BB5A7 /* functions_0x74.html */, + 24A200CC0F90D1DE003BB5A7 /* functions_0x75.html */, + 24A200CD0F90D1DE003BB5A7 /* functions_0x76.html */, + 24A200CE0F90D1DE003BB5A7 /* functions_0x77.html */, + 24A200CF0F90D1DE003BB5A7 /* functions_0x78.html */, + 24A200D00F90D1DE003BB5A7 /* functions_0x79.html */, + 24A200D10F90D1DE003BB5A7 /* functions_0x7a.html */, + 24A200D20F90D1DE003BB5A7 /* functions_0x7e.html */, + 24A200D30F90D1DE003BB5A7 /* functions_eval.html */, + 24A200D40F90D1DE003BB5A7 /* functions_func.html */, + 24A200D50F90D1DE003BB5A7 /* functions_func_0x62.html */, + 24A200D60F90D1DE003BB5A7 /* functions_func_0x63.html */, + 24A200D70F90D1DE003BB5A7 /* functions_func_0x64.html */, + 24A200D80F90D1DE003BB5A7 /* functions_func_0x65.html */, + 24A200D90F90D1DE003BB5A7 /* functions_func_0x66.html */, + 24A200DA0F90D1DE003BB5A7 /* functions_func_0x67.html */, + 24A200DB0F90D1DE003BB5A7 /* functions_func_0x68.html */, + 24A200DC0F90D1DE003BB5A7 /* functions_func_0x69.html */, + 24A200DD0F90D1DE003BB5A7 /* functions_func_0x6c.html */, + 24A200DE0F90D1DE003BB5A7 /* functions_func_0x6d.html */, + 24A200DF0F90D1DE003BB5A7 /* functions_func_0x6e.html */, + 24A200E00F90D1DE003BB5A7 /* functions_func_0x6f.html */, + 24A200E10F90D1DE003BB5A7 /* functions_func_0x70.html */, + 24A200E20F90D1DE003BB5A7 /* functions_func_0x72.html */, + 24A200E30F90D1DE003BB5A7 /* functions_func_0x73.html */, + 24A200E40F90D1DE003BB5A7 /* functions_func_0x74.html */, + 24A200E50F90D1DE003BB5A7 /* functions_func_0x75.html */, + 24A200E60F90D1DE003BB5A7 /* functions_func_0x76.html */, + 24A200E70F90D1DE003BB5A7 /* functions_func_0x77.html */, + 24A200E80F90D1DE003BB5A7 /* functions_func_0x7e.html */, + 24A200E90F90D1DE003BB5A7 /* functions_rela.html */, + 24A200EA0F90D1DE003BB5A7 /* functions_vars.html */, + 24A200EB0F90D1DE003BB5A7 /* functions_vars_0x62.html */, + 24A200EC0F90D1DE003BB5A7 /* functions_vars_0x63.html */, + 24A200ED0F90D1DE003BB5A7 /* functions_vars_0x64.html */, + 24A200EE0F90D1DE003BB5A7 /* functions_vars_0x65.html */, + 24A200EF0F90D1DE003BB5A7 /* functions_vars_0x66.html */, + 24A200F00F90D1DE003BB5A7 /* functions_vars_0x67.html */, + 24A200F10F90D1DE003BB5A7 /* functions_vars_0x68.html */, + 24A200F20F90D1DE003BB5A7 /* functions_vars_0x69.html */, + 24A200F30F90D1DE003BB5A7 /* functions_vars_0x6b.html */, + 24A200F40F90D1DE003BB5A7 /* functions_vars_0x6c.html */, + 24A200F50F90D1DE003BB5A7 /* functions_vars_0x6d.html */, + 24A200F60F90D1DE003BB5A7 /* functions_vars_0x6e.html */, + 24A200F70F90D1DE003BB5A7 /* functions_vars_0x6f.html */, + 24A200F80F90D1DE003BB5A7 /* functions_vars_0x70.html */, + 24A200F90F90D1DE003BB5A7 /* functions_vars_0x72.html */, + 24A200FA0F90D1DE003BB5A7 /* functions_vars_0x73.html */, + 24A200FB0F90D1DE003BB5A7 /* functions_vars_0x74.html */, + 24A200FC0F90D1DE003BB5A7 /* functions_vars_0x75.html */, + 24A200FD0F90D1DE003BB5A7 /* functions_vars_0x76.html */, + 24A200FE0F90D1DE003BB5A7 /* functions_vars_0x77.html */, + 24A200FF0F90D1DE003BB5A7 /* functions_vars_0x78.html */, + 24A201000F90D1DE003BB5A7 /* functions_vars_0x79.html */, + 24A201010F90D1DE003BB5A7 /* functions_vars_0x7a.html */, + 24A201020F90D1DE003BB5A7 /* globals.html */, + 24A201030F90D1DE003BB5A7 /* globals_0x61.html */, + 24A201040F90D1DE003BB5A7 /* globals_0x62.html */, + 24A201050F90D1DE003BB5A7 /* globals_0x63.html */, + 24A201060F90D1DE003BB5A7 /* globals_0x65.html */, + 24A201070F90D1DE003BB5A7 /* globals_0x66.html */, + 24A201080F90D1DE003BB5A7 /* globals_0x67.html */, + 24A201090F90D1DE003BB5A7 /* globals_0x6b.html */, + 24A2010A0F90D1DE003BB5A7 /* globals_0x6d.html */, + 24A2010B0F90D1DE003BB5A7 /* globals_0x6e.html */, + 24A2010C0F90D1DE003BB5A7 /* globals_0x6f.html */, + 24A2010D0F90D1DE003BB5A7 /* globals_0x71.html */, + 24A2010E0F90D1DE003BB5A7 /* globals_0x72.html */, + 24A2010F0F90D1DE003BB5A7 /* globals_0x73.html */, + 24A201100F90D1DE003BB5A7 /* globals_0x74.html */, + 24A201110F90D1DE003BB5A7 /* globals_0x75.html */, + 24A201120F90D1DE003BB5A7 /* globals_0x76.html */, + 24A201130F90D1DE003BB5A7 /* globals_0x77.html */, + 24A201140F90D1DE003BB5A7 /* globals_defs.html */, + 24A201150F90D1DE003BB5A7 /* globals_enum.html */, + 24A201160F90D1DE003BB5A7 /* globals_eval.html */, + 24A201170F90D1DE003BB5A7 /* globals_type.html */, + 24A201180F90D1DE003BB5A7 /* globals_vars.html */, + 24A201190F90D1DE003BB5A7 /* hierarchy.html */, + 24A2011A0F90D1DE003BB5A7 /* index.html */, + 24A2011B0F90D1DE003BB5A7 /* intro.html */, + 24A2011C0F90D1DE003BB5A7 /* license.html */, + 24A2011D0F90D1DE003BB5A7 /* maceditor.html */, + 24A2011E0F90D1DE003BB5A7 /* main.html */, + 24A2011F0F90D1DE003BB5A7 /* others.html */, + 24A201200F90D1DE003BB5A7 /* pages.html */, + 24A201210F90D1DE003BB5A7 /* plugguieditor_8cpp.html */, + 24A201220F90D1DE003BB5A7 /* plugguieditor_8h.html */, + 24A201230F90D1DE003BB5A7 /* sequences.html */, + 24A201240F90D1DE003BB5A7 /* struct_c_color-members.html */, + 24A201250F90D1DE003BB5A7 /* struct_c_color.html */, + 24A201260F90D1DE003BB5A7 /* struct_c_point-members.html */, + 24A201270F90D1DE003BB5A7 /* struct_c_point.html */, + 24A201280F90D1DE003BB5A7 /* struct_c_rect-members.html */, + 24A201290F90D1DE003BB5A7 /* struct_c_rect.html */, + 24A2012A0F90D1DE003BB5A7 /* struct_e_rect-members.html */, + 24A2012B0F90D1DE003BB5A7 /* struct_e_rect.html */, + 24A2012C0F90D1DE003BB5A7 /* struct_vst_file_select-members.html */, + 24A2012D0F90D1DE003BB5A7 /* struct_vst_file_select.html */, + 24A2012E0F90D1DE003BB5A7 /* struct_vst_file_type-members.html */, + 24A2012F0F90D1DE003BB5A7 /* struct_vst_file_type.html */, + 24A201300F90D1DE003BB5A7 /* struct_vst_key_code-members.html */, + 24A201310F90D1DE003BB5A7 /* struct_vst_key_code.html */, + 24A201320F90D1DE003BB5A7 /* tab_b.gif */, + 24A201330F90D1DE003BB5A7 /* tab_l.gif */, + 24A201340F90D1DE003BB5A7 /* tab_r.gif */, + 24A201350F90D1DE003BB5A7 /* tabs.css */, + 24A201360F90D1DE003BB5A7 /* thanks.html */, + 24A201370F90D1DE003BB5A7 /* tree.html */, + 24A201380F90D1DE003BB5A7 /* vstcontrols_8cpp.html */, + 24A201390F90D1DE003BB5A7 /* vstcontrols_8h.html */, + 24A2013A0F90D1DE003BB5A7 /* vstgui_8cpp.html */, + 24A2013B0F90D1DE003BB5A7 /* vstgui_8h.html */, + 24A2013C0F90D1DE003BB5A7 /* vstkeycode_8h.html */, + 24A2013D0F90D1DE003BB5A7 /* vstoffline.html */, + 24A2013E0F90D1DE003BB5A7 /* vstparamstruct.html */, + 24A2013F0F90D1DE003BB5A7 /* vstplugscarbon_8h.html */, + 24A201400F90D1DE003BB5A7 /* vstplugsmac_8h.html */, + 24A201410F90D1DE003BB5A7 /* vstplugsmacho_8h.html */, + 24A201420F90D1DE003BB5A7 /* vstplugsquartz_8h.html */, + 24A201430F90D1DE003BB5A7 /* whatsnew.html */, + ); + name = html; + path = /vstsdk2.4/vstgui.sf/vstgui/Documentation/html; + sourceTree = ""; + }; + 24A203CE0F90D272003BB5A7 /* Products */ = { + isa = PBXGroup; + children = ( + 24A203D70F90D272003BB5A7 /* again.vst */, + 24A203D90F90D272003BB5A7 /* adelay.vst */, + 24A203DB0F90D272003BB5A7 /* vstxsynth.vst */, + 24A203DD0F90D272003BB5A7 /* surrounddelay.vst */, + 24A203DF0F90D272003BB5A7 /* minihost.app */, + ); + name = Products; + sourceTree = ""; + }; + 24A203E00F90D272003BB5A7 /* Products */ = { + isa = PBXGroup; + children = ( + 24A203E50F90D272003BB5A7 /* drawtest.component */, + 24A203E70F90D272003BB5A7 /* drawtest.vst */, + ); + name = Products; + sourceTree = ""; + }; + 24A203E80F90D272003BB5A7 /* Products */ = { + isa = PBXGroup; + children = ( + 24A203ED0F90D272003BB5A7 /* drawtest.component */, + 24A203EF0F90D272003BB5A7 /* drawtest.vst */, + ); + name = Products; + sourceTree = ""; + }; + 24A2FEBB0F90D1DB003BB5A7 /* vstsdk2.4 */ = { + isa = PBXGroup; + children = ( + 24A2FEBC0F90D1DC003BB5A7 /* artwork */, + 24A2FEC20F90D1DC003BB5A7 /* bin */, + 24A2FED80F90D1DC003BB5A7 /* doc */, + 24A2FF8E0F90D1DD003BB5A7 /* index.html */, + 24A2FF8F0F90D1DD003BB5A7 /* pluginterfaces */, + 24A2FF940F90D1DD003BB5A7 /* public.sdk */, + 24A2FFDE0F90D1DD003BB5A7 /* vstgui.sf */, + ); + name = vstsdk2.4; + path = /vstsdk2.4; + sourceTree = ""; + }; + 24A2FEBC0F90D1DC003BB5A7 /* artwork */ = { + isa = PBXGroup; + children = ( + 24A2FEBD0F90D1DC003BB5A7 /* Thumbs.db */, + 24A2FEBE0F90D1DC003BB5A7 /* VST_Logo_Usage_Guideline.pdf */, + 24A2FEBF0F90D1DC003BB5A7 /* VSTLogoAlpha.png */, + 24A2FEC00F90D1DC003BB5A7 /* VSTLogoBlack.jpg */, + 24A2FEC10F90D1DC003BB5A7 /* VSTLogoWhite.jpg */, + ); + name = artwork; + path = /vstsdk2.4/artwork; + sourceTree = ""; + }; + 24A2FEC20F90D1DC003BB5A7 /* bin */ = { + isa = PBXGroup; + children = ( + 24A2FEC30F90D1DC003BB5A7 /* mac */, + 24A2FED50F90D1DC003BB5A7 /* win */, + ); + name = bin; + path = /vstsdk2.4/bin; + sourceTree = ""; + }; + 24A2FEC30F90D1DC003BB5A7 /* mac */ = { + isa = PBXGroup; + children = ( + 24A2FEC40F90D1DC003BB5A7 /* VSTMonitor.vst */, + 24A2FED40F90D1DC003BB5A7 /* VSTParamTool.app */, + ); + name = mac; + path = /vstsdk2.4/bin/mac; + sourceTree = ""; + }; + 24A2FEC40F90D1DC003BB5A7 /* VSTMonitor.vst */ = { + isa = PBXGroup; + children = ( + 24A2FEC50F90D1DC003BB5A7 /* Contents */, + ); + name = VSTMonitor.vst; + path = /vstsdk2.4/bin/mac/VSTMonitor.vst; + sourceTree = ""; + }; + 24A2FEC50F90D1DC003BB5A7 /* Contents */ = { + isa = PBXGroup; + children = ( + 24A2FEC60F90D1DC003BB5A7 /* Info.plist */, + 24A2FEC70F90D1DC003BB5A7 /* MacOS */, + 24A2FEC90F90D1DC003BB5A7 /* PkgInfo */, + 24A2FECA0F90D1DC003BB5A7 /* Resources */, + ); + name = Contents; + path = /vstsdk2.4/bin/mac/VSTMonitor.vst/Contents; + sourceTree = ""; + }; + 24A2FEC70F90D1DC003BB5A7 /* MacOS */ = { + isa = PBXGroup; + children = ( + 24A2FEC80F90D1DC003BB5A7 /* VSTMonitor */, + ); + name = MacOS; + path = /vstsdk2.4/bin/mac/VSTMonitor.vst/Contents/MacOS; + sourceTree = ""; + }; + 24A2FECA0F90D1DC003BB5A7 /* Resources */ = { + isa = PBXGroup; + children = ( + 24A2FECB0F90D1DC003BB5A7 /* bmp50000.bmp */, + 24A2FECC0F90D1DC003BB5A7 /* bmp50001.bmp */, + 24A2FECD0F90D1DC003BB5A7 /* bmp50002.bmp */, + 24A2FECE0F90D1DC003BB5A7 /* bmp50003.bmp */, + 24A2FECF0F90D1DC003BB5A7 /* bmp50004.bmp */, + 24A2FED00F90D1DC003BB5A7 /* bmp50005.bmp */, + 24A2FED10F90D1DC003BB5A7 /* bmp50006.bmp */, + 24A2FED20F90D1DC003BB5A7 /* bmp50007.bmp */, + 24A2FED30F90D1DC003BB5A7 /* bmp50008.bmp */, + ); + name = Resources; + path = /vstsdk2.4/bin/mac/VSTMonitor.vst/Contents/Resources; + sourceTree = ""; + }; + 24A2FED50F90D1DC003BB5A7 /* win */ = { + isa = PBXGroup; + children = ( + 24A2FED60F90D1DC003BB5A7 /* vstmonitor.dll */, + 24A2FED70F90D1DC003BB5A7 /* vstparamtool.exe */, + ); + name = win; + path = /vstsdk2.4/bin/win; + sourceTree = ""; + }; + 24A2FED80F90D1DC003BB5A7 /* doc */ = { + isa = PBXGroup; + children = ( + 24A2FED90F90D1DC003BB5A7 /* gfx */, + 24A2FEDE0F90D1DC003BB5A7 /* html */, + 24A2FF8A0F90D1DD003BB5A7 /* sdk.menu.html */, + 24A2FF8B0F90D1DD003BB5A7 /* sdk.overview.html */, + 24A2FF8C0F90D1DD003BB5A7 /* sdkdoc.css */, + 24A2FF8D0F90D1DD003BB5A7 /* VST Licensing Agreement.rtf */, + ); + name = doc; + path = /vstsdk2.4/doc; + sourceTree = ""; + }; + 24A2FED90F90D1DC003BB5A7 /* gfx */ = { + isa = PBXGroup; + children = ( + 24A2FEDA0F90D1DC003BB5A7 /* folder.gif */, + 24A2FEDB0F90D1DC003BB5A7 /* mac.gif */, + 24A2FEDC0F90D1DC003BB5A7 /* vstpluglogo_small.jpg */, + 24A2FEDD0F90D1DC003BB5A7 /* win.gif */, + ); + name = gfx; + path = /vstsdk2.4/doc/gfx; + sourceTree = ""; + }; + 24A2FEDE0F90D1DC003BB5A7 /* html */ = { + isa = PBXGroup; + children = ( + 24A2FEDF0F90D1DC003BB5A7 /* aeffect_8h.html */, + 24A2FEE00F90D1DC003BB5A7 /* aeffectx_8h.html */, + 24A2FEE10F90D1DC003BB5A7 /* aeffeditor_8h.html */, + 24A2FEE20F90D1DC003BB5A7 /* annotated.html */, + 24A2FEE30F90D1DC003BB5A7 /* audioeffect_8cpp.html */, + 24A2FEE40F90D1DC003BB5A7 /* audioeffect_8h.html */, + 24A2FEE50F90D1DC003BB5A7 /* audioeffectx_8cpp.html */, + 24A2FEE60F90D1DC003BB5A7 /* audioeffectx_8h.html */, + 24A2FEE70F90D1DC003BB5A7 /* Blocksizechange.gif */, + 24A2FEE80F90D1DC003BB5A7 /* class_a_eff_editor-members.html */, + 24A2FEE90F90D1DC003BB5A7 /* class_a_eff_editor.html */, + 24A2FEEA0F90D1DC003BB5A7 /* class_audio_effect-members.html */, + 24A2FEEB0F90D1DC003BB5A7 /* class_audio_effect.html */, + 24A2FEEC0F90D1DC003BB5A7 /* class_audio_effect.png */, + 24A2FEED0F90D1DC003BB5A7 /* class_audio_effect_x-members.html */, + 24A2FEEE0F90D1DC003BB5A7 /* class_audio_effect_x.html */, + 24A2FEEF0F90D1DC003BB5A7 /* class_audio_effect_x.png */, + 24A2FEF00F90D1DC003BB5A7 /* ControlChanged.gif */, + 24A2FEF10F90D1DC003BB5A7 /* deprecated.html */, + 24A2FEF20F90D1DC003BB5A7 /* dir_2d3252dd12c84c66c1d25b26bb45a1f5.html */, + 24A2FEF30F90D1DC003BB5A7 /* dir_77c628dfee72e555f82d5ef53b733f38.html */, + 24A2FEF40F90D1DC003BB5A7 /* dir_f81105d3b854bea570aaf3bae5cb64c1.html */, + 24A2FEF50F90D1DC003BB5A7 /* dir_fa0454ab79b4262333bf837ea3d765e9.html */, + 24A2FEF60F90D1DC003BB5A7 /* dirs.html */, + 24A2FEF70F90D1DC003BB5A7 /* doc_8h.html */, + 24A2FEF80F90D1DC003BB5A7 /* doxygen.css */, + 24A2FEF90F90D1DC003BB5A7 /* doxygen.png */, + 24A2FEFA0F90D1DC003BB5A7 /* files.html */, + 24A2FEFB0F90D1DC003BB5A7 /* ftv2blank.png */, + 24A2FEFC0F90D1DC003BB5A7 /* ftv2doc.png */, + 24A2FEFD0F90D1DC003BB5A7 /* ftv2folderclosed.png */, + 24A2FEFE0F90D1DC003BB5A7 /* ftv2folderopen.png */, + 24A2FEFF0F90D1DC003BB5A7 /* ftv2lastnode.png */, + 24A2FF000F90D1DC003BB5A7 /* ftv2link.png */, + 24A2FF010F90D1DC003BB5A7 /* ftv2mlastnode.png */, + 24A2FF020F90D1DC003BB5A7 /* ftv2mnode.png */, + 24A2FF030F90D1DC003BB5A7 /* ftv2node.png */, + 24A2FF040F90D1DC003BB5A7 /* ftv2plastnode.png */, + 24A2FF050F90D1DC003BB5A7 /* ftv2pnode.png */, + 24A2FF060F90D1DC003BB5A7 /* ftv2vertline.png */, + 24A2FF070F90D1DC003BB5A7 /* functions.html */, + 24A2FF080F90D1DC003BB5A7 /* functions_0x62.html */, + 24A2FF090F90D1DC003BB5A7 /* functions_0x63.html */, + 24A2FF0A0F90D1DC003BB5A7 /* functions_0x64.html */, + 24A2FF0B0F90D1DC003BB5A7 /* functions_0x65.html */, + 24A2FF0C0F90D1DC003BB5A7 /* functions_0x66.html */, + 24A2FF0D0F90D1DC003BB5A7 /* functions_0x67.html */, + 24A2FF0E0F90D1DC003BB5A7 /* functions_0x68.html */, + 24A2FF0F0F90D1DC003BB5A7 /* functions_0x69.html */, + 24A2FF100F90D1DC003BB5A7 /* functions_0x6b.html */, + 24A2FF110F90D1DC003BB5A7 /* functions_0x6c.html */, + 24A2FF120F90D1DC003BB5A7 /* functions_0x6d.html */, + 24A2FF130F90D1DC003BB5A7 /* functions_0x6e.html */, + 24A2FF140F90D1DC003BB5A7 /* functions_0x6f.html */, + 24A2FF150F90D1DC003BB5A7 /* functions_0x70.html */, + 24A2FF160F90D1DC003BB5A7 /* functions_0x72.html */, + 24A2FF170F90D1DC003BB5A7 /* functions_0x73.html */, + 24A2FF180F90D1DC003BB5A7 /* functions_0x74.html */, + 24A2FF190F90D1DC003BB5A7 /* functions_0x75.html */, + 24A2FF1A0F90D1DC003BB5A7 /* functions_0x76.html */, + 24A2FF1B0F90D1DC003BB5A7 /* functions_0x77.html */, + 24A2FF1C0F90D1DC003BB5A7 /* functions_0x78.html */, + 24A2FF1D0F90D1DC003BB5A7 /* functions_0x79.html */, + 24A2FF1E0F90D1DC003BB5A7 /* functions_0x7e.html */, + 24A2FF1F0F90D1DC003BB5A7 /* functions_func.html */, + 24A2FF200F90D1DC003BB5A7 /* functions_vars.html */, + 24A2FF210F90D1DC003BB5A7 /* globals.html */, + 24A2FF220F90D1DC003BB5A7 /* globals_0x62.html */, + 24A2FF230F90D1DC003BB5A7 /* globals_0x63.html */, + 24A2FF240F90D1DC003BB5A7 /* globals_0x64.html */, + 24A2FF250F90D1DC003BB5A7 /* globals_0x65.html */, + 24A2FF260F90D1DC003BB5A7 /* globals_0x66.html */, + 24A2FF270F90D1DC003BB5A7 /* globals_0x6b.html */, + 24A2FF280F90D1DC003BB5A7 /* globals_0x6d.html */, + 24A2FF290F90D1DC003BB5A7 /* globals_0x74.html */, + 24A2FF2A0F90D1DC003BB5A7 /* globals_0x76.html */, + 24A2FF2B0F90D1DC003BB5A7 /* globals_defs.html */, + 24A2FF2C0F90D1DC003BB5A7 /* globals_enum.html */, + 24A2FF2D0F90D1DC003BB5A7 /* globals_eval.html */, + 24A2FF2E0F90D1DC003BB5A7 /* globals_eval_0x65.html */, + 24A2FF2F0F90D1DC003BB5A7 /* globals_eval_0x6b.html */, + 24A2FF300F90D1DC003BB5A7 /* globals_eval_0x6d.html */, + 24A2FF310F90D1DC003BB5A7 /* globals_eval_0x76.html */, + 24A2FF320F90D1DC003BB5A7 /* globals_func.html */, + 24A2FF330F90D1DC003BB5A7 /* globals_type.html */, + 24A2FF340F90D1DC003BB5A7 /* globals_vars.html */, + 24A2FF350F90D1DC003BB5A7 /* hierarchy.html */, + 24A2FF360F90D1DC003BB5A7 /* history.html */, + 24A2FF370F90D1DC003BB5A7 /* index.html */, + 24A2FF380F90D1DC003BB5A7 /* Initialisation.gif */, + 24A2FF390F90D1DC003BB5A7 /* intro.html */, + 24A2FF3A0F90D1DC003BB5A7 /* IOchange.gif */, + 24A2FF3B0F90D1DC003BB5A7 /* license.html */, + 24A2FF3C0F90D1DC003BB5A7 /* maceditor.html */, + 24A2FF3D0F90D1DC003BB5A7 /* main.html */, + 24A2FF3E0F90D1DC003BB5A7 /* namespace_host_can_dos.html */, + 24A2FF3F0F90D1DC003BB5A7 /* namespace_plug_can_dos.html */, + 24A2FF400F90D1DC003BB5A7 /* namespacemembers.html */, + 24A2FF410F90D1DC003BB5A7 /* namespacemembers_vars.html */, + 24A2FF420F90D1DC003BB5A7 /* namespaces.html */, + 24A2FF430F90D1DC003BB5A7 /* Offlineprocessing.gif */, + 24A2FF440F90D1DC003BB5A7 /* others.html */, + 24A2FF450F90D1DC003BB5A7 /* pages.html */, + 24A2FF460F90D1DC003BB5A7 /* Sampleratechange.gif */, + 24A2FF470F90D1DC003BB5A7 /* sequences.html */, + 24A2FF480F90D1DC003BB5A7 /* SpeakerarrangementnegotiationforVSTfx.gif */, + 24A2FF490F90D1DC003BB5A7 /* struct_a_effect-members.html */, + 24A2FF4A0F90D1DC003BB5A7 /* struct_a_effect.html */, + 24A2FF4B0F90D1DC003BB5A7 /* struct_e_rect-members.html */, + 24A2FF4C0F90D1DC003BB5A7 /* struct_e_rect.html */, + 24A2FF4D0F90D1DC003BB5A7 /* struct_midi_key_name-members.html */, + 24A2FF4E0F90D1DC003BB5A7 /* struct_midi_key_name.html */, + 24A2FF4F0F90D1DC003BB5A7 /* struct_midi_program_category-members.html */, + 24A2FF500F90D1DC003BB5A7 /* struct_midi_program_category.html */, + 24A2FF510F90D1DC003BB5A7 /* struct_midi_program_name-members.html */, + 24A2FF520F90D1DC003BB5A7 /* struct_midi_program_name.html */, + 24A2FF530F90D1DC003BB5A7 /* struct_vst_audio_file-members.html */, + 24A2FF540F90D1DC003BB5A7 /* struct_vst_audio_file.html */, + 24A2FF550F90D1DC003BB5A7 /* struct_vst_audio_file_marker-members.html */, + 24A2FF560F90D1DC003BB5A7 /* struct_vst_audio_file_marker.html */, + 24A2FF570F90D1DC003BB5A7 /* struct_vst_event-members.html */, + 24A2FF580F90D1DC003BB5A7 /* struct_vst_event.html */, + 24A2FF590F90D1DD003BB5A7 /* struct_vst_events-members.html */, + 24A2FF5A0F90D1DD003BB5A7 /* struct_vst_events.html */, + 24A2FF5B0F90D1DD003BB5A7 /* struct_vst_file_select-members.html */, + 24A2FF5C0F90D1DD003BB5A7 /* struct_vst_file_select.html */, + 24A2FF5D0F90D1DD003BB5A7 /* struct_vst_file_type-members.html */, + 24A2FF5E0F90D1DD003BB5A7 /* struct_vst_file_type.html */, + 24A2FF5F0F90D1DD003BB5A7 /* struct_vst_key_code-members.html */, + 24A2FF600F90D1DD003BB5A7 /* struct_vst_key_code.html */, + 24A2FF610F90D1DD003BB5A7 /* struct_vst_midi_event-members.html */, + 24A2FF620F90D1DD003BB5A7 /* struct_vst_midi_event.html */, + 24A2FF630F90D1DD003BB5A7 /* struct_vst_midi_sysex_event-members.html */, + 24A2FF640F90D1DD003BB5A7 /* struct_vst_midi_sysex_event.html */, + 24A2FF650F90D1DD003BB5A7 /* struct_vst_offline_task-members.html */, + 24A2FF660F90D1DD003BB5A7 /* struct_vst_offline_task.html */, + 24A2FF670F90D1DD003BB5A7 /* struct_vst_parameter_properties-members.html */, + 24A2FF680F90D1DD003BB5A7 /* struct_vst_parameter_properties.html */, + 24A2FF690F90D1DD003BB5A7 /* struct_vst_patch_chunk_info-members.html */, + 24A2FF6A0F90D1DD003BB5A7 /* struct_vst_patch_chunk_info.html */, + 24A2FF6B0F90D1DD003BB5A7 /* struct_vst_pin_properties-members.html */, + 24A2FF6C0F90D1DD003BB5A7 /* struct_vst_pin_properties.html */, + 24A2FF6D0F90D1DD003BB5A7 /* struct_vst_speaker_arrangement-members.html */, + 24A2FF6E0F90D1DD003BB5A7 /* struct_vst_speaker_arrangement.html */, + 24A2FF6F0F90D1DD003BB5A7 /* struct_vst_speaker_properties-members.html */, + 24A2FF700F90D1DD003BB5A7 /* struct_vst_speaker_properties.html */, + 24A2FF710F90D1DD003BB5A7 /* struct_vst_time_info-members.html */, + 24A2FF720F90D1DD003BB5A7 /* struct_vst_time_info.html */, + 24A2FF730F90D1DD003BB5A7 /* struct_vst_variable_io-members.html */, + 24A2FF740F90D1DD003BB5A7 /* struct_vst_variable_io.html */, + 24A2FF750F90D1DD003BB5A7 /* struct_vst_window-members.html */, + 24A2FF760F90D1DD003BB5A7 /* struct_vst_window.html */, + 24A2FF770F90D1DD003BB5A7 /* structfx_bank-members.html */, + 24A2FF780F90D1DD003BB5A7 /* structfx_bank.html */, + 24A2FF790F90D1DD003BB5A7 /* structfx_program-members.html */, + 24A2FF7A0F90D1DD003BB5A7 /* structfx_program.html */, + 24A2FF7B0F90D1DD003BB5A7 /* tab_b.gif */, + 24A2FF7C0F90D1DD003BB5A7 /* tab_l.gif */, + 24A2FF7D0F90D1DD003BB5A7 /* tab_r.gif */, + 24A2FF7E0F90D1DD003BB5A7 /* tabs.css */, + 24A2FF7F0F90D1DD003BB5A7 /* Termination.gif */, + 24A2FF800F90D1DD003BB5A7 /* thanks.html */, + 24A2FF810F90D1DD003BB5A7 /* tree.html */, + 24A2FF820F90D1DD003BB5A7 /* TurnOff.gif */, + 24A2FF830F90D1DD003BB5A7 /* TurnOn.gif */, + 24A2FF840F90D1DD003BB5A7 /* vstfxstore_8h.html */, + 24A2FF850F90D1DD003BB5A7 /* vstoffline.html */, + 24A2FF860F90D1DD003BB5A7 /* vstparamstruct.html */, + 24A2FF870F90D1DD003BB5A7 /* vstpluglogo.jpg */, + 24A2FF880F90D1DD003BB5A7 /* vstplugmain_8cpp.html */, + 24A2FF890F90D1DD003BB5A7 /* whatsnew.html */, + ); + name = html; + path = /vstsdk2.4/doc/html; + sourceTree = ""; + }; + 24A2FF8F0F90D1DD003BB5A7 /* pluginterfaces */ = { + isa = PBXGroup; + children = ( + 24A2FF900F90D1DD003BB5A7 /* vst2.x */, + ); + name = pluginterfaces; + path = /vstsdk2.4/pluginterfaces; + sourceTree = ""; + }; + 24A2FF900F90D1DD003BB5A7 /* vst2.x */ = { + isa = PBXGroup; + children = ( + 24A2FF910F90D1DD003BB5A7 /* aeffect.h */, + 24A2FF920F90D1DD003BB5A7 /* aeffectx.h */, + 24A2FF930F90D1DD003BB5A7 /* vstfxstore.h */, + ); + name = vst2.x; + path = /vstsdk2.4/pluginterfaces/vst2.x; + sourceTree = ""; + }; + 24A2FF940F90D1DD003BB5A7 /* public.sdk */ = { + isa = PBXGroup; + children = ( + 24A2FF950F90D1DD003BB5A7 /* samples */, + 24A2FFD60F90D1DD003BB5A7 /* source */, + ); + name = public.sdk; + path = /vstsdk2.4/public.sdk; + sourceTree = ""; + }; + 24A2FF950F90D1DD003BB5A7 /* samples */ = { + isa = PBXGroup; + children = ( + 24A2FF960F90D1DD003BB5A7 /* vst2.x */, + ); + name = samples; + path = /vstsdk2.4/public.sdk/samples; + sourceTree = ""; + }; + 24A2FF960F90D1DD003BB5A7 /* vst2.x */ = { + isa = PBXGroup; + children = ( + 24A2FF970F90D1DD003BB5A7 /* adelay */, + 24A2FFA80F90D1DD003BB5A7 /* again */, + 24A2FFAE0F90D1DD003BB5A7 /* mac */, + 24A2FFB40F90D1DD003BB5A7 /* minihost */, + 24A2FFBA0F90D1DD003BB5A7 /* vstxsynth */, + 24A2FFC50F90D1DD003BB5A7 /* win */, + 24A2FFC80F90D1DD003BB5A7 /* win.vc2003 */, + 24A2FFCF0F90D1DD003BB5A7 /* win.vc6 */, + ); + name = vst2.x; + path = /vstsdk2.4/public.sdk/samples/vst2.x; + sourceTree = ""; + }; + 24A2FF970F90D1DD003BB5A7 /* adelay */ = { + isa = PBXGroup; + children = ( + 24A2FF980F90D1DD003BB5A7 /* adelay.cpp */, + 24A2FF990F90D1DD003BB5A7 /* adelay.h */, + 24A2FF9A0F90D1DD003BB5A7 /* adelaymain.cpp */, + 24A2FF9B0F90D1DD003BB5A7 /* editor */, + 24A2FFA30F90D1DD003BB5A7 /* surrounddelay.cpp */, + 24A2FFA40F90D1DD003BB5A7 /* surrounddelay.h */, + 24A2FFA50F90D1DD003BB5A7 /* win */, + ); + name = adelay; + path = /vstsdk2.4/public.sdk/samples/vst2.x/adelay; + sourceTree = ""; + }; + 24A2FF9B0F90D1DD003BB5A7 /* editor */ = { + isa = PBXGroup; + children = ( + 24A2FF9C0F90D1DD003BB5A7 /* resources */, + 24A2FFA10F90D1DD003BB5A7 /* sdeditor.cpp */, + 24A2FFA20F90D1DD003BB5A7 /* sdeditor.h */, + ); + name = editor; + path = /vstsdk2.4/public.sdk/samples/vst2.x/adelay/editor; + sourceTree = ""; + }; + 24A2FF9C0F90D1DD003BB5A7 /* resources */ = { + isa = PBXGroup; + children = ( + 24A2FF9D0F90D1DD003BB5A7 /* bmp00128.bmp */, + 24A2FF9E0F90D1DD003BB5A7 /* bmp00129.bmp */, + 24A2FF9F0F90D1DD003BB5A7 /* bmp00130.bmp */, + 24A2FFA00F90D1DD003BB5A7 /* surrounddelay.rc */, + ); + name = resources; + path = /vstsdk2.4/public.sdk/samples/vst2.x/adelay/editor/resources; + sourceTree = ""; + }; + 24A2FFA50F90D1DD003BB5A7 /* win */ = { + isa = PBXGroup; + children = ( + 24A2FFA60F90D1DD003BB5A7 /* adelay.vcproj */, + 24A2FFA70F90D1DD003BB5A7 /* surrounddelay.vcproj */, + ); + name = win; + path = /vstsdk2.4/public.sdk/samples/vst2.x/adelay/win; + sourceTree = ""; + }; + 24A2FFA80F90D1DD003BB5A7 /* again */ = { + isa = PBXGroup; + children = ( + 24A2FFA90F90D1DD003BB5A7 /* source */, + 24A2FFAC0F90D1DD003BB5A7 /* win */, + ); + name = again; + path = /vstsdk2.4/public.sdk/samples/vst2.x/again; + sourceTree = ""; + }; + 24A2FFA90F90D1DD003BB5A7 /* source */ = { + isa = PBXGroup; + children = ( + 24A2FFAA0F90D1DD003BB5A7 /* again.cpp */, + 24A2FFAB0F90D1DD003BB5A7 /* again.h */, + ); + name = source; + path = /vstsdk2.4/public.sdk/samples/vst2.x/again/source; + sourceTree = ""; + }; + 24A2FFAC0F90D1DD003BB5A7 /* win */ = { + isa = PBXGroup; + children = ( + 24A2FFAD0F90D1DD003BB5A7 /* again.vcproj */, + ); + name = win; + path = /vstsdk2.4/public.sdk/samples/vst2.x/again/win; + sourceTree = ""; + }; + 24A2FFAE0F90D1DD003BB5A7 /* mac */ = { + isa = PBXGroup; + children = ( + 24A2FFAF0F90D1DD003BB5A7 /* minihost-Info.plist */, + 24A2FFB00F90D1DD003BB5A7 /* vst 2.4 examples.xcodeproj */, + 24A2FFB30F90D1DD003BB5A7 /* vst2.4Info.plist */, + ); + name = mac; + path = /vstsdk2.4/public.sdk/samples/vst2.x/mac; + sourceTree = ""; + }; + 24A2FFB40F90D1DD003BB5A7 /* minihost */ = { + isa = PBXGroup; + children = ( + 24A2FFB50F90D1DD003BB5A7 /* source */, + 24A2FFB80F90D1DD003BB5A7 /* win */, + ); + name = minihost; + path = /vstsdk2.4/public.sdk/samples/vst2.x/minihost; + sourceTree = ""; + }; + 24A2FFB50F90D1DD003BB5A7 /* source */ = { + isa = PBXGroup; + children = ( + 24A2FFB60F90D1DD003BB5A7 /* minieditor.cpp */, + 24A2FFB70F90D1DD003BB5A7 /* minihost.cpp */, + ); + name = source; + path = /vstsdk2.4/public.sdk/samples/vst2.x/minihost/source; + sourceTree = ""; + }; + 24A2FFB80F90D1DD003BB5A7 /* win */ = { + isa = PBXGroup; + children = ( + 24A2FFB90F90D1DD003BB5A7 /* minihost.vcproj */, + ); + name = win; + path = /vstsdk2.4/public.sdk/samples/vst2.x/minihost/win; + sourceTree = ""; + }; + 24A2FFBA0F90D1DD003BB5A7 /* vstxsynth */ = { + isa = PBXGroup; + children = ( + 24A2FFBB0F90D1DD003BB5A7 /* resource */, + 24A2FFBE0F90D1DD003BB5A7 /* source */, + 24A2FFC30F90D1DD003BB5A7 /* win */, + ); + name = vstxsynth; + path = /vstsdk2.4/public.sdk/samples/vst2.x/vstxsynth; + sourceTree = ""; + }; + 24A2FFBB0F90D1DD003BB5A7 /* resource */ = { + isa = PBXGroup; + children = ( + 24A2FFBC0F90D1DD003BB5A7 /* vstxsynth.rc */, + 24A2FFBD0F90D1DD003BB5A7 /* vstxsynth.vstxml */, + ); + name = resource; + path = /vstsdk2.4/public.sdk/samples/vst2.x/vstxsynth/resource; + sourceTree = ""; + }; + 24A2FFBE0F90D1DD003BB5A7 /* source */ = { + isa = PBXGroup; + children = ( + 24A2FFBF0F90D1DD003BB5A7 /* gmnames.h */, + 24A2FFC00F90D1DD003BB5A7 /* vstxsynth.cpp */, + 24A2FFC10F90D1DD003BB5A7 /* vstxsynth.h */, + 24A2FFC20F90D1DD003BB5A7 /* vstxsynthproc.cpp */, + ); + name = source; + path = /vstsdk2.4/public.sdk/samples/vst2.x/vstxsynth/source; + sourceTree = ""; + }; + 24A2FFC30F90D1DD003BB5A7 /* win */ = { + isa = PBXGroup; + children = ( + 24A2FFC40F90D1DD003BB5A7 /* vstxsynth.vcproj */, + ); + name = win; + path = /vstsdk2.4/public.sdk/samples/vst2.x/vstxsynth/win; + sourceTree = ""; + }; + 24A2FFC50F90D1DD003BB5A7 /* win */ = { + isa = PBXGroup; + children = ( + 24A2FFC60F90D1DD003BB5A7 /* samples.sln */, + 24A2FFC70F90D1DD003BB5A7 /* vstplug.def */, + ); + name = win; + path = /vstsdk2.4/public.sdk/samples/vst2.x/win; + sourceTree = ""; + }; + 24A2FFC80F90D1DD003BB5A7 /* win.vc2003 */ = { + isa = PBXGroup; + children = ( + 24A2FFC90F90D1DD003BB5A7 /* adelay.vcproj */, + 24A2FFCA0F90D1DD003BB5A7 /* again.vcproj */, + 24A2FFCB0F90D1DD003BB5A7 /* minihost.vcproj */, + 24A2FFCC0F90D1DD003BB5A7 /* samples.sln */, + 24A2FFCD0F90D1DD003BB5A7 /* surrounddelay.vcproj */, + 24A2FFCE0F90D1DD003BB5A7 /* vstxsynth.vcproj */, + ); + name = win.vc2003; + path = /vstsdk2.4/public.sdk/samples/vst2.x/win.vc2003; + sourceTree = ""; + }; + 24A2FFCF0F90D1DD003BB5A7 /* win.vc6 */ = { + isa = PBXGroup; + children = ( + 24A2FFD00F90D1DD003BB5A7 /* adelay.dsp */, + 24A2FFD10F90D1DD003BB5A7 /* again.dsp */, + 24A2FFD20F90D1DD003BB5A7 /* minihost.dsp */, + 24A2FFD30F90D1DD003BB5A7 /* samples.dsw */, + 24A2FFD40F90D1DD003BB5A7 /* surrounddelay.dsp */, + 24A2FFD50F90D1DD003BB5A7 /* vstxsynth.dsp */, + ); + name = win.vc6; + path = /vstsdk2.4/public.sdk/samples/vst2.x/win.vc6; + sourceTree = ""; + }; + 24A2FFD60F90D1DD003BB5A7 /* source */ = { + isa = PBXGroup; + children = ( + 24A2FFD70F90D1DD003BB5A7 /* vst2.x */, + ); + name = source; + path = /vstsdk2.4/public.sdk/source; + sourceTree = ""; + }; + 24A2FFD70F90D1DD003BB5A7 /* vst2.x */ = { + isa = PBXGroup; + children = ( + 24A2FFD80F90D1DD003BB5A7 /* aeffeditor.h */, + 24A2FFD90F90D1DD003BB5A7 /* audioeffect.cpp */, + 24A2FFDA0F90D1DD003BB5A7 /* audioeffect.h */, + 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */, + 24A2FFDC0F90D1DD003BB5A7 /* audioeffectx.h */, + 24A2FFDD0F90D1DD003BB5A7 /* vstplugmain.cpp */, + ); + name = vst2.x; + path = /vstsdk2.4/public.sdk/source/vst2.x; + sourceTree = ""; + }; + 24A2FFDE0F90D1DD003BB5A7 /* vstgui.sf */ = { + isa = PBXGroup; + children = ( + 24A2FFDF0F90D1DD003BB5A7 /* drawtest */, + 24A200160F90D1DD003BB5A7 /* vstgui */, + ); + name = vstgui.sf; + path = /vstsdk2.4/vstgui.sf; + sourceTree = ""; + }; + 24A2FFDF0F90D1DD003BB5A7 /* drawtest */ = { + isa = PBXGroup; + children = ( + 24A2FFE00F90D1DD003BB5A7 /* mac */, + 24A2FFEE0F90D1DD003BB5A7 /* resources */, + 24A200030F90D1DD003BB5A7 /* source */, + 24A2000F0F90D1DD003BB5A7 /* win */, + 24A200130F90D1DD003BB5A7 /* win.vc6 */, + ); + name = drawtest; + path = /vstsdk2.4/vstgui.sf/drawtest; + sourceTree = ""; + }; + 24A2FFE00F90D1DD003BB5A7 /* mac */ = { + isa = PBXGroup; + children = ( + 24A2FFE10F90D1DD003BB5A7 /* audiounit.exp */, + 24A2FFE20F90D1DD003BB5A7 /* cw_vst_prefix.pch++ */, + 24A2FFE30F90D1DD003BB5A7 /* drawtest.cw9prj */, + 24A2FFE40F90D1DD003BB5A7 /* drawtest.plc */, + 24A2FFE50F90D1DD003BB5A7 /* drawtest.xcode */, + 24A2FFE80F90D1DD003BB5A7 /* drawtest.xcodeproj */, + 24A2FFEB0F90D1DD003BB5A7 /* Info.plist */, + 24A2FFEC0F90D1DD003BB5A7 /* xcode_au_prefix.h */, + 24A2FFED0F90D1DD003BB5A7 /* xcode_vst_prefix.h */, + ); + name = mac; + path = /vstsdk2.4/vstgui.sf/drawtest/mac; + sourceTree = ""; + }; + 24A2FFEE0F90D1DD003BB5A7 /* resources */ = { + isa = PBXGroup; + children = ( + 24A2FFEF0F90D1DD003BB5A7 /* audiounit.r */, + 24A2FFF00F90D1DD003BB5A7 /* bmp00001.png */, + 24A2FFF10F90D1DD003BB5A7 /* bmp00100.png */, + 24A2FFF20F90D1DD003BB5A7 /* bmp01000.png */, + 24A2FFF30F90D1DD003BB5A7 /* bmp10001.bmp */, + 24A2FFF40F90D1DD003BB5A7 /* bmp10002.bmp */, + 24A2FFF50F90D1DD003BB5A7 /* bmp10003.bmp */, + 24A2FFF60F90D1DD003BB5A7 /* bmp10004.bmp */, + 24A2FFF70F90D1DD003BB5A7 /* bmp10005.bmp */, + 24A2FFF80F90D1DD003BB5A7 /* bmp10006.bmp */, + 24A2FFF90F90D1DD003BB5A7 /* bmp10007.bmp */, + 24A2FFFA0F90D1DD003BB5A7 /* bmp10008.bmp */, + 24A2FFFB0F90D1DD003BB5A7 /* bmp10009.bmp */, + 24A2FFFC0F90D1DD003BB5A7 /* bmp10010.bmp */, + 24A2FFFD0F90D1DD003BB5A7 /* bmp10011.bmp */, + 24A2FFFE0F90D1DD003BB5A7 /* bmp10012.bmp */, + 24A2FFFF0F90D1DD003BB5A7 /* bmp10013.bmp */, + 24A200000F90D1DD003BB5A7 /* bmp10014.bmp */, + 24A200010F90D1DD003BB5A7 /* bmp10015.bmp */, + 24A200020F90D1DD003BB5A7 /* bmp10016.bmp */, + ); + name = resources; + path = /vstsdk2.4/vstgui.sf/drawtest/resources; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 8D01CCC70486CAD60068D4B7 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 245463B90991757100464AD3 /* kWoodRoom.h in Headers */, + 24D8287F09A9164A0093AEF8 /* xcode_vst_prefix.h in Headers */, + 24A202190F90D1DE003BB5A7 /* aeffect.h in Headers */, + 24A2021A0F90D1DE003BB5A7 /* aeffectx.h in Headers */, + 24A2021B0F90D1DE003BB5A7 /* vstfxstore.h in Headers */, + 24A2021D0F90D1DE003BB5A7 /* adelay.h in Headers */, + 24A202240F90D1DE003BB5A7 /* sdeditor.h in Headers */, + 24A202260F90D1DE003BB5A7 /* surrounddelay.h in Headers */, + 24A2022A0F90D1DE003BB5A7 /* again.h in Headers */, + 24A202330F90D1DE003BB5A7 /* gmnames.h in Headers */, + 24A202350F90D1DE003BB5A7 /* vstxsynth.h in Headers */, + 24A202460F90D1DE003BB5A7 /* aeffeditor.h in Headers */, + 24A202480F90D1DE003BB5A7 /* audioeffect.h in Headers */, + 24A2024A0F90D1DE003BB5A7 /* audioeffectx.h in Headers */, + 24A2024D0F90D1DE003BB5A7 /* cw_vst_prefix.pch++ in Headers */, + 24A202510F90D1DE003BB5A7 /* xcode_au_prefix.h in Headers */, + 24A202520F90D1DE003BB5A7 /* xcode_vst_prefix.h in Headers */, + 24A202680F90D1DE003BB5A7 /* controlsgui.h in Headers */, + 24A2026A0F90D1DE003BB5A7 /* pdrawtesteditor.h in Headers */, + 24A2026C0F90D1DE003BB5A7 /* pdrawtesteffect.h in Headers */, + 24A2026F0F90D1DE003BB5A7 /* pdrawtestview.h in Headers */, + 24A202710F90D1DE003BB5A7 /* pprimitivesviews.h in Headers */, + 24A202780F90D1DE003BB5A7 /* aeffguieditor.h in Headers */, + 24A2027A0F90D1DE003BB5A7 /* cfileselector.h in Headers */, + 24A2027D0F90D1DE003BB5A7 /* cscrollview.h in Headers */, + 24A2027F0F90D1DE003BB5A7 /* ctabview.h in Headers */, + 24A203A50F90D1DE003BB5A7 /* plugguieditor.h in Headers */, + 24A203A70F90D1DE003BB5A7 /* vstcontrols.h in Headers */, + 24A203A90F90D1DE003BB5A7 /* vstgui.h in Headers */, + 24A203AA0F90D1DE003BB5A7 /* vstkeycode.h in Headers */, + 24A203AB0F90D1DE003BB5A7 /* vstplugscarbon.h in Headers */, + 24A203AC0F90D1DE003BB5A7 /* vstplugsmac.h in Headers */, + 24A203AD0F90D1DE003BB5A7 /* vstplugsmacho.h in Headers */, + 24A203AE0F90D1DE003BB5A7 /* vstplugsquartz.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 8D01CCC60486CAD60068D4B7 /* kWoodRoom */ = { + isa = PBXNativeTarget; + buildConfigurationList = 24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "kWoodRoom" */; + buildPhases = ( + 8D01CCC70486CAD60068D4B7 /* Headers */, + 8D01CCC90486CAD60068D4B7 /* Resources */, + 8D01CCCB0486CAD60068D4B7 /* Sources */, + 8D01CCCF0486CAD60068D4B7 /* Rez */, + 24CFB70807E7A07C0081BD57 /* Copy PkgInfo */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = kWoodRoom; + productInstallPath = "$(HOME)/Library/Bundles"; + productName = "FM-Chopper"; + productReference = 2407DE920899296600EB68BF /* kWoodRoom.vst */; + productType = "com.apple.product-type.bundle"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 089C1669FE841209C02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 24BEAAF108919AE700E695F9 /* Build configuration list for PBXProject "kWoodRoom" */; + compatibilityVersion = "Xcode 2.4"; + developmentRegion = English; + hasScannedForEncodings = 1; + knownRegions = ( + English, + Japanese, + French, + German, + ); + mainGroup = 089C166AFE841209C02AAC07 /* FM-Chopper */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 24A203E00F90D272003BB5A7 /* Products */; + ProjectRef = 24A2FFE50F90D1DD003BB5A7 /* drawtest.xcode */; + }, + { + ProductGroup = 24A203E80F90D272003BB5A7 /* Products */; + ProjectRef = 24A2FFE80F90D1DD003BB5A7 /* drawtest.xcodeproj */; + }, + { + ProductGroup = 24A203CE0F90D272003BB5A7 /* Products */; + ProjectRef = 24A2FFB00F90D1DD003BB5A7 /* vst 2.4 examples.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 8D01CCC60486CAD60068D4B7 /* kWoodRoom */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 24A203D70F90D272003BB5A7 /* again.vst */ = { + isa = PBXReferenceProxy; + fileType = wrapper.cfbundle; + path = again.vst; + remoteRef = 24A203D60F90D272003BB5A7 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 24A203D90F90D272003BB5A7 /* adelay.vst */ = { + isa = PBXReferenceProxy; + fileType = wrapper.cfbundle; + path = adelay.vst; + remoteRef = 24A203D80F90D272003BB5A7 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 24A203DB0F90D272003BB5A7 /* vstxsynth.vst */ = { + isa = PBXReferenceProxy; + fileType = wrapper.cfbundle; + path = vstxsynth.vst; + remoteRef = 24A203DA0F90D272003BB5A7 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 24A203DD0F90D272003BB5A7 /* surrounddelay.vst */ = { + isa = PBXReferenceProxy; + fileType = wrapper.cfbundle; + path = surrounddelay.vst; + remoteRef = 24A203DC0F90D272003BB5A7 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 24A203DF0F90D272003BB5A7 /* minihost.app */ = { + isa = PBXReferenceProxy; + fileType = wrapper.application; + path = minihost.app; + remoteRef = 24A203DE0F90D272003BB5A7 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 24A203E50F90D272003BB5A7 /* drawtest.component */ = { + isa = PBXReferenceProxy; + fileType = wrapper.cfbundle; + path = drawtest.component; + remoteRef = 24A203E40F90D272003BB5A7 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 24A203E70F90D272003BB5A7 /* drawtest.vst */ = { + isa = PBXReferenceProxy; + fileType = wrapper.cfbundle; + path = drawtest.vst; + remoteRef = 24A203E60F90D272003BB5A7 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 24A203ED0F90D272003BB5A7 /* drawtest.component */ = { + isa = PBXReferenceProxy; + fileType = wrapper.cfbundle; + path = drawtest.component; + remoteRef = 24A203EC0F90D272003BB5A7 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 24A203EF0F90D272003BB5A7 /* drawtest.vst */ = { + isa = PBXReferenceProxy; + fileType = wrapper.cfbundle; + path = drawtest.vst; + remoteRef = 24A203EE0F90D272003BB5A7 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 8D01CCC90486CAD60068D4B7 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 24CFB70407E7A0220081BD57 /* PkgInfo in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXRezBuildPhase section */ + 8D01CCCF0486CAD60068D4B7 /* Rez */ = { + isa = PBXRezBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXRezBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 24CFB70807E7A07C0081BD57 /* Copy PkgInfo */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Copy PkgInfo"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/bash; + shellScript = "cp mac/PkgInfo \"$BUILT_PRODUCTS_DIR/$PRODUCT_NAME.vst/Contents/\""; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 8D01CCCB0486CAD60068D4B7 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 2407DEB9089929BA00EB68BF /* kWoodRoom.cpp in Sources */, + 24D8287009A914000093AEF8 /* kWoodRoomProc.cpp in Sources */, + 24A203CB0F90D251003BB5A7 /* audioeffect.cpp in Sources */, + 24A203CC0F90D251003BB5A7 /* audioeffectx.cpp in Sources */, + 24A203CD0F90D251003BB5A7 /* vstplugmain.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 24BEAAEE08919AE700E695F9 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = NO; + FRAMEWORK_SEARCH_PATHS = ""; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_TRIGRAPHS = NO; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ""; + GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO; + GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO; + GCC_WARN_UNKNOWN_PRAGMAS = NO; + HEADER_SEARCH_PATHS = "/vstsdk2.4/**"; + INFOPLIST_FILE = ./mac/Info.plist; + LIBRARY_SEARCH_PATHS = ""; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ""; + OTHER_REZFLAGS = ""; + PRODUCT_NAME = Gain; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + WRAPPER_EXTENSION = vst; + }; + name = Debug; + }; + 24BEAAEF08919AE700E695F9 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = ( + ppc, + i386, + x86_64, + ); + COPY_PHASE_STRIP = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + FRAMEWORK_SEARCH_PATHS = ""; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + GCC_ENABLE_TRIGRAPHS = NO; + GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + GCC_MODEL_TUNING = G4; + GCC_OPTIMIZATION_LEVEL = s; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ""; + GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO; + GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO; + GCC_WARN_UNKNOWN_PRAGMAS = NO; + HEADER_SEARCH_PATHS = "/vstsdk2.4/**"; + INFOPLIST_FILE = ./mac/Info.plist; + LIBRARY_SEARCH_PATHS = ""; + MACOSX_DEPLOYMENT_TARGET = 10.4; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ""; + OTHER_REZFLAGS = ""; + PRODUCT_NAME = kWoodRoom; + SDKROOT = /Developer/SDKs/MacOSX10.5.sdk; + SECTORDER_FLAGS = ""; + SKIP_INSTALL = NO; + STRIP_INSTALLED_PRODUCT = YES; + STRIP_STYLE = all; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + WRAPPER_EXTENSION = vst; + }; + name = Release; + }; + 24BEAAF208919AE700E695F9 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH)"; + GCC_MODEL_TUNING = G5; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = "DEBUG=1"; + INFOPLIST_FILE = ""; + INFOPLIST_PREPROCESS = NO; + }; + name = Debug; + }; + 24BEAAF308919AE700E695F9 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; + ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc"; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_MODEL_TUNING = G4; + GCC_OPTIMIZATION_LEVEL = s; + INFOPLIST_FILE = ""; + INFOPLIST_PREPROCESS = NO; + SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.6.sdk"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "kWoodRoom" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 24BEAAEE08919AE700E695F9 /* Debug */, + 24BEAAEF08919AE700E695F9 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 24BEAAF108919AE700E695F9 /* Build configuration list for PBXProject "kWoodRoom" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 24BEAAF208919AE700E695F9 /* Debug */, + 24BEAAF308919AE700E695F9 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; +/* End XCConfigurationList section */ + }; + rootObject = 089C1669FE841209C02AAC07 /* Project object */; +} diff --git a/plugins/MacSignedVST/kWoodRoom/kWoodRoom.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/plugins/MacSignedVST/kWoodRoom/kWoodRoom.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100755 index 000000000..a80c03824 --- /dev/null +++ b/plugins/MacSignedVST/kWoodRoom/kWoodRoom.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/plugins/MacSignedVST/kWoodRoom/kWoodRoom.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacSignedVST/kWoodRoom/kWoodRoom.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100755 index 000000000..5c38f9460 Binary files /dev/null and b/plugins/MacSignedVST/kWoodRoom/kWoodRoom.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/plugins/MacSignedVST/kWoodRoom/kWoodRoom.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacSignedVST/kWoodRoom/kWoodRoom.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100755 index 000000000..314de0ff8 Binary files /dev/null and b/plugins/MacSignedVST/kWoodRoom/kWoodRoom.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/plugins/MacSignedVST/kWoodRoom/kWoodRoom.xcodeproj/spiadmin.mode1v3 b/plugins/MacSignedVST/kWoodRoom/kWoodRoom.xcodeproj/spiadmin.mode1v3 new file mode 100755 index 000000000..c5723261d --- /dev/null +++ b/plugins/MacSignedVST/kWoodRoom/kWoodRoom.xcodeproj/spiadmin.mode1v3 @@ -0,0 +1,1372 @@ + + + + + ActivePerspectiveName + Project + AllowedModules + + + BundleLoadPath + + MaxInstances + n + Module + PBXSmartGroupTreeModule + Name + Groups and Files Outline View + + + BundleLoadPath + + MaxInstances + n + Module + PBXNavigatorGroup + Name + Editor + + + BundleLoadPath + + MaxInstances + n + Module + XCTaskListModule + Name + Task List + + + BundleLoadPath + + MaxInstances + n + Module + XCDetailModule + Name + File and Smart Group Detail Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXBuildResultsModule + Name + Detailed Build Results Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXProjectFindModule + Name + Project Batch Find Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCProjectFormatConflictsModule + Name + Project Format Conflicts List + + + BundleLoadPath + + MaxInstances + n + Module + PBXBookmarksModule + Name + Bookmarks Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXClassBrowserModule + Name + Class Browser + + + BundleLoadPath + + MaxInstances + n + Module + PBXCVSModule + Name + Source Code Control Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXDebugBreakpointsModule + Name + Debug Breakpoints Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCDockableInspector + Name + Inspector + + + BundleLoadPath + + MaxInstances + n + Module + PBXOpenQuicklyModule + Name + Open Quickly Tool + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugSessionModule + Name + Debugger + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugCLIModule + Name + Debug Console + + + BundleLoadPath + + MaxInstances + n + Module + XCSnapshotModule + Name + Snapshots Tool + + + BundlePath + /Xcode3/Library/PrivateFrameworks/DevToolsInterface.framework/Resources + Description + DefaultDescriptionKey + DockingSystemVisible + + Extension + mode1v3 + FavBarConfig + + PBXProjectModuleGUID + 91857D9F148EF61800AAA11B + XCBarModuleItemNames + + XCBarModuleItems + + + FirstTimeWindowDisplayed + + Identifier + com.apple.perspectives.project.mode1v3 + MajorVersion + 33 + MinorVersion + 0 + Name + Default + Notifications + + OpenEditors + + PerspectiveWidths + + -1 + -1 + + Perspectives + + + ChosenToolbarItems + + active-combo-popup + action + NSToolbarFlexibleSpaceItem + debugger-enable-breakpoints + build-and-go + com.apple.ide.PBXToolbarStopButton + get-info + NSToolbarFlexibleSpaceItem + com.apple.pbx.toolbar.searchfield + + ControllerClassBaseName + + IconName + WindowOfProjectWithEditor + Identifier + perspective.project + IsVertical + + Layout + + + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 1C37FABC05509CD000000102 + 1C37FABC05539CD112110102 + E2644B35053B69B200211256 + 1C37FABC04509CD000100104 + 1CC0EA4004350EF90044410B + 1CC0EA4004350EF90041110B + + PBXProjectModuleGUID + 1CE0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + yes + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 186 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 089C166AFE841209C02AAC07 + 089C1671FE841209C02AAC07 + 19C28FB4FE9D528D11CA2CBB + 089C167CFE841241C02AAC07 + 08FB77ADFE841716C02AAC07 + 1C37FBAC04509CD000000102 + 1C37FABC05509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 11 + 10 + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {186, 693}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + + XCSharingToken + com.apple.Xcode.GFSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {203, 711}} + GroupTreeTableConfiguration + + MainColumn + 186 + + RubberWindowFrame + 286 197 1261 752 0 0 1680 1028 + + Module + PBXSmartGroupTreeModule + Proportion + 203pt + + + Dock + + + BecomeActive + + ContentConfiguration + + PBXProjectModuleGUID + 1CE0B20306471E060097A5F4 + PBXProjectModuleLabel + Gain.cpp + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CE0B20406471E060097A5F4 + PBXProjectModuleLabel + Gain.cpp + _historyCapacity + 0 + bookmark + 911C2A9D1491A5F600A430AF + history + + 915DCCBB1491A5B8008574E6 + + + SplitCount + 1 + + StatusBarVisibility + + + GeometryConfiguration + + Frame + {{0, 0}, {1053, 508}} + RubberWindowFrame + 286 197 1261 752 0 0 1680 1028 + + Module + PBXNavigatorGroup + Proportion + 508pt + + + ContentConfiguration + + PBXProjectModuleGUID + 1CE0B20506471E060097A5F4 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{0, 513}, {1053, 198}} + RubberWindowFrame + 286 197 1261 752 0 0 1680 1028 + + Module + XCDetailModule + Proportion + 198pt + + + Proportion + 1053pt + + + Name + Project + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + XCModuleDock + PBXNavigatorGroup + XCDetailModule + + TableOfContents + + 911C2A901491A5F600A430AF + 1CE0B1FE06471DED0097A5F4 + 911C2A911491A5F600A430AF + 1CE0B20306471E060097A5F4 + 1CE0B20506471E060097A5F4 + + ToolbarConfigUserDefaultsMinorVersion + 2 + ToolbarConfiguration + xcode.toolbar.config.defaultV3 + + + ControllerClassBaseName + + IconName + WindowOfProject + Identifier + perspective.morph + IsVertical + 0 + Layout + + + BecomeActive + 1 + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 1C08E77C0454961000C914BD + 1C37FABC05509CD000000102 + 1C37FABC05539CD112110102 + E2644B35053B69B200211256 + 1C37FABC04509CD000100104 + 1CC0EA4004350EF90044410B + 1CC0EA4004350EF90041110B + + PBXProjectModuleGUID + 11E0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + yes + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 186 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 29B97314FDCFA39411CA2CEA + 1C37FABC05509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {186, 337}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + 1 + XCSharingToken + com.apple.Xcode.GFSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {203, 355}} + GroupTreeTableConfiguration + + MainColumn + 186 + + RubberWindowFrame + 373 269 690 397 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 100% + + + Name + Morph + PreferredWidth + 300 + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + + TableOfContents + + 11E0B1FE06471DED0097A5F4 + + ToolbarConfiguration + xcode.toolbar.config.default.shortV3 + + + PerspectivesBarVisible + + ShelfIsVisible + + SourceDescription + file at '/Xcode3/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecificationMode1.xcperspec' + StatusbarIsVisible + + TimeStamp + 0.0 + ToolbarConfigUserDefaultsMinorVersion + 2 + ToolbarDisplayMode + 1 + ToolbarIsVisible + + ToolbarSizeMode + 1 + Type + Perspectives + UpdateMessage + The Default Workspace in this version of Xcode now includes support to hide and show the detail view (what has been referred to as the "Metro-Morph" feature). You must discard your current Default Workspace settings and update to the latest Default Workspace in order to gain this feature. Do you wish to update to the latest Workspace defaults for project '%@'? + WindowJustification + 5 + WindowOrderList + + 91857DA0148EF61800AAA11B + /Users/spiadmin/Documents/Gain/Gain.xcodeproj + + WindowString + 286 197 1261 752 0 0 1680 1028 + WindowToolsV3 + + + FirstTimeWindowDisplayed + + Identifier + windowTool.build + IsVertical + + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528F0623707200166675 + PBXProjectModuleLabel + + StatusBarVisibility + + + GeometryConfiguration + + Frame + {{0, 0}, {743, 413}} + RubberWindowFrame + 112 208 743 695 0 0 1680 1028 + + Module + PBXNavigatorGroup + Proportion + 413pt + + + ContentConfiguration + + PBXProjectModuleGUID + XCMainBuildResultsModuleGUID + PBXProjectModuleLabel + Build Results + XCBuildResultsTrigger_Collapse + 1021 + XCBuildResultsTrigger_Open + 1011 + + GeometryConfiguration + + Frame + {{0, 418}, {743, 236}} + RubberWindowFrame + 112 208 743 695 0 0 1680 1028 + + Module + PBXBuildResultsModule + Proportion + 236pt + + + Proportion + 654pt + + + Name + Build Results + ServiceClasses + + PBXBuildResultsModule + + StatusbarIsVisible + + TableOfContents + + 91857DA0148EF61800AAA11B + 911C2A921491A5F600A430AF + 1CD0528F0623707200166675 + XCMainBuildResultsModuleGUID + + ToolbarConfiguration + xcode.toolbar.config.buildV3 + WindowContentMinSize + 486 300 + WindowString + 112 208 743 695 0 0 1680 1028 + WindowToolGUID + 91857DA0148EF61800AAA11B + WindowToolIsVisible + + + + Identifier + windowTool.debugger + Layout + + + Dock + + + ContentConfiguration + + Debugger + + HorizontalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {317, 164}} + {{317, 0}, {377, 164}} + + + VerticalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {694, 164}} + {{0, 164}, {694, 216}} + + + + LauncherConfigVersion + 8 + PBXProjectModuleGUID + 1C162984064C10D400B95A72 + PBXProjectModuleLabel + Debug - GLUTExamples (Underwater) + + GeometryConfiguration + + DebugConsoleDrawerSize + {100, 120} + DebugConsoleVisible + None + DebugConsoleWindowFrame + {{200, 200}, {500, 300}} + DebugSTDIOWindowFrame + {{200, 200}, {500, 300}} + Frame + {{0, 0}, {694, 380}} + RubberWindowFrame + 321 238 694 422 0 0 1440 878 + + Module + PBXDebugSessionModule + Proportion + 100% + + + Proportion + 100% + + + Name + Debugger + ServiceClasses + + PBXDebugSessionModule + + StatusbarIsVisible + 1 + TableOfContents + + 1CD10A99069EF8BA00B06720 + 1C0AD2AB069F1E9B00FABCE6 + 1C162984064C10D400B95A72 + 1C0AD2AC069F1E9B00FABCE6 + + ToolbarConfiguration + xcode.toolbar.config.debugV3 + WindowString + 321 238 694 422 0 0 1440 878 + WindowToolGUID + 1CD10A99069EF8BA00B06720 + WindowToolIsVisible + 0 + + + Identifier + windowTool.find + Layout + + + Dock + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CDD528C0622207200134675 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CD0528D0623707200166675 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {781, 167}} + RubberWindowFrame + 62 385 781 470 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 781pt + + + Proportion + 50% + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528E0623707200166675 + PBXProjectModuleLabel + Project Find + + GeometryConfiguration + + Frame + {{8, 0}, {773, 254}} + RubberWindowFrame + 62 385 781 470 0 0 1440 878 + + Module + PBXProjectFindModule + Proportion + 50% + + + Proportion + 428pt + + + Name + Project Find + ServiceClasses + + PBXProjectFindModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C530D57069F1CE1000CFCEE + 1C530D58069F1CE1000CFCEE + 1C530D59069F1CE1000CFCEE + 1CDD528C0622207200134675 + 1C530D5A069F1CE1000CFCEE + 1CE0B1FE06471DED0097A5F4 + 1CD0528E0623707200166675 + + WindowString + 62 385 781 470 0 0 1440 878 + WindowToolGUID + 1C530D57069F1CE1000CFCEE + WindowToolIsVisible + 0 + + + Identifier + MENUSEPARATOR + + + Identifier + windowTool.debuggerConsole + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAAC065D492600B07095 + PBXProjectModuleLabel + Debugger Console + + GeometryConfiguration + + Frame + {{0, 0}, {650, 250}} + RubberWindowFrame + 516 632 650 250 0 0 1680 1027 + + Module + PBXDebugCLIModule + Proportion + 209pt + + + Proportion + 209pt + + + Name + Debugger Console + ServiceClasses + + PBXDebugCLIModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C78EAAD065D492600B07095 + 1C78EAAE065D492600B07095 + 1C78EAAC065D492600B07095 + + ToolbarConfiguration + xcode.toolbar.config.consoleV3 + WindowString + 650 41 650 250 0 0 1280 1002 + WindowToolGUID + 1C78EAAD065D492600B07095 + WindowToolIsVisible + 0 + + + Identifier + windowTool.snapshots + Layout + + + Dock + + + Module + XCSnapshotModule + Proportion + 100% + + + Proportion + 100% + + + Name + Snapshots + ServiceClasses + + XCSnapshotModule + + StatusbarIsVisible + Yes + ToolbarConfiguration + xcode.toolbar.config.snapshots + WindowString + 315 824 300 550 0 0 1440 878 + WindowToolIsVisible + Yes + + + Identifier + windowTool.scm + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAB2065D492600B07095 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1C78EAB3065D492600B07095 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {452, 0}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + + Module + PBXNavigatorGroup + Proportion + 0pt + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD052920623707200166675 + PBXProjectModuleLabel + SCM + + GeometryConfiguration + + ConsoleFrame + {{0, 259}, {452, 0}} + Frame + {{0, 7}, {452, 259}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + TableConfiguration + + Status + 30 + FileName + 199 + Path + 197.0950012207031 + + TableFrame + {{0, 0}, {452, 250}} + + Module + PBXCVSModule + Proportion + 262pt + + + Proportion + 266pt + + + Name + SCM + ServiceClasses + + PBXCVSModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C78EAB4065D492600B07095 + 1C78EAB5065D492600B07095 + 1C78EAB2065D492600B07095 + 1CD052920623707200166675 + + ToolbarConfiguration + xcode.toolbar.config.scm + WindowString + 743 379 452 308 0 0 1280 1002 + + + Identifier + windowTool.breakpoints + IsVertical + 0 + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C77FABC04509CD000000102 + + PBXProjectModuleGUID + 1CE0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + no + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 168 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 1C77FABC04509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {168, 350}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + 0 + + GeometryConfiguration + + Frame + {{0, 0}, {185, 368}} + GroupTreeTableConfiguration + + MainColumn + 168 + + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 185pt + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA1AED706398EBD00589147 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{190, 0}, {554, 368}} + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + XCDetailModule + Proportion + 554pt + + + Proportion + 368pt + + + MajorVersion + 3 + MinorVersion + 0 + Name + Breakpoints + ServiceClasses + + PBXSmartGroupTreeModule + XCDetailModule + + StatusbarIsVisible + 1 + TableOfContents + + 1CDDB66807F98D9800BB5817 + 1CDDB66907F98D9800BB5817 + 1CE0B1FE06471DED0097A5F4 + 1CA1AED706398EBD00589147 + + ToolbarConfiguration + xcode.toolbar.config.breakpointsV3 + WindowString + 315 424 744 409 0 0 1440 878 + WindowToolGUID + 1CDDB66807F98D9800BB5817 + WindowToolIsVisible + 1 + + + Identifier + windowTool.debugAnimator + Layout + + + Dock + + + Module + PBXNavigatorGroup + Proportion + 100% + + + Proportion + 100% + + + Name + Debug Visualizer + ServiceClasses + + PBXNavigatorGroup + + StatusbarIsVisible + 1 + ToolbarConfiguration + xcode.toolbar.config.debugAnimatorV3 + WindowString + 100 100 700 500 0 0 1280 1002 + + + Identifier + windowTool.bookmarks + Layout + + + Dock + + + Module + PBXBookmarksModule + Proportion + 100% + + + Proportion + 100% + + + Name + Bookmarks + ServiceClasses + + PBXBookmarksModule + + StatusbarIsVisible + 0 + WindowString + 538 42 401 187 0 0 1280 1002 + + + Identifier + windowTool.projectFormatConflicts + Layout + + + Dock + + + Module + XCProjectFormatConflictsModule + Proportion + 100% + + + Proportion + 100% + + + Name + Project Format Conflicts + ServiceClasses + + XCProjectFormatConflictsModule + + StatusbarIsVisible + 0 + WindowContentMinSize + 450 300 + WindowString + 50 850 472 307 0 0 1440 877 + + + Identifier + windowTool.classBrowser + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + OptionsSetName + Hierarchy, all classes + PBXProjectModuleGUID + 1CA6456E063B45B4001379D8 + PBXProjectModuleLabel + Class Browser - NSObject + + GeometryConfiguration + + ClassesFrame + {{0, 0}, {374, 96}} + ClassesTreeTableConfiguration + + PBXClassNameColumnIdentifier + 208 + PBXClassBookColumnIdentifier + 22 + + Frame + {{0, 0}, {630, 331}} + MembersFrame + {{0, 105}, {374, 395}} + MembersTreeTableConfiguration + + PBXMemberTypeIconColumnIdentifier + 22 + PBXMemberNameColumnIdentifier + 216 + PBXMemberTypeColumnIdentifier + 97 + PBXMemberBookColumnIdentifier + 22 + + PBXModuleWindowStatusBarHidden2 + 1 + RubberWindowFrame + 385 179 630 352 0 0 1440 878 + + Module + PBXClassBrowserModule + Proportion + 332pt + + + Proportion + 332pt + + + Name + Class Browser + ServiceClasses + + PBXClassBrowserModule + + StatusbarIsVisible + 0 + TableOfContents + + 1C0AD2AF069F1E9B00FABCE6 + 1C0AD2B0069F1E9B00FABCE6 + 1CA6456E063B45B4001379D8 + + ToolbarConfiguration + xcode.toolbar.config.classbrowser + WindowString + 385 179 630 352 0 0 1440 878 + WindowToolGUID + 1C0AD2AF069F1E9B00FABCE6 + WindowToolIsVisible + 0 + + + Identifier + windowTool.refactoring + IncludeInToolsMenu + 0 + Layout + + + Dock + + + BecomeActive + 1 + GeometryConfiguration + + Frame + {0, 0}, {500, 335} + RubberWindowFrame + {0, 0}, {500, 335} + + Module + XCRefactoringModule + Proportion + 100% + + + Proportion + 100% + + + Name + Refactoring + ServiceClasses + + XCRefactoringModule + + WindowString + 200 200 500 356 0 0 1920 1200 + + + + diff --git a/plugins/MacSignedVST/kWoodRoom/kWoodRoom.xcodeproj/spiadmin.pbxuser b/plugins/MacSignedVST/kWoodRoom/kWoodRoom.xcodeproj/spiadmin.pbxuser new file mode 100755 index 000000000..df947808e --- /dev/null +++ b/plugins/MacSignedVST/kWoodRoom/kWoodRoom.xcodeproj/spiadmin.pbxuser @@ -0,0 +1,143 @@ +// !$*UTF8*$! +{ + 089C1669FE841209C02AAC07 /* Project object */ = { + activeBuildConfigurationName = Release; + activeTarget = 8D01CCC60486CAD60068D4B7 /* Gain */; + codeSenseManager = 91857D95148EF55400AAA11B /* Code sense */; + perUserDictionary = { + PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = { + PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; + PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; + PBXFileTableDataSourceColumnWidthsKey = ( + 20, + 829, + 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, + 789, + 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 = 345089498; + PBXWorkspaceStateSaveDate = 345089498; + }; + perUserProjectItems = { + 911C2A9D1491A5F600A430AF /* PBXTextBookmark */ = 911C2A9D1491A5F600A430AF /* PBXTextBookmark */; + 915DCCBB1491A5B8008574E6 /* PBXTextBookmark */ = 915DCCBB1491A5B8008574E6 /* PBXTextBookmark */; + }; + sourceControlManager = 91857D94148EF55400AAA11B /* Source Control */; + userBuildSettings = { + }; + }; + 2407DEB6089929BA00EB68BF /* Gain.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {992, 1768}}"; + sepNavSelRange = "{247, 0}"; + sepNavVisRange = "{0, 1657}"; + }; + }; + 245463B80991757100464AD3 /* Gain.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {992, 975}}"; + sepNavSelRange = "{1552, 0}"; + sepNavVisRange = "{796, 1857}"; + sepNavWindowFrame = "{{15, 465}, {750, 558}}"; + }; + }; + 24A2FF9A0F90D1DD003BB5A7 /* adelaymain.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {992, 488}}"; + sepNavSelRange = "{0, 0}"; + sepNavVisRange = "{0, 798}"; + }; + }; + 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {859, 19825}}"; + sepNavSelRange = "{10641, 0}"; + sepNavVisRange = "{10076, 1095}"; + }; + }; + 24D8286F09A914000093AEF8 /* GainProc.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {992, 482}}"; + sepNavSelRange = "{239, 0}"; + sepNavVisRange = "{0, 950}"; + }; + }; + 24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {992, 493}}"; + sepNavSelRange = "{249, 0}"; + sepNavVisRange = "{0, 249}"; + }; + }; + 8D01CCC60486CAD60068D4B7 /* Gain */ = { + activeExec = 0; + }; + 911C2A9D1491A5F600A430AF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2407DEB6089929BA00EB68BF /* Gain.cpp */; + name = "Gain.cpp: 10"; + rLen = 0; + rLoc = 247; + rType = 0; + vrLen = 1657; + vrLoc = 0; + }; + 915DCCBB1491A5B8008574E6 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2407DEB6089929BA00EB68BF /* Gain.cpp */; + name = "Gain.cpp: 10"; + rLen = 0; + rLoc = 247; + rType = 0; + vrLen = 1625; + vrLoc = 0; + }; + 91857D94148EF55400AAA11B /* Source Control */ = { + isa = PBXSourceControlManager; + fallbackIsa = XCSourceControlManager; + isSCMEnabled = 0; + scmConfiguration = { + repositoryNamesForRoots = { + "" = ""; + }; + }; + }; + 91857D95148EF55400AAA11B /* Code sense */ = { + isa = PBXCodeSenseManager; + indexTemplatePath = ""; + }; +} diff --git a/plugins/MacSignedVST/kWoodRoom/kWoodRoom.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme b/plugins/MacSignedVST/kWoodRoom/kWoodRoom.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme new file mode 100755 index 000000000..8ee693f95 --- /dev/null +++ b/plugins/MacSignedVST/kWoodRoom/kWoodRoom.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/MacSignedVST/kWoodRoom/kWoodRoom.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist b/plugins/MacSignedVST/kWoodRoom/kWoodRoom.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100755 index 000000000..5bccbcb4f --- /dev/null +++ b/plugins/MacSignedVST/kWoodRoom/kWoodRoom.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,22 @@ + + + + + SchemeUserState + + Gain.xcscheme + + orderHint + 8 + + + SuppressBuildableAutocreation + + 8D01CCC60486CAD60068D4B7 + + primary + + + + + diff --git a/plugins/MacSignedVST/kWoodRoom/kWoodRoom.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist b/plugins/MacSignedVST/kWoodRoom/kWoodRoom.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100755 index 000000000..a7bdd62d4 --- /dev/null +++ b/plugins/MacSignedVST/kWoodRoom/kWoodRoom.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,22 @@ + + + + + SchemeUserState + + «PROJECTNAME».xcscheme + + orderHint + 0 + + + SuppressBuildableAutocreation + + 8D01CCC60486CAD60068D4B7 + + primary + + + + + diff --git a/plugins/MacSignedVST/kWoodRoom/kWoodRoom.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme b/plugins/MacSignedVST/kWoodRoom/kWoodRoom.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme new file mode 100755 index 000000000..0df2de4a3 --- /dev/null +++ b/plugins/MacSignedVST/kWoodRoom/kWoodRoom.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/MacSignedVST/kWoodRoom/mac/Info.plist b/plugins/MacSignedVST/kWoodRoom/mac/Info.plist new file mode 100755 index 000000000..87fb0ce4f --- /dev/null +++ b/plugins/MacSignedVST/kWoodRoom/mac/Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + kWoodRoom + CFBundleIconFile + + CFBundleIdentifier + com.airwindows.kWoodRoom + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + BNDL + CFBundleSignature + Dthr + CFBundleVersion + 1.0 + CSResourcesFileMapped + + + diff --git a/plugins/MacSignedVST/kWoodRoom/mac/PkgInfo b/plugins/MacSignedVST/kWoodRoom/mac/PkgInfo new file mode 100755 index 000000000..19a9cf67e --- /dev/null +++ b/plugins/MacSignedVST/kWoodRoom/mac/PkgInfo @@ -0,0 +1 @@ +BNDL???? \ No newline at end of file diff --git a/plugins/MacSignedVST/kWoodRoom/mac/xcode_vst_prefix.h b/plugins/MacSignedVST/kWoodRoom/mac/xcode_vst_prefix.h new file mode 100755 index 000000000..eaf4c0b4b --- /dev/null +++ b/plugins/MacSignedVST/kWoodRoom/mac/xcode_vst_prefix.h @@ -0,0 +1,17 @@ +#define MAC 1 +#define MACX 1 + +#define USE_NAMESPACE 0 + +#define TARGET_API_MAC_CARBON 1 +#define USENAVSERVICES 1 + +#define __CF_USE_FRAMEWORK_INCLUDES__ + +#if __MWERKS__ +#define __NOEXTENSIONS__ +#endif + +#define QUARTZ 1 + +#include \ No newline at end of file diff --git a/plugins/MacSignedVST/kWoodRoom/source/kWoodRoom.cpp b/plugins/MacSignedVST/kWoodRoom/source/kWoodRoom.cpp new file mode 100755 index 000000000..07ea37b23 --- /dev/null +++ b/plugins/MacSignedVST/kWoodRoom/source/kWoodRoom.cpp @@ -0,0 +1,227 @@ +/* ======================================== + * kWoodRoom - kWoodRoom.h + * Copyright (c) airwindows, Airwindows uses the MIT license + * ======================================== */ + +#ifndef __kWoodRoom_H +#include "kWoodRoom.h" +#endif + +AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new kWoodRoom(audioMaster);} + +kWoodRoom::kWoodRoom(audioMasterCallback audioMaster) : + AudioEffectX(audioMaster, kNumPrograms, kNumParameters) +{ + A = 0.5; + B = 0.5; + C = 0.25; + D = 0.5; + E = 0.5; + F = 0.5; + + for(int x = 0; x < d3A+2; x++) {a3AL[x] = 0.0; a3AR[x] = 0.0;} + for(int x = 0; x < d3B+2; x++) {a3BL[x] = 0.0; a3BR[x] = 0.0;} + for(int x = 0; x < d3C+2; x++) {a3CL[x] = 0.0; a3CR[x] = 0.0;} + for(int x = 0; x < d3D+2; x++) {a3DL[x] = 0.0; a3DR[x] = 0.0;} + for(int x = 0; x < d3E+2; x++) {a3EL[x] = 0.0; a3ER[x] = 0.0;} + for(int x = 0; x < d3F+2; x++) {a3FL[x] = 0.0; a3FR[x] = 0.0;} + for(int x = 0; x < d3G+2; x++) {a3GL[x] = 0.0; a3GR[x] = 0.0;} + for(int x = 0; x < d3H+2; x++) {a3HL[x] = 0.0; a3HR[x] = 0.0;} + for(int x = 0; x < d3I+2; x++) {a3IL[x] = 0.0; a3IR[x] = 0.0;} + c3AL = c3BL = c3CL = c3DL = c3EL = c3FL = c3GL = c3HL = c3IL = 1; + c3AR = c3BR = c3CR = c3DR = c3ER = c3FR = c3GR = c3HR = c3IR = 1; + + for(int x = 0; x < d6A+2; x++) {a6AL[x] = 0.0; a6AR[x] = 0.0;} + for(int x = 0; x < d6B+2; x++) {a6BL[x] = 0.0; a6BR[x] = 0.0;} + for(int x = 0; x < d6C+2; x++) {a6CL[x] = 0.0; a6CR[x] = 0.0;} + for(int x = 0; x < d6D+2; x++) {a6DL[x] = 0.0; a6DR[x] = 0.0;} + for(int x = 0; x < d6E+2; x++) {a6EL[x] = 0.0; a6ER[x] = 0.0;} + for(int x = 0; x < d6F+2; x++) {a6FL[x] = 0.0; a6FR[x] = 0.0;} + for(int x = 0; x < d6G+2; x++) {a6GL[x] = 0.0; a6GR[x] = 0.0;} + for(int x = 0; x < d6H+2; x++) {a6HL[x] = 0.0; a6HR[x] = 0.0;} + for(int x = 0; x < d6I+2; x++) {a6IL[x] = 0.0; a6IR[x] = 0.0;} + for(int x = 0; x < d6J+2; x++) {a6JL[x] = 0.0; a6JR[x] = 0.0;} + for(int x = 0; x < d6K+2; x++) {a6KL[x] = 0.0; a6KR[x] = 0.0;} + for(int x = 0; x < d6L+2; x++) {a6LL[x] = 0.0; a6LR[x] = 0.0;} + for(int x = 0; x < d6M+2; x++) {a6ML[x] = 0.0; a6MR[x] = 0.0;} + for(int x = 0; x < d6N+2; x++) {a6NL[x] = 0.0; a6NR[x] = 0.0;} + for(int x = 0; x < d6O+2; x++) {a6OL[x] = 0.0; a6OR[x] = 0.0;} + for(int x = 0; x < d6P+2; x++) {a6PL[x] = 0.0; a6PR[x] = 0.0;} + for(int x = 0; x < d6Q+2; x++) {a6QL[x] = 0.0; a6QR[x] = 0.0;} + for(int x = 0; x < d6R+2; x++) {a6RL[x] = 0.0; a6RR[x] = 0.0;} + for(int x = 0; x < d6S+2; x++) {a6SL[x] = 0.0; a6SR[x] = 0.0;} + for(int x = 0; x < d6T+2; x++) {a6TL[x] = 0.0; a6TR[x] = 0.0;} + for(int x = 0; x < d6U+2; x++) {a6UL[x] = 0.0; a6UR[x] = 0.0;} + for(int x = 0; x < d6V+2; x++) {a6VL[x] = 0.0; a6VR[x] = 0.0;} + for(int x = 0; x < d6W+2; x++) {a6WL[x] = 0.0; a6WR[x] = 0.0;} + for(int x = 0; x < d6X+2; x++) {a6XL[x] = 0.0; a6XR[x] = 0.0;} + for(int x = 0; x < d6Y+2; x++) {a6YL[x] = 0.0; a6YR[x] = 0.0;} + for(int x = 0; x < d6ZA+2; x++) {a6ZAL[x] = 0.0; a6ZAR[x] = 0.0;} + for(int x = 0; x < d6ZB+2; x++) {a6ZBL[x] = 0.0; a6ZBR[x] = 0.0;} + for(int x = 0; x < d6ZC+2; x++) {a6ZCL[x] = 0.0; a6ZCR[x] = 0.0;} + for(int x = 0; x < d6ZD+2; x++) {a6ZDL[x] = 0.0; a6ZDR[x] = 0.0;} + for(int x = 0; x < d6ZE+2; x++) {a6ZEL[x] = 0.0; a6ZER[x] = 0.0;} + for(int x = 0; x < d6ZF+2; x++) {a6ZFL[x] = 0.0; a6ZFR[x] = 0.0;} + for(int x = 0; x < d6ZG+2; x++) {a6ZGL[x] = 0.0; a6ZGR[x] = 0.0;} + for(int x = 0; x < d6ZH+2; x++) {a6ZHL[x] = 0.0; a6ZHR[x] = 0.0;} + for(int x = 0; x < d6ZI+2; x++) {a6ZIL[x] = 0.0; a6ZIR[x] = 0.0;} + for(int x = 0; x < d6ZJ+2; x++) {a6ZJL[x] = 0.0; a6ZJR[x] = 0.0;} + for(int x = 0; x < d6ZK+2; x++) {a6ZKL[x] = 0.0; a6ZKR[x] = 0.0;} + c6AL = c6BL = c6CL = c6DL = c6EL = c6FL = c6GL = c6HL = c6IL = 1; + c6JL = c6KL = c6LL = c6ML = c6NL = c6OL = c6PL = c6QL = c6RL = 1; + c6SL = c6TL = c6UL = c6VL = c6WL = c6XL = c6YL = c6ZAL = c6ZBL = 1; + c6ZCL = c6ZDL = c6ZEL = c6ZFL = c6ZGL = c6ZHL = c6ZIL = c6ZJL = c6ZKL = 1; + c6AR = c6BR = c6CR = c6DR = c6ER = c6FR = c6GR = c6HR = c6IR = 1; + c6JR = c6KR = c6LR = c6MR = c6NR = c6OR = c6PR = c6QR = c6RR = 1; + c6SR = c6TR = c6UR = c6VR = c6WR = c6XR = c6YR = c6ZAR = c6ZBR = 1; + c6ZCR = c6ZDR = c6ZER = c6ZFR = c6ZGR = c6ZHR = c6ZIR = c6ZJR = c6ZKR = 1; + f6AL = f6BL = f6CL = f6DL = f6EL = f6FL = 0.0; + f6FR = f6LR = f6RR = f6XR = f6ZER = f6ZKR = 0.0; + avg6L = avg6R = 0.0; + + for (int x = 0; x < bez_total; x++) { + bez[x] = 0.0; + bezF[x] = 0.0; + } + bez[bez_cycle] = 1.0; + bezF[bez_cycle] = 1.0; + + fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX; + fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX; + //this is reset: values being initialized only once. Startup values, whatever they are. + + _canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect. + _canDo.insert("plugAsSend"); // plug-in can be used as a send effect. + _canDo.insert("x2in2out"); + setNumInputs(kNumInputs); + setNumOutputs(kNumOutputs); + setUniqueID(kUniqueId); + canProcessReplacing(); // supports output replacing + canDoubleReplacing(); // supports double precision processing + programsAreChunks(true); + vst_strncpy (_programName, "Default", kVstMaxProgNameLen); // default program name +} + +kWoodRoom::~kWoodRoom() {} +VstInt32 kWoodRoom::getVendorVersion () {return 1000;} +void kWoodRoom::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);} +void kWoodRoom::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 kWoodRoom::getChunk (void** data, bool isPreset) +{ + float *chunkData = (float *)calloc(kNumParameters, sizeof(float)); + chunkData[0] = A; + chunkData[1] = B; + chunkData[2] = C; + chunkData[3] = D; + chunkData[4] = E; + chunkData[5] = F; + /* Note: The way this is set up, it will break if you manage to save settings on an Intel + machine and load them on a PPC Mac. However, it's fine if you stick to the machine you + started with. */ + + *data = chunkData; + return kNumParameters * sizeof(float); +} + +VstInt32 kWoodRoom::setChunk (void* data, VstInt32 byteSize, bool isPreset) +{ + float *chunkData = (float *)data; + A = pinParameter(chunkData[0]); + B = pinParameter(chunkData[1]); + C = pinParameter(chunkData[2]); + D = pinParameter(chunkData[3]); + E = pinParameter(chunkData[4]); + F = pinParameter(chunkData[5]); + /* We're ignoring byteSize as we found it to be a filthy liar */ + + /* calculate any other fields you need here - you could copy in + code from setParameter() here. */ + return 0; +} + +void kWoodRoom::setParameter(VstInt32 index, float value) { + switch (index) { + case kParamA: A = value; break; + case kParamB: B = value; break; + case kParamC: C = value; break; + case kParamD: D = value; break; + case kParamE: E = value; break; + case kParamF: F = value; break; + default: throw; // unknown parameter, shouldn't happen! + } +} + +float kWoodRoom::getParameter(VstInt32 index) { + switch (index) { + case kParamA: return A; break; + case kParamB: return B; break; + case kParamC: return C; break; + case kParamD: return D; break; + case kParamE: return E; break; + case kParamF: return F; break; + default: break; // unknown parameter, shouldn't happen! + } return 0.0; //we only need to update the relevant name, this is simple to manage +} + +void kWoodRoom::getParameterName(VstInt32 index, char *text) { + switch (index) { + case kParamA: vst_strncpy (text, "Regen", kVstMaxParamStrLen); break; + case kParamB: vst_strncpy (text, "Derez", kVstMaxParamStrLen); break; + case kParamC: vst_strncpy (text, "Filter", kVstMaxParamStrLen); break; + case kParamD: vst_strncpy (text, "EarlyRF", kVstMaxParamStrLen); break; + case kParamE: vst_strncpy (text, "Positin", kVstMaxParamStrLen); break; + case kParamF: vst_strncpy (text, "Dry/Wet", kVstMaxParamStrLen); break; + default: break; // unknown parameter, shouldn't happen! + } //this is our labels for displaying in the VST host +} + +void kWoodRoom::getParameterDisplay(VstInt32 index, char *text) { + switch (index) { + case kParamA: float2string (A, text, kVstMaxParamStrLen); break; + case kParamB: float2string (B, text, kVstMaxParamStrLen); break; + case kParamC: float2string (C, text, kVstMaxParamStrLen); break; + case kParamD: float2string (D, text, kVstMaxParamStrLen); break; + case kParamE: float2string (E, text, kVstMaxParamStrLen); break; + case kParamF: float2string (F, text, kVstMaxParamStrLen); break; + default: break; // unknown parameter, shouldn't happen! + } //this displays the values and handles 'popups' where it's discrete choices +} + +void kWoodRoom::getParameterLabel(VstInt32 index, char *text) { + switch (index) { + case kParamA: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamB: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamC: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamD: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamE: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamF: vst_strncpy (text, "", kVstMaxParamStrLen); break; + default: break; // unknown parameter, shouldn't happen! + } +} + +VstInt32 kWoodRoom::canDo(char *text) +{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know + +bool kWoodRoom::getEffectName(char* name) { + vst_strncpy(name, "kWoodRoom", kVstMaxProductStrLen); return true; +} + +VstPlugCategory kWoodRoom::getPlugCategory() {return kPlugCategEffect;} + +bool kWoodRoom::getProductString(char* text) { + vst_strncpy (text, "airwindows kWoodRoom", kVstMaxProductStrLen); return true; +} + +bool kWoodRoom::getVendorString(char* text) { + vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true; +} diff --git a/plugins/MacSignedVST/kWoodRoom/source/kWoodRoom.h b/plugins/MacSignedVST/kWoodRoom/source/kWoodRoom.h new file mode 100755 index 000000000..184ae2e48 --- /dev/null +++ b/plugins/MacSignedVST/kWoodRoom/source/kWoodRoom.h @@ -0,0 +1,209 @@ +/* ======================================== + * kWoodRoom - kWoodRoom.h + * Created 8/12/11 by SPIAdmin + * Copyright (c) Airwindows, Airwindows uses the MIT license + * ======================================== */ + +#ifndef __kWoodRoom_H +#define __kWoodRoom_H + +#ifndef __audioeffect__ +#include "audioeffectx.h" +#endif + +#include +#include +#include + +enum { + kParamA =0, + kParamB =1, + kParamC =2, + kParamD =3, + kParamE =4, + kParamF =5, + kNumParameters = 6 +}; // + +const int d3A = 581; const int d3B = 831; const int d3C = 832; +const int d3D = 574; const int d3E = 598; const int d3F = 685; +const int d3G = 499; const int d3H = 573; const int d3I = 655; +#define THREEBYTHREE true +const int d6A = 154; const int d6B = 832; const int d6C = 109; const int d6D = 685; const int d6E = 33; const int d6F = 12; const int d6G = 27; const int d6H = 30; const int d6I = 339; const int d6J = 499; const int d6K = 296; const int d6L = 169; const int d6M = 169; const int d6N = 831; const int d6O = 15; const int d6P = 411; const int d6Q = 238; const int d6R = 68; const int d6S = 0; const int d6T = 8; const int d6U = 655; const int d6V = 581; const int d6W = 465; const int d6X = 173; const int d6Y = 3; const int d6ZA = 96; const int d6ZB = 573; const int d6ZC = 243; const int d6ZD = 30; const int d6ZE = 188; const int d6ZF = 291; const int d6ZG = 11; const int d6ZH = 372; const int d6ZI = 574; const int d6ZJ = 100; const int d6ZK = 598; //1 to 90 ms, 249 seat club +#define SIXBYSIX true // 249seat154832109x6 on 2025-10-31 kWoodRoom +const int early[] = {0, 3, 8, 11, 12, 15, 27, 30, 30, 33, 68, 96, 100, 109, 154, 169, 169, 173, 188, 238, 243, 291, 296, 339, 372, 411, 465, 499, 573, 574, 581, 598, 655, 685, 831, 832}; + +const int kNumPrograms = 0; +const int kNumInputs = 2; +const int kNumOutputs = 2; +const unsigned long kUniqueId = 'ksta'; //Change this to what the AU identity is! + +class kWoodRoom : + public AudioEffectX +{ +public: + kWoodRoom(audioMasterCallback audioMaster); + ~kWoodRoom(); + virtual bool getEffectName(char* name); // The plug-in name + virtual VstPlugCategory getPlugCategory(); // The general category for the plug-in + virtual bool getProductString(char* text); // This is a unique plug-in string provided by Steinberg + virtual bool getVendorString(char* text); // Vendor info + virtual VstInt32 getVendorVersion(); // Version number + virtual void processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames); + virtual void processDoubleReplacing (double** inputs, double** outputs, VstInt32 sampleFrames); + virtual void getProgramName(char *name); // read the name from the host + virtual void setProgramName(char *name); // changes the name of the preset displayed in the host + virtual VstInt32 getChunk (void** data, bool isPreset); + virtual VstInt32 setChunk (void* data, VstInt32 byteSize, bool isPreset); + virtual float getParameter(VstInt32 index); // get the parameter value at the specified index + virtual void setParameter(VstInt32 index, float value); // set the parameter at index to value + virtual void getParameterLabel(VstInt32 index, char *text); // label for the parameter (eg dB) + virtual void getParameterName(VstInt32 index, char *text); // name of the parameter + virtual void getParameterDisplay(VstInt32 index, char *text); // text description of the current value + virtual VstInt32 canDo(char *text); +private: + char _programName[kVstMaxProgNameLen + 1]; + std::set< std::string > _canDo; + + float A; + float B; + float C; + float D; + float E; + float F; + + double a3AL[d3A+5]; + double a3BL[d3B+5]; + double a3CL[d3C+5]; + double a3DL[d3D+5]; + double a3EL[d3E+5]; + double a3FL[d3F+5]; + double a3GL[d3G+5]; + double a3HL[d3H+5]; + double a3IL[d3I+5]; + double a3AR[d3A+5]; + double a3BR[d3B+5]; + double a3CR[d3C+5]; + double a3DR[d3D+5]; + double a3ER[d3E+5]; + double a3FR[d3F+5]; + double a3GR[d3G+5]; + double a3HR[d3H+5]; + double a3IR[d3I+5]; + int c3AL,c3AR,c3BL,c3BR,c3CL,c3CR,c3DL,c3DR,c3EL,c3ER; + int c3FL,c3FR,c3GL,c3GR,c3HL,c3HR,c3IL,c3IR; + + double a6AL[d6A+5]; + double a6BL[d6B+5]; + double a6CL[d6C+5]; + double a6DL[d6D+5]; + double a6EL[d6E+5]; + double a6FL[d6F+5]; + double a6GL[d6G+5]; + double a6HL[d6H+5]; + double a6IL[d6I+5]; + double a6JL[d6J+5]; + double a6KL[d6K+5]; + double a6LL[d6L+5]; + double a6ML[d6M+5]; + double a6NL[d6N+5]; + double a6OL[d6O+5]; + double a6PL[d6P+5]; + double a6QL[d6Q+5]; + double a6RL[d6R+5]; + double a6SL[d6S+5]; + double a6TL[d6T+5]; + double a6UL[d6U+5]; + double a6VL[d6V+5]; + double a6WL[d6W+5]; + double a6XL[d6X+5]; + double a6YL[d6Y+5]; + double a6ZAL[d6ZA+5]; + double a6ZBL[d6ZB+5]; + double a6ZCL[d6ZC+5]; + double a6ZDL[d6ZD+5]; + double a6ZEL[d6ZE+5]; + double a6ZFL[d6ZF+5]; + double a6ZGL[d6ZG+5]; + double a6ZHL[d6ZH+5]; + double a6ZIL[d6ZI+5]; + double a6ZJL[d6ZJ+5]; + double a6ZKL[d6ZK+5]; + double a6AR[d6A+5]; + double a6BR[d6B+5]; + double a6CR[d6C+5]; + double a6DR[d6D+5]; + double a6ER[d6E+5]; + double a6FR[d6F+5]; + double a6GR[d6G+5]; + double a6HR[d6H+5]; + double a6IR[d6I+5]; + double a6JR[d6J+5]; + double a6KR[d6K+5]; + double a6LR[d6L+5]; + double a6MR[d6M+5]; + double a6NR[d6N+5]; + double a6OR[d6O+5]; + double a6PR[d6P+5]; + double a6QR[d6Q+5]; + double a6RR[d6R+5]; + double a6SR[d6S+5]; + double a6TR[d6T+5]; + double a6UR[d6U+5]; + double a6VR[d6V+5]; + double a6WR[d6W+5]; + double a6XR[d6X+5]; + double a6YR[d6Y+5]; + double a6ZAR[d6ZA+5]; + double a6ZBR[d6ZB+5]; + double a6ZCR[d6ZC+5]; + double a6ZDR[d6ZD+5]; + double a6ZER[d6ZE+5]; + double a6ZFR[d6ZF+5]; + double a6ZGR[d6ZG+5]; + double a6ZHR[d6ZH+5]; + double a6ZIR[d6ZI+5]; + double a6ZJR[d6ZJ+5]; + double a6ZKR[d6ZK+5]; + int c6AL,c6BL,c6CL,c6DL,c6EL,c6FL,c6GL,c6HL,c6IL; + int c6JL,c6KL,c6LL,c6ML,c6NL,c6OL,c6PL,c6QL,c6RL; + int c6SL,c6TL,c6UL,c6VL,c6WL,c6XL,c6YL,c6ZAL,c6ZBL; + int c6ZCL,c6ZDL,c6ZEL,c6ZFL,c6ZGL,c6ZHL,c6ZIL,c6ZJL,c6ZKL; + int c6AR,c6BR,c6CR,c6DR,c6ER,c6FR,c6GR,c6HR,c6IR; + int c6JR,c6KR,c6LR,c6MR,c6NR,c6OR,c6PR,c6QR,c6RR; + int c6SR,c6TR,c6UR,c6VR,c6WR,c6XR,c6YR,c6ZAR,c6ZBR; + int c6ZCR,c6ZDR,c6ZER,c6ZFR,c6ZGR,c6ZHR,c6ZIR,c6ZJR,c6ZKR; + double f6AL,f6BL,f6CL,f6DL,f6EL,f6FL; + double f6FR,f6LR,f6RR,f6XR,f6ZER,f6ZKR; + double avg6L,avg6R; + + enum { + bez_AL, + bez_AR, + bez_BL, + bez_BR, + bez_CL, + bez_CR, + bez_InL, + bez_InR, + bez_UnInL, + bez_UnInR, + bez_SampL, + bez_SampR, + bez_AvgInSampL, + bez_AvgInSampR, + bez_AvgOutSampL, + bez_AvgOutSampR, + bez_cycle, + bez_total + }; //the new undersampling. bez signifies the bezier curve reconstruction + double bez[bez_total]; + + double bezF[bez_total]; + + uint32_t fpdL; + uint32_t fpdR; + //default stuff +}; + +#endif diff --git a/plugins/MacSignedVST/kWoodRoom/source/kWoodRoomProc.cpp b/plugins/MacSignedVST/kWoodRoom/source/kWoodRoomProc.cpp new file mode 100755 index 000000000..0dc8087f4 --- /dev/null +++ b/plugins/MacSignedVST/kWoodRoom/source/kWoodRoomProc.cpp @@ -0,0 +1,1032 @@ +/* ======================================== + * kWoodRoom - kWoodRoom.h + * Copyright (c) airwindows, Airwindows uses the MIT license + * ======================================== */ + +#ifndef __kWoodRoom_H +#include "kWoodRoom.h" +#endif + +void kWoodRoom::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(); + + double fdb6ck = (0.0009765625+0.0009765625+0.001953125)*0.3333333; + double reg6n = (1.0-pow(1.0-A,1.618033988749894))*fdb6ck; + //start this but pad it in the loop by volume of output? + + double derez = B*2.0; + bool stepped = true; // Revised Bezier Undersampling + if (derez > 1.0) { // has full rez at center, stepped + stepped = false; // to left, continuous to right + derez = 1.0-(derez-1.0); + } //if it's set up like that it's the revised algorithm + derez = fmin(fmax(derez/overallscale,0.0005),1.0); + int bezFraction = (int)(1.0/derez); + double bezTrim = (double)bezFraction/(bezFraction+1.0); + if (stepped) { //this hard-locks derez to exact subdivisions of 1.0 + derez = 1.0 / bezFraction; + bezTrim = 1.0-(derez*bezTrim); + } else { //this makes it match the 1.0 case using stepped + derez /= (2.0/pow(overallscale,0.5-((overallscale-1.0)*0.0375))); + bezTrim = 1.0-pow(derez*0.5,1.0/(derez*0.5)); + } //the revision more accurately connects the bezier curves + + double derezFreq = C*2.0; + bool steppedFreq = true; // Revised Bezier Undersampling + if (derezFreq > 1.0) { // has full rez at center, stepped + steppedFreq = false; // to left, continuous to right + derezFreq = 1.0-(derezFreq-1.0); + } //if it's set up like that it's the revised algorithm + derezFreq = fmin(fmax(derezFreq,0.0005),1.0); //note: no overallscale, already inside undersampling + int bezFreqFraction = (int)(1.0/derezFreq); + double bezFreqTrim = (double)bezFreqFraction/(bezFreqFraction+1.0); + if (steppedFreq) { //this hard-locks derez to exact subdivisions of 1.0 + derezFreq = 1.0 / bezFreqFraction; + bezFreqTrim = 1.0-(derezFreq*bezFreqTrim); + } else { //this makes it match the 1.0 case using stepped + bezFreqTrim = 1.0-pow(derezFreq*0.5,1.0/(derezFreq*0.5)); + } //the revision more accurately connects the bezier curves + + double earlyLoudness = D*2.0; + int start = (int)(E * 27.0); + int ld3G = early[start]; + int ld3H = early[start+1]; + int ld3D = early[start+2]; + int ld3A = early[start+3]; + int ld3E = early[start+4]; + int ld3I = early[start+5]; + int ld3F = early[start+6]; + int ld3B = early[start+7]; + int ld3C = early[start+8]; + double wet = F; + + while (--sampleFrames >= 0) + { + double inputSampleL = *in1; + double inputSampleR = *in2; + if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17; + if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17; + double drySampleL = inputSampleL; + double drySampleR = inputSampleR; + + bez[bez_cycle] += derez; + bez[bez_SampL] += ((inputSampleL+bez[bez_InL]) * derez); + bez[bez_SampR] += ((inputSampleR+bez[bez_InR]) * derez); + bez[bez_InL] = inputSampleL; bez[bez_InR] = inputSampleR; + if (bez[bez_cycle] > 1.0) { //hit the end point and we do a reverb sample + if (stepped) bez[bez_cycle] = 0.0; + else bez[bez_cycle] -= 1.0; + + inputSampleL = (bez[bez_SampL]+bez[bez_AvgInSampL])*0.5; + bez[bez_AvgInSampL] = bez[bez_SampL]; + inputSampleR = (bez[bez_SampR]+bez[bez_AvgInSampR])*0.5; + bez[bez_AvgInSampR] = bez[bez_SampR]; + + a3AL[c3AL] = inputSampleL;// + (f3AL * reg3n); + a3BL[c3BL] = inputSampleL;// + (f3BL * reg3n); + a3CL[c3CL] = inputSampleL;// + (f3CL * reg3n); + + a3CR[c3CR] = inputSampleR;// + (f3CR * reg3n); + a3FR[c3FR] = inputSampleR;// + (f3FR * reg3n); + a3IR[c3IR] = inputSampleR;// + (f3IR * reg3n); + + c3AL++; if (c3AL < 0 || c3AL > ld3A) c3AL = 0; + c3BL++; if (c3BL < 0 || c3BL > ld3B) c3BL = 0; + c3CL++; if (c3CL < 0 || c3CL > ld3C) c3CL = 0; + c3CR++; if (c3CR < 0 || c3CR > ld3C) c3CR = 0; + c3FR++; if (c3FR < 0 || c3FR > ld3F) c3FR = 0; + c3IR++; if (c3IR < 0 || c3IR > ld3I) c3IR = 0; + + double o3AL = a3AL[c3AL-((c3AL > ld3A)?c3AL+1:0)]; + double o3BL = a3BL[c3BL-((c3BL > ld3B)?c3BL+1:0)]; + double o3CL = a3CL[c3CL-((c3CL > ld3C)?c3CL+1:0)]; + double o3CR = a3CR[c3CR-((c3CR > ld3C)?c3CR+1:0)]; + double o3FR = a3FR[c3FR-((c3FR > ld3F)?c3FR+1:0)]; + double o3IR = a3IR[c3IR-((c3IR > ld3I)?c3IR+1:0)]; + + a3DL[c3DL] = (((o3BL + o3CL) * -2.0) + o3AL); + a3EL[c3EL] = (((o3AL + o3CL) * -2.0) + o3BL); + a3FL[c3FL] = (((o3AL + o3BL) * -2.0) + o3CL); + a3BR[c3BR] = (((o3FR + o3IR) * -2.0) + o3CR); + a3ER[c3ER] = (((o3CR + o3IR) * -2.0) + o3FR); + a3HR[c3HR] = (((o3CR + o3FR) * -2.0) + o3IR); + + c3DL++; if (c3DL < 0 || c3DL > ld3D) c3DL = 0; + c3EL++; if (c3EL < 0 || c3EL > ld3E) c3EL = 0; + c3FL++; if (c3FL < 0 || c3FL > ld3F) c3FL = 0; + c3BR++; if (c3BR < 0 || c3BR > ld3B) c3BR = 0; + c3ER++; if (c3ER < 0 || c3ER > ld3E) c3ER = 0; + c3HR++; if (c3HR < 0 || c3HR > ld3H) c3HR = 0; + + double o3DL = a3DL[c3DL-((c3DL > ld3D)?c3DL+1:0)]; + double o3EL = a3EL[c3EL-((c3EL > ld3E)?c3EL+1:0)]; + double o3FL = a3FL[c3FL-((c3FL > ld3F)?c3FL+1:0)]; + double o3BR = a3BR[c3BR-((c3BR > ld3B)?c3BR+1:0)]; + double o3ER = a3ER[c3ER-((c3ER > ld3E)?c3ER+1:0)]; + double o3HR = a3HR[c3HR-((c3HR > ld3H)?c3HR+1:0)]; + + a3GL[c3GL] = (((o3EL + o3FL) * -2.0) + o3DL); + a3HL[c3HL] = (((o3DL + o3FL) * -2.0) + o3EL); + a3IL[c3IL] = (((o3DL + o3EL) * -2.0) + o3FL); + a3AR[c3AR] = (((o3ER + o3HR) * -2.0) + o3BR); + a3DR[c3DR] = (((o3BR + o3HR) * -2.0) + o3ER); + a3GR[c3GR] = (((o3BR + o3ER) * -2.0) + o3HR); + + c3GL++; if (c3GL < 0 || c3GL > ld3G) c3GL = 0; + c3HL++; if (c3HL < 0 || c3HL > ld3H) c3HL = 0; + c3IL++; if (c3IL < 0 || c3IL > ld3I) c3IL = 0; + c3AR++; if (c3AR < 0 || c3AR > ld3A) c3AR = 0; + c3DR++; if (c3DR < 0 || c3DR > ld3D) c3DR = 0; + c3GR++; if (c3GR < 0 || c3GR > ld3G) c3GR = 0; + + double o3GL = a3GL[c3GL-((c3GL > ld3G)?c3GL+1:0)]; + double o3HL = a3HL[c3HL-((c3HL > ld3H)?c3HL+1:0)]; + double o3IL = a3IL[c3IL-((c3IL > ld3I)?c3IL+1:0)]; + double o3AR = a3AR[c3AR-((c3AR > ld3A)?c3AR+1:0)]; + double o3DR = a3DR[c3DR-((c3DR > ld3D)?c3DR+1:0)]; + double o3GR = a3GR[c3GR-((c3GR > ld3G)?c3GR+1:0)]; + + double inputSampleL = (o3GL + o3HL + o3IL)*0.03125; + double inputSampleR = (o3AR + o3DR + o3GR)*0.03125; + + bezF[bez_cycle] += derezFreq; + bezF[bez_SampL] += ((inputSampleL+bezF[bez_InL]) * derezFreq); + bezF[bez_SampR] += ((inputSampleL+bezF[bez_InR]) * derezFreq); + bezF[bez_InL] = inputSampleL; bezF[bez_InR] = inputSampleR; + if (bezF[bez_cycle] > 1.0) { //hit the end point and we do a filter sample + if (steppedFreq) bezF[bez_cycle] = 0.0; + else bezF[bez_cycle] -= 1.0; + bezF[bez_CL] = bezF[bez_BL]; + bezF[bez_BL] = bezF[bez_AL]; + bezF[bez_AL] = (bezF[bez_SampL]+bezF[bez_AvgInSampL])*0.5; + bezF[bez_AvgInSampL] = bezF[bez_SampL]; bezF[bez_SampL] = 0.0; + bezF[bez_CR] = bezF[bez_BR]; + bezF[bez_BR] = bezF[bez_AR]; + bezF[bez_AR] = (bezF[bez_SampR]+bezF[bez_AvgInSampR])*0.5; + bezF[bez_AvgInSampR] = bezF[bez_SampR]; bezF[bez_SampR] = 0.0; + } + double X = bezF[bez_cycle]*bezFreqTrim; + double CBLfreq = (bezF[bez_CL]*(1.0-X))+(bezF[bez_BL]*X); + double BALfreq = (bezF[bez_BL]*(1.0-X))+(bezF[bez_AL]*X); + double CBALfreq = (bezF[bez_BL]+(CBLfreq*(1.0-X))+(BALfreq*X))*0.125; + double CBRfreq = (bezF[bez_CR]*(1.0-X))+(bezF[bez_BR]*X); + double BARfreq = (bezF[bez_BR]*(1.0-X))+(bezF[bez_AR]*X); + double CBARfreq = (bezF[bez_BR]+(CBRfreq*(1.0-X))+(BARfreq*X))*0.125; + inputSampleL = CBALfreq+bezF[bez_AvgOutSampL]; + bezF[bez_AvgOutSampL] = CBALfreq; + inputSampleR = CBARfreq+bezF[bez_AvgOutSampR]; + bezF[bez_AvgOutSampR] = CBARfreq; + + double earlyReflectionL = inputSampleL; + double earlyReflectionR = inputSampleR; //kWoodRoom has filtered early reflections + + a6AL[c6AL] = inputSampleL + (f6BL * reg6n); + a6BL[c6BL] = inputSampleL + (f6CL * reg6n); + a6CL[c6CL] = inputSampleL + (f6DL * reg6n); + a6DL[c6DL] = inputSampleL + (f6EL * reg6n); + a6EL[c6EL] = inputSampleL + (f6FL * reg6n); + a6FL[c6FL] = inputSampleL + (f6AL * reg6n); + + c6AL++; if (c6AL < 0 || c6AL > d6A) c6AL = 0; + c6BL++; if (c6BL < 0 || c6BL > d6B) c6BL = 0; + c6CL++; if (c6CL < 0 || c6CL > d6C) c6CL = 0; + c6DL++; if (c6DL < 0 || c6DL > d6D) c6DL = 0; + c6EL++; if (c6EL < 0 || c6EL > d6E) c6EL = 0; + c6FL++; if (c6FL < 0 || c6FL > d6F) c6FL = 0; + + double o6AL = a6AL[c6AL-((c6AL > d6A)?d6A+1:0)]; + double o6BL = a6BL[c6BL-((c6BL > d6B)?d6B+1:0)]; + double o6CL = a6CL[c6CL-((c6CL > d6C)?d6C+1:0)]; + double o6DL = a6DL[c6DL-((c6DL > d6D)?d6D+1:0)]; + double o6EL = a6EL[c6EL-((c6EL > d6E)?d6E+1:0)]; + double o6FL = a6FL[c6FL-((c6FL > d6F)?d6F+1:0)]; + + a6FR[c6FR] = inputSampleR + (f6LR * reg6n); + a6LR[c6LR] = inputSampleR + (f6RR * reg6n); + a6RR[c6RR] = inputSampleR + (f6XR * reg6n); + a6XR[c6XR] = inputSampleR + (f6ZER * reg6n); + a6ZER[c6ZER] = inputSampleR + (f6ZKR * reg6n); + a6ZKR[c6ZKR] = inputSampleR + (f6FR * reg6n); + + c6FR++; if (c6FR < 0 || c6FR > d6F) c6FR = 0; + c6LR++; if (c6LR < 0 || c6LR > d6L) c6LR = 0; + c6RR++; if (c6RR < 0 || c6RR > d6R) c6RR = 0; + c6XR++; if (c6XR < 0 || c6XR > d6X) c6XR = 0; + c6ZER++; if (c6ZER < 0 || c6ZER > d6ZE) c6ZER = 0; + c6ZKR++; if (c6ZKR < 0 || c6ZKR > d6ZK) c6ZKR = 0; + + double o6FR = a6FR[c6FR-((c6FR > d6F)?d6F+1:0)]; + double o6LR = a6LR[c6LR-((c6LR > d6L)?d6L+1:0)]; + double o6RR = a6RR[c6RR-((c6RR > d6R)?d6R+1:0)]; + double o6XR = a6XR[c6XR-((c6XR > d6X)?d6X+1:0)]; + double o6ZER = a6ZER[c6ZER-((c6ZER > d6ZE)?d6ZE+1:0)]; + double o6ZKR = a6ZKR[c6ZKR-((c6ZKR > d6ZK)?d6ZK+1:0)]; + + //-------- one + + a6GL[c6GL] = ((o6AL*2.0) - (o6BL + o6CL + o6DL + o6EL + o6FL)); + a6HL[c6HL] = ((o6BL*2.0) - (o6AL + o6CL + o6DL + o6EL + o6FL)); + a6IL[c6IL] = ((o6CL*2.0) - (o6AL + o6BL + o6DL + o6EL + o6FL)); + a6JL[c6JL] = ((o6DL*2.0) - (o6AL + o6BL + o6CL + o6EL + o6FL)); + a6KL[c6KL] = ((o6EL*2.0) - (o6AL + o6BL + o6CL + o6DL + o6FL)); + a6LL[c6LL] = ((o6FL*2.0) - (o6AL + o6BL + o6CL + o6DL + o6EL)); + + c6GL++; if (c6GL < 0 || c6GL > d6G) c6GL = 0; + c6HL++; if (c6HL < 0 || c6HL > d6H) c6HL = 0; + c6IL++; if (c6IL < 0 || c6IL > d6I) c6IL = 0; + c6JL++; if (c6JL < 0 || c6JL > d6J) c6JL = 0; + c6KL++; if (c6KL < 0 || c6KL > d6K) c6KL = 0; + c6LL++; if (c6LL < 0 || c6LL > d6L) c6LL = 0; + + double o6GL = a6GL[c6GL-((c6GL > d6G)?d6G+1:0)]; + double o6HL = a6HL[c6HL-((c6HL > d6H)?d6H+1:0)]; + double o6IL = a6IL[c6IL-((c6IL > d6I)?d6I+1:0)]; + double o6JL = a6JL[c6JL-((c6JL > d6J)?d6J+1:0)]; + double o6KL = a6KL[c6KL-((c6KL > d6K)?d6K+1:0)]; + double o6LL = a6LL[c6LL-((c6LL > d6L)?d6L+1:0)]; + + a6ER[c6ER] = ((o6FR*2.0) - (o6LR + o6RR + o6XR + o6ZER + o6ZKR)); + a6KR[c6KR] = ((o6LR*2.0) - (o6FR + o6RR + o6XR + o6ZER + o6ZKR)); + a6QR[c6QR] = ((o6RR*2.0) - (o6FR + o6LR + o6XR + o6ZER + o6ZKR)); + a6WR[c6WR] = ((o6XR*2.0) - (o6FR + o6LR + o6RR + o6ZER + o6ZKR)); + a6ZDR[c6ZDR] = ((o6ZER*2.0) - (o6FR + o6LR + o6RR + o6XR + o6ZKR)); + a6ZJR[c6ZJR] = ((o6ZKR*2.0) - (o6FR + o6LR + o6RR + o6XR + o6ZER)); + + c6ER++; if (c6ER < 0 || c6ER > d6E) c6ER = 0; + c6KR++; if (c6KR < 0 || c6KR > d6K) c6KR = 0; + c6QR++; if (c6QR < 0 || c6QR > d6Q) c6QR = 0; + c6WR++; if (c6WR < 0 || c6WR > d6W) c6WR = 0; + c6ZDR++; if (c6ZDR < 0 || c6ZDR > d6ZD) c6ZDR = 0; + c6ZJR++; if (c6ZJR < 0 || c6ZJR > d6ZJ) c6ZJR = 0; + + double o6ER = a6ER[c6ER-((c6ER > d6E)?d6E+1:0)]; + double o6KR = a6KR[c6KR-((c6KR > d6K)?d6K+1:0)]; + double o6QR = a6QR[c6QR-((c6QR > d6Q)?d6Q+1:0)]; + double o6WR = a6WR[c6WR-((c6WR > d6W)?d6W+1:0)]; + double o6ZDR = a6ZDR[c6ZDR-((c6ZDR > d6ZD)?d6ZD+1:0)]; + double o6ZJR = a6ZJR[c6ZJR-((c6ZJR > d6ZJ)?d6ZJ+1:0)]; + + //-------- two + + a6ML[c6ML] = ((o6GL*2.0) - (o6HL + o6IL + o6JL + o6KL + o6LL)); + a6NL[c6NL] = ((o6HL*2.0) - (o6GL + o6IL + o6JL + o6KL + o6LL)); + a6OL[c6OL] = ((o6IL*2.0) - (o6GL + o6HL + o6JL + o6KL + o6LL)); + a6PL[c6PL] = ((o6JL*2.0) - (o6GL + o6HL + o6IL + o6KL + o6LL)); + a6QL[c6QL] = ((o6KL*2.0) - (o6GL + o6HL + o6IL + o6JL + o6LL)); + a6RL[c6RL] = ((o6LL*2.0) - (o6GL + o6HL + o6IL + o6JL + o6KL)); + + c6ML++; if (c6ML < 0 || c6ML > d6M) c6ML = 0; + c6NL++; if (c6NL < 0 || c6NL > d6N) c6NL = 0; + c6OL++; if (c6OL < 0 || c6OL > d6O) c6OL = 0; + c6PL++; if (c6PL < 0 || c6PL > d6P) c6PL = 0; + c6QL++; if (c6QL < 0 || c6QL > d6Q) c6QL = 0; + c6RL++; if (c6RL < 0 || c6RL > d6R) c6RL = 0; + + double o6ML = a6ML[c6ML-((c6ML > d6M)?d6M+1:0)]; + double o6NL = a6NL[c6NL-((c6NL > d6N)?d6N+1:0)]; + double o6OL = a6OL[c6OL-((c6OL > d6O)?d6O+1:0)]; + double o6PL = a6PL[c6PL-((c6PL > d6P)?d6P+1:0)]; + double o6QL = a6QL[c6QL-((c6QL > d6Q)?d6Q+1:0)]; + double o6RL = a6RL[c6RL-((c6RL > d6R)?d6R+1:0)]; + + a6DR[c6DR] = ((o6ER*2.0) - (o6KR + o6QR + o6WR + o6ZDR + o6ZJR)); + a6JR[c6JR] = ((o6KR*2.0) - (o6ER + o6QR + o6WR + o6ZDR + o6ZJR)); + a6PR[c6PR] = ((o6QR*2.0) - (o6ER + o6KR + o6WR + o6ZDR + o6ZJR)); + a6VR[c6VR] = ((o6WR*2.0) - (o6ER + o6KR + o6QR + o6ZDR + o6ZJR)); + a6ZCR[c6ZCR] = ((o6ZDR*2.0) - (o6ER + o6KR + o6QR + o6WR + o6ZJR)); + a6ZIR[c6ZIR] = ((o6ZJR*2.0) - (o6ER + o6KR + o6QR + o6WR + o6ZDR)); + + c6DR++; if (c6DR < 0 || c6DR > d6D) c6DR = 0; + c6JR++; if (c6JR < 0 || c6JR > d6J) c6JR = 0; + c6PR++; if (c6PR < 0 || c6PR > d6P) c6PR = 0; + c6VR++; if (c6VR < 0 || c6VR > d6V) c6VR = 0; + c6ZCR++; if (c6ZCR < 0 || c6ZCR > d6ZC) c6ZCR = 0; + c6ZIR++; if (c6ZIR < 0 || c6ZIR > d6ZI) c6ZIR = 0; + + double o6DR = a6DR[c6DR-((c6DR > d6D)?d6D+1:0)]; + double o6JR = a6JR[c6JR-((c6JR > d6J)?d6J+1:0)]; + double o6PR = a6PR[c6PR-((c6PR > d6P)?d6P+1:0)]; + double o6VR = a6VR[c6VR-((c6VR > d6V)?d6V+1:0)]; + double o6ZCR = a6ZCR[c6ZCR-((c6ZCR > d6ZC)?d6ZC+1:0)]; + double o6ZIR = a6ZIR[c6ZIR-((c6ZIR > d6ZI)?d6ZI+1:0)]; + + //-------- three + + a6SL[c6SL] = ((o6ML*2.0) - (o6NL + o6OL + o6PL + o6QL + o6RL)); + a6TL[c6TL] = ((o6NL*2.0) - (o6ML + o6OL + o6PL + o6QL + o6RL)); + a6UL[c6UL] = ((o6OL*2.0) - (o6ML + o6NL + o6PL + o6QL + o6RL)); + a6VL[c6VL] = ((o6PL*2.0) - (o6ML + o6NL + o6OL + o6QL + o6RL)); + a6WL[c6WL] = ((o6QL*2.0) - (o6ML + o6NL + o6OL + o6PL + o6RL)); + a6XL[c6XL] = ((o6RL*2.0) - (o6ML + o6NL + o6OL + o6PL + o6QL)); + + c6SL++; if (c6SL < 0 || c6SL > d6S) c6SL = 0; + c6TL++; if (c6TL < 0 || c6TL > d6T) c6TL = 0; + c6UL++; if (c6UL < 0 || c6UL > d6U) c6UL = 0; + c6VL++; if (c6VL < 0 || c6VL > d6V) c6VL = 0; + c6WL++; if (c6WL < 0 || c6WL > d6W) c6WL = 0; + c6XL++; if (c6XL < 0 || c6XL > d6X) c6XL = 0; + + double o6SL = a6SL[c6SL-((c6SL > d6S)?d6S+1:0)]; + double o6TL = a6TL[c6TL-((c6TL > d6T)?d6T+1:0)]; + double o6UL = a6UL[c6UL-((c6UL > d6U)?d6U+1:0)]; + double o6VL = a6VL[c6VL-((c6VL > d6V)?d6V+1:0)]; + double o6WL = a6WL[c6WL-((c6WL > d6W)?d6W+1:0)]; + double o6XL = a6XL[c6XL-((c6XL > d6X)?d6X+1:0)]; + + a6CR[c6CR] = ((o6DR*2.0) - (o6JR + o6PR + o6VR + o6ZCR + o6ZIR)); + a6IR[c6IR] = ((o6JR*2.0) - (o6DR + o6PR + o6VR + o6ZCR + o6ZIR)); + a6OR[c6OR] = ((o6PR*2.0) - (o6DR + o6JR + o6VR + o6ZCR + o6ZIR)); + a6UR[c6UR] = ((o6VR*2.0) - (o6DR + o6JR + o6PR + o6ZCR + o6ZIR)); + a6ZBR[c6ZBR] = ((o6ZCR*2.0) - (o6DR + o6JR + o6PR + o6VR + o6ZIR)); + a6ZHR[c6ZHR] = ((o6ZIR*2.0) - (o6DR + o6JR + o6PR + o6VR + o6ZCR)); + + c6CR++; if (c6CR < 0 || c6CR > d6C) c6CR = 0; + c6IR++; if (c6IR < 0 || c6IR > d6I) c6IR = 0; + c6OR++; if (c6OR < 0 || c6OR > d6O) c6OR = 0; + c6UR++; if (c6UR < 0 || c6UR > d6U) c6UR = 0; + c6ZBR++; if (c6ZBR < 0 || c6ZBR > d6ZB) c6ZBR = 0; + c6ZHR++; if (c6ZHR < 0 || c6ZHR > d6ZH) c6ZHR = 0; + + double o6CR = a6CR[c6CR-((c6CR > d6C)?d6C+1:0)]; + double o6IR = a6IR[c6IR-((c6IR > d6I)?d6I+1:0)]; + double o6OR = a6OR[c6OR-((c6OR > d6O)?d6O+1:0)]; + double o6UR = a6UR[c6UR-((c6UR > d6U)?d6U+1:0)]; + double o6ZBR = a6ZBR[c6ZBR-((c6ZBR > d6ZB)?d6ZB+1:0)]; + double o6ZHR = a6ZHR[c6ZHR-((c6ZHR > d6ZH)?d6ZH+1:0)]; + + //-------- four + + a6YL[c6YL] = ((o6SL*2.0) - (o6TL + o6UL + o6VL + o6WL + o6XL)); + a6ZAL[c6ZAL] = ((o6TL*2.0) - (o6SL + o6UL + o6VL + o6WL + o6XL)); + a6ZBL[c6ZBL] = ((o6UL*2.0) - (o6SL + o6TL + o6VL + o6WL + o6XL)); + a6ZCL[c6ZCL] = ((o6VL*2.0) - (o6SL + o6TL + o6UL + o6WL + o6XL)); + a6ZDL[c6ZDL] = ((o6WL*2.0) - (o6SL + o6TL + o6UL + o6VL + o6XL)); + a6ZEL[c6ZEL] = ((o6XL*2.0) - (o6SL + o6TL + o6UL + o6VL + o6WL)); + + c6YL++; if (c6YL < 0 || c6YL > d6Y) c6YL = 0; + c6ZAL++; if (c6ZAL < 0 || c6ZAL > d6ZA) c6ZAL = 0; + c6ZBL++; if (c6ZBL < 0 || c6ZBL > d6ZB) c6ZBL = 0; + c6ZCL++; if (c6ZCL < 0 || c6ZCL > d6ZC) c6ZCL = 0; + c6ZDL++; if (c6ZDL < 0 || c6ZDL > d6ZD) c6ZDL = 0; + c6ZEL++; if (c6ZEL < 0 || c6ZEL > d6ZE) c6ZEL = 0; + + double o6YL = a6YL[c6YL-((c6YL > d6Y)?d6Y+1:0)]; + double o6ZAL = a6ZAL[c6ZAL-((c6ZAL > d6ZA)?d6ZA+1:0)]; + double o6ZBL = a6ZBL[c6ZBL-((c6ZBL > d6ZB)?d6ZB+1:0)]; + double o6ZCL = a6ZCL[c6ZCL-((c6ZCL > d6ZC)?d6ZC+1:0)]; + double o6ZDL = a6ZDL[c6ZDL-((c6ZDL > d6ZD)?d6ZD+1:0)]; + double o6ZEL = a6ZEL[c6ZEL-((c6ZEL > d6ZE)?d6ZE+1:0)]; + + a6BR[c6BR] = ((o6CR*2.0) - (o6IR + o6OR + o6UR + o6ZBR + o6ZHR)); + a6HR[c6HR] = ((o6IR*2.0) - (o6CR + o6OR + o6UR + o6ZBR + o6ZHR)); + a6NR[c6NR] = ((o6OR*2.0) - (o6CR + o6IR + o6UR + o6ZBR + o6ZHR)); + a6TR[c6TR] = ((o6UR*2.0) - (o6CR + o6IR + o6OR + o6ZBR + o6ZHR)); + a6ZAR[c6ZAR] = ((o6ZBR*2.0) - (o6CR + o6IR + o6OR + o6UR + o6ZHR)); + a6ZGR[c6ZGR] = ((o6ZHR*2.0) - (o6CR + o6IR + o6OR + o6UR + o6ZBR)); + + c6BR++; if (c6BR < 0 || c6BR > d6B) c6BR = 0; + c6HR++; if (c6HR < 0 || c6HR > d6H) c6HR = 0; + c6NR++; if (c6NR < 0 || c6NR > d6N) c6NR = 0; + c6TR++; if (c6TR < 0 || c6TR > d6T) c6TR = 0; + c6ZBR++; if (c6ZBR < 0 || c6ZBR > d6ZB) c6ZBR = 0; + c6ZGR++; if (c6ZGR < 0 || c6ZGR > d6ZG) c6ZGR = 0; + + double o6BR = a6BR[c6BR-((c6BR > d6B)?d6B+1:0)]; + double o6HR = a6HR[c6HR-((c6HR > d6H)?d6H+1:0)]; + double o6NR = a6NR[c6NR-((c6NR > d6N)?d6N+1:0)]; + double o6TR = a6TR[c6TR-((c6TR > d6T)?d6T+1:0)]; + double o6ZAR = a6ZAR[c6ZAR-((c6ZAR > d6ZA)?d6ZA+1:0)]; + double o6ZGR = a6ZGR[c6ZGR-((c6ZGR > d6ZG)?d6ZG+1:0)]; + + //-------- five + + a6ZFL[c6ZFL] = ((o6YL*2.0) - (o6ZAL + o6ZBL + o6ZCL + o6ZDL + o6ZEL)); + a6ZGL[c6ZGL] = ((o6ZAL*2.0) - (o6YL + o6ZBL + o6ZCL + o6ZDL + o6ZEL)); + a6ZHL[c6ZHL] = ((o6ZBL*2.0) - (o6YL + o6ZAL + o6ZCL + o6ZDL + o6ZEL)); + a6ZIL[c6ZIL] = ((o6ZCL*2.0) - (o6YL + o6ZAL + o6ZBL + o6ZDL + o6ZEL)); + a6ZJL[c6ZJL] = ((o6ZDL*2.0) - (o6YL + o6ZAL + o6ZBL + o6ZCL + o6ZEL)); + a6ZKL[c6ZKL] = ((o6ZEL*2.0) - (o6YL + o6ZAL + o6ZBL + o6ZCL + o6ZDL)); + + c6ZFL++; if (c6ZFL < 0 || c6ZFL > d6ZF) c6ZFL = 0; + c6ZGL++; if (c6ZGL < 0 || c6ZGL > d6ZG) c6ZGL = 0; + c6ZHL++; if (c6ZHL < 0 || c6ZHL > d6ZH) c6ZHL = 0; + c6ZIL++; if (c6ZIL < 0 || c6ZIL > d6ZI) c6ZIL = 0; + c6ZJL++; if (c6ZJL < 0 || c6ZJL > d6ZJ) c6ZJL = 0; + c6ZKL++; if (c6ZKL < 0 || c6ZKL > d6ZK) c6ZKL = 0; + + double o6ZFL = a6ZFL[c6ZFL-((c6ZFL > d6ZF)?d6ZF+1:0)]; + double o6ZGL = a6ZGL[c6ZGL-((c6ZGL > d6ZG)?d6ZG+1:0)]; + double o6ZHL = a6ZHL[c6ZHL-((c6ZHL > d6ZH)?d6ZH+1:0)]; + double o6ZIL = a6ZIL[c6ZIL-((c6ZIL > d6ZI)?d6ZI+1:0)]; + double o6ZJL = a6ZJL[c6ZJL-((c6ZJL > d6ZJ)?d6ZJ+1:0)]; + double o6ZKL = a6ZKL[c6ZKL-((c6ZKL > d6ZK)?d6ZK+1:0)]; + + a6AR[c6AR] = ((o6BR*2.0) - (o6HR + o6NR + o6TR + o6ZAR + o6ZGR)); + a6GR[c6GR] = ((o6HR*2.0) - (o6BR + o6NR + o6TR + o6ZAR + o6ZGR)); + a6MR[c6MR] = ((o6NR*2.0) - (o6BR + o6HR + o6TR + o6ZAR + o6ZGR)); + a6SR[c6SR] = ((o6TR*2.0) - (o6BR + o6HR + o6NR + o6ZAR + o6ZGR)); + a6YR[c6YR] = ((o6ZAR*2.0) - (o6BR + o6HR + o6NR + o6TR + o6ZGR)); + a6ZFR[c6ZFR] = ((o6ZGR*2.0) - (o6BR + o6HR + o6NR + o6TR + o6ZAR)); + + c6AR++; if (c6AR < 0 || c6AR > d6A) c6AR = 0; + c6GR++; if (c6GR < 0 || c6GR > d6G) c6GR = 0; + c6MR++; if (c6MR < 0 || c6MR > d6M) c6MR = 0; + c6SR++; if (c6SR < 0 || c6SR > d6S) c6SR = 0; + c6YR++; if (c6YR < 0 || c6YR > d6Y) c6YR = 0; + c6ZFR++; if (c6ZFR < 0 || c6ZFR > d6ZF) c6ZFR = 0; + + double o6AR = a6AR[c6AR-((c6AR > d6A)?d6A+1:0)]; + double o6GR = a6GR[c6GR-((c6GR > d6G)?d6G+1:0)]; + double o6MR = a6MR[c6MR-((c6MR > d6M)?d6M+1:0)]; + double o6SR = a6SR[c6SR-((c6SR > d6S)?d6S+1:0)]; + double o6YR = a6YR[c6YR-((c6YR > d6Y)?d6Y+1:0)]; + double o6ZFR = a6ZFR[c6ZFR-((c6ZFR > d6ZF)?d6ZF+1:0)]; + + //-------- six + + f6AL = ((o6AR*2.0) - (o6GR + o6MR + o6SR + o6YR + o6ZFR)); + f6BL = ((o6GR*2.0) - (o6AR + o6MR + o6SR + o6YR + o6ZFR)); + f6CL = ((o6MR*2.0) - (o6AR + o6GR + o6SR + o6YR + o6ZFR)); + f6DL = ((o6SR*2.0) - (o6AR + o6GR + o6MR + o6YR + o6ZFR)); + f6EL = ((o6YR*2.0) - (o6AR + o6GR + o6MR + o6SR + o6ZFR)); + f6FL = ((o6ZFR*2.0) - (o6AR + o6GR + o6MR + o6SR + o6YR)); + + f6FR = ((o6ZFL*2.0) - (o6ZGL + o6ZHL + o6ZIL + o6ZJL + o6ZKL)); + f6LR = ((o6ZGL*2.0) - (o6ZFL + o6ZHL + o6ZIL + o6ZJL + o6ZKL)); + f6RR = ((o6ZHL*2.0) - (o6ZFL + o6ZGL + o6ZIL + o6ZJL + o6ZKL)); + f6XR = ((o6ZIL*2.0) - (o6ZFL + o6ZGL + o6ZHL + o6ZJL + o6ZKL)); + f6ZER = ((o6ZJL*2.0) - (o6ZFL + o6ZGL + o6ZHL + o6ZIL + o6ZKL)); + f6ZKR = ((o6ZKL*2.0) - (o6ZFL + o6ZGL + o6ZHL + o6ZIL + o6ZJL)); + + inputSampleL = (o6ZFL + o6ZGL + o6ZHL + o6ZIL + o6ZJL + o6ZKL)*0.001953125; + inputSampleR = (o6AR + o6GR + o6MR + o6SR + o6YR + o6ZFR)*0.001953125; + + f6AL = (f6AL+avg6L)*0.5; avg6L = f6AL; + f6FR = (f6FR+avg6R)*0.5; avg6R = f6FR; + //manipulating deep reverb tail for realism + + inputSampleL += (earlyReflectionL * earlyLoudness); + inputSampleR += (earlyReflectionR * earlyLoudness); + + bez[bez_CL] = bez[bez_BL]; + bez[bez_BL] = bez[bez_AL]; + bez[bez_AL] = inputSampleL; + bez[bez_SampL] = 0.0; + + bez[bez_CR] = bez[bez_BR]; + bez[bez_BR] = bez[bez_AR]; + bez[bez_AR] = inputSampleR; + bez[bez_SampR] = 0.0; + } + double X = bez[bez_cycle]*bezTrim; + double CBL = (bez[bez_CL]*(1.0-X))+(bez[bez_BL]*X); + double CBR = (bez[bez_CR]*(1.0-X))+(bez[bez_BR]*X); + double BAL = (bez[bez_BL]*(1.0-X))+(bez[bez_AL]*X); + double BAR = (bez[bez_BR]*(1.0-X))+(bez[bez_AR]*X); + double CBAL = (bez[bez_BL]+(CBL*(1.0-X))+(BAL*X))*-0.0625; + double CBAR = (bez[bez_BR]+(CBR*(1.0-X))+(BAR*X))*-0.0625; + inputSampleL = CBAL+bez[bez_AvgOutSampL]; bez[bez_AvgOutSampL] = CBAL; + inputSampleR = CBAR+bez[bez_AvgOutSampR]; bez[bez_AvgOutSampR] = CBAR; + + inputSampleL = (inputSampleL * wet)+(drySampleL * (1.0-wet)); + inputSampleR = (inputSampleR * wet)+(drySampleR * (1.0-wet)); + + //begin 32 bit stereo floating point dither + int expon; frexpf((float)inputSampleL, &expon); + fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5; + inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62)); + frexpf((float)inputSampleR, &expon); + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5; + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62)); + //end 32 bit stereo floating point dither + + *out1 = inputSampleL; + *out2 = inputSampleR; + + in1++; + in2++; + out1++; + out2++; + } +} + +void kWoodRoom::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(); + + double fdb6ck = (0.0009765625+0.0009765625+0.001953125)*0.3333333; + double reg6n = (1.0-pow(1.0-A,1.618033988749894))*fdb6ck; + //start this but pad it in the loop by volume of output? + + double derez = B*2.0; + bool stepped = true; // Revised Bezier Undersampling + if (derez > 1.0) { // has full rez at center, stepped + stepped = false; // to left, continuous to right + derez = 1.0-(derez-1.0); + } //if it's set up like that it's the revised algorithm + derez = fmin(fmax(derez/overallscale,0.0005),1.0); + int bezFraction = (int)(1.0/derez); + double bezTrim = (double)bezFraction/(bezFraction+1.0); + if (stepped) { //this hard-locks derez to exact subdivisions of 1.0 + derez = 1.0 / bezFraction; + bezTrim = 1.0-(derez*bezTrim); + } else { //this makes it match the 1.0 case using stepped + derez /= (2.0/pow(overallscale,0.5-((overallscale-1.0)*0.0375))); + bezTrim = 1.0-pow(derez*0.5,1.0/(derez*0.5)); + } //the revision more accurately connects the bezier curves + + double derezFreq = C*2.0; + bool steppedFreq = true; // Revised Bezier Undersampling + if (derezFreq > 1.0) { // has full rez at center, stepped + steppedFreq = false; // to left, continuous to right + derezFreq = 1.0-(derezFreq-1.0); + } //if it's set up like that it's the revised algorithm + derezFreq = fmin(fmax(derezFreq,0.0005),1.0); //note: no overallscale, already inside undersampling + int bezFreqFraction = (int)(1.0/derezFreq); + double bezFreqTrim = (double)bezFreqFraction/(bezFreqFraction+1.0); + if (steppedFreq) { //this hard-locks derez to exact subdivisions of 1.0 + derezFreq = 1.0 / bezFreqFraction; + bezFreqTrim = 1.0-(derezFreq*bezFreqTrim); + } else { //this makes it match the 1.0 case using stepped + bezFreqTrim = 1.0-pow(derezFreq*0.5,1.0/(derezFreq*0.5)); + } //the revision more accurately connects the bezier curves + + double earlyLoudness = D*2.0; + int start = (int)(E * 27.0); + int ld3G = early[start]; + int ld3H = early[start+1]; + int ld3D = early[start+2]; + int ld3A = early[start+3]; + int ld3E = early[start+4]; + int ld3I = early[start+5]; + int ld3F = early[start+6]; + int ld3B = early[start+7]; + int ld3C = early[start+8]; + double wet = F; + + while (--sampleFrames >= 0) + { + double inputSampleL = *in1; + double inputSampleR = *in2; + if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17; + if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17; + double drySampleL = inputSampleL; + double drySampleR = inputSampleR; + + bez[bez_cycle] += derez; + bez[bez_SampL] += ((inputSampleL+bez[bez_InL]) * derez); + bez[bez_SampR] += ((inputSampleR+bez[bez_InR]) * derez); + bez[bez_InL] = inputSampleL; bez[bez_InR] = inputSampleR; + if (bez[bez_cycle] > 1.0) { //hit the end point and we do a reverb sample + if (stepped) bez[bez_cycle] = 0.0; + else bez[bez_cycle] -= 1.0; + + inputSampleL = (bez[bez_SampL]+bez[bez_AvgInSampL])*0.5; + bez[bez_AvgInSampL] = bez[bez_SampL]; + inputSampleR = (bez[bez_SampR]+bez[bez_AvgInSampR])*0.5; + bez[bez_AvgInSampR] = bez[bez_SampR]; + + a3AL[c3AL] = inputSampleL;// + (f3AL * reg3n); + a3BL[c3BL] = inputSampleL;// + (f3BL * reg3n); + a3CL[c3CL] = inputSampleL;// + (f3CL * reg3n); + + a3CR[c3CR] = inputSampleR;// + (f3CR * reg3n); + a3FR[c3FR] = inputSampleR;// + (f3FR * reg3n); + a3IR[c3IR] = inputSampleR;// + (f3IR * reg3n); + + c3AL++; if (c3AL < 0 || c3AL > ld3A) c3AL = 0; + c3BL++; if (c3BL < 0 || c3BL > ld3B) c3BL = 0; + c3CL++; if (c3CL < 0 || c3CL > ld3C) c3CL = 0; + c3CR++; if (c3CR < 0 || c3CR > ld3C) c3CR = 0; + c3FR++; if (c3FR < 0 || c3FR > ld3F) c3FR = 0; + c3IR++; if (c3IR < 0 || c3IR > ld3I) c3IR = 0; + + double o3AL = a3AL[c3AL-((c3AL > ld3A)?c3AL+1:0)]; + double o3BL = a3BL[c3BL-((c3BL > ld3B)?c3BL+1:0)]; + double o3CL = a3CL[c3CL-((c3CL > ld3C)?c3CL+1:0)]; + double o3CR = a3CR[c3CR-((c3CR > ld3C)?c3CR+1:0)]; + double o3FR = a3FR[c3FR-((c3FR > ld3F)?c3FR+1:0)]; + double o3IR = a3IR[c3IR-((c3IR > ld3I)?c3IR+1:0)]; + + a3DL[c3DL] = (((o3BL + o3CL) * -2.0) + o3AL); + a3EL[c3EL] = (((o3AL + o3CL) * -2.0) + o3BL); + a3FL[c3FL] = (((o3AL + o3BL) * -2.0) + o3CL); + a3BR[c3BR] = (((o3FR + o3IR) * -2.0) + o3CR); + a3ER[c3ER] = (((o3CR + o3IR) * -2.0) + o3FR); + a3HR[c3HR] = (((o3CR + o3FR) * -2.0) + o3IR); + + c3DL++; if (c3DL < 0 || c3DL > ld3D) c3DL = 0; + c3EL++; if (c3EL < 0 || c3EL > ld3E) c3EL = 0; + c3FL++; if (c3FL < 0 || c3FL > ld3F) c3FL = 0; + c3BR++; if (c3BR < 0 || c3BR > ld3B) c3BR = 0; + c3ER++; if (c3ER < 0 || c3ER > ld3E) c3ER = 0; + c3HR++; if (c3HR < 0 || c3HR > ld3H) c3HR = 0; + + double o3DL = a3DL[c3DL-((c3DL > ld3D)?c3DL+1:0)]; + double o3EL = a3EL[c3EL-((c3EL > ld3E)?c3EL+1:0)]; + double o3FL = a3FL[c3FL-((c3FL > ld3F)?c3FL+1:0)]; + double o3BR = a3BR[c3BR-((c3BR > ld3B)?c3BR+1:0)]; + double o3ER = a3ER[c3ER-((c3ER > ld3E)?c3ER+1:0)]; + double o3HR = a3HR[c3HR-((c3HR > ld3H)?c3HR+1:0)]; + + a3GL[c3GL] = (((o3EL + o3FL) * -2.0) + o3DL); + a3HL[c3HL] = (((o3DL + o3FL) * -2.0) + o3EL); + a3IL[c3IL] = (((o3DL + o3EL) * -2.0) + o3FL); + a3AR[c3AR] = (((o3ER + o3HR) * -2.0) + o3BR); + a3DR[c3DR] = (((o3BR + o3HR) * -2.0) + o3ER); + a3GR[c3GR] = (((o3BR + o3ER) * -2.0) + o3HR); + + c3GL++; if (c3GL < 0 || c3GL > ld3G) c3GL = 0; + c3HL++; if (c3HL < 0 || c3HL > ld3H) c3HL = 0; + c3IL++; if (c3IL < 0 || c3IL > ld3I) c3IL = 0; + c3AR++; if (c3AR < 0 || c3AR > ld3A) c3AR = 0; + c3DR++; if (c3DR < 0 || c3DR > ld3D) c3DR = 0; + c3GR++; if (c3GR < 0 || c3GR > ld3G) c3GR = 0; + + double o3GL = a3GL[c3GL-((c3GL > ld3G)?c3GL+1:0)]; + double o3HL = a3HL[c3HL-((c3HL > ld3H)?c3HL+1:0)]; + double o3IL = a3IL[c3IL-((c3IL > ld3I)?c3IL+1:0)]; + double o3AR = a3AR[c3AR-((c3AR > ld3A)?c3AR+1:0)]; + double o3DR = a3DR[c3DR-((c3DR > ld3D)?c3DR+1:0)]; + double o3GR = a3GR[c3GR-((c3GR > ld3G)?c3GR+1:0)]; + + double inputSampleL = (o3GL + o3HL + o3IL)*0.03125; + double inputSampleR = (o3AR + o3DR + o3GR)*0.03125; + + bezF[bez_cycle] += derezFreq; + bezF[bez_SampL] += ((inputSampleL+bezF[bez_InL]) * derezFreq); + bezF[bez_SampR] += ((inputSampleL+bezF[bez_InR]) * derezFreq); + bezF[bez_InL] = inputSampleL; bezF[bez_InR] = inputSampleR; + if (bezF[bez_cycle] > 1.0) { //hit the end point and we do a filter sample + if (steppedFreq) bezF[bez_cycle] = 0.0; + else bezF[bez_cycle] -= 1.0; + bezF[bez_CL] = bezF[bez_BL]; + bezF[bez_BL] = bezF[bez_AL]; + bezF[bez_AL] = (bezF[bez_SampL]+bezF[bez_AvgInSampL])*0.5; + bezF[bez_AvgInSampL] = bezF[bez_SampL]; bezF[bez_SampL] = 0.0; + bezF[bez_CR] = bezF[bez_BR]; + bezF[bez_BR] = bezF[bez_AR]; + bezF[bez_AR] = (bezF[bez_SampR]+bezF[bez_AvgInSampR])*0.5; + bezF[bez_AvgInSampR] = bezF[bez_SampR]; bezF[bez_SampR] = 0.0; + } + double X = bezF[bez_cycle]*bezFreqTrim; + double CBLfreq = (bezF[bez_CL]*(1.0-X))+(bezF[bez_BL]*X); + double BALfreq = (bezF[bez_BL]*(1.0-X))+(bezF[bez_AL]*X); + double CBALfreq = (bezF[bez_BL]+(CBLfreq*(1.0-X))+(BALfreq*X))*0.125; + double CBRfreq = (bezF[bez_CR]*(1.0-X))+(bezF[bez_BR]*X); + double BARfreq = (bezF[bez_BR]*(1.0-X))+(bezF[bez_AR]*X); + double CBARfreq = (bezF[bez_BR]+(CBRfreq*(1.0-X))+(BARfreq*X))*0.125; + inputSampleL = CBALfreq+bezF[bez_AvgOutSampL]; + bezF[bez_AvgOutSampL] = CBALfreq; + inputSampleR = CBARfreq+bezF[bez_AvgOutSampR]; + bezF[bez_AvgOutSampR] = CBARfreq; + + double earlyReflectionL = inputSampleL; + double earlyReflectionR = inputSampleR; //kWoodRoom has filtered early reflections + + a6AL[c6AL] = inputSampleL + (f6BL * reg6n); + a6BL[c6BL] = inputSampleL + (f6CL * reg6n); + a6CL[c6CL] = inputSampleL + (f6DL * reg6n); + a6DL[c6DL] = inputSampleL + (f6EL * reg6n); + a6EL[c6EL] = inputSampleL + (f6FL * reg6n); + a6FL[c6FL] = inputSampleL + (f6AL * reg6n); + + c6AL++; if (c6AL < 0 || c6AL > d6A) c6AL = 0; + c6BL++; if (c6BL < 0 || c6BL > d6B) c6BL = 0; + c6CL++; if (c6CL < 0 || c6CL > d6C) c6CL = 0; + c6DL++; if (c6DL < 0 || c6DL > d6D) c6DL = 0; + c6EL++; if (c6EL < 0 || c6EL > d6E) c6EL = 0; + c6FL++; if (c6FL < 0 || c6FL > d6F) c6FL = 0; + + double o6AL = a6AL[c6AL-((c6AL > d6A)?d6A+1:0)]; + double o6BL = a6BL[c6BL-((c6BL > d6B)?d6B+1:0)]; + double o6CL = a6CL[c6CL-((c6CL > d6C)?d6C+1:0)]; + double o6DL = a6DL[c6DL-((c6DL > d6D)?d6D+1:0)]; + double o6EL = a6EL[c6EL-((c6EL > d6E)?d6E+1:0)]; + double o6FL = a6FL[c6FL-((c6FL > d6F)?d6F+1:0)]; + + a6FR[c6FR] = inputSampleR + (f6LR * reg6n); + a6LR[c6LR] = inputSampleR + (f6RR * reg6n); + a6RR[c6RR] = inputSampleR + (f6XR * reg6n); + a6XR[c6XR] = inputSampleR + (f6ZER * reg6n); + a6ZER[c6ZER] = inputSampleR + (f6ZKR * reg6n); + a6ZKR[c6ZKR] = inputSampleR + (f6FR * reg6n); + + c6FR++; if (c6FR < 0 || c6FR > d6F) c6FR = 0; + c6LR++; if (c6LR < 0 || c6LR > d6L) c6LR = 0; + c6RR++; if (c6RR < 0 || c6RR > d6R) c6RR = 0; + c6XR++; if (c6XR < 0 || c6XR > d6X) c6XR = 0; + c6ZER++; if (c6ZER < 0 || c6ZER > d6ZE) c6ZER = 0; + c6ZKR++; if (c6ZKR < 0 || c6ZKR > d6ZK) c6ZKR = 0; + + double o6FR = a6FR[c6FR-((c6FR > d6F)?d6F+1:0)]; + double o6LR = a6LR[c6LR-((c6LR > d6L)?d6L+1:0)]; + double o6RR = a6RR[c6RR-((c6RR > d6R)?d6R+1:0)]; + double o6XR = a6XR[c6XR-((c6XR > d6X)?d6X+1:0)]; + double o6ZER = a6ZER[c6ZER-((c6ZER > d6ZE)?d6ZE+1:0)]; + double o6ZKR = a6ZKR[c6ZKR-((c6ZKR > d6ZK)?d6ZK+1:0)]; + + //-------- one + + a6GL[c6GL] = ((o6AL*2.0) - (o6BL + o6CL + o6DL + o6EL + o6FL)); + a6HL[c6HL] = ((o6BL*2.0) - (o6AL + o6CL + o6DL + o6EL + o6FL)); + a6IL[c6IL] = ((o6CL*2.0) - (o6AL + o6BL + o6DL + o6EL + o6FL)); + a6JL[c6JL] = ((o6DL*2.0) - (o6AL + o6BL + o6CL + o6EL + o6FL)); + a6KL[c6KL] = ((o6EL*2.0) - (o6AL + o6BL + o6CL + o6DL + o6FL)); + a6LL[c6LL] = ((o6FL*2.0) - (o6AL + o6BL + o6CL + o6DL + o6EL)); + + c6GL++; if (c6GL < 0 || c6GL > d6G) c6GL = 0; + c6HL++; if (c6HL < 0 || c6HL > d6H) c6HL = 0; + c6IL++; if (c6IL < 0 || c6IL > d6I) c6IL = 0; + c6JL++; if (c6JL < 0 || c6JL > d6J) c6JL = 0; + c6KL++; if (c6KL < 0 || c6KL > d6K) c6KL = 0; + c6LL++; if (c6LL < 0 || c6LL > d6L) c6LL = 0; + + double o6GL = a6GL[c6GL-((c6GL > d6G)?d6G+1:0)]; + double o6HL = a6HL[c6HL-((c6HL > d6H)?d6H+1:0)]; + double o6IL = a6IL[c6IL-((c6IL > d6I)?d6I+1:0)]; + double o6JL = a6JL[c6JL-((c6JL > d6J)?d6J+1:0)]; + double o6KL = a6KL[c6KL-((c6KL > d6K)?d6K+1:0)]; + double o6LL = a6LL[c6LL-((c6LL > d6L)?d6L+1:0)]; + + a6ER[c6ER] = ((o6FR*2.0) - (o6LR + o6RR + o6XR + o6ZER + o6ZKR)); + a6KR[c6KR] = ((o6LR*2.0) - (o6FR + o6RR + o6XR + o6ZER + o6ZKR)); + a6QR[c6QR] = ((o6RR*2.0) - (o6FR + o6LR + o6XR + o6ZER + o6ZKR)); + a6WR[c6WR] = ((o6XR*2.0) - (o6FR + o6LR + o6RR + o6ZER + o6ZKR)); + a6ZDR[c6ZDR] = ((o6ZER*2.0) - (o6FR + o6LR + o6RR + o6XR + o6ZKR)); + a6ZJR[c6ZJR] = ((o6ZKR*2.0) - (o6FR + o6LR + o6RR + o6XR + o6ZER)); + + c6ER++; if (c6ER < 0 || c6ER > d6E) c6ER = 0; + c6KR++; if (c6KR < 0 || c6KR > d6K) c6KR = 0; + c6QR++; if (c6QR < 0 || c6QR > d6Q) c6QR = 0; + c6WR++; if (c6WR < 0 || c6WR > d6W) c6WR = 0; + c6ZDR++; if (c6ZDR < 0 || c6ZDR > d6ZD) c6ZDR = 0; + c6ZJR++; if (c6ZJR < 0 || c6ZJR > d6ZJ) c6ZJR = 0; + + double o6ER = a6ER[c6ER-((c6ER > d6E)?d6E+1:0)]; + double o6KR = a6KR[c6KR-((c6KR > d6K)?d6K+1:0)]; + double o6QR = a6QR[c6QR-((c6QR > d6Q)?d6Q+1:0)]; + double o6WR = a6WR[c6WR-((c6WR > d6W)?d6W+1:0)]; + double o6ZDR = a6ZDR[c6ZDR-((c6ZDR > d6ZD)?d6ZD+1:0)]; + double o6ZJR = a6ZJR[c6ZJR-((c6ZJR > d6ZJ)?d6ZJ+1:0)]; + + //-------- two + + a6ML[c6ML] = ((o6GL*2.0) - (o6HL + o6IL + o6JL + o6KL + o6LL)); + a6NL[c6NL] = ((o6HL*2.0) - (o6GL + o6IL + o6JL + o6KL + o6LL)); + a6OL[c6OL] = ((o6IL*2.0) - (o6GL + o6HL + o6JL + o6KL + o6LL)); + a6PL[c6PL] = ((o6JL*2.0) - (o6GL + o6HL + o6IL + o6KL + o6LL)); + a6QL[c6QL] = ((o6KL*2.0) - (o6GL + o6HL + o6IL + o6JL + o6LL)); + a6RL[c6RL] = ((o6LL*2.0) - (o6GL + o6HL + o6IL + o6JL + o6KL)); + + c6ML++; if (c6ML < 0 || c6ML > d6M) c6ML = 0; + c6NL++; if (c6NL < 0 || c6NL > d6N) c6NL = 0; + c6OL++; if (c6OL < 0 || c6OL > d6O) c6OL = 0; + c6PL++; if (c6PL < 0 || c6PL > d6P) c6PL = 0; + c6QL++; if (c6QL < 0 || c6QL > d6Q) c6QL = 0; + c6RL++; if (c6RL < 0 || c6RL > d6R) c6RL = 0; + + double o6ML = a6ML[c6ML-((c6ML > d6M)?d6M+1:0)]; + double o6NL = a6NL[c6NL-((c6NL > d6N)?d6N+1:0)]; + double o6OL = a6OL[c6OL-((c6OL > d6O)?d6O+1:0)]; + double o6PL = a6PL[c6PL-((c6PL > d6P)?d6P+1:0)]; + double o6QL = a6QL[c6QL-((c6QL > d6Q)?d6Q+1:0)]; + double o6RL = a6RL[c6RL-((c6RL > d6R)?d6R+1:0)]; + + a6DR[c6DR] = ((o6ER*2.0) - (o6KR + o6QR + o6WR + o6ZDR + o6ZJR)); + a6JR[c6JR] = ((o6KR*2.0) - (o6ER + o6QR + o6WR + o6ZDR + o6ZJR)); + a6PR[c6PR] = ((o6QR*2.0) - (o6ER + o6KR + o6WR + o6ZDR + o6ZJR)); + a6VR[c6VR] = ((o6WR*2.0) - (o6ER + o6KR + o6QR + o6ZDR + o6ZJR)); + a6ZCR[c6ZCR] = ((o6ZDR*2.0) - (o6ER + o6KR + o6QR + o6WR + o6ZJR)); + a6ZIR[c6ZIR] = ((o6ZJR*2.0) - (o6ER + o6KR + o6QR + o6WR + o6ZDR)); + + c6DR++; if (c6DR < 0 || c6DR > d6D) c6DR = 0; + c6JR++; if (c6JR < 0 || c6JR > d6J) c6JR = 0; + c6PR++; if (c6PR < 0 || c6PR > d6P) c6PR = 0; + c6VR++; if (c6VR < 0 || c6VR > d6V) c6VR = 0; + c6ZCR++; if (c6ZCR < 0 || c6ZCR > d6ZC) c6ZCR = 0; + c6ZIR++; if (c6ZIR < 0 || c6ZIR > d6ZI) c6ZIR = 0; + + double o6DR = a6DR[c6DR-((c6DR > d6D)?d6D+1:0)]; + double o6JR = a6JR[c6JR-((c6JR > d6J)?d6J+1:0)]; + double o6PR = a6PR[c6PR-((c6PR > d6P)?d6P+1:0)]; + double o6VR = a6VR[c6VR-((c6VR > d6V)?d6V+1:0)]; + double o6ZCR = a6ZCR[c6ZCR-((c6ZCR > d6ZC)?d6ZC+1:0)]; + double o6ZIR = a6ZIR[c6ZIR-((c6ZIR > d6ZI)?d6ZI+1:0)]; + + //-------- three + + a6SL[c6SL] = ((o6ML*2.0) - (o6NL + o6OL + o6PL + o6QL + o6RL)); + a6TL[c6TL] = ((o6NL*2.0) - (o6ML + o6OL + o6PL + o6QL + o6RL)); + a6UL[c6UL] = ((o6OL*2.0) - (o6ML + o6NL + o6PL + o6QL + o6RL)); + a6VL[c6VL] = ((o6PL*2.0) - (o6ML + o6NL + o6OL + o6QL + o6RL)); + a6WL[c6WL] = ((o6QL*2.0) - (o6ML + o6NL + o6OL + o6PL + o6RL)); + a6XL[c6XL] = ((o6RL*2.0) - (o6ML + o6NL + o6OL + o6PL + o6QL)); + + c6SL++; if (c6SL < 0 || c6SL > d6S) c6SL = 0; + c6TL++; if (c6TL < 0 || c6TL > d6T) c6TL = 0; + c6UL++; if (c6UL < 0 || c6UL > d6U) c6UL = 0; + c6VL++; if (c6VL < 0 || c6VL > d6V) c6VL = 0; + c6WL++; if (c6WL < 0 || c6WL > d6W) c6WL = 0; + c6XL++; if (c6XL < 0 || c6XL > d6X) c6XL = 0; + + double o6SL = a6SL[c6SL-((c6SL > d6S)?d6S+1:0)]; + double o6TL = a6TL[c6TL-((c6TL > d6T)?d6T+1:0)]; + double o6UL = a6UL[c6UL-((c6UL > d6U)?d6U+1:0)]; + double o6VL = a6VL[c6VL-((c6VL > d6V)?d6V+1:0)]; + double o6WL = a6WL[c6WL-((c6WL > d6W)?d6W+1:0)]; + double o6XL = a6XL[c6XL-((c6XL > d6X)?d6X+1:0)]; + + a6CR[c6CR] = ((o6DR*2.0) - (o6JR + o6PR + o6VR + o6ZCR + o6ZIR)); + a6IR[c6IR] = ((o6JR*2.0) - (o6DR + o6PR + o6VR + o6ZCR + o6ZIR)); + a6OR[c6OR] = ((o6PR*2.0) - (o6DR + o6JR + o6VR + o6ZCR + o6ZIR)); + a6UR[c6UR] = ((o6VR*2.0) - (o6DR + o6JR + o6PR + o6ZCR + o6ZIR)); + a6ZBR[c6ZBR] = ((o6ZCR*2.0) - (o6DR + o6JR + o6PR + o6VR + o6ZIR)); + a6ZHR[c6ZHR] = ((o6ZIR*2.0) - (o6DR + o6JR + o6PR + o6VR + o6ZCR)); + + c6CR++; if (c6CR < 0 || c6CR > d6C) c6CR = 0; + c6IR++; if (c6IR < 0 || c6IR > d6I) c6IR = 0; + c6OR++; if (c6OR < 0 || c6OR > d6O) c6OR = 0; + c6UR++; if (c6UR < 0 || c6UR > d6U) c6UR = 0; + c6ZBR++; if (c6ZBR < 0 || c6ZBR > d6ZB) c6ZBR = 0; + c6ZHR++; if (c6ZHR < 0 || c6ZHR > d6ZH) c6ZHR = 0; + + double o6CR = a6CR[c6CR-((c6CR > d6C)?d6C+1:0)]; + double o6IR = a6IR[c6IR-((c6IR > d6I)?d6I+1:0)]; + double o6OR = a6OR[c6OR-((c6OR > d6O)?d6O+1:0)]; + double o6UR = a6UR[c6UR-((c6UR > d6U)?d6U+1:0)]; + double o6ZBR = a6ZBR[c6ZBR-((c6ZBR > d6ZB)?d6ZB+1:0)]; + double o6ZHR = a6ZHR[c6ZHR-((c6ZHR > d6ZH)?d6ZH+1:0)]; + + //-------- four + + a6YL[c6YL] = ((o6SL*2.0) - (o6TL + o6UL + o6VL + o6WL + o6XL)); + a6ZAL[c6ZAL] = ((o6TL*2.0) - (o6SL + o6UL + o6VL + o6WL + o6XL)); + a6ZBL[c6ZBL] = ((o6UL*2.0) - (o6SL + o6TL + o6VL + o6WL + o6XL)); + a6ZCL[c6ZCL] = ((o6VL*2.0) - (o6SL + o6TL + o6UL + o6WL + o6XL)); + a6ZDL[c6ZDL] = ((o6WL*2.0) - (o6SL + o6TL + o6UL + o6VL + o6XL)); + a6ZEL[c6ZEL] = ((o6XL*2.0) - (o6SL + o6TL + o6UL + o6VL + o6WL)); + + c6YL++; if (c6YL < 0 || c6YL > d6Y) c6YL = 0; + c6ZAL++; if (c6ZAL < 0 || c6ZAL > d6ZA) c6ZAL = 0; + c6ZBL++; if (c6ZBL < 0 || c6ZBL > d6ZB) c6ZBL = 0; + c6ZCL++; if (c6ZCL < 0 || c6ZCL > d6ZC) c6ZCL = 0; + c6ZDL++; if (c6ZDL < 0 || c6ZDL > d6ZD) c6ZDL = 0; + c6ZEL++; if (c6ZEL < 0 || c6ZEL > d6ZE) c6ZEL = 0; + + double o6YL = a6YL[c6YL-((c6YL > d6Y)?d6Y+1:0)]; + double o6ZAL = a6ZAL[c6ZAL-((c6ZAL > d6ZA)?d6ZA+1:0)]; + double o6ZBL = a6ZBL[c6ZBL-((c6ZBL > d6ZB)?d6ZB+1:0)]; + double o6ZCL = a6ZCL[c6ZCL-((c6ZCL > d6ZC)?d6ZC+1:0)]; + double o6ZDL = a6ZDL[c6ZDL-((c6ZDL > d6ZD)?d6ZD+1:0)]; + double o6ZEL = a6ZEL[c6ZEL-((c6ZEL > d6ZE)?d6ZE+1:0)]; + + a6BR[c6BR] = ((o6CR*2.0) - (o6IR + o6OR + o6UR + o6ZBR + o6ZHR)); + a6HR[c6HR] = ((o6IR*2.0) - (o6CR + o6OR + o6UR + o6ZBR + o6ZHR)); + a6NR[c6NR] = ((o6OR*2.0) - (o6CR + o6IR + o6UR + o6ZBR + o6ZHR)); + a6TR[c6TR] = ((o6UR*2.0) - (o6CR + o6IR + o6OR + o6ZBR + o6ZHR)); + a6ZAR[c6ZAR] = ((o6ZBR*2.0) - (o6CR + o6IR + o6OR + o6UR + o6ZHR)); + a6ZGR[c6ZGR] = ((o6ZHR*2.0) - (o6CR + o6IR + o6OR + o6UR + o6ZBR)); + + c6BR++; if (c6BR < 0 || c6BR > d6B) c6BR = 0; + c6HR++; if (c6HR < 0 || c6HR > d6H) c6HR = 0; + c6NR++; if (c6NR < 0 || c6NR > d6N) c6NR = 0; + c6TR++; if (c6TR < 0 || c6TR > d6T) c6TR = 0; + c6ZBR++; if (c6ZBR < 0 || c6ZBR > d6ZB) c6ZBR = 0; + c6ZGR++; if (c6ZGR < 0 || c6ZGR > d6ZG) c6ZGR = 0; + + double o6BR = a6BR[c6BR-((c6BR > d6B)?d6B+1:0)]; + double o6HR = a6HR[c6HR-((c6HR > d6H)?d6H+1:0)]; + double o6NR = a6NR[c6NR-((c6NR > d6N)?d6N+1:0)]; + double o6TR = a6TR[c6TR-((c6TR > d6T)?d6T+1:0)]; + double o6ZAR = a6ZAR[c6ZAR-((c6ZAR > d6ZA)?d6ZA+1:0)]; + double o6ZGR = a6ZGR[c6ZGR-((c6ZGR > d6ZG)?d6ZG+1:0)]; + + //-------- five + + a6ZFL[c6ZFL] = ((o6YL*2.0) - (o6ZAL + o6ZBL + o6ZCL + o6ZDL + o6ZEL)); + a6ZGL[c6ZGL] = ((o6ZAL*2.0) - (o6YL + o6ZBL + o6ZCL + o6ZDL + o6ZEL)); + a6ZHL[c6ZHL] = ((o6ZBL*2.0) - (o6YL + o6ZAL + o6ZCL + o6ZDL + o6ZEL)); + a6ZIL[c6ZIL] = ((o6ZCL*2.0) - (o6YL + o6ZAL + o6ZBL + o6ZDL + o6ZEL)); + a6ZJL[c6ZJL] = ((o6ZDL*2.0) - (o6YL + o6ZAL + o6ZBL + o6ZCL + o6ZEL)); + a6ZKL[c6ZKL] = ((o6ZEL*2.0) - (o6YL + o6ZAL + o6ZBL + o6ZCL + o6ZDL)); + + c6ZFL++; if (c6ZFL < 0 || c6ZFL > d6ZF) c6ZFL = 0; + c6ZGL++; if (c6ZGL < 0 || c6ZGL > d6ZG) c6ZGL = 0; + c6ZHL++; if (c6ZHL < 0 || c6ZHL > d6ZH) c6ZHL = 0; + c6ZIL++; if (c6ZIL < 0 || c6ZIL > d6ZI) c6ZIL = 0; + c6ZJL++; if (c6ZJL < 0 || c6ZJL > d6ZJ) c6ZJL = 0; + c6ZKL++; if (c6ZKL < 0 || c6ZKL > d6ZK) c6ZKL = 0; + + double o6ZFL = a6ZFL[c6ZFL-((c6ZFL > d6ZF)?d6ZF+1:0)]; + double o6ZGL = a6ZGL[c6ZGL-((c6ZGL > d6ZG)?d6ZG+1:0)]; + double o6ZHL = a6ZHL[c6ZHL-((c6ZHL > d6ZH)?d6ZH+1:0)]; + double o6ZIL = a6ZIL[c6ZIL-((c6ZIL > d6ZI)?d6ZI+1:0)]; + double o6ZJL = a6ZJL[c6ZJL-((c6ZJL > d6ZJ)?d6ZJ+1:0)]; + double o6ZKL = a6ZKL[c6ZKL-((c6ZKL > d6ZK)?d6ZK+1:0)]; + + a6AR[c6AR] = ((o6BR*2.0) - (o6HR + o6NR + o6TR + o6ZAR + o6ZGR)); + a6GR[c6GR] = ((o6HR*2.0) - (o6BR + o6NR + o6TR + o6ZAR + o6ZGR)); + a6MR[c6MR] = ((o6NR*2.0) - (o6BR + o6HR + o6TR + o6ZAR + o6ZGR)); + a6SR[c6SR] = ((o6TR*2.0) - (o6BR + o6HR + o6NR + o6ZAR + o6ZGR)); + a6YR[c6YR] = ((o6ZAR*2.0) - (o6BR + o6HR + o6NR + o6TR + o6ZGR)); + a6ZFR[c6ZFR] = ((o6ZGR*2.0) - (o6BR + o6HR + o6NR + o6TR + o6ZAR)); + + c6AR++; if (c6AR < 0 || c6AR > d6A) c6AR = 0; + c6GR++; if (c6GR < 0 || c6GR > d6G) c6GR = 0; + c6MR++; if (c6MR < 0 || c6MR > d6M) c6MR = 0; + c6SR++; if (c6SR < 0 || c6SR > d6S) c6SR = 0; + c6YR++; if (c6YR < 0 || c6YR > d6Y) c6YR = 0; + c6ZFR++; if (c6ZFR < 0 || c6ZFR > d6ZF) c6ZFR = 0; + + double o6AR = a6AR[c6AR-((c6AR > d6A)?d6A+1:0)]; + double o6GR = a6GR[c6GR-((c6GR > d6G)?d6G+1:0)]; + double o6MR = a6MR[c6MR-((c6MR > d6M)?d6M+1:0)]; + double o6SR = a6SR[c6SR-((c6SR > d6S)?d6S+1:0)]; + double o6YR = a6YR[c6YR-((c6YR > d6Y)?d6Y+1:0)]; + double o6ZFR = a6ZFR[c6ZFR-((c6ZFR > d6ZF)?d6ZF+1:0)]; + + //-------- six + + f6AL = ((o6AR*2.0) - (o6GR + o6MR + o6SR + o6YR + o6ZFR)); + f6BL = ((o6GR*2.0) - (o6AR + o6MR + o6SR + o6YR + o6ZFR)); + f6CL = ((o6MR*2.0) - (o6AR + o6GR + o6SR + o6YR + o6ZFR)); + f6DL = ((o6SR*2.0) - (o6AR + o6GR + o6MR + o6YR + o6ZFR)); + f6EL = ((o6YR*2.0) - (o6AR + o6GR + o6MR + o6SR + o6ZFR)); + f6FL = ((o6ZFR*2.0) - (o6AR + o6GR + o6MR + o6SR + o6YR)); + + f6FR = ((o6ZFL*2.0) - (o6ZGL + o6ZHL + o6ZIL + o6ZJL + o6ZKL)); + f6LR = ((o6ZGL*2.0) - (o6ZFL + o6ZHL + o6ZIL + o6ZJL + o6ZKL)); + f6RR = ((o6ZHL*2.0) - (o6ZFL + o6ZGL + o6ZIL + o6ZJL + o6ZKL)); + f6XR = ((o6ZIL*2.0) - (o6ZFL + o6ZGL + o6ZHL + o6ZJL + o6ZKL)); + f6ZER = ((o6ZJL*2.0) - (o6ZFL + o6ZGL + o6ZHL + o6ZIL + o6ZKL)); + f6ZKR = ((o6ZKL*2.0) - (o6ZFL + o6ZGL + o6ZHL + o6ZIL + o6ZJL)); + + inputSampleL = (o6ZFL + o6ZGL + o6ZHL + o6ZIL + o6ZJL + o6ZKL)*0.001953125; + inputSampleR = (o6AR + o6GR + o6MR + o6SR + o6YR + o6ZFR)*0.001953125; + + f6AL = (f6AL+avg6L)*0.5; avg6L = f6AL; + f6FR = (f6FR+avg6R)*0.5; avg6R = f6FR; + //manipulating deep reverb tail for realism + + inputSampleL += (earlyReflectionL * earlyLoudness); + inputSampleR += (earlyReflectionR * earlyLoudness); + + bez[bez_CL] = bez[bez_BL]; + bez[bez_BL] = bez[bez_AL]; + bez[bez_AL] = inputSampleL; + bez[bez_SampL] = 0.0; + + bez[bez_CR] = bez[bez_BR]; + bez[bez_BR] = bez[bez_AR]; + bez[bez_AR] = inputSampleR; + bez[bez_SampR] = 0.0; + } + double X = bez[bez_cycle]*bezTrim; + double CBL = (bez[bez_CL]*(1.0-X))+(bez[bez_BL]*X); + double CBR = (bez[bez_CR]*(1.0-X))+(bez[bez_BR]*X); + double BAL = (bez[bez_BL]*(1.0-X))+(bez[bez_AL]*X); + double BAR = (bez[bez_BR]*(1.0-X))+(bez[bez_AR]*X); + double CBAL = (bez[bez_BL]+(CBL*(1.0-X))+(BAL*X))*-0.0625; + double CBAR = (bez[bez_BR]+(CBR*(1.0-X))+(BAR*X))*-0.0625; + inputSampleL = CBAL+bez[bez_AvgOutSampL]; bez[bez_AvgOutSampL] = CBAL; + inputSampleR = CBAR+bez[bez_AvgOutSampR]; bez[bez_AvgOutSampR] = CBAR; + + inputSampleL = (inputSampleL * wet)+(drySampleL * (1.0-wet)); + inputSampleR = (inputSampleR * wet)+(drySampleR * (1.0-wet)); + + //begin 64 bit stereo floating point dither + //int expon; frexp((double)inputSampleL, &expon); + fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5; + //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); + //frexp((double)inputSampleR, &expon); + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5; + //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); + //end 64 bit stereo floating point dither + + *out1 = inputSampleL; + *out2 = inputSampleR; + + in1++; + in2++; + out1++; + out2++; + } +} diff --git a/plugins/MacVST/ConsoleX2Buss/ConsoleX2Buss.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/ConsoleX2Buss/ConsoleX2Buss.xcodeproj/christopherjohnson.pbxuser index c1a83952b..e2108537e 100755 --- a/plugins/MacVST/ConsoleX2Buss/ConsoleX2Buss.xcodeproj/christopherjohnson.pbxuser +++ b/plugins/MacVST/ConsoleX2Buss/ConsoleX2Buss.xcodeproj/christopherjohnson.pbxuser @@ -49,12 +49,12 @@ PBXFileDataSource_Warnings_ColumnID, ); }; - PBXPerProjectTemplateStateSaveDate = 781899443; - PBXWorkspaceStateSaveDate = 781899443; + PBXPerProjectTemplateStateSaveDate = 783620239; + PBXWorkspaceStateSaveDate = 783620239; }; perUserProjectItems = { - 8B962B282E9AD3D6000EAC04 /* PBXTextBookmark */ = 8B962B282E9AD3D6000EAC04 /* PBXTextBookmark */; - 8B962BA42E9AD77C000EAC04 /* PBXTextBookmark */ = 8B962BA42E9AD77C000EAC04 /* PBXTextBookmark */; + 8B5C9E812EB51CB9008B9860 /* PBXTextBookmark */ = 8B5C9E812EB51CB9008B9860 /* PBXTextBookmark */; + 8B692C242EB4F63600F51381 /* PBXTextBookmark */ = 8B692C242EB4F63600F51381 /* PBXTextBookmark */; }; sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */; userBuildSettings = { @@ -62,18 +62,18 @@ }; 2407DEB6089929BA00EB68BF /* ConsoleX2Buss.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {848, 4770}}"; - sepNavSelRange = "{10766, 0}"; - sepNavVisRange = "{6075, 2252}"; - sepNavWindowFrame = "{{12, 47}, {895, 831}}"; + sepNavIntBoundsRect = "{{0, 0}, {975, 4266}}"; + sepNavSelRange = "{7594, 739}"; + sepNavVisRange = "{6198, 2275}"; + sepNavWindowFrame = "{{9, 47}, {895, 831}}"; }; }; 245463B80991757100464AD3 /* ConsoleX2Buss.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1110, 3258}}"; - sepNavSelRange = "{4290, 0}"; - sepNavVisRange = "{2669, 585}"; - sepNavWindowFrame = "{{20, 47}, {895, 831}}"; + sepNavIntBoundsRect = "{{0, 0}, {1101, 3006}}"; + sepNavSelRange = "{3923, 0}"; + sepNavVisRange = "{3323, 661}"; + sepNavWindowFrame = "{{7, 47}, {895, 831}}"; }; }; 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = { @@ -86,10 +86,10 @@ }; 24D8286F09A914000093AEF8 /* ConsoleX2BussProc.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {606, 18756}}"; - sepNavSelRange = "{46057, 0}"; - sepNavVisRange = "{45893, 159}"; - sepNavWindowFrame = "{{540, 47}, {895, 831}}"; + sepNavIntBoundsRect = "{{0, 0}, {1029, 16560}}"; + sepNavSelRange = "{41563, 0}"; + sepNavVisRange = "{21407, 165}"; + sepNavWindowFrame = "{{7, 47}, {895, 831}}"; }; }; 8B02375E1D42B1C400E1E8C8 /* Source Control */ = { @@ -106,25 +106,25 @@ isa = PBXCodeSenseManager; indexTemplatePath = ""; }; - 8B962B282E9AD3D6000EAC04 /* PBXTextBookmark */ = { + 8B5C9E812EB51CB9008B9860 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 24D8286F09A914000093AEF8 /* ConsoleX2BussProc.cpp */; - name = "ConsoleX2BussProc.cpp: 1019"; + name = "ConsoleX2BussProc.cpp: 906"; rLen = 0; - rLoc = 46057; + rLoc = 41563; rType = 0; - vrLen = 219; - vrLoc = 45861; + vrLen = 165; + vrLoc = 21407; }; - 8B962BA42E9AD77C000EAC04 /* PBXTextBookmark */ = { + 8B692C242EB4F63600F51381 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 24D8286F09A914000093AEF8 /* ConsoleX2BussProc.cpp */; - name = "ConsoleX2BussProc.cpp: 1019"; + name = "ConsoleX2BussProc.cpp: 907"; rLen = 0; - rLoc = 46057; + rLoc = 41563; rType = 0; - vrLen = 159; - vrLoc = 45893; + vrLen = 165; + vrLoc = 21427; }; 8D01CCC60486CAD60068D4B7 /* ConsoleX2Buss */ = { activeExec = 0; diff --git a/plugins/MacVST/ConsoleX2Buss/ConsoleX2Buss.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/ConsoleX2Buss/ConsoleX2Buss.xcodeproj/christopherjohnson.perspectivev3 index 93f6257e6..fa8e5dd73 100755 --- a/plugins/MacVST/ConsoleX2Buss/ConsoleX2Buss.xcodeproj/christopherjohnson.perspectivev3 +++ b/plugins/MacVST/ConsoleX2Buss/ConsoleX2Buss.xcodeproj/christopherjohnson.perspectivev3 @@ -323,7 +323,7 @@ 185 RubberWindowFrame - 605 304 810 487 0 0 1440 878 + 23 300 810 487 0 0 1440 878 Module PBXSmartGroupTreeModule @@ -351,10 +351,10 @@ _historyCapacity 0 bookmark - 8B962BA42E9AD77C000EAC04 + 8B5C9E812EB51CB9008B9860 history - 8B962B282E9AD3D6000EAC04 + 8B692C242EB4F63600F51381 SplitCount @@ -368,18 +368,18 @@ GeometryConfiguration Frame - {{0, 0}, {603, 117}} + {{0, 0}, {603, 69}} RubberWindowFrame - 605 304 810 487 0 0 1440 878 + 23 300 810 487 0 0 1440 878 Module PBXNavigatorGroup Proportion - 117pt + 69pt Proportion - 324pt + 372pt Tabs @@ -393,9 +393,9 @@ GeometryConfiguration Frame - {{10, 27}, {603, 297}} + {{10, 27}, {603, 345}} RubberWindowFrame - 605 304 810 487 0 0 1440 878 + 23 300 810 487 0 0 1440 878 Module XCDetailModule @@ -449,7 +449,7 @@ GeometryConfiguration Frame - {{10, 27}, {603, 282}} + {{10, 27}, {603, 328}} Module PBXBuildResultsModule @@ -477,11 +477,11 @@ TableOfContents - 8B962BA52E9AD77C000EAC04 + 8B5C9E522EB51894008B9860 1CA23ED40692098700951B8B - 8B962BA62E9AD77C000EAC04 + 8B5C9E532EB51894008B9860 8B0237581D42B1C400E1E8C8 - 8B962BA72E9AD77C000EAC04 + 8B5C9E542EB51894008B9860 1CA23EDF0692099D00951B8B 1CA23EE00692099D00951B8B 1CA23EE10692099D00951B8B @@ -634,7 +634,7 @@ StatusbarIsVisible TimeStamp - 781899644.67740095 + 783621305.02929103 ToolbarConfigUserDefaultsMinorVersion 2 ToolbarDisplayMode @@ -654,7 +654,7 @@ /Users/christopherjohnson/Desktop/airwindows/plugins/MacVST/ConsoleX2Buss/ConsoleX2Buss.xcodeproj WindowString - 605 304 810 487 0 0 1440 878 + 23 300 810 487 0 0 1440 878 WindowToolsV3 diff --git a/plugins/MacVST/ConsoleX2Buss/source/ConsoleX2Buss.cpp b/plugins/MacVST/ConsoleX2Buss/source/ConsoleX2Buss.cpp index 2d91e6d4e..d27cd2cec 100755 --- a/plugins/MacVST/ConsoleX2Buss/source/ConsoleX2Buss.cpp +++ b/plugins/MacVST/ConsoleX2Buss/source/ConsoleX2Buss.cpp @@ -23,12 +23,6 @@ ConsoleX2Buss::ConsoleX2Buss(audioMasterCallback audioMaster) : I = 1.0; J = 0.5; K = 0.5; - L = 0.0; - M = 1.0; - N = 0.0; - O = 0.0; - P = 0.5; - Q = 0.5; for (int x = 0; x < biq_total; x++) { highA[x] = 0.0; @@ -51,38 +45,19 @@ ConsoleX2Buss::ConsoleX2Buss(audioMasterCallback audioMaster) : 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; + bezCompS[bez_cycle] = 1.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 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 - 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 - - lFreqA = 1.0; lFreqB = 1.0; - hFreqA = 0.0; hFreqB = 0.0; panA = 0.5; panB = 0.5; inTrimA = 0.5; inTrimB = 0.5; @@ -130,12 +105,6 @@ VstInt32 ConsoleX2Buss::getChunk (void** data, bool isPreset) chunkData[8] = I; chunkData[9] = J; chunkData[10] = K; - chunkData[11] = L; - chunkData[12] = M; - chunkData[13] = N; - chunkData[14] = O; - chunkData[15] = P; - chunkData[16] = Q; /* 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. */ @@ -158,12 +127,6 @@ VstInt32 ConsoleX2Buss::setChunk (void* data, VstInt32 byteSize, bool isPreset) I = pinParameter(chunkData[8]); J = pinParameter(chunkData[9]); K = pinParameter(chunkData[10]); - L = pinParameter(chunkData[11]); - M = pinParameter(chunkData[12]); - N = pinParameter(chunkData[13]); - O = pinParameter(chunkData[14]); - P = pinParameter(chunkData[15]); - Q = pinParameter(chunkData[16]); /* We're ignoring byteSize as we found it to be a filthy liar */ /* calculate any other fields you need here - you could copy in @@ -184,12 +147,6 @@ void ConsoleX2Buss::setParameter(VstInt32 index, float value) { case kParamI: I = value; break; case kParamJ: J = value; break; case kParamK: K = value; break; - case kParamL: L = value; break; - case kParamM: M = value; break; - case kParamN: N = value; break; - case kParamO: O = value; break; - case kParamP: P = value; break; - case kParamQ: Q = value; break; default: throw; // unknown parameter, shouldn't happen! } } @@ -207,12 +164,6 @@ float ConsoleX2Buss::getParameter(VstInt32 index) { case kParamI: return I; break; case kParamJ: return J; break; case kParamK: return K; break; - case kParamL: return L; break; - case kParamM: return M; break; - case kParamN: return N; break; - case kParamO: return O; break; - case kParamP: return P; break; - case kParamQ: return Q; break; default: break; // unknown parameter, shouldn't happen! } return 0.0; //we only need to update the relevant name, this is simple to manage } @@ -228,14 +179,8 @@ void ConsoleX2Buss::getParameterName(VstInt32 index, char *text) { case kParamG: vst_strncpy (text, "LMidF", kVstMaxParamStrLen); break; case kParamH: vst_strncpy (text, "BassF", kVstMaxParamStrLen); break; case kParamI: vst_strncpy (text, "Thresh", kVstMaxParamStrLen); break; - case kParamJ: vst_strncpy (text, "Attack", kVstMaxParamStrLen); break; - case kParamK: vst_strncpy (text, "Release", kVstMaxParamStrLen); break; - case kParamL: vst_strncpy (text, "Gate", kVstMaxParamStrLen); break; - case kParamM: vst_strncpy (text, "Lowpass", kVstMaxParamStrLen); break; - case kParamN: vst_strncpy (text, "Hipass", kVstMaxParamStrLen); break; - case kParamO: vst_strncpy (text, "More", kVstMaxParamStrLen); break; - case kParamP: vst_strncpy (text, "Pan", kVstMaxParamStrLen); break; - case kParamQ: vst_strncpy (text, "Fader", kVstMaxParamStrLen); break; + case kParamJ: vst_strncpy (text, "Pan", kVstMaxParamStrLen); break; + case kParamK: vst_strncpy (text, "Fader", kVstMaxParamStrLen); break; default: break; // unknown parameter, shouldn't happen! } //this is our labels for displaying in the VST host } @@ -253,12 +198,6 @@ void ConsoleX2Buss::getParameterDisplay(VstInt32 index, char *text) { case kParamI: float2string (I, text, kVstMaxParamStrLen); break; case kParamJ: float2string (J, text, kVstMaxParamStrLen); break; case kParamK: float2string (K, text, kVstMaxParamStrLen); break; - case kParamL: float2string (L, text, kVstMaxParamStrLen); break; - case kParamM: float2string (M, text, kVstMaxParamStrLen); break; - case kParamN: float2string (N, text, kVstMaxParamStrLen); break; - case kParamO: float2string (O, text, kVstMaxParamStrLen); break; - case kParamP: float2string (P, text, kVstMaxParamStrLen); break; - case kParamQ: float2string (Q, text, kVstMaxParamStrLen); break; default: break; // unknown parameter, shouldn't happen! } //this displays the values and handles 'popups' where it's discrete choices } @@ -276,12 +215,6 @@ void ConsoleX2Buss::getParameterLabel(VstInt32 index, char *text) { case kParamI: vst_strncpy (text, "dyn", kVstMaxParamStrLen); break; case kParamJ: vst_strncpy (text, "", kVstMaxParamStrLen); break; case kParamK: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamL: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamM: vst_strncpy (text, "fltr", kVstMaxParamStrLen); break; - case kParamN: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamO: vst_strncpy (text, "+", kVstMaxParamStrLen); break; - case kParamP: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamQ: vst_strncpy (text, "", kVstMaxParamStrLen); break; default: break; // unknown parameter, shouldn't happen! } } diff --git a/plugins/MacVST/ConsoleX2Buss/source/ConsoleX2Buss.h b/plugins/MacVST/ConsoleX2Buss/source/ConsoleX2Buss.h index f63ec0053..f13fa39c5 100755 --- a/plugins/MacVST/ConsoleX2Buss/source/ConsoleX2Buss.h +++ b/plugins/MacVST/ConsoleX2Buss/source/ConsoleX2Buss.h @@ -27,15 +27,8 @@ enum { kParamI =8, kParamJ =9, kParamK =10, - kParamL =11, - kParamM =12, - kParamN =13, - kParamO =14, - kParamP =15, - kParamQ =16, - kNumParameters = 17 + kNumParameters = 11 }; // -const int dscBuf = 256; const int kNumPrograms = 0; const int kNumInputs = 2; @@ -80,12 +73,6 @@ private: float I; float J; float K; - float L; - float M; - float N; - float O; - float P; - float Q; enum { biq_freq, @@ -139,33 +126,25 @@ private: 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; diff --git a/plugins/MacVST/ConsoleX2Buss/source/ConsoleX2BussProc.cpp b/plugins/MacVST/ConsoleX2Buss/source/ConsoleX2BussProc.cpp index 158b71aa1..ccc0d1399 100755 --- a/plugins/MacVST/ConsoleX2Buss/source/ConsoleX2BussProc.cpp +++ b/plugins/MacVST/ConsoleX2Buss/source/ConsoleX2BussProc.cpp @@ -18,6 +18,8 @@ void ConsoleX2Buss::processReplacing(float **inputs, float **outputs, VstInt32 s 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 = (A-0.5)*2.0; trebleGain = 1.0+(trebleGain*fabs(trebleGain)*fabs(trebleGain)); @@ -44,8 +46,8 @@ void ConsoleX2Buss::processReplacing(float **inputs, float **outputs, VstInt32 s highC[biq_freq] = highB[biq_freq] = highA[biq_freq] = fmax(fmin(highA[biq_freq],0.4999),0.00025); double highFreq = pow(highF,3)*20000.0; double omega = 2.0*M_PI*(highFreq/getSampleRate()); - double K = 2.0-cos(omega); - double highCoef = -sqrt((K*K)-1.0)+K; + double biqK = 2.0-cos(omega); + double highCoef = -sqrt((biqK*biqK)-1.0)+biqK; highA[biq_reso] = 2.24697960 * highQ; highB[biq_reso] = 0.80193774 * highQ; highC[biq_reso] = 0.55495813 * highQ; @@ -54,8 +56,8 @@ void ConsoleX2Buss::processReplacing(float **inputs, float **outputs, VstInt32 s midC[biq_freq] = midB[biq_freq] = midA[biq_freq] = fmax(fmin(midA[biq_freq],0.4999),0.00025); double midFreq = pow(midF,3)*20000.0; omega = 2.0*M_PI*(midFreq/getSampleRate()); - K = 2.0-cos(omega); - double midCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double midCoef = -sqrt((biqK*biqK)-1.0)+biqK; midA[biq_reso] = 2.24697960 * midQ; midB[biq_reso] = 0.80193774 * midQ; midC[biq_reso] = 0.55495813 * midQ; @@ -64,97 +66,88 @@ void ConsoleX2Buss::processReplacing(float **inputs, float **outputs, VstInt32 s lowC[biq_freq] = lowB[biq_freq] = lowA[biq_freq] = fmax(fmin(lowA[biq_freq],0.4999),0.00025); double lowFreq = pow(bassF,3)*20000.0; omega = 2.0*M_PI*(lowFreq/getSampleRate()); - K = 2.0-cos(omega); - double lowCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double lowCoef = -sqrt((biqK*biqK)-1.0)+biqK; lowA[biq_reso] = 2.24697960 * lowQ; lowB[biq_reso] = 0.80193774 * lowQ; lowC[biq_reso] = 0.55495813 * lowQ; - K = tan(M_PI * highA[biq_freq]); - double norm = 1.0 / (1.0 + K / highA[biq_reso] + K * K); - highA[biq_a0] = K * K * norm; + biqK = tan(M_PI * highA[biq_freq]); + double norm = 1.0 / (1.0 + biqK / highA[biq_reso] + biqK * biqK); + highA[biq_a0] = biqK * biqK * norm; highA[biq_a1] = 2.0 * highA[biq_a0]; highA[biq_a2] = highA[biq_a0]; - highA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highA[biq_b2] = (1.0 - K / highA[biq_reso] + K * K) * norm; - K = tan(M_PI * highB[biq_freq]); - norm = 1.0 / (1.0 + K / highB[biq_reso] + K * K); - highB[biq_a0] = K * K * norm; + highA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highA[biq_b2] = (1.0 - biqK / highA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highB[biq_freq]); + norm = 1.0 / (1.0 + biqK / highB[biq_reso] + biqK * biqK); + highB[biq_a0] = biqK * biqK * norm; highB[biq_a1] = 2.0 * highB[biq_a0]; highB[biq_a2] = highB[biq_a0]; - highB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highB[biq_b2] = (1.0 - K / highB[biq_reso] + K * K) * norm; - K = tan(M_PI * highC[biq_freq]); - norm = 1.0 / (1.0 + K / highC[biq_reso] + K * K); - highC[biq_a0] = K * K * norm; + highB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highB[biq_b2] = (1.0 - biqK / highB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highC[biq_freq]); + norm = 1.0 / (1.0 + biqK / highC[biq_reso] + biqK * biqK); + highC[biq_a0] = biqK * biqK * norm; highC[biq_a1] = 2.0 * highC[biq_a0]; highC[biq_a2] = highC[biq_a0]; - highC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highC[biq_b2] = (1.0 - K / highC[biq_reso] + K * K) * norm; + highC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highC[biq_b2] = (1.0 - biqK / highC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * midA[biq_freq]); - norm = 1.0 / (1.0 + K / midA[biq_reso] + K * K); - midA[biq_a0] = K * K * norm; + biqK = tan(M_PI * midA[biq_freq]); + norm = 1.0 / (1.0 + biqK / midA[biq_reso] + biqK * biqK); + midA[biq_a0] = biqK * biqK * norm; midA[biq_a1] = 2.0 * midA[biq_a0]; midA[biq_a2] = midA[biq_a0]; - midA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midA[biq_b2] = (1.0 - K / midA[biq_reso] + K * K) * norm; - K = tan(M_PI * midB[biq_freq]); - norm = 1.0 / (1.0 + K / midB[biq_reso] + K * K); - midB[biq_a0] = K * K * norm; + midA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midA[biq_b2] = (1.0 - biqK / midA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midB[biq_freq]); + norm = 1.0 / (1.0 + biqK / midB[biq_reso] + biqK * biqK); + midB[biq_a0] = biqK * biqK * norm; midB[biq_a1] = 2.0 * midB[biq_a0]; midB[biq_a2] = midB[biq_a0]; - midB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midB[biq_b2] = (1.0 - K / midB[biq_reso] + K * K) * norm; - K = tan(M_PI * midC[biq_freq]); - norm = 1.0 / (1.0 + K / midC[biq_reso] + K * K); - midC[biq_a0] = K * K * norm; + midB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midB[biq_b2] = (1.0 - biqK / midB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midC[biq_freq]); + norm = 1.0 / (1.0 + biqK / midC[biq_reso] + biqK * biqK); + midC[biq_a0] = biqK * biqK * norm; midC[biq_a1] = 2.0 * midC[biq_a0]; midC[biq_a2] = midC[biq_a0]; - midC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midC[biq_b2] = (1.0 - K / midC[biq_reso] + K * K) * norm; + midC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midC[biq_b2] = (1.0 - biqK / midC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * lowA[biq_freq]); - norm = 1.0 / (1.0 + K / lowA[biq_reso] + K * K); - lowA[biq_a0] = K * K * norm; + biqK = tan(M_PI * lowA[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowA[biq_reso] + biqK * biqK); + lowA[biq_a0] = biqK * biqK * norm; lowA[biq_a1] = 2.0 * lowA[biq_a0]; lowA[biq_a2] = lowA[biq_a0]; - lowA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowA[biq_b2] = (1.0 - K / lowA[biq_reso] + K * K) * norm; - K = tan(M_PI * lowB[biq_freq]); - norm = 1.0 / (1.0 + K / lowB[biq_reso] + K * K); - lowB[biq_a0] = K * K * norm; + lowA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowA[biq_b2] = (1.0 - biqK / lowA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowB[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowB[biq_reso] + biqK * biqK); + lowB[biq_a0] = biqK * biqK * norm; lowB[biq_a1] = 2.0 * lowB[biq_a0]; lowB[biq_a2] = lowB[biq_a0]; - lowB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowB[biq_b2] = (1.0 - K / lowB[biq_reso] + K * K) * norm; - K = tan(M_PI * lowC[biq_freq]); - norm = 1.0 / (1.0 + K / lowC[biq_reso] + K * K); - lowC[biq_a0] = K * K * norm; + lowB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowB[biq_b2] = (1.0 - biqK / lowB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowC[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowC[biq_reso] + biqK * biqK); + lowC[biq_a0] = biqK * biqK * norm; lowC[biq_a1] = 2.0 * lowC[biq_a0]; lowC[biq_a2] = lowC[biq_a0]; - lowC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowC[biq_b2] = (1.0 - K / lowC[biq_reso] + K * K) * norm; + lowC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowC[biq_b2] = (1.0 - biqK / lowC[biq_reso] + biqK * biqK) * norm; //SmoothEQ2 double bezCThresh = pow(1.0-I, 6.0) * 8.0; - double bezRez = pow(1.0-J, 8.0) / overallscale; - double sloRez = pow(1.0-K,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(L,4.0),sqrt(bezCThresh+1.0)); + double bezRez = pow(1.0-I, 12.360679774997898) / overallscale; + double sloRez = pow(1.0-I,10.0) / overallscale; + sloRez = fmin(fmax(sloRez,0.00001),1.0); + bezRez = fmin(fmax(bezRez,0.00001),1.0); //Dynamics2 - lFreqA = lFreqB; lFreqB = pow(fmax(M,0.002),overallscale); //the lowpass - hFreqA = hFreqB; hFreqB = pow(N,overallscale+2.0); //the highpass - //Cabs2 - - double moreDiscontinuity = fmax(pow(O*0.42,3.0)*overallscale,0.00001); - double moreTapeHack = (O*1.4152481)+1.2; - //Discontapeity - - panA = panB; panB = P*1.57079633; - inTrimA = inTrimB; inTrimB = Q*2.0; + panA = panB; panB = J*1.57079633; + inTrimA = inTrimB; inTrimB = K*2.0; //Console while (--sampleFrames >= 0) @@ -310,9 +303,6 @@ void ConsoleX2Buss::processReplacing(float **inputs, float **outputs, VstInt32 s //fourth stage of three crossovers is the exponential filters //SmoothEQ2 - if (fmax(fabs(inputSampleL),fabs(inputSampleR)) > gate+(sloRez*bezGate)) bezGate = ((bezGate*overallscale*3.0)+3.0)*(0.25/overallscale); - else bezGate = fmax(0.0, bezGate-(sloRez*sloRez)); - if (bezCThresh > 0.0) { inputSampleL *= ((bezCThresh*0.5)+1.0); inputSampleR *= ((bezCThresh*0.5)+1.0); @@ -325,21 +315,14 @@ void ConsoleX2Buss::processReplacing(float **inputs, float **outputs, VstInt32 s if (bezCompF[bez_cycle] > 1.0) { bezCompF[bez_cycle] -= 1.0; - - if (bezMaxF < gate) bezCompF[bez_SampL] = bezMaxF/gate; //note: SampL is a control voltage, - if (bezCompF[bez_SampL] 1.0) { bezCompS[bez_cycle] -= 1.0; - - if (bezCompS[bez_SampL] 0.0) CBAMax = 1.0/CBAMax; CBAFade = ((CBASR*-CBAMax)+(CBAFR*CBAMax)+1.0)*0.5; if (bezCThresh > 0.0) inputSampleR *= 1.0-(fmin(((CBASR*(1.0-CBAFade))+(CBAFR*CBAFade))*bezCThresh,1.0)); - - if (bezGate < 1.0 && gate > 0.0) {inputSampleL *= bezGate; inputSampleR *= bezGate;} //Dynamics2 const double temp = (double)sampleFrames/inFramesToProcess; - const double hFreq = (hFreqA*temp)+(hFreqB*(1.0-temp)); - if (hFreq > 0.0) { - double lowSampleL = inputSampleL; - double lowSampleR = inputSampleR; - for(int count = 0; count < 21; count++) { - iirHAngleL[count] = (iirHAngleL[count]*(1.0-hFreq))+((lowSampleL-iirHPositionL[count])*hFreq); - lowSampleL = ((iirHPositionL[count]+(iirHAngleL[count]*hFreq))*(1.0-hFreq))+(lowSampleL*hFreq); - iirHPositionL[count] = ((iirHPositionL[count]+(iirHAngleL[count]*hFreq))*(1.0-hFreq))+(lowSampleL*hFreq); - inputSampleL -= (lowSampleL * (1.0/21.0));//left - iirHAngleR[count] = (iirHAngleR[count]*(1.0-hFreq))+((lowSampleR-iirHPositionR[count])*hFreq); - lowSampleR = ((iirHPositionR[count]+(iirHAngleR[count]*hFreq))*(1.0-hFreq))+(lowSampleR*hFreq); - iirHPositionR[count] = ((iirHPositionR[count]+(iirHAngleR[count]*hFreq))*(1.0-hFreq))+(lowSampleR*hFreq); - inputSampleR -= (lowSampleR * (1.0/21.0));//right - } //the highpass - hBypass = false; - } else { - if (!hBypass) { - hBypass = true; - for(int count = 0; count < 22; count++) { - iirHPositionL[count] = 0.0; - iirHAngleL[count] = 0.0; - iirHPositionR[count] = 0.0; - iirHAngleR[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++) { - iirLAngleL[count] = (iirLAngleL[count]*(1.0-lFreq))+((inputSampleL-iirLPositionL[count])*lFreq); - inputSampleL = ((iirLPositionL[count]+(iirLAngleL[count]*lFreq))*(1.0-lFreq))+(inputSampleL*lFreq); - iirLPositionL[count] = ((iirLPositionL[count]+(iirLAngleL[count]*lFreq))*(1.0-lFreq))+(inputSampleL*lFreq);//left - iirLAngleR[count] = (iirLAngleR[count]*(1.0-lFreq))+((inputSampleR-iirLPositionR[count])*lFreq); - inputSampleR = ((iirLPositionR[count]+(iirLAngleR[count]*lFreq))*(1.0-lFreq))+(inputSampleR*lFreq); - iirLPositionR[count] = ((iirLPositionR[count]+(iirLAngleR[count]*lFreq))*(1.0-lFreq))+(inputSampleR*lFreq);//right - } //the lowpass - lBypass = false; - } else { - if (!lBypass) { - lBypass = true; - for(int count = 0; count < 14; count++) { - iirLPositionL[count] = 0.0; - iirLAngleL[count] = 0.0; - iirLPositionR[count] = 0.0; - iirLAngleR[count] = 0.0; - } - } //blank out lowpass if just switched off - } - //Cabs2 + 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; - //begin Discontinuity section - inputSampleL *= moreDiscontinuity; - dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5); - dBaPosL = fmin(dBaPosL,1.0); - int dBdly = floor(dBaPosL*dscBuf); - double dBi = (dBaPosL*dscBuf)-dBdly; - inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi; - dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0; - inputSampleL /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleL = fmax(fmin(inputSampleL*moreTapeHack,2.305929007734908),-2.305929007734908); + 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); @@ -458,21 +425,11 @@ void ConsoleX2Buss::processReplacing(float **inputs, float **outputs, VstInt32 s empower *= addtwo; //eleventh inputSampleL -= (empower / 9979200.0f); //this is a degenerate form of a Taylor Series to approximate sin() - inputSampleL *= 0.9239; + inputSampleL *= 0.92; //end TapeHack section - //begin Discontinuity section - inputSampleR *= moreDiscontinuity; - dBaR[dBaXR] = inputSampleR; dBaPosR *= 0.5; dBaPosR += fabs((inputSampleR*((inputSampleR*0.25)-0.5))*0.5); - dBaPosR = fmin(dBaPosR,1.0); - dBdly = floor(dBaPosR*dscBuf); - dBi = (dBaPosR*dscBuf)-dBdly; - inputSampleR = dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleR += dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*dBi; - dBaXR++; if (dBaXR < 0 || dBaXR >= dscBuf) dBaXR = 0; - inputSampleR /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleR = fmax(fmin(inputSampleR*moreTapeHack,2.305929007734908),-2.305929007734908); + //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); @@ -485,22 +442,8 @@ void ConsoleX2Buss::processReplacing(float **inputs, float **outputs, VstInt32 s empower *= addtwo; //eleventh inputSampleR -= (empower / 9979200.0f); //this is a degenerate form of a Taylor Series to approximate sin() - inputSampleR *= 0.9239; + inputSampleR *= 0.92; //end TapeHack section - //Discontapeity - - 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 //begin 32 bit stereo floating point dither int expon; frexpf((float)inputSampleL, &expon); @@ -532,6 +475,8 @@ void ConsoleX2Buss::processDoubleReplacing(double **inputs, double **outputs, Vs 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 = (A-0.5)*2.0; trebleGain = 1.0+(trebleGain*fabs(trebleGain)*fabs(trebleGain)); @@ -558,8 +503,8 @@ void ConsoleX2Buss::processDoubleReplacing(double **inputs, double **outputs, Vs highC[biq_freq] = highB[biq_freq] = highA[biq_freq] = fmax(fmin(highA[biq_freq],0.4999),0.00025); double highFreq = pow(highF,3)*20000.0; double omega = 2.0*M_PI*(highFreq/getSampleRate()); - double K = 2.0-cos(omega); - double highCoef = -sqrt((K*K)-1.0)+K; + double biqK = 2.0-cos(omega); + double highCoef = -sqrt((biqK*biqK)-1.0)+biqK; highA[biq_reso] = 2.24697960 * highQ; highB[biq_reso] = 0.80193774 * highQ; highC[biq_reso] = 0.55495813 * highQ; @@ -568,8 +513,8 @@ void ConsoleX2Buss::processDoubleReplacing(double **inputs, double **outputs, Vs midC[biq_freq] = midB[biq_freq] = midA[biq_freq] = fmax(fmin(midA[biq_freq],0.4999),0.00025); double midFreq = pow(midF,3)*20000.0; omega = 2.0*M_PI*(midFreq/getSampleRate()); - K = 2.0-cos(omega); - double midCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double midCoef = -sqrt((biqK*biqK)-1.0)+biqK; midA[biq_reso] = 2.24697960 * midQ; midB[biq_reso] = 0.80193774 * midQ; midC[biq_reso] = 0.55495813 * midQ; @@ -578,97 +523,88 @@ void ConsoleX2Buss::processDoubleReplacing(double **inputs, double **outputs, Vs lowC[biq_freq] = lowB[biq_freq] = lowA[biq_freq] = fmax(fmin(lowA[biq_freq],0.4999),0.00025); double lowFreq = pow(bassF,3)*20000.0; omega = 2.0*M_PI*(lowFreq/getSampleRate()); - K = 2.0-cos(omega); - double lowCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double lowCoef = -sqrt((biqK*biqK)-1.0)+biqK; lowA[biq_reso] = 2.24697960 * lowQ; lowB[biq_reso] = 0.80193774 * lowQ; lowC[biq_reso] = 0.55495813 * lowQ; - K = tan(M_PI * highA[biq_freq]); - double norm = 1.0 / (1.0 + K / highA[biq_reso] + K * K); - highA[biq_a0] = K * K * norm; + biqK = tan(M_PI * highA[biq_freq]); + double norm = 1.0 / (1.0 + biqK / highA[biq_reso] + biqK * biqK); + highA[biq_a0] = biqK * biqK * norm; highA[biq_a1] = 2.0 * highA[biq_a0]; highA[biq_a2] = highA[biq_a0]; - highA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highA[biq_b2] = (1.0 - K / highA[biq_reso] + K * K) * norm; - K = tan(M_PI * highB[biq_freq]); - norm = 1.0 / (1.0 + K / highB[biq_reso] + K * K); - highB[biq_a0] = K * K * norm; + highA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highA[biq_b2] = (1.0 - biqK / highA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highB[biq_freq]); + norm = 1.0 / (1.0 + biqK / highB[biq_reso] + biqK * biqK); + highB[biq_a0] = biqK * biqK * norm; highB[biq_a1] = 2.0 * highB[biq_a0]; highB[biq_a2] = highB[biq_a0]; - highB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highB[biq_b2] = (1.0 - K / highB[biq_reso] + K * K) * norm; - K = tan(M_PI * highC[biq_freq]); - norm = 1.0 / (1.0 + K / highC[biq_reso] + K * K); - highC[biq_a0] = K * K * norm; + highB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highB[biq_b2] = (1.0 - biqK / highB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highC[biq_freq]); + norm = 1.0 / (1.0 + biqK / highC[biq_reso] + biqK * biqK); + highC[biq_a0] = biqK * biqK * norm; highC[biq_a1] = 2.0 * highC[biq_a0]; highC[biq_a2] = highC[biq_a0]; - highC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highC[biq_b2] = (1.0 - K / highC[biq_reso] + K * K) * norm; + highC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highC[biq_b2] = (1.0 - biqK / highC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * midA[biq_freq]); - norm = 1.0 / (1.0 + K / midA[biq_reso] + K * K); - midA[biq_a0] = K * K * norm; + biqK = tan(M_PI * midA[biq_freq]); + norm = 1.0 / (1.0 + biqK / midA[biq_reso] + biqK * biqK); + midA[biq_a0] = biqK * biqK * norm; midA[biq_a1] = 2.0 * midA[biq_a0]; midA[biq_a2] = midA[biq_a0]; - midA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midA[biq_b2] = (1.0 - K / midA[biq_reso] + K * K) * norm; - K = tan(M_PI * midB[biq_freq]); - norm = 1.0 / (1.0 + K / midB[biq_reso] + K * K); - midB[biq_a0] = K * K * norm; + midA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midA[biq_b2] = (1.0 - biqK / midA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midB[biq_freq]); + norm = 1.0 / (1.0 + biqK / midB[biq_reso] + biqK * biqK); + midB[biq_a0] = biqK * biqK * norm; midB[biq_a1] = 2.0 * midB[biq_a0]; midB[biq_a2] = midB[biq_a0]; - midB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midB[biq_b2] = (1.0 - K / midB[biq_reso] + K * K) * norm; - K = tan(M_PI * midC[biq_freq]); - norm = 1.0 / (1.0 + K / midC[biq_reso] + K * K); - midC[biq_a0] = K * K * norm; + midB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midB[biq_b2] = (1.0 - biqK / midB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midC[biq_freq]); + norm = 1.0 / (1.0 + biqK / midC[biq_reso] + biqK * biqK); + midC[biq_a0] = biqK * biqK * norm; midC[biq_a1] = 2.0 * midC[biq_a0]; midC[biq_a2] = midC[biq_a0]; - midC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midC[biq_b2] = (1.0 - K / midC[biq_reso] + K * K) * norm; + midC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midC[biq_b2] = (1.0 - biqK / midC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * lowA[biq_freq]); - norm = 1.0 / (1.0 + K / lowA[biq_reso] + K * K); - lowA[biq_a0] = K * K * norm; + biqK = tan(M_PI * lowA[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowA[biq_reso] + biqK * biqK); + lowA[biq_a0] = biqK * biqK * norm; lowA[biq_a1] = 2.0 * lowA[biq_a0]; lowA[biq_a2] = lowA[biq_a0]; - lowA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowA[biq_b2] = (1.0 - K / lowA[biq_reso] + K * K) * norm; - K = tan(M_PI * lowB[biq_freq]); - norm = 1.0 / (1.0 + K / lowB[biq_reso] + K * K); - lowB[biq_a0] = K * K * norm; + lowA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowA[biq_b2] = (1.0 - biqK / lowA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowB[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowB[biq_reso] + biqK * biqK); + lowB[biq_a0] = biqK * biqK * norm; lowB[biq_a1] = 2.0 * lowB[biq_a0]; lowB[biq_a2] = lowB[biq_a0]; - lowB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowB[biq_b2] = (1.0 - K / lowB[biq_reso] + K * K) * norm; - K = tan(M_PI * lowC[biq_freq]); - norm = 1.0 / (1.0 + K / lowC[biq_reso] + K * K); - lowC[biq_a0] = K * K * norm; + lowB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowB[biq_b2] = (1.0 - biqK / lowB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowC[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowC[biq_reso] + biqK * biqK); + lowC[biq_a0] = biqK * biqK * norm; lowC[biq_a1] = 2.0 * lowC[biq_a0]; lowC[biq_a2] = lowC[biq_a0]; - lowC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowC[biq_b2] = (1.0 - K / lowC[biq_reso] + K * K) * norm; + lowC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowC[biq_b2] = (1.0 - biqK / lowC[biq_reso] + biqK * biqK) * norm; //SmoothEQ2 double bezCThresh = pow(1.0-I, 6.0) * 8.0; - double bezRez = pow(1.0-J, 8.0) / overallscale; - double sloRez = pow(1.0-K,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(L,4.0),sqrt(bezCThresh+1.0)); + double bezRez = pow(1.0-I, 12.360679774997898) / overallscale; + double sloRez = pow(1.0-I,10.0) / overallscale; + sloRez = fmin(fmax(sloRez,0.00001),1.0); + bezRez = fmin(fmax(bezRez,0.00001),1.0); //Dynamics2 - lFreqA = lFreqB; lFreqB = pow(fmax(M,0.002),overallscale); //the lowpass - hFreqA = hFreqB; hFreqB = pow(N,overallscale+2.0); //the highpass - //Cabs2 - - double moreDiscontinuity = fmax(pow(O*0.42,3.0)*overallscale,0.00001); - double moreTapeHack = (O*1.4152481)+1.2; - //Discontapeity - - panA = panB; panB = P*1.57079633; - inTrimA = inTrimB; inTrimB = Q*2.0; + panA = panB; panB = J*1.57079633; + inTrimA = inTrimB; inTrimB = K*2.0; //Console while (--sampleFrames >= 0) @@ -824,9 +760,6 @@ void ConsoleX2Buss::processDoubleReplacing(double **inputs, double **outputs, Vs //fourth stage of three crossovers is the exponential filters //SmoothEQ2 - if (fmax(fabs(inputSampleL),fabs(inputSampleR)) > gate+(sloRez*bezGate)) bezGate = ((bezGate*overallscale*3.0)+3.0)*(0.25/overallscale); - else bezGate = fmax(0.0, bezGate-(sloRez*sloRez)); - if (bezCThresh > 0.0) { inputSampleL *= ((bezCThresh*0.5)+1.0); inputSampleR *= ((bezCThresh*0.5)+1.0); @@ -839,21 +772,14 @@ void ConsoleX2Buss::processDoubleReplacing(double **inputs, double **outputs, Vs if (bezCompF[bez_cycle] > 1.0) { bezCompF[bez_cycle] -= 1.0; - - if (bezMaxF < gate) bezCompF[bez_SampL] = bezMaxF/gate; //note: SampL is a control voltage, - if (bezCompF[bez_SampL] 1.0) { bezCompS[bez_cycle] -= 1.0; - - if (bezCompS[bez_SampL] 0.0) CBAMax = 1.0/CBAMax; CBAFade = ((CBASR*-CBAMax)+(CBAFR*CBAMax)+1.0)*0.5; if (bezCThresh > 0.0) inputSampleR *= 1.0-(fmin(((CBASR*(1.0-CBAFade))+(CBAFR*CBAFade))*bezCThresh,1.0)); - - if (bezGate < 1.0 && gate > 0.0) {inputSampleL *= bezGate; inputSampleR *= bezGate;} //Dynamics2 const double temp = (double)sampleFrames/inFramesToProcess; - const double hFreq = (hFreqA*temp)+(hFreqB*(1.0-temp)); - if (hFreq > 0.0) { - double lowSampleL = inputSampleL; - double lowSampleR = inputSampleR; - for(int count = 0; count < 21; count++) { - iirHAngleL[count] = (iirHAngleL[count]*(1.0-hFreq))+((lowSampleL-iirHPositionL[count])*hFreq); - lowSampleL = ((iirHPositionL[count]+(iirHAngleL[count]*hFreq))*(1.0-hFreq))+(lowSampleL*hFreq); - iirHPositionL[count] = ((iirHPositionL[count]+(iirHAngleL[count]*hFreq))*(1.0-hFreq))+(lowSampleL*hFreq); - inputSampleL -= (lowSampleL * (1.0/21.0));//left - iirHAngleR[count] = (iirHAngleR[count]*(1.0-hFreq))+((lowSampleR-iirHPositionR[count])*hFreq); - lowSampleR = ((iirHPositionR[count]+(iirHAngleR[count]*hFreq))*(1.0-hFreq))+(lowSampleR*hFreq); - iirHPositionR[count] = ((iirHPositionR[count]+(iirHAngleR[count]*hFreq))*(1.0-hFreq))+(lowSampleR*hFreq); - inputSampleR -= (lowSampleR * (1.0/21.0));//right - } //the highpass - hBypass = false; - } else { - if (!hBypass) { - hBypass = true; - for(int count = 0; count < 22; count++) { - iirHPositionL[count] = 0.0; - iirHAngleL[count] = 0.0; - iirHPositionR[count] = 0.0; - iirHAngleR[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++) { - iirLAngleL[count] = (iirLAngleL[count]*(1.0-lFreq))+((inputSampleL-iirLPositionL[count])*lFreq); - inputSampleL = ((iirLPositionL[count]+(iirLAngleL[count]*lFreq))*(1.0-lFreq))+(inputSampleL*lFreq); - iirLPositionL[count] = ((iirLPositionL[count]+(iirLAngleL[count]*lFreq))*(1.0-lFreq))+(inputSampleL*lFreq);//left - iirLAngleR[count] = (iirLAngleR[count]*(1.0-lFreq))+((inputSampleR-iirLPositionR[count])*lFreq); - inputSampleR = ((iirLPositionR[count]+(iirLAngleR[count]*lFreq))*(1.0-lFreq))+(inputSampleR*lFreq); - iirLPositionR[count] = ((iirLPositionR[count]+(iirLAngleR[count]*lFreq))*(1.0-lFreq))+(inputSampleR*lFreq);//right - } //the lowpass - lBypass = false; - } else { - if (!lBypass) { - lBypass = true; - for(int count = 0; count < 14; count++) { - iirLPositionL[count] = 0.0; - iirLAngleL[count] = 0.0; - iirLPositionR[count] = 0.0; - iirLAngleR[count] = 0.0; - } - } //blank out lowpass if just switched off - } - //Cabs2 + 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; - //begin Discontinuity section - inputSampleL *= moreDiscontinuity; - dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5); - dBaPosL = fmin(dBaPosL,1.0); - int dBdly = floor(dBaPosL*dscBuf); - double dBi = (dBaPosL*dscBuf)-dBdly; - inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi; - dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0; - inputSampleL /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleL = fmax(fmin(inputSampleL*moreTapeHack,2.305929007734908),-2.305929007734908); + 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); @@ -972,21 +882,11 @@ void ConsoleX2Buss::processDoubleReplacing(double **inputs, double **outputs, Vs empower *= addtwo; //eleventh inputSampleL -= (empower / 9979200.0f); //this is a degenerate form of a Taylor Series to approximate sin() - inputSampleL *= 0.9239; + inputSampleL *= 0.92; //end TapeHack section - //begin Discontinuity section - inputSampleR *= moreDiscontinuity; - dBaR[dBaXR] = inputSampleR; dBaPosR *= 0.5; dBaPosR += fabs((inputSampleR*((inputSampleR*0.25)-0.5))*0.5); - dBaPosR = fmin(dBaPosR,1.0); - dBdly = floor(dBaPosR*dscBuf); - dBi = (dBaPosR*dscBuf)-dBdly; - inputSampleR = dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleR += dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*dBi; - dBaXR++; if (dBaXR < 0 || dBaXR >= dscBuf) dBaXR = 0; - inputSampleR /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleR = fmax(fmin(inputSampleR*moreTapeHack,2.305929007734908),-2.305929007734908); + //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); @@ -999,23 +899,10 @@ void ConsoleX2Buss::processDoubleReplacing(double **inputs, double **outputs, Vs empower *= addtwo; //eleventh inputSampleR -= (empower / 9979200.0f); //this is a degenerate form of a Taylor Series to approximate sin() - inputSampleR *= 0.9239; + inputSampleR *= 0.92; //end TapeHack section //Discontapeity - 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 - //begin 64 bit stereo floating point dither //int expon; frexp((double)inputSampleL, &expon); fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5; diff --git a/plugins/MacVST/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/christopherjohnson.pbxuser index e98bad508..82e525f60 100755 --- a/plugins/MacVST/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/christopherjohnson.pbxuser +++ b/plugins/MacVST/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/christopherjohnson.pbxuser @@ -49,12 +49,13 @@ PBXFileDataSource_Warnings_ColumnID, ); }; - PBXPerProjectTemplateStateSaveDate = 781897461; - PBXWorkspaceStateSaveDate = 781897461; + PBXPerProjectTemplateStateSaveDate = 783605003; + PBXWorkspaceStateSaveDate = 783605003; }; perUserProjectItems = { - 8B962A8C2E9AD02B000EAC04 /* PBXTextBookmark */ = 8B962A8C2E9AD02B000EAC04 /* PBXTextBookmark */; - 8B962A8D2E9AD02B000EAC04 /* PBXTextBookmark */ = 8B962A8D2E9AD02B000EAC04 /* PBXTextBookmark */; + 8B692BEA2EB4E28E00F51381 /* PBXTextBookmark */ = 8B692BEA2EB4E28E00F51381 /* PBXTextBookmark */; + 8BC5BE2E2EB165A900031C01 /* PBXTextBookmark */ = 8BC5BE2E2EB165A900031C01 /* PBXTextBookmark */; + 8BC5BE302EB165A900031C01 /* PBXTextBookmark */ = 8BC5BE302EB165A900031C01 /* PBXTextBookmark */; }; sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */; userBuildSettings = { @@ -62,17 +63,17 @@ }; 2407DEB6089929BA00EB68BF /* ConsoleX2Channel.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {848, 4644}}"; - sepNavSelRange = "{9567, 1255}"; - sepNavVisRange = "{9393, 2046}"; - sepNavWindowFrame = "{{763, 47}, {895, 831}}"; + sepNavIntBoundsRect = "{{0, 0}, {723, 5742}}"; + sepNavSelRange = "{8738, 73}"; + sepNavVisRange = "{8222, 217}"; + sepNavWindowFrame = "{{545, 47}, {895, 831}}"; }; }; 245463B80991757100464AD3 /* ConsoleX2Channel.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1110, 3240}}"; - sepNavSelRange = "{548, 0}"; - sepNavVisRange = "{3723, 648}"; + sepNavIntBoundsRect = "{{0, 0}, {1002, 4176}}"; + sepNavSelRange = "{4572, 0}"; + sepNavVisRange = "{4107, 593}"; sepNavWindowFrame = "{{545, 38}, {895, 831}}"; }; }; @@ -86,10 +87,10 @@ }; 24D8286F09A914000093AEF8 /* ConsoleX2ChannelProc.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1308, 18396}}"; - sepNavSelRange = "{6369, 16591}"; - sepNavVisRange = "{21848, 149}"; - sepNavWindowFrame = "{{545, 47}, {895, 831}}"; + sepNavIntBoundsRect = "{{0, 0}, {858, 20862}}"; + sepNavSelRange = "{51155, 0}"; + sepNavVisRange = "{31760, 1474}"; + sepNavWindowFrame = "{{459, 45}, {895, 831}}"; }; }; 8B02375E1D42B1C400E1E8C8 /* Source Control */ = { @@ -106,25 +107,35 @@ isa = PBXCodeSenseManager; indexTemplatePath = ""; }; - 8B962A8C2E9AD02B000EAC04 /* PBXTextBookmark */ = { + 8B692BEA2EB4E28E00F51381 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 24D8286F09A914000093AEF8 /* ConsoleX2ChannelProc.cpp */; - name = "ConsoleX2ChannelProc.cpp: 166"; - rLen = 16591; - rLoc = 6369; + fRef = 2407DEB6089929BA00EB68BF /* ConsoleX2Channel.cpp */; + name = "ConsoleX2Channel.cpp: 261"; + rLen = 73; + rLoc = 8738; rType = 0; - vrLen = 149; - vrLoc = 21848; + vrLen = 217; + vrLoc = 8222; }; - 8B962A8D2E9AD02B000EAC04 /* PBXTextBookmark */ = { + 8BC5BE2E2EB165A900031C01 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 24D8286F09A914000093AEF8 /* ConsoleX2ChannelProc.cpp */; - name = "ConsoleX2ChannelProc.cpp: 166"; - rLen = 16591; - rLoc = 6369; + name = "ConsoleX2ChannelProc.cpp: 492"; + rLen = 0; + rLoc = 24427; rType = 0; - vrLen = 149; - vrLoc = 21848; + vrLen = 98; + vrLoc = 22602; + }; + 8BC5BE302EB165A900031C01 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2407DEB6089929BA00EB68BF /* ConsoleX2Channel.cpp */; + name = "ConsoleX2Channel.cpp: 251"; + rLen = 73; + rLoc = 8738; + rType = 0; + vrLen = 176; + vrLoc = 8282; }; 8D01CCC60486CAD60068D4B7 /* ConsoleX2Channel */ = { activeExec = 0; diff --git a/plugins/MacVST/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/christopherjohnson.perspectivev3 index 2fb20372b..dbcc634ad 100755 --- a/plugins/MacVST/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/christopherjohnson.perspectivev3 +++ b/plugins/MacVST/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/christopherjohnson.perspectivev3 @@ -323,7 +323,7 @@ 185 RubberWindowFrame - 630 341 810 487 0 0 1440 878 + 767 257 810 487 0 0 1440 878 Module PBXSmartGroupTreeModule @@ -339,7 +339,7 @@ PBXProjectModuleGUID 8B0237581D42B1C400E1E8C8 PBXProjectModuleLabel - ConsoleX2ChannelProc.cpp + ConsoleX2Channel.cpp PBXSplitModuleInNavigatorKey Split0 @@ -347,14 +347,15 @@ PBXProjectModuleGUID 8B0237591D42B1C400E1E8C8 PBXProjectModuleLabel - ConsoleX2ChannelProc.cpp + ConsoleX2Channel.cpp _historyCapacity 0 bookmark - 8B962A8D2E9AD02B000EAC04 + 8B692BEA2EB4E28E00F51381 history - 8B962A8C2E9AD02B000EAC04 + 8BC5BE2E2EB165A900031C01 + 8BC5BE302EB165A900031C01 SplitCount @@ -368,18 +369,18 @@ GeometryConfiguration Frame - {{0, 0}, {603, 132}} + {{0, 0}, {603, 69}} RubberWindowFrame - 630 341 810 487 0 0 1440 878 + 767 257 810 487 0 0 1440 878 Module PBXNavigatorGroup Proportion - 132pt + 69pt Proportion - 309pt + 372pt Tabs @@ -393,9 +394,9 @@ GeometryConfiguration Frame - {{10, 27}, {603, 282}} + {{10, 27}, {603, 345}} RubberWindowFrame - 630 341 810 487 0 0 1440 878 + 767 257 810 487 0 0 1440 878 Module XCDetailModule @@ -477,11 +478,11 @@ TableOfContents - 8B962A8E2E9AD02B000EAC04 + 8B692BEB2EB4E28E00F51381 1CA23ED40692098700951B8B - 8B962A8F2E9AD02B000EAC04 + 8B692BEC2EB4E28E00F51381 8B0237581D42B1C400E1E8C8 - 8B962A902E9AD02B000EAC04 + 8B692BED2EB4E28E00F51381 1CA23EDF0692099D00951B8B 1CA23EE00692099D00951B8B 1CA23EE10692099D00951B8B @@ -634,7 +635,7 @@ StatusbarIsVisible TimeStamp - 781897771.98097897 + 783606414.77670801 ToolbarConfigUserDefaultsMinorVersion 2 ToolbarDisplayMode @@ -651,11 +652,11 @@ 5 WindowOrderList - 8B962A912E9AD02B000EAC04 - /Users/christopherjohnson/Desktop/ConsoleX2Channel/ConsoleX2Channel.xcodeproj + 8B692BEE2EB4E28E00F51381 + /Users/christopherjohnson/Desktop/airwindows/plugins/MacVST/ConsoleX2Channel/ConsoleX2Channel.xcodeproj WindowString - 630 341 810 487 0 0 1440 878 + 767 257 810 487 0 0 1440 878 WindowToolsV3 diff --git a/plugins/MacVST/ConsoleX2Channel/source/ConsoleX2Channel.cpp b/plugins/MacVST/ConsoleX2Channel/source/ConsoleX2Channel.cpp index 3f8c92558..1d253c15a 100755 --- a/plugins/MacVST/ConsoleX2Channel/source/ConsoleX2Channel.cpp +++ b/plugins/MacVST/ConsoleX2Channel/source/ConsoleX2Channel.cpp @@ -12,23 +12,24 @@ AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new C ConsoleX2Channel::ConsoleX2Channel(audioMasterCallback audioMaster) : AudioEffectX(audioMaster, kNumPrograms, kNumParameters) { - A = 0.5; - B = 0.5; + A = 0.25; + B = 0.0; C = 0.5; D = 0.5; E = 0.5; F = 0.5; G = 0.5; H = 0.5; - I = 1.0; + I = 0.5; J = 0.5; - K = 0.5; - L = 0.0; - M = 1.0; + K = 1.0; + L = 0.5; + M = 0.5; N = 0.0; - O = 0.0; - P = 0.5; + O = 1.0; + P = 0.0; Q = 0.5; + R = 0.5; for (int x = 0; x < biq_total; x++) { highA[x] = 0.0; @@ -81,6 +82,16 @@ ConsoleX2Channel::ConsoleX2Channel(audioMasterCallback audioMaster) : 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; @@ -136,6 +147,7 @@ VstInt32 ConsoleX2Channel::getChunk (void** data, bool isPreset) chunkData[14] = O; chunkData[15] = P; chunkData[16] = Q; + chunkData[17] = R; /* 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. */ @@ -164,6 +176,7 @@ VstInt32 ConsoleX2Channel::setChunk (void* data, VstInt32 byteSize, bool isPrese O = pinParameter(chunkData[14]); P = pinParameter(chunkData[15]); Q = pinParameter(chunkData[16]); + R = pinParameter(chunkData[17]); /* We're ignoring byteSize as we found it to be a filthy liar */ /* calculate any other fields you need here - you could copy in @@ -190,6 +203,7 @@ void ConsoleX2Channel::setParameter(VstInt32 index, float value) { case kParamO: O = value; break; case kParamP: P = value; break; case kParamQ: Q = value; break; + case kParamR: R = value; break; default: throw; // unknown parameter, shouldn't happen! } } @@ -213,36 +227,38 @@ float ConsoleX2Channel::getParameter(VstInt32 index) { case kParamO: return O; break; case kParamP: return P; break; case kParamQ: return Q; break; + case kParamR: return R; 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 ConsoleX2Channel::getParameterName(VstInt32 index, char *text) { switch (index) { - case kParamA: vst_strncpy (text, "High", kVstMaxParamStrLen); break; - case kParamB: vst_strncpy (text, "HMid", kVstMaxParamStrLen); break; - case kParamC: vst_strncpy (text, "LMid", kVstMaxParamStrLen); break; - case kParamD: vst_strncpy (text, "Bass", kVstMaxParamStrLen); break; - case kParamE: vst_strncpy (text, "HighF", kVstMaxParamStrLen); break; - case kParamF: vst_strncpy (text, "HMidF", kVstMaxParamStrLen); break; - case kParamG: vst_strncpy (text, "LMidF", kVstMaxParamStrLen); break; - case kParamH: vst_strncpy (text, "BassF", kVstMaxParamStrLen); break; - case kParamI: vst_strncpy (text, "Thresh", kVstMaxParamStrLen); break; - case kParamJ: vst_strncpy (text, "Attack", kVstMaxParamStrLen); break; - case kParamK: vst_strncpy (text, "Release", kVstMaxParamStrLen); break; - case kParamL: vst_strncpy (text, "Gate", kVstMaxParamStrLen); break; - case kParamM: vst_strncpy (text, "Lowpass", kVstMaxParamStrLen); break; - case kParamN: vst_strncpy (text, "Hipass", kVstMaxParamStrLen); break; - case kParamO: vst_strncpy (text, "More", kVstMaxParamStrLen); break; - case kParamP: vst_strncpy (text, "Pan", kVstMaxParamStrLen); break; - case kParamQ: vst_strncpy (text, "Fader", kVstMaxParamStrLen); break; + case kParamA: vst_strncpy (text, "Trim", kVstMaxParamStrLen); break; + case kParamB: vst_strncpy (text, "More", kVstMaxParamStrLen); break; + case kParamC: vst_strncpy (text, "High", kVstMaxParamStrLen); break; + case kParamD: vst_strncpy (text, "HMid", kVstMaxParamStrLen); break; + case kParamE: vst_strncpy (text, "LMid", kVstMaxParamStrLen); break; + case kParamF: vst_strncpy (text, "Bass", kVstMaxParamStrLen); break; + case kParamG: vst_strncpy (text, "HighF", kVstMaxParamStrLen); break; + case kParamH: vst_strncpy (text, "HMidF", kVstMaxParamStrLen); break; + case kParamI: vst_strncpy (text, "LMidF", kVstMaxParamStrLen); break; + case kParamJ: vst_strncpy (text, "BassF", kVstMaxParamStrLen); break; + case kParamK: vst_strncpy (text, "Thresh", kVstMaxParamStrLen); break; + case kParamL: vst_strncpy (text, "Attack", kVstMaxParamStrLen); break; + case kParamM: vst_strncpy (text, "Release", kVstMaxParamStrLen); break; + case kParamN: vst_strncpy (text, "Gate", kVstMaxParamStrLen); break; + case kParamO: vst_strncpy (text, "Lowpass", kVstMaxParamStrLen); break; + case kParamP: vst_strncpy (text, "Hipass", kVstMaxParamStrLen); break; + case kParamQ: vst_strncpy (text, "Pan", kVstMaxParamStrLen); break; + case kParamR: vst_strncpy (text, "Fader", kVstMaxParamStrLen); break; default: break; // unknown parameter, shouldn't happen! } //this is our labels for displaying in the VST host } void ConsoleX2Channel::getParameterDisplay(VstInt32 index, char *text) { switch (index) { - case kParamA: float2string (A, text, kVstMaxParamStrLen); break; + case kParamA: int2string ((int)(A*4.0), text, kVstMaxParamStrLen); break; case kParamB: float2string (B, text, kVstMaxParamStrLen); break; case kParamC: float2string (C, text, kVstMaxParamStrLen); break; case kParamD: float2string (D, text, kVstMaxParamStrLen); break; @@ -259,29 +275,31 @@ void ConsoleX2Channel::getParameterDisplay(VstInt32 index, char *text) { case kParamO: float2string (O, text, kVstMaxParamStrLen); break; case kParamP: float2string (P, text, kVstMaxParamStrLen); break; case kParamQ: float2string (Q, text, kVstMaxParamStrLen); break; + case kParamR: float2string (R, text, kVstMaxParamStrLen); break; default: break; // unknown parameter, shouldn't happen! } //this displays the values and handles 'popups' where it's discrete choices } void ConsoleX2Channel::getParameterLabel(VstInt32 index, char *text) { switch (index) { - case kParamA: vst_strncpy (text, "eq", kVstMaxParamStrLen); break; + case kParamA: vst_strncpy (text, "", kVstMaxParamStrLen); break; case kParamB: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamC: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamC: vst_strncpy (text, "eq", kVstMaxParamStrLen); break; case kParamD: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamE: vst_strncpy (text, "freq", kVstMaxParamStrLen); break; + case kParamE: vst_strncpy (text, "", kVstMaxParamStrLen); break; case kParamF: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamG: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamG: vst_strncpy (text, "freq", kVstMaxParamStrLen); break; case kParamH: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamI: vst_strncpy (text, "dyn", kVstMaxParamStrLen); break; + case kParamI: vst_strncpy (text, "", kVstMaxParamStrLen); break; case kParamJ: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamK: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamK: vst_strncpy (text, "dyn", kVstMaxParamStrLen); break; case kParamL: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamM: vst_strncpy (text, "fltr", kVstMaxParamStrLen); break; + case kParamM: vst_strncpy (text, "", kVstMaxParamStrLen); break; case kParamN: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamO: vst_strncpy (text, "+", kVstMaxParamStrLen); break; + case kParamO: vst_strncpy (text, "fltr", kVstMaxParamStrLen); break; case kParamP: vst_strncpy (text, "", kVstMaxParamStrLen); break; case kParamQ: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamR: vst_strncpy (text, "", kVstMaxParamStrLen); break; default: break; // unknown parameter, shouldn't happen! } } diff --git a/plugins/MacVST/ConsoleX2Channel/source/ConsoleX2Channel.h b/plugins/MacVST/ConsoleX2Channel/source/ConsoleX2Channel.h index aac04efbb..7862eafbc 100755 --- a/plugins/MacVST/ConsoleX2Channel/source/ConsoleX2Channel.h +++ b/plugins/MacVST/ConsoleX2Channel/source/ConsoleX2Channel.h @@ -33,7 +33,8 @@ enum { kParamO =14, kParamP =15, kParamQ =16, - kNumParameters = 17 + kParamR =17, + kNumParameters = 18 }; // const int dscBuf = 256; @@ -86,6 +87,7 @@ private: float O; float P; float Q; + float R; enum { biq_freq, @@ -166,6 +168,23 @@ private: 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; diff --git a/plugins/MacVST/ConsoleX2Channel/source/ConsoleX2ChannelProc.cpp b/plugins/MacVST/ConsoleX2Channel/source/ConsoleX2ChannelProc.cpp index 69a9b1b55..906bc23a4 100755 --- a/plugins/MacVST/ConsoleX2Channel/source/ConsoleX2ChannelProc.cpp +++ b/plugins/MacVST/ConsoleX2Channel/source/ConsoleX2ChannelProc.cpp @@ -18,20 +18,33 @@ void ConsoleX2Channel::processReplacing(float **inputs, float **outputs, VstInt3 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 = (A-0.5)*2.0; + double moreTapeHack = (B*2.0)+1.0; + switch ((int)(A*4.0)){ + 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(B*0.42,3.0)*overallscale,0.00001); + //Discontapeity + + double trebleGain = (C-0.5)*2.0; trebleGain = 1.0+(trebleGain*fabs(trebleGain)*fabs(trebleGain)); - double highmidGain = (B-0.5)*2.0; + double highmidGain = (D-0.5)*2.0; highmidGain = 1.0+(highmidGain*fabs(highmidGain)*fabs(highmidGain)); - double lowmidGain = (C-0.5)*2.0; + double lowmidGain = (E-0.5)*2.0; lowmidGain = 1.0+(lowmidGain*fabs(lowmidGain)*fabs(lowmidGain)); - double bassGain = (D-0.5)*2.0; + double bassGain = (F-0.5)*2.0; bassGain = 1.0+(bassGain*fabs(bassGain)*fabs(bassGain)); - double trebleRef = E-0.5; - double highmidRef = F-0.5; - double lowmidRef = G-0.5; - double bassRef = H-0.5; + double trebleRef = G-0.5; + double highmidRef = H-0.5; + double lowmidRef = I-0.5; + double bassRef = J-0.5; double highF = 0.75 + ((trebleRef+trebleRef+trebleRef+highmidRef)*0.125); double bassF = 0.25 + ((lowmidRef+bassRef+bassRef+bassRef)*0.125); double midF = (highF*0.5) + (bassF*0.5) + ((highmidRef+lowmidRef)*0.125); @@ -44,8 +57,8 @@ void ConsoleX2Channel::processReplacing(float **inputs, float **outputs, VstInt3 highC[biq_freq] = highB[biq_freq] = highA[biq_freq] = fmax(fmin(highA[biq_freq],0.4999),0.00025); double highFreq = pow(highF,3)*20000.0; double omega = 2.0*M_PI*(highFreq/getSampleRate()); - double K = 2.0-cos(omega); - double highCoef = -sqrt((K*K)-1.0)+K; + double biqK = 2.0-cos(omega); + double highCoef = -sqrt((biqK*biqK)-1.0)+biqK; highA[biq_reso] = 2.24697960 * highQ; highB[biq_reso] = 0.80193774 * highQ; highC[biq_reso] = 0.55495813 * highQ; @@ -54,8 +67,8 @@ void ConsoleX2Channel::processReplacing(float **inputs, float **outputs, VstInt3 midC[biq_freq] = midB[biq_freq] = midA[biq_freq] = fmax(fmin(midA[biq_freq],0.4999),0.00025); double midFreq = pow(midF,3)*20000.0; omega = 2.0*M_PI*(midFreq/getSampleRate()); - K = 2.0-cos(omega); - double midCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double midCoef = -sqrt((biqK*biqK)-1.0)+biqK; midA[biq_reso] = 2.24697960 * midQ; midB[biq_reso] = 0.80193774 * midQ; midC[biq_reso] = 0.55495813 * midQ; @@ -64,97 +77,93 @@ void ConsoleX2Channel::processReplacing(float **inputs, float **outputs, VstInt3 lowC[biq_freq] = lowB[biq_freq] = lowA[biq_freq] = fmax(fmin(lowA[biq_freq],0.4999),0.00025); double lowFreq = pow(bassF,3)*20000.0; omega = 2.0*M_PI*(lowFreq/getSampleRate()); - K = 2.0-cos(omega); - double lowCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double lowCoef = -sqrt((biqK*biqK)-1.0)+biqK; lowA[biq_reso] = 2.24697960 * lowQ; lowB[biq_reso] = 0.80193774 * lowQ; lowC[biq_reso] = 0.55495813 * lowQ; - K = tan(M_PI * highA[biq_freq]); - double norm = 1.0 / (1.0 + K / highA[biq_reso] + K * K); - highA[biq_a0] = K * K * norm; + biqK = tan(M_PI * highA[biq_freq]); + double norm = 1.0 / (1.0 + biqK / highA[biq_reso] + biqK * biqK); + highA[biq_a0] = biqK * biqK * norm; highA[biq_a1] = 2.0 * highA[biq_a0]; highA[biq_a2] = highA[biq_a0]; - highA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highA[biq_b2] = (1.0 - K / highA[biq_reso] + K * K) * norm; - K = tan(M_PI * highB[biq_freq]); - norm = 1.0 / (1.0 + K / highB[biq_reso] + K * K); - highB[biq_a0] = K * K * norm; + highA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highA[biq_b2] = (1.0 - biqK / highA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highB[biq_freq]); + norm = 1.0 / (1.0 + biqK / highB[biq_reso] + biqK * biqK); + highB[biq_a0] = biqK * biqK * norm; highB[biq_a1] = 2.0 * highB[biq_a0]; highB[biq_a2] = highB[biq_a0]; - highB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highB[biq_b2] = (1.0 - K / highB[biq_reso] + K * K) * norm; - K = tan(M_PI * highC[biq_freq]); - norm = 1.0 / (1.0 + K / highC[biq_reso] + K * K); - highC[biq_a0] = K * K * norm; + highB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highB[biq_b2] = (1.0 - biqK / highB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highC[biq_freq]); + norm = 1.0 / (1.0 + biqK / highC[biq_reso] + biqK * biqK); + highC[biq_a0] = biqK * biqK * norm; highC[biq_a1] = 2.0 * highC[biq_a0]; highC[biq_a2] = highC[biq_a0]; - highC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highC[biq_b2] = (1.0 - K / highC[biq_reso] + K * K) * norm; + highC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highC[biq_b2] = (1.0 - biqK / highC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * midA[biq_freq]); - norm = 1.0 / (1.0 + K / midA[biq_reso] + K * K); - midA[biq_a0] = K * K * norm; + biqK = tan(M_PI * midA[biq_freq]); + norm = 1.0 / (1.0 + biqK / midA[biq_reso] + biqK * biqK); + midA[biq_a0] = biqK * biqK * norm; midA[biq_a1] = 2.0 * midA[biq_a0]; midA[biq_a2] = midA[biq_a0]; - midA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midA[biq_b2] = (1.0 - K / midA[biq_reso] + K * K) * norm; - K = tan(M_PI * midB[biq_freq]); - norm = 1.0 / (1.0 + K / midB[biq_reso] + K * K); - midB[biq_a0] = K * K * norm; + midA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midA[biq_b2] = (1.0 - biqK / midA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midB[biq_freq]); + norm = 1.0 / (1.0 + biqK / midB[biq_reso] + biqK * biqK); + midB[biq_a0] = biqK * biqK * norm; midB[biq_a1] = 2.0 * midB[biq_a0]; midB[biq_a2] = midB[biq_a0]; - midB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midB[biq_b2] = (1.0 - K / midB[biq_reso] + K * K) * norm; - K = tan(M_PI * midC[biq_freq]); - norm = 1.0 / (1.0 + K / midC[biq_reso] + K * K); - midC[biq_a0] = K * K * norm; + midB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midB[biq_b2] = (1.0 - biqK / midB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midC[biq_freq]); + norm = 1.0 / (1.0 + biqK / midC[biq_reso] + biqK * biqK); + midC[biq_a0] = biqK * biqK * norm; midC[biq_a1] = 2.0 * midC[biq_a0]; midC[biq_a2] = midC[biq_a0]; - midC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midC[biq_b2] = (1.0 - K / midC[biq_reso] + K * K) * norm; + midC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midC[biq_b2] = (1.0 - biqK / midC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * lowA[biq_freq]); - norm = 1.0 / (1.0 + K / lowA[biq_reso] + K * K); - lowA[biq_a0] = K * K * norm; + biqK = tan(M_PI * lowA[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowA[biq_reso] + biqK * biqK); + lowA[biq_a0] = biqK * biqK * norm; lowA[biq_a1] = 2.0 * lowA[biq_a0]; lowA[biq_a2] = lowA[biq_a0]; - lowA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowA[biq_b2] = (1.0 - K / lowA[biq_reso] + K * K) * norm; - K = tan(M_PI * lowB[biq_freq]); - norm = 1.0 / (1.0 + K / lowB[biq_reso] + K * K); - lowB[biq_a0] = K * K * norm; + lowA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowA[biq_b2] = (1.0 - biqK / lowA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowB[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowB[biq_reso] + biqK * biqK); + lowB[biq_a0] = biqK * biqK * norm; lowB[biq_a1] = 2.0 * lowB[biq_a0]; lowB[biq_a2] = lowB[biq_a0]; - lowB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowB[biq_b2] = (1.0 - K / lowB[biq_reso] + K * K) * norm; - K = tan(M_PI * lowC[biq_freq]); - norm = 1.0 / (1.0 + K / lowC[biq_reso] + K * K); - lowC[biq_a0] = K * K * norm; + lowB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowB[biq_b2] = (1.0 - biqK / lowB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowC[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowC[biq_reso] + biqK * biqK); + lowC[biq_a0] = biqK * biqK * norm; lowC[biq_a1] = 2.0 * lowC[biq_a0]; lowC[biq_a2] = lowC[biq_a0]; - lowC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowC[biq_b2] = (1.0 - K / lowC[biq_reso] + K * K) * norm; + lowC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowC[biq_b2] = (1.0 - biqK / lowC[biq_reso] + biqK * biqK) * norm; //SmoothEQ2 - double bezCThresh = pow(1.0-I, 6.0) * 8.0; - double bezRez = pow(1.0-J, 8.0) / overallscale; - double sloRez = pow(1.0-K,12.0) / overallscale; + double bezCThresh = pow(1.0-K, 6.0) * 8.0; + double bezRez = pow(1.0-L, 8.0) / overallscale; + double sloRez = pow(1.0-M,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(L,4.0),sqrt(bezCThresh+1.0)); + double gate = pow(pow(N,4.0),sqrt(bezCThresh+1.0)); //Dynamics2 - lFreqA = lFreqB; lFreqB = pow(fmax(M,0.002),overallscale); //the lowpass - hFreqA = hFreqB; hFreqB = pow(N,overallscale+2.0); //the highpass + lFreqA = lFreqB; lFreqB = pow(fmax(O,0.002),overallscale); //the lowpass + hFreqA = hFreqB; hFreqB = pow(P,overallscale+2.0); //the highpass //Cabs2 - double moreDiscontinuity = fmax(pow(O*0.42,3.0)*overallscale,0.00001); - double moreTapeHack = (O*1.4152481)+1.2; - //Discontapeity - - panA = panB; panB = P*1.57079633; - inTrimA = inTrimB; inTrimB = Q*2.0; + panA = panB; panB = Q*1.57079633; + inTrimA = inTrimB; inTrimB = R*2.0; //Console while (--sampleFrames >= 0) @@ -164,6 +173,99 @@ void ConsoleX2Channel::processReplacing(float **inputs, float **outputs, VstInt3 if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17; if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17; + double darkSampleL = inputSampleL; + double darkSampleR = inputSampleR; + if (avgPos > 31) avgPos = 0; + if (spacing > 31) { + avg32L[avgPos] = darkSampleL; avg32R[avgPos] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 32; x++) {darkSampleL += avg32L[x]; darkSampleR += avg32R[x];} + darkSampleL /= 32.0; darkSampleR /= 32.0; + } if (spacing > 15) { + avg16L[avgPos%16] = darkSampleL; avg16R[avgPos%16] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 16; x++) {darkSampleL += avg16L[x]; darkSampleR += avg16R[x];} + darkSampleL /= 16.0; darkSampleR /= 16.0; + } if (spacing > 7) { + avg8L[avgPos%8] = darkSampleL; avg8R[avgPos%8] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 8; x++) {darkSampleL += avg8L[x]; darkSampleR += avg8R[x];} + darkSampleL /= 8.0; darkSampleR /= 8.0; + } if (spacing > 3) { + avg4L[avgPos%4] = darkSampleL; avg4R[avgPos%4] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 4; x++) {darkSampleL += avg4L[x]; darkSampleR += avg4R[x];} + darkSampleL /= 4.0; darkSampleR /= 4.0; + } if (spacing > 1) { + avg2L[avgPos%2] = darkSampleL; avg2R[avgPos%2] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 2; x++) {darkSampleL += avg2L[x]; darkSampleR += avg2R[x];} + darkSampleL /= 2.0; darkSampleR /= 2.0; + } avgPos++; + lastSlewL += fabs(lastSlewpleL-inputSampleL); lastSlewpleL = inputSampleL; + double avgSlewL = fmin(lastSlewL,1.0); + lastSlewL = fmax(lastSlewL*0.78,2.39996322972865332223); + lastSlewR += fabs(lastSlewpleR-inputSampleR); lastSlewpleR = inputSampleR; + double avgSlewR = fmin(lastSlewR,1.0); + lastSlewR = fmax(lastSlewR*0.78,2.39996322972865332223); //look up Golden Angle, it's cool + inputSampleL = (inputSampleL*(1.0-avgSlewL)) + (darkSampleL*avgSlewL); + inputSampleR = (inputSampleR*(1.0-avgSlewR)) + (darkSampleR*avgSlewR); + + //begin Discontinuity section + inputSampleL *= moreTapeHack; + inputSampleL *= moreDiscontinuity; + dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5); + dBaPosL = fmin(dBaPosL,1.0); + int dBdly = floor(dBaPosL*dscBuf); + double dBi = (dBaPosL*dscBuf)-dBdly; + inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi); + dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi; + dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0; + inputSampleL /= moreDiscontinuity; + //end Discontinuity section, begin TapeHack section + inputSampleL = fmax(fmin(inputSampleL,2.305929007734908),-2.305929007734908); + double addtwo = inputSampleL * inputSampleL; + double empower = inputSampleL * addtwo; // inputSampleL to the third power + inputSampleL -= (empower / 6.0); + empower *= addtwo; // to the fifth power + inputSampleL += (empower / 69.0); + empower *= addtwo; //seventh + inputSampleL -= (empower / 2530.08); + empower *= addtwo; //ninth + inputSampleL += (empower / 224985.6); + empower *= addtwo; //eleventh + inputSampleL -= (empower / 9979200.0f); + //this is a degenerate form of a Taylor Series to approximate sin() + //end TapeHack section + + //begin Discontinuity section + inputSampleR *= moreTapeHack; + inputSampleR *= moreDiscontinuity; + dBaR[dBaXR] = inputSampleR; dBaPosR *= 0.5; dBaPosR += fabs((inputSampleR*((inputSampleR*0.25)-0.5))*0.5); + dBaPosR = fmin(dBaPosR,1.0); + dBdly = floor(dBaPosR*dscBuf); + dBi = (dBaPosR*dscBuf)-dBdly; + inputSampleR = dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*(1.0-dBi); + dBdly++; inputSampleR += dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*dBi; + dBaXR++; if (dBaXR < 0 || dBaXR >= dscBuf) dBaXR = 0; + inputSampleR /= moreDiscontinuity; + //end Discontinuity section, begin TapeHack section + inputSampleR = fmax(fmin(inputSampleR,2.305929007734908),-2.305929007734908); + addtwo = inputSampleR * inputSampleR; + empower = inputSampleR * addtwo; // inputSampleR to the third power + inputSampleR -= (empower / 6.0); + empower *= addtwo; // to the fifth power + inputSampleR += (empower / 69.0); + empower *= addtwo; //seventh + inputSampleR -= (empower / 2530.08); + empower *= addtwo; //ninth + inputSampleR += (empower / 224985.6); + empower *= addtwo; //eleventh + inputSampleR -= (empower / 9979200.0f); + //this is a degenerate form of a Taylor Series to approximate sin() + //end TapeHack section + //Discontapeity + double trebleL = inputSampleL; double outSample = (trebleL * highA[biq_a0]) + highA[biq_sL1]; highA[biq_sL1] = (trebleL * highA[biq_a1]) - (outSample * highA[biq_b1]) + highA[biq_sL2]; @@ -423,62 +525,7 @@ void ConsoleX2Channel::processReplacing(float **inputs, float **outputs, VstInt3 } //blank out lowpass if just switched off } //Cabs2 - - //begin Discontinuity section - inputSampleL *= moreDiscontinuity; - dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5); - dBaPosL = fmin(dBaPosL,1.0); - int dBdly = floor(dBaPosL*dscBuf); - double dBi = (dBaPosL*dscBuf)-dBdly; - inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi; - dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0; - inputSampleL /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleL = fmax(fmin(inputSampleL*moreTapeHack,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.9239; - //end TapeHack section - - //begin Discontinuity section - inputSampleR *= moreDiscontinuity; - dBaR[dBaXR] = inputSampleR; dBaPosR *= 0.5; dBaPosR += fabs((inputSampleR*((inputSampleR*0.25)-0.5))*0.5); - dBaPosR = fmin(dBaPosR,1.0); - dBdly = floor(dBaPosR*dscBuf); - dBi = (dBaPosR*dscBuf)-dBdly; - inputSampleR = dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleR += dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*dBi; - dBaXR++; if (dBaXR < 0 || dBaXR >= dscBuf) dBaXR = 0; - inputSampleR /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleR = fmax(fmin(inputSampleR*moreTapeHack,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.9239; - //end TapeHack section - //Discontapeity - + double gainR = (panA*temp)+(panB*(1.0-temp)); double gainL = 1.57079633-gainR; gainR = sin(gainR); gainL = sin(gainL); @@ -486,19 +533,16 @@ void ConsoleX2Channel::processReplacing(float **inputs, float **outputs, VstInt3 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 *= 0.763932022500211; inputSampleL = inputSampleL * gainL * gain; inputSampleR = inputSampleR * gainR * gain; //applies pan section, and smoothed fader gain - inputSampleL *= 0.618033988749895; if (inputSampleL > 1.0) inputSampleL = 1.0; else if (inputSampleL > 0.0) inputSampleL = -expm1((log1p(-inputSampleL) * 1.618033988749895)); if (inputSampleL < -1.0) inputSampleL = -1.0; else if (inputSampleL < 0.0) inputSampleL = expm1((log1p(inputSampleL) * 1.618033988749895)); - inputSampleR *= 0.618033988749895; if (inputSampleR > 1.0) inputSampleR = 1.0; else if (inputSampleR > 0.0) inputSampleR = -expm1((log1p(-inputSampleR) * 1.618033988749895)); if (inputSampleR < -1.0) inputSampleR = -1.0; @@ -534,20 +578,33 @@ void ConsoleX2Channel::processDoubleReplacing(double **inputs, double **outputs, 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 = (A-0.5)*2.0; + double moreTapeHack = (B*2.0)+1.0; + switch ((int)(A*4.0)){ + 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(B*0.42,3.0)*overallscale,0.00001); + //Discontapeity + + double trebleGain = (C-0.5)*2.0; trebleGain = 1.0+(trebleGain*fabs(trebleGain)*fabs(trebleGain)); - double highmidGain = (B-0.5)*2.0; + double highmidGain = (D-0.5)*2.0; highmidGain = 1.0+(highmidGain*fabs(highmidGain)*fabs(highmidGain)); - double lowmidGain = (C-0.5)*2.0; + double lowmidGain = (E-0.5)*2.0; lowmidGain = 1.0+(lowmidGain*fabs(lowmidGain)*fabs(lowmidGain)); - double bassGain = (D-0.5)*2.0; + double bassGain = (F-0.5)*2.0; bassGain = 1.0+(bassGain*fabs(bassGain)*fabs(bassGain)); - double trebleRef = E-0.5; - double highmidRef = F-0.5; - double lowmidRef = G-0.5; - double bassRef = H-0.5; + double trebleRef = G-0.5; + double highmidRef = H-0.5; + double lowmidRef = I-0.5; + double bassRef = J-0.5; double highF = 0.75 + ((trebleRef+trebleRef+trebleRef+highmidRef)*0.125); double bassF = 0.25 + ((lowmidRef+bassRef+bassRef+bassRef)*0.125); double midF = (highF*0.5) + (bassF*0.5) + ((highmidRef+lowmidRef)*0.125); @@ -560,8 +617,8 @@ void ConsoleX2Channel::processDoubleReplacing(double **inputs, double **outputs, highC[biq_freq] = highB[biq_freq] = highA[biq_freq] = fmax(fmin(highA[biq_freq],0.4999),0.00025); double highFreq = pow(highF,3)*20000.0; double omega = 2.0*M_PI*(highFreq/getSampleRate()); - double K = 2.0-cos(omega); - double highCoef = -sqrt((K*K)-1.0)+K; + double biqK = 2.0-cos(omega); + double highCoef = -sqrt((biqK*biqK)-1.0)+biqK; highA[biq_reso] = 2.24697960 * highQ; highB[biq_reso] = 0.80193774 * highQ; highC[biq_reso] = 0.55495813 * highQ; @@ -570,8 +627,8 @@ void ConsoleX2Channel::processDoubleReplacing(double **inputs, double **outputs, midC[biq_freq] = midB[biq_freq] = midA[biq_freq] = fmax(fmin(midA[biq_freq],0.4999),0.00025); double midFreq = pow(midF,3)*20000.0; omega = 2.0*M_PI*(midFreq/getSampleRate()); - K = 2.0-cos(omega); - double midCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double midCoef = -sqrt((biqK*biqK)-1.0)+biqK; midA[biq_reso] = 2.24697960 * midQ; midB[biq_reso] = 0.80193774 * midQ; midC[biq_reso] = 0.55495813 * midQ; @@ -580,97 +637,93 @@ void ConsoleX2Channel::processDoubleReplacing(double **inputs, double **outputs, lowC[biq_freq] = lowB[biq_freq] = lowA[biq_freq] = fmax(fmin(lowA[biq_freq],0.4999),0.00025); double lowFreq = pow(bassF,3)*20000.0; omega = 2.0*M_PI*(lowFreq/getSampleRate()); - K = 2.0-cos(omega); - double lowCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double lowCoef = -sqrt((biqK*biqK)-1.0)+biqK; lowA[biq_reso] = 2.24697960 * lowQ; lowB[biq_reso] = 0.80193774 * lowQ; lowC[biq_reso] = 0.55495813 * lowQ; - K = tan(M_PI * highA[biq_freq]); - double norm = 1.0 / (1.0 + K / highA[biq_reso] + K * K); - highA[biq_a0] = K * K * norm; + biqK = tan(M_PI * highA[biq_freq]); + double norm = 1.0 / (1.0 + biqK / highA[biq_reso] + biqK * biqK); + highA[biq_a0] = biqK * biqK * norm; highA[biq_a1] = 2.0 * highA[biq_a0]; highA[biq_a2] = highA[biq_a0]; - highA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highA[biq_b2] = (1.0 - K / highA[biq_reso] + K * K) * norm; - K = tan(M_PI * highB[biq_freq]); - norm = 1.0 / (1.0 + K / highB[biq_reso] + K * K); - highB[biq_a0] = K * K * norm; + highA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highA[biq_b2] = (1.0 - biqK / highA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highB[biq_freq]); + norm = 1.0 / (1.0 + biqK / highB[biq_reso] + biqK * biqK); + highB[biq_a0] = biqK * biqK * norm; highB[biq_a1] = 2.0 * highB[biq_a0]; highB[biq_a2] = highB[biq_a0]; - highB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highB[biq_b2] = (1.0 - K / highB[biq_reso] + K * K) * norm; - K = tan(M_PI * highC[biq_freq]); - norm = 1.0 / (1.0 + K / highC[biq_reso] + K * K); - highC[biq_a0] = K * K * norm; + highB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highB[biq_b2] = (1.0 - biqK / highB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highC[biq_freq]); + norm = 1.0 / (1.0 + biqK / highC[biq_reso] + biqK * biqK); + highC[biq_a0] = biqK * biqK * norm; highC[biq_a1] = 2.0 * highC[biq_a0]; highC[biq_a2] = highC[biq_a0]; - highC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highC[biq_b2] = (1.0 - K / highC[biq_reso] + K * K) * norm; + highC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highC[biq_b2] = (1.0 - biqK / highC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * midA[biq_freq]); - norm = 1.0 / (1.0 + K / midA[biq_reso] + K * K); - midA[biq_a0] = K * K * norm; + biqK = tan(M_PI * midA[biq_freq]); + norm = 1.0 / (1.0 + biqK / midA[biq_reso] + biqK * biqK); + midA[biq_a0] = biqK * biqK * norm; midA[biq_a1] = 2.0 * midA[biq_a0]; midA[biq_a2] = midA[biq_a0]; - midA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midA[biq_b2] = (1.0 - K / midA[biq_reso] + K * K) * norm; - K = tan(M_PI * midB[biq_freq]); - norm = 1.0 / (1.0 + K / midB[biq_reso] + K * K); - midB[biq_a0] = K * K * norm; + midA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midA[biq_b2] = (1.0 - biqK / midA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midB[biq_freq]); + norm = 1.0 / (1.0 + biqK / midB[biq_reso] + biqK * biqK); + midB[biq_a0] = biqK * biqK * norm; midB[biq_a1] = 2.0 * midB[biq_a0]; midB[biq_a2] = midB[biq_a0]; - midB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midB[biq_b2] = (1.0 - K / midB[biq_reso] + K * K) * norm; - K = tan(M_PI * midC[biq_freq]); - norm = 1.0 / (1.0 + K / midC[biq_reso] + K * K); - midC[biq_a0] = K * K * norm; + midB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midB[biq_b2] = (1.0 - biqK / midB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midC[biq_freq]); + norm = 1.0 / (1.0 + biqK / midC[biq_reso] + biqK * biqK); + midC[biq_a0] = biqK * biqK * norm; midC[biq_a1] = 2.0 * midC[biq_a0]; midC[biq_a2] = midC[biq_a0]; - midC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midC[biq_b2] = (1.0 - K / midC[biq_reso] + K * K) * norm; + midC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midC[biq_b2] = (1.0 - biqK / midC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * lowA[biq_freq]); - norm = 1.0 / (1.0 + K / lowA[biq_reso] + K * K); - lowA[biq_a0] = K * K * norm; + biqK = tan(M_PI * lowA[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowA[biq_reso] + biqK * biqK); + lowA[biq_a0] = biqK * biqK * norm; lowA[biq_a1] = 2.0 * lowA[biq_a0]; lowA[biq_a2] = lowA[biq_a0]; - lowA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowA[biq_b2] = (1.0 - K / lowA[biq_reso] + K * K) * norm; - K = tan(M_PI * lowB[biq_freq]); - norm = 1.0 / (1.0 + K / lowB[biq_reso] + K * K); - lowB[biq_a0] = K * K * norm; + lowA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowA[biq_b2] = (1.0 - biqK / lowA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowB[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowB[biq_reso] + biqK * biqK); + lowB[biq_a0] = biqK * biqK * norm; lowB[biq_a1] = 2.0 * lowB[biq_a0]; lowB[biq_a2] = lowB[biq_a0]; - lowB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowB[biq_b2] = (1.0 - K / lowB[biq_reso] + K * K) * norm; - K = tan(M_PI * lowC[biq_freq]); - norm = 1.0 / (1.0 + K / lowC[biq_reso] + K * K); - lowC[biq_a0] = K * K * norm; + lowB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowB[biq_b2] = (1.0 - biqK / lowB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowC[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowC[biq_reso] + biqK * biqK); + lowC[biq_a0] = biqK * biqK * norm; lowC[biq_a1] = 2.0 * lowC[biq_a0]; lowC[biq_a2] = lowC[biq_a0]; - lowC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowC[biq_b2] = (1.0 - K / lowC[biq_reso] + K * K) * norm; + lowC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowC[biq_b2] = (1.0 - biqK / lowC[biq_reso] + biqK * biqK) * norm; //SmoothEQ2 - double bezCThresh = pow(1.0-I, 6.0) * 8.0; - double bezRez = pow(1.0-J, 8.0) / overallscale; - double sloRez = pow(1.0-K,12.0) / overallscale; + double bezCThresh = pow(1.0-K, 6.0) * 8.0; + double bezRez = pow(1.0-L, 8.0) / overallscale; + double sloRez = pow(1.0-M,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(L,4.0),sqrt(bezCThresh+1.0)); + double gate = pow(pow(N,4.0),sqrt(bezCThresh+1.0)); //Dynamics2 - lFreqA = lFreqB; lFreqB = pow(fmax(M,0.002),overallscale); //the lowpass - hFreqA = hFreqB; hFreqB = pow(N,overallscale+2.0); //the highpass + lFreqA = lFreqB; lFreqB = pow(fmax(O,0.002),overallscale); //the lowpass + hFreqA = hFreqB; hFreqB = pow(P,overallscale+2.0); //the highpass //Cabs2 - double moreDiscontinuity = fmax(pow(O*0.42,3.0)*overallscale,0.00001); - double moreTapeHack = (O*1.4152481)+1.2; - //Discontapeity - - panA = panB; panB = P*1.57079633; - inTrimA = inTrimB; inTrimB = Q*2.0; + panA = panB; panB = Q*1.57079633; + inTrimA = inTrimB; inTrimB = R*2.0; //Console while (--sampleFrames >= 0) @@ -680,6 +733,99 @@ void ConsoleX2Channel::processDoubleReplacing(double **inputs, double **outputs, if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17; if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17; + double darkSampleL = inputSampleL; + double darkSampleR = inputSampleR; + if (avgPos > 31) avgPos = 0; + if (spacing > 31) { + avg32L[avgPos] = darkSampleL; avg32R[avgPos] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 32; x++) {darkSampleL += avg32L[x]; darkSampleR += avg32R[x];} + darkSampleL /= 32.0; darkSampleR /= 32.0; + } if (spacing > 15) { + avg16L[avgPos%16] = darkSampleL; avg16R[avgPos%16] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 16; x++) {darkSampleL += avg16L[x]; darkSampleR += avg16R[x];} + darkSampleL /= 16.0; darkSampleR /= 16.0; + } if (spacing > 7) { + avg8L[avgPos%8] = darkSampleL; avg8R[avgPos%8] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 8; x++) {darkSampleL += avg8L[x]; darkSampleR += avg8R[x];} + darkSampleL /= 8.0; darkSampleR /= 8.0; + } if (spacing > 3) { + avg4L[avgPos%4] = darkSampleL; avg4R[avgPos%4] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 4; x++) {darkSampleL += avg4L[x]; darkSampleR += avg4R[x];} + darkSampleL /= 4.0; darkSampleR /= 4.0; + } if (spacing > 1) { + avg2L[avgPos%2] = darkSampleL; avg2R[avgPos%2] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 2; x++) {darkSampleL += avg2L[x]; darkSampleR += avg2R[x];} + darkSampleL /= 2.0; darkSampleR /= 2.0; + } avgPos++; + lastSlewL += fabs(lastSlewpleL-inputSampleL); lastSlewpleL = inputSampleL; + double avgSlewL = fmin(lastSlewL,1.0); + lastSlewL = fmax(lastSlewL*0.78,2.39996322972865332223); + lastSlewR += fabs(lastSlewpleR-inputSampleR); lastSlewpleR = inputSampleR; + double avgSlewR = fmin(lastSlewR,1.0); + lastSlewR = fmax(lastSlewR*0.78,2.39996322972865332223); //look up Golden Angle, it's cool + inputSampleL = (inputSampleL*(1.0-avgSlewL)) + (darkSampleL*avgSlewL); + inputSampleR = (inputSampleR*(1.0-avgSlewR)) + (darkSampleR*avgSlewR); + + //begin Discontinuity section + inputSampleL *= moreTapeHack; + inputSampleL *= moreDiscontinuity; + dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5); + dBaPosL = fmin(dBaPosL,1.0); + int dBdly = floor(dBaPosL*dscBuf); + double dBi = (dBaPosL*dscBuf)-dBdly; + inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi); + dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi; + dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0; + inputSampleL /= moreDiscontinuity; + //end Discontinuity section, begin TapeHack section + inputSampleL = fmax(fmin(inputSampleL,2.305929007734908),-2.305929007734908); + double addtwo = inputSampleL * inputSampleL; + double empower = inputSampleL * addtwo; // inputSampleL to the third power + inputSampleL -= (empower / 6.0); + empower *= addtwo; // to the fifth power + inputSampleL += (empower / 69.0); + empower *= addtwo; //seventh + inputSampleL -= (empower / 2530.08); + empower *= addtwo; //ninth + inputSampleL += (empower / 224985.6); + empower *= addtwo; //eleventh + inputSampleL -= (empower / 9979200.0f); + //this is a degenerate form of a Taylor Series to approximate sin() + //end TapeHack section + + //begin Discontinuity section + inputSampleR *= moreTapeHack; + inputSampleR *= moreDiscontinuity; + dBaR[dBaXR] = inputSampleR; dBaPosR *= 0.5; dBaPosR += fabs((inputSampleR*((inputSampleR*0.25)-0.5))*0.5); + dBaPosR = fmin(dBaPosR,1.0); + dBdly = floor(dBaPosR*dscBuf); + dBi = (dBaPosR*dscBuf)-dBdly; + inputSampleR = dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*(1.0-dBi); + dBdly++; inputSampleR += dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*dBi; + dBaXR++; if (dBaXR < 0 || dBaXR >= dscBuf) dBaXR = 0; + inputSampleR /= moreDiscontinuity; + //end Discontinuity section, begin TapeHack section + inputSampleR = fmax(fmin(inputSampleR,2.305929007734908),-2.305929007734908); + addtwo = inputSampleR * inputSampleR; + empower = inputSampleR * addtwo; // inputSampleR to the third power + inputSampleR -= (empower / 6.0); + empower *= addtwo; // to the fifth power + inputSampleR += (empower / 69.0); + empower *= addtwo; //seventh + inputSampleR -= (empower / 2530.08); + empower *= addtwo; //ninth + inputSampleR += (empower / 224985.6); + empower *= addtwo; //eleventh + inputSampleR -= (empower / 9979200.0f); + //this is a degenerate form of a Taylor Series to approximate sin() + //end TapeHack section + //Discontapeity + double trebleL = inputSampleL; double outSample = (trebleL * highA[biq_a0]) + highA[biq_sL1]; highA[biq_sL1] = (trebleL * highA[biq_a1]) - (outSample * highA[biq_b1]) + highA[biq_sL2]; @@ -940,61 +1086,6 @@ void ConsoleX2Channel::processDoubleReplacing(double **inputs, double **outputs, } //Cabs2 - //begin Discontinuity section - inputSampleL *= moreDiscontinuity; - dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5); - dBaPosL = fmin(dBaPosL,1.0); - int dBdly = floor(dBaPosL*dscBuf); - double dBi = (dBaPosL*dscBuf)-dBdly; - inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi; - dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0; - inputSampleL /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleL = fmax(fmin(inputSampleL*moreTapeHack,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.9239; - //end TapeHack section - - //begin Discontinuity section - inputSampleR *= moreDiscontinuity; - dBaR[dBaXR] = inputSampleR; dBaPosR *= 0.5; dBaPosR += fabs((inputSampleR*((inputSampleR*0.25)-0.5))*0.5); - dBaPosR = fmin(dBaPosR,1.0); - dBdly = floor(dBaPosR*dscBuf); - dBi = (dBaPosR*dscBuf)-dBdly; - inputSampleR = dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleR += dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*dBi; - dBaXR++; if (dBaXR < 0 || dBaXR >= dscBuf) dBaXR = 0; - inputSampleR /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleR = fmax(fmin(inputSampleR*moreTapeHack,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.9239; - //end TapeHack section - //Discontapeity - double gainR = (panA*temp)+(panB*(1.0-temp)); double gainL = 1.57079633-gainR; gainR = sin(gainR); gainL = sin(gainL); @@ -1002,19 +1093,16 @@ void ConsoleX2Channel::processDoubleReplacing(double **inputs, double **outputs, 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 *= 0.763932022500211; inputSampleL = inputSampleL * gainL * gain; inputSampleR = inputSampleR * gainR * gain; //applies pan section, and smoothed fader gain - inputSampleL *= 0.618033988749895; if (inputSampleL > 1.0) inputSampleL = 1.0; else if (inputSampleL > 0.0) inputSampleL = -expm1((log1p(-inputSampleL) * 1.618033988749895)); if (inputSampleL < -1.0) inputSampleL = -1.0; else if (inputSampleL < 0.0) inputSampleL = expm1((log1p(inputSampleL) * 1.618033988749895)); - inputSampleR *= 0.618033988749895; if (inputSampleR > 1.0) inputSampleR = 1.0; else if (inputSampleR > 0.0) inputSampleR = -expm1((log1p(-inputSampleR) * 1.618033988749895)); if (inputSampleR < -1.0) inputSampleR = -1.0; diff --git a/plugins/MacVST/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/christopherjohnson.pbxuser index 638c62e6c..9eb110d68 100755 --- a/plugins/MacVST/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/christopherjohnson.pbxuser +++ b/plugins/MacVST/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/christopherjohnson.pbxuser @@ -49,12 +49,13 @@ PBXFileDataSource_Warnings_ColumnID, ); }; - PBXPerProjectTemplateStateSaveDate = 781916144; - PBXWorkspaceStateSaveDate = 781916144; + PBXPerProjectTemplateStateSaveDate = 783603931; + PBXWorkspaceStateSaveDate = 783603931; }; perUserProjectItems = { - 8B962B6D2E9AD516000EAC04 /* PBXTextBookmark */ = 8B962B6D2E9AD516000EAC04 /* PBXTextBookmark */; - 8B962C112E9B1814000EAC04 /* PBXTextBookmark */ = 8B962C112E9B1814000EAC04 /* PBXTextBookmark */; + 8B692BB82EB4DCCF00F51381 /* PBXTextBookmark */ = 8B692BB82EB4DCCF00F51381 /* PBXTextBookmark */; + 8B692BB92EB4DCCF00F51381 /* PBXBookmark */ = 8B692BB92EB4DCCF00F51381 /* PBXBookmark */; + 8B692BBA2EB4DCCF00F51381 /* PBXTextBookmark */ = 8B692BBA2EB4DCCF00F51381 /* PBXTextBookmark */; }; sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */; userBuildSettings = { @@ -62,18 +63,18 @@ }; 2407DEB6089929BA00EB68BF /* ConsoleX2Pre.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {831, 5850}}"; - sepNavSelRange = "{1794, 0}"; - sepNavVisRange = "{744, 68}"; - sepNavWindowFrame = "{{12, 47}, {895, 831}}"; + sepNavIntBoundsRect = "{{0, 0}, {848, 5256}}"; + sepNavSelRange = "{1603, 0}"; + sepNavVisRange = "{6887, 2487}"; + sepNavWindowFrame = "{{545, 47}, {895, 831}}"; }; }; 245463B80991757100464AD3 /* ConsoleX2Pre.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1110, 2934}}"; - sepNavSelRange = "{4217, 0}"; - sepNavVisRange = "{220, 639}"; - sepNavWindowFrame = "{{20, 47}, {895, 831}}"; + sepNavIntBoundsRect = "{{0, 0}, {554, 3618}}"; + sepNavSelRange = "{2830, 0}"; + sepNavVisRange = "{2805, 39}"; + sepNavWindowFrame = "{{545, 47}, {895, 831}}"; }; }; 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = { @@ -86,10 +87,10 @@ }; 24D8286F09A914000093AEF8 /* ConsoleX2PreProc.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1182, 18360}}"; - sepNavSelRange = "{44702, 0}"; - sepNavVisRange = "{44158, 1272}"; - sepNavWindowFrame = "{{31, 42}, {895, 831}}"; + sepNavIntBoundsRect = "{{0, 0}, {1182, 19944}}"; + sepNavSelRange = "{49326, 0}"; + sepNavVisRange = "{48536, 1773}"; + sepNavWindowFrame = "{{524, 47}, {895, 831}}"; }; }; 8B02375E1D42B1C400E1E8C8 /* Source Control */ = { @@ -106,25 +107,29 @@ isa = PBXCodeSenseManager; indexTemplatePath = ""; }; - 8B962B6D2E9AD516000EAC04 /* PBXTextBookmark */ = { + 8B692BB82EB4DCCF00F51381 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 2407DEB6089929BA00EB68BF /* ConsoleX2Pre.cpp */; - name = "ConsoleX2Pre.cpp: 89"; + name = "ConsoleX2Pre.cpp: 88"; rLen = 0; - rLoc = 1794; + rLoc = 2198; rType = 0; - vrLen = 86; - vrLoc = 726; + vrLen = 51; + vrLoc = 779; }; - 8B962C112E9B1814000EAC04 /* PBXTextBookmark */ = { + 8B692BB92EB4DCCF00F51381 /* PBXBookmark */ = { + isa = PBXBookmark; + fRef = 245463B80991757100464AD3 /* ConsoleX2Pre.h */; + }; + 8B692BBA2EB4DCCF00F51381 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 2407DEB6089929BA00EB68BF /* ConsoleX2Pre.cpp */; - name = "ConsoleX2Pre.cpp: 89"; + fRef = 245463B80991757100464AD3 /* ConsoleX2Pre.h */; + name = "ConsoleX2Pre.h: 85"; rLen = 0; - rLoc = 1794; + rLoc = 2830; rType = 0; - vrLen = 68; - vrLoc = 744; + vrLen = 39; + vrLoc = 2805; }; 8D01CCC60486CAD60068D4B7 /* ConsoleX2Pre */ = { activeExec = 0; diff --git a/plugins/MacVST/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/christopherjohnson.perspectivev3 index 1edfc895d..713c7ad50 100755 --- a/plugins/MacVST/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/christopherjohnson.perspectivev3 +++ b/plugins/MacVST/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/christopherjohnson.perspectivev3 @@ -323,7 +323,7 @@ 185 RubberWindowFrame - 34 365 810 487 0 0 1440 878 + 639 298 810 487 0 0 1440 878 Module PBXSmartGroupTreeModule @@ -339,7 +339,7 @@ PBXProjectModuleGUID 8B0237581D42B1C400E1E8C8 PBXProjectModuleLabel - ConsoleX2Pre.cpp + ConsoleX2Pre.h PBXSplitModuleInNavigatorKey Split0 @@ -347,14 +347,15 @@ PBXProjectModuleGUID 8B0237591D42B1C400E1E8C8 PBXProjectModuleLabel - ConsoleX2Pre.cpp + ConsoleX2Pre.h _historyCapacity 0 bookmark - 8B962C112E9B1814000EAC04 + 8B692BBA2EB4DCCF00F51381 history - 8B962B6D2E9AD516000EAC04 + 8B692BB82EB4DCCF00F51381 + 8B692BB92EB4DCCF00F51381 SplitCount @@ -368,18 +369,18 @@ GeometryConfiguration Frame - {{0, 0}, {603, 102}} + {{0, 0}, {603, 69}} RubberWindowFrame - 34 365 810 487 0 0 1440 878 + 639 298 810 487 0 0 1440 878 Module PBXNavigatorGroup Proportion - 102pt + 69pt Proportion - 339pt + 372pt Tabs @@ -393,9 +394,9 @@ GeometryConfiguration Frame - {{10, 27}, {603, 312}} + {{10, 27}, {603, 345}} RubberWindowFrame - 34 365 810 487 0 0 1440 878 + 639 298 810 487 0 0 1440 878 Module XCDetailModule @@ -449,7 +450,7 @@ GeometryConfiguration Frame - {{10, 27}, {603, 282}} + {{10, 27}, {603, 328}} Module PBXBuildResultsModule @@ -477,11 +478,11 @@ TableOfContents - 8B962C122E9B1814000EAC04 + 8B692BBB2EB4DCCF00F51381 1CA23ED40692098700951B8B - 8B962C132E9B1814000EAC04 + 8B692BBC2EB4DCCF00F51381 8B0237581D42B1C400E1E8C8 - 8B962C142E9B1814000EAC04 + 8B692BBD2EB4DCCF00F51381 1CA23EDF0692099D00951B8B 1CA23EE00692099D00951B8B 1CA23EE10692099D00951B8B @@ -634,7 +635,7 @@ StatusbarIsVisible TimeStamp - 781916180.50450897 + 783604943.16103494 ToolbarConfigUserDefaultsMinorVersion 2 ToolbarDisplayMode @@ -651,11 +652,11 @@ 5 WindowOrderList - 8B962C152E9B1814000EAC04 + 8B692BBE2EB4DCCF00F51381 /Users/christopherjohnson/Desktop/airwindows/plugins/MacVST/ConsoleX2Pre/ConsoleX2Pre.xcodeproj WindowString - 34 365 810 487 0 0 1440 878 + 639 298 810 487 0 0 1440 878 WindowToolsV3 diff --git a/plugins/MacVST/ConsoleX2Pre/source/ConsoleX2Pre.cpp b/plugins/MacVST/ConsoleX2Pre/source/ConsoleX2Pre.cpp index 7f5bee3dc..1d6244eab 100755 --- a/plugins/MacVST/ConsoleX2Pre/source/ConsoleX2Pre.cpp +++ b/plugins/MacVST/ConsoleX2Pre/source/ConsoleX2Pre.cpp @@ -12,22 +12,22 @@ AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new C ConsoleX2Pre::ConsoleX2Pre(audioMasterCallback audioMaster) : AudioEffectX(audioMaster, kNumPrograms, kNumParameters) { - A = 0.5; - B = 0.5; + A = 0.25; + B = 0.0; C = 0.5; D = 0.5; E = 0.5; F = 0.5; G = 0.5; H = 0.5; - I = 1.0; + I = 0.5; J = 0.5; - K = 0.5; - L = 0.0; - M = 1.0; + K = 1.0; + L = 0.5; + M = 0.5; N = 0.0; - O = 0.0; - P = 0.5; + O = 1.0; + P = 0.0; Q = 0.5; for (int x = 0; x < biq_total; x++) { @@ -81,9 +81,18 @@ ConsoleX2Pre::ConsoleX2Pre(audioMasterCallback audioMaster) : 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; @@ -219,22 +228,22 @@ float ConsoleX2Pre::getParameter(VstInt32 index) { void ConsoleX2Pre::getParameterName(VstInt32 index, char *text) { switch (index) { - case kParamA: vst_strncpy (text, "High", kVstMaxParamStrLen); break; - case kParamB: vst_strncpy (text, "HMid", kVstMaxParamStrLen); break; - case kParamC: vst_strncpy (text, "LMid", kVstMaxParamStrLen); break; - case kParamD: vst_strncpy (text, "Bass", kVstMaxParamStrLen); break; - case kParamE: vst_strncpy (text, "HighF", kVstMaxParamStrLen); break; - case kParamF: vst_strncpy (text, "HMidF", kVstMaxParamStrLen); break; - case kParamG: vst_strncpy (text, "LMidF", kVstMaxParamStrLen); break; - case kParamH: vst_strncpy (text, "BassF", kVstMaxParamStrLen); break; - case kParamI: vst_strncpy (text, "Thresh", kVstMaxParamStrLen); break; - case kParamJ: vst_strncpy (text, "Attack", kVstMaxParamStrLen); break; - case kParamK: vst_strncpy (text, "Release", kVstMaxParamStrLen); break; - case kParamL: vst_strncpy (text, "Gate", kVstMaxParamStrLen); break; - case kParamM: vst_strncpy (text, "Lowpass", kVstMaxParamStrLen); break; - case kParamN: vst_strncpy (text, "Hipass", kVstMaxParamStrLen); break; - case kParamO: vst_strncpy (text, "More", kVstMaxParamStrLen); break; - case kParamP: vst_strncpy (text, "Pan", kVstMaxParamStrLen); break; + case kParamA: vst_strncpy (text, "Trim", kVstMaxParamStrLen); break; + case kParamB: vst_strncpy (text, "More", kVstMaxParamStrLen); break; + case kParamC: vst_strncpy (text, "High", kVstMaxParamStrLen); break; + case kParamD: vst_strncpy (text, "HMid", kVstMaxParamStrLen); break; + case kParamE: vst_strncpy (text, "LMid", kVstMaxParamStrLen); break; + case kParamF: vst_strncpy (text, "Bass", kVstMaxParamStrLen); break; + case kParamG: vst_strncpy (text, "HighF", kVstMaxParamStrLen); break; + case kParamH: vst_strncpy (text, "HMidF", kVstMaxParamStrLen); break; + case kParamI: vst_strncpy (text, "LMidF", kVstMaxParamStrLen); break; + case kParamJ: vst_strncpy (text, "BassF", kVstMaxParamStrLen); break; + case kParamK: vst_strncpy (text, "Thresh", kVstMaxParamStrLen); break; + case kParamL: vst_strncpy (text, "Attack", kVstMaxParamStrLen); break; + case kParamM: vst_strncpy (text, "Release", kVstMaxParamStrLen); break; + case kParamN: vst_strncpy (text, "Gate", kVstMaxParamStrLen); break; + case kParamO: vst_strncpy (text, "Lowpass", kVstMaxParamStrLen); break; + case kParamP: vst_strncpy (text, "Hipass", kVstMaxParamStrLen); break; case kParamQ: vst_strncpy (text, "Fader", kVstMaxParamStrLen); break; default: break; // unknown parameter, shouldn't happen! } //this is our labels for displaying in the VST host @@ -242,7 +251,7 @@ void ConsoleX2Pre::getParameterName(VstInt32 index, char *text) { void ConsoleX2Pre::getParameterDisplay(VstInt32 index, char *text) { switch (index) { - case kParamA: float2string (A, text, kVstMaxParamStrLen); break; + case kParamA: int2string ((int)(A*4.0), text, kVstMaxParamStrLen); break; case kParamB: float2string (B, text, kVstMaxParamStrLen); break; case kParamC: float2string (C, text, kVstMaxParamStrLen); break; case kParamD: float2string (D, text, kVstMaxParamStrLen); break; @@ -265,21 +274,21 @@ void ConsoleX2Pre::getParameterDisplay(VstInt32 index, char *text) { void ConsoleX2Pre::getParameterLabel(VstInt32 index, char *text) { switch (index) { - case kParamA: vst_strncpy (text, "eq", kVstMaxParamStrLen); break; + case kParamA: vst_strncpy (text, "", kVstMaxParamStrLen); break; case kParamB: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamC: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamC: vst_strncpy (text, "eq", kVstMaxParamStrLen); break; case kParamD: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamE: vst_strncpy (text, "freq", kVstMaxParamStrLen); break; + case kParamE: vst_strncpy (text, "", kVstMaxParamStrLen); break; case kParamF: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamG: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamG: vst_strncpy (text, "freq", kVstMaxParamStrLen); break; case kParamH: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamI: vst_strncpy (text, "dyn", kVstMaxParamStrLen); break; + case kParamI: vst_strncpy (text, "", kVstMaxParamStrLen); break; case kParamJ: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamK: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamK: vst_strncpy (text, "dyn", kVstMaxParamStrLen); break; case kParamL: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamM: vst_strncpy (text, "fltr", kVstMaxParamStrLen); break; + case kParamM: vst_strncpy (text, "", kVstMaxParamStrLen); break; case kParamN: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamO: vst_strncpy (text, "+", kVstMaxParamStrLen); break; + case kParamO: vst_strncpy (text, "fltr", kVstMaxParamStrLen); break; case kParamP: vst_strncpy (text, "", kVstMaxParamStrLen); break; case kParamQ: vst_strncpy (text, "", kVstMaxParamStrLen); break; default: break; // unknown parameter, shouldn't happen! diff --git a/plugins/MacVST/ConsoleX2Pre/source/ConsoleX2Pre.h b/plugins/MacVST/ConsoleX2Pre/source/ConsoleX2Pre.h index 2162a3d0c..3fa48a8f8 100755 --- a/plugins/MacVST/ConsoleX2Pre/source/ConsoleX2Pre.h +++ b/plugins/MacVST/ConsoleX2Pre/source/ConsoleX2Pre.h @@ -166,8 +166,23 @@ private: int dBaXR; //Discontapeity - double panA; - double panB; + 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; diff --git a/plugins/MacVST/ConsoleX2Pre/source/ConsoleX2PreProc.cpp b/plugins/MacVST/ConsoleX2Pre/source/ConsoleX2PreProc.cpp index 377839b00..4c8abed86 100755 --- a/plugins/MacVST/ConsoleX2Pre/source/ConsoleX2PreProc.cpp +++ b/plugins/MacVST/ConsoleX2Pre/source/ConsoleX2PreProc.cpp @@ -18,20 +18,33 @@ void ConsoleX2Pre::processReplacing(float **inputs, float **outputs, VstInt32 sa 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 = (A-0.5)*2.0; + double moreTapeHack = (B*2.0)+1.0; + switch ((int)(A*4.0)){ + 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(B*0.42,3.0)*overallscale,0.00001); + //Discontapeity + + double trebleGain = (C-0.5)*2.0; trebleGain = 1.0+(trebleGain*fabs(trebleGain)*fabs(trebleGain)); - double highmidGain = (B-0.5)*2.0; + double highmidGain = (D-0.5)*2.0; highmidGain = 1.0+(highmidGain*fabs(highmidGain)*fabs(highmidGain)); - double lowmidGain = (C-0.5)*2.0; + double lowmidGain = (E-0.5)*2.0; lowmidGain = 1.0+(lowmidGain*fabs(lowmidGain)*fabs(lowmidGain)); - double bassGain = (D-0.5)*2.0; + double bassGain = (F-0.5)*2.0; bassGain = 1.0+(bassGain*fabs(bassGain)*fabs(bassGain)); - double trebleRef = E-0.5; - double highmidRef = F-0.5; - double lowmidRef = G-0.5; - double bassRef = H-0.5; + double trebleRef = G-0.5; + double highmidRef = H-0.5; + double lowmidRef = I-0.5; + double bassRef = J-0.5; double highF = 0.75 + ((trebleRef+trebleRef+trebleRef+highmidRef)*0.125); double bassF = 0.25 + ((lowmidRef+bassRef+bassRef+bassRef)*0.125); double midF = (highF*0.5) + (bassF*0.5) + ((highmidRef+lowmidRef)*0.125); @@ -44,8 +57,8 @@ void ConsoleX2Pre::processReplacing(float **inputs, float **outputs, VstInt32 sa highC[biq_freq] = highB[biq_freq] = highA[biq_freq] = fmax(fmin(highA[biq_freq],0.4999),0.00025); double highFreq = pow(highF,3)*20000.0; double omega = 2.0*M_PI*(highFreq/getSampleRate()); - double K = 2.0-cos(omega); - double highCoef = -sqrt((K*K)-1.0)+K; + double biqK = 2.0-cos(omega); + double highCoef = -sqrt((biqK*biqK)-1.0)+biqK; highA[biq_reso] = 2.24697960 * highQ; highB[biq_reso] = 0.80193774 * highQ; highC[biq_reso] = 0.55495813 * highQ; @@ -54,8 +67,8 @@ void ConsoleX2Pre::processReplacing(float **inputs, float **outputs, VstInt32 sa midC[biq_freq] = midB[biq_freq] = midA[biq_freq] = fmax(fmin(midA[biq_freq],0.4999),0.00025); double midFreq = pow(midF,3)*20000.0; omega = 2.0*M_PI*(midFreq/getSampleRate()); - K = 2.0-cos(omega); - double midCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double midCoef = -sqrt((biqK*biqK)-1.0)+biqK; midA[biq_reso] = 2.24697960 * midQ; midB[biq_reso] = 0.80193774 * midQ; midC[biq_reso] = 0.55495813 * midQ; @@ -64,96 +77,91 @@ void ConsoleX2Pre::processReplacing(float **inputs, float **outputs, VstInt32 sa lowC[biq_freq] = lowB[biq_freq] = lowA[biq_freq] = fmax(fmin(lowA[biq_freq],0.4999),0.00025); double lowFreq = pow(bassF,3)*20000.0; omega = 2.0*M_PI*(lowFreq/getSampleRate()); - K = 2.0-cos(omega); - double lowCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double lowCoef = -sqrt((biqK*biqK)-1.0)+biqK; lowA[biq_reso] = 2.24697960 * lowQ; lowB[biq_reso] = 0.80193774 * lowQ; lowC[biq_reso] = 0.55495813 * lowQ; - K = tan(M_PI * highA[biq_freq]); - double norm = 1.0 / (1.0 + K / highA[biq_reso] + K * K); - highA[biq_a0] = K * K * norm; + biqK = tan(M_PI * highA[biq_freq]); + double norm = 1.0 / (1.0 + biqK / highA[biq_reso] + biqK * biqK); + highA[biq_a0] = biqK * biqK * norm; highA[biq_a1] = 2.0 * highA[biq_a0]; highA[biq_a2] = highA[biq_a0]; - highA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highA[biq_b2] = (1.0 - K / highA[biq_reso] + K * K) * norm; - K = tan(M_PI * highB[biq_freq]); - norm = 1.0 / (1.0 + K / highB[biq_reso] + K * K); - highB[biq_a0] = K * K * norm; + highA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highA[biq_b2] = (1.0 - biqK / highA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highB[biq_freq]); + norm = 1.0 / (1.0 + biqK / highB[biq_reso] + biqK * biqK); + highB[biq_a0] = biqK * biqK * norm; highB[biq_a1] = 2.0 * highB[biq_a0]; highB[biq_a2] = highB[biq_a0]; - highB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highB[biq_b2] = (1.0 - K / highB[biq_reso] + K * K) * norm; - K = tan(M_PI * highC[biq_freq]); - norm = 1.0 / (1.0 + K / highC[biq_reso] + K * K); - highC[biq_a0] = K * K * norm; + highB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highB[biq_b2] = (1.0 - biqK / highB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highC[biq_freq]); + norm = 1.0 / (1.0 + biqK / highC[biq_reso] + biqK * biqK); + highC[biq_a0] = biqK * biqK * norm; highC[biq_a1] = 2.0 * highC[biq_a0]; highC[biq_a2] = highC[biq_a0]; - highC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highC[biq_b2] = (1.0 - K / highC[biq_reso] + K * K) * norm; + highC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highC[biq_b2] = (1.0 - biqK / highC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * midA[biq_freq]); - norm = 1.0 / (1.0 + K / midA[biq_reso] + K * K); - midA[biq_a0] = K * K * norm; + biqK = tan(M_PI * midA[biq_freq]); + norm = 1.0 / (1.0 + biqK / midA[biq_reso] + biqK * biqK); + midA[biq_a0] = biqK * biqK * norm; midA[biq_a1] = 2.0 * midA[biq_a0]; midA[biq_a2] = midA[biq_a0]; - midA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midA[biq_b2] = (1.0 - K / midA[biq_reso] + K * K) * norm; - K = tan(M_PI * midB[biq_freq]); - norm = 1.0 / (1.0 + K / midB[biq_reso] + K * K); - midB[biq_a0] = K * K * norm; + midA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midA[biq_b2] = (1.0 - biqK / midA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midB[biq_freq]); + norm = 1.0 / (1.0 + biqK / midB[biq_reso] + biqK * biqK); + midB[biq_a0] = biqK * biqK * norm; midB[biq_a1] = 2.0 * midB[biq_a0]; midB[biq_a2] = midB[biq_a0]; - midB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midB[biq_b2] = (1.0 - K / midB[biq_reso] + K * K) * norm; - K = tan(M_PI * midC[biq_freq]); - norm = 1.0 / (1.0 + K / midC[biq_reso] + K * K); - midC[biq_a0] = K * K * norm; + midB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midB[biq_b2] = (1.0 - biqK / midB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midC[biq_freq]); + norm = 1.0 / (1.0 + biqK / midC[biq_reso] + biqK * biqK); + midC[biq_a0] = biqK * biqK * norm; midC[biq_a1] = 2.0 * midC[biq_a0]; midC[biq_a2] = midC[biq_a0]; - midC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midC[biq_b2] = (1.0 - K / midC[biq_reso] + K * K) * norm; + midC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midC[biq_b2] = (1.0 - biqK / midC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * lowA[biq_freq]); - norm = 1.0 / (1.0 + K / lowA[biq_reso] + K * K); - lowA[biq_a0] = K * K * norm; + biqK = tan(M_PI * lowA[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowA[biq_reso] + biqK * biqK); + lowA[biq_a0] = biqK * biqK * norm; lowA[biq_a1] = 2.0 * lowA[biq_a0]; lowA[biq_a2] = lowA[biq_a0]; - lowA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowA[biq_b2] = (1.0 - K / lowA[biq_reso] + K * K) * norm; - K = tan(M_PI * lowB[biq_freq]); - norm = 1.0 / (1.0 + K / lowB[biq_reso] + K * K); - lowB[biq_a0] = K * K * norm; + lowA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowA[biq_b2] = (1.0 - biqK / lowA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowB[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowB[biq_reso] + biqK * biqK); + lowB[biq_a0] = biqK * biqK * norm; lowB[biq_a1] = 2.0 * lowB[biq_a0]; lowB[biq_a2] = lowB[biq_a0]; - lowB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowB[biq_b2] = (1.0 - K / lowB[biq_reso] + K * K) * norm; - K = tan(M_PI * lowC[biq_freq]); - norm = 1.0 / (1.0 + K / lowC[biq_reso] + K * K); - lowC[biq_a0] = K * K * norm; + lowB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowB[biq_b2] = (1.0 - biqK / lowB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowC[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowC[biq_reso] + biqK * biqK); + lowC[biq_a0] = biqK * biqK * norm; lowC[biq_a1] = 2.0 * lowC[biq_a0]; lowC[biq_a2] = lowC[biq_a0]; - lowC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowC[biq_b2] = (1.0 - K / lowC[biq_reso] + K * K) * norm; + lowC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowC[biq_b2] = (1.0 - biqK / lowC[biq_reso] + biqK * biqK) * norm; //SmoothEQ2 - double bezCThresh = pow(1.0-I, 6.0) * 8.0; - double bezRez = pow(1.0-J, 8.0) / overallscale; - double sloRez = pow(1.0-K,12.0) / overallscale; + double bezCThresh = pow(1.0-K, 6.0) * 8.0; + double bezRez = pow(1.0-L, 8.0) / overallscale; + double sloRez = pow(1.0-M,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(L,4.0),sqrt(bezCThresh+1.0)); + double gate = pow(pow(N,4.0),sqrt(bezCThresh+1.0)); //Dynamics2 - lFreqA = lFreqB; lFreqB = pow(fmax(M,0.002),overallscale); //the lowpass - hFreqA = hFreqB; hFreqB = pow(N,overallscale+2.0); //the highpass + lFreqA = lFreqB; lFreqB = pow(fmax(O,0.002),overallscale); //the lowpass + hFreqA = hFreqB; hFreqB = pow(P,overallscale+2.0); //the highpass //Cabs2 - - double moreDiscontinuity = fmax(pow(O*0.42,3.0)*overallscale,0.00001); - double moreTapeHack = (O*1.4152481)+1.2; - //Discontapeity - - panA = panB; panB = P*1.57079633; + inTrimA = inTrimB; inTrimB = Q*2.0; //Console @@ -164,6 +172,101 @@ void ConsoleX2Pre::processReplacing(float **inputs, float **outputs, VstInt32 sa if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17; if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17; + double darkSampleL = inputSampleL; + double darkSampleR = inputSampleR; + if (avgPos > 31) avgPos = 0; + if (spacing > 31) { + avg32L[avgPos] = darkSampleL; avg32R[avgPos] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 32; x++) {darkSampleL += avg32L[x]; darkSampleR += avg32R[x];} + darkSampleL /= 32.0; darkSampleR /= 32.0; + } if (spacing > 15) { + avg16L[avgPos%16] = darkSampleL; avg16R[avgPos%16] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 16; x++) {darkSampleL += avg16L[x]; darkSampleR += avg16R[x];} + darkSampleL /= 16.0; darkSampleR /= 16.0; + } if (spacing > 7) { + avg8L[avgPos%8] = darkSampleL; avg8R[avgPos%8] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 8; x++) {darkSampleL += avg8L[x]; darkSampleR += avg8R[x];} + darkSampleL /= 8.0; darkSampleR /= 8.0; + } if (spacing > 3) { + avg4L[avgPos%4] = darkSampleL; avg4R[avgPos%4] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 4; x++) {darkSampleL += avg4L[x]; darkSampleR += avg4R[x];} + darkSampleL /= 4.0; darkSampleR /= 4.0; + } if (spacing > 1) { + avg2L[avgPos%2] = darkSampleL; avg2R[avgPos%2] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 2; x++) {darkSampleL += avg2L[x]; darkSampleR += avg2R[x];} + darkSampleL /= 2.0; darkSampleR /= 2.0; + } avgPos++; + lastSlewL += fabs(lastSlewpleL-inputSampleL); lastSlewpleL = inputSampleL; + double avgSlewL = fmin(lastSlewL,1.0); + lastSlewL = fmax(lastSlewL*0.78,2.39996322972865332223); + lastSlewR += fabs(lastSlewpleR-inputSampleR); lastSlewpleR = inputSampleR; + double avgSlewR = fmin(lastSlewR,1.0); + lastSlewR = fmax(lastSlewR*0.78,2.39996322972865332223); //look up Golden Angle, it's cool + inputSampleL = (inputSampleL*(1.0-avgSlewL)) + (darkSampleL*avgSlewL); + inputSampleR = (inputSampleR*(1.0-avgSlewR)) + (darkSampleR*avgSlewR); + + //begin Discontinuity section + inputSampleL *= moreTapeHack; + inputSampleL *= moreDiscontinuity; + dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5); + dBaPosL = fmin(dBaPosL,1.0); + int dBdly = floor(dBaPosL*dscBuf); + double dBi = (dBaPosL*dscBuf)-dBdly; + inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi); + dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi; + dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0; + inputSampleL /= moreDiscontinuity; + //end Discontinuity section, begin TapeHack section + inputSampleL = fmax(fmin(inputSampleL*moreTapeHack,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.9239; + //end TapeHack section + + //begin Discontinuity section + inputSampleR *= moreTapeHack; + inputSampleR *= moreDiscontinuity; + dBaR[dBaXR] = inputSampleR; dBaPosR *= 0.5; dBaPosR += fabs((inputSampleR*((inputSampleR*0.25)-0.5))*0.5); + dBaPosR = fmin(dBaPosR,1.0); + dBdly = floor(dBaPosR*dscBuf); + dBi = (dBaPosR*dscBuf)-dBdly; + inputSampleR = dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*(1.0-dBi); + dBdly++; inputSampleR += dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*dBi; + dBaXR++; if (dBaXR < 0 || dBaXR >= dscBuf) dBaXR = 0; + inputSampleR /= moreDiscontinuity; + //end Discontinuity section, begin TapeHack section + inputSampleR = fmax(fmin(inputSampleR*moreTapeHack,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.9239; + //end TapeHack section + //Discontapeity + double trebleL = inputSampleL; double outSample = (trebleL * highA[biq_a0]) + highA[biq_sL1]; highA[biq_sL1] = (trebleL * highA[biq_a1]) - (outSample * highA[biq_b1]) + highA[biq_sL2]; @@ -423,72 +526,13 @@ void ConsoleX2Pre::processReplacing(float **inputs, float **outputs, VstInt32 sa } //blank out lowpass if just switched off } //Cabs2 - - //begin Discontinuity section - inputSampleL *= moreDiscontinuity; - dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5); - dBaPosL = fmin(dBaPosL,1.0); - int dBdly = floor(dBaPosL*dscBuf); - double dBi = (dBaPosL*dscBuf)-dBdly; - inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi; - dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0; - inputSampleL /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleL = fmax(fmin(inputSampleL*moreTapeHack,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.9239; - //end TapeHack section - - //begin Discontinuity section - inputSampleR *= moreDiscontinuity; - dBaR[dBaXR] = inputSampleR; dBaPosR *= 0.5; dBaPosR += fabs((inputSampleR*((inputSampleR*0.25)-0.5))*0.5); - dBaPosR = fmin(dBaPosR,1.0); - dBdly = floor(dBaPosR*dscBuf); - dBi = (dBaPosR*dscBuf)-dBdly; - inputSampleR = dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleR += dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*dBi; - dBaXR++; if (dBaXR < 0 || dBaXR >= dscBuf) dBaXR = 0; - inputSampleR /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleR = fmax(fmin(inputSampleR*moreTapeHack,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.9239; - //end TapeHack section - //Discontapeity - - 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); - inputSampleL = inputSampleL * gainL * gain; - inputSampleR = inputSampleR * gainR * gain; + inputSampleL = inputSampleL * gain; + inputSampleR = inputSampleR * gain; //applies pan section, and smoothed fader gain //begin 32 bit stereo floating point dither @@ -521,20 +565,33 @@ void ConsoleX2Pre::processDoubleReplacing(double **inputs, double **outputs, Vst 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 = (B*2.0)+1.0; + switch ((int)(A*4.0)){ + 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(B*0.42,3.0)*overallscale,0.00001); + //Discontapeity - double trebleGain = (A-0.5)*2.0; + double trebleGain = (C-0.5)*2.0; trebleGain = 1.0+(trebleGain*fabs(trebleGain)*fabs(trebleGain)); - double highmidGain = (B-0.5)*2.0; + double highmidGain = (D-0.5)*2.0; highmidGain = 1.0+(highmidGain*fabs(highmidGain)*fabs(highmidGain)); - double lowmidGain = (C-0.5)*2.0; + double lowmidGain = (E-0.5)*2.0; lowmidGain = 1.0+(lowmidGain*fabs(lowmidGain)*fabs(lowmidGain)); - double bassGain = (D-0.5)*2.0; + double bassGain = (F-0.5)*2.0; bassGain = 1.0+(bassGain*fabs(bassGain)*fabs(bassGain)); - double trebleRef = E-0.5; - double highmidRef = F-0.5; - double lowmidRef = G-0.5; - double bassRef = H-0.5; + double trebleRef = G-0.5; + double highmidRef = H-0.5; + double lowmidRef = I-0.5; + double bassRef = J-0.5; double highF = 0.75 + ((trebleRef+trebleRef+trebleRef+highmidRef)*0.125); double bassF = 0.25 + ((lowmidRef+bassRef+bassRef+bassRef)*0.125); double midF = (highF*0.5) + (bassF*0.5) + ((highmidRef+lowmidRef)*0.125); @@ -547,8 +604,8 @@ void ConsoleX2Pre::processDoubleReplacing(double **inputs, double **outputs, Vst highC[biq_freq] = highB[biq_freq] = highA[biq_freq] = fmax(fmin(highA[biq_freq],0.4999),0.00025); double highFreq = pow(highF,3)*20000.0; double omega = 2.0*M_PI*(highFreq/getSampleRate()); - double K = 2.0-cos(omega); - double highCoef = -sqrt((K*K)-1.0)+K; + double biqK = 2.0-cos(omega); + double highCoef = -sqrt((biqK*biqK)-1.0)+biqK; highA[biq_reso] = 2.24697960 * highQ; highB[biq_reso] = 0.80193774 * highQ; highC[biq_reso] = 0.55495813 * highQ; @@ -557,8 +614,8 @@ void ConsoleX2Pre::processDoubleReplacing(double **inputs, double **outputs, Vst midC[biq_freq] = midB[biq_freq] = midA[biq_freq] = fmax(fmin(midA[biq_freq],0.4999),0.00025); double midFreq = pow(midF,3)*20000.0; omega = 2.0*M_PI*(midFreq/getSampleRate()); - K = 2.0-cos(omega); - double midCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double midCoef = -sqrt((biqK*biqK)-1.0)+biqK; midA[biq_reso] = 2.24697960 * midQ; midB[biq_reso] = 0.80193774 * midQ; midC[biq_reso] = 0.55495813 * midQ; @@ -567,96 +624,91 @@ void ConsoleX2Pre::processDoubleReplacing(double **inputs, double **outputs, Vst lowC[biq_freq] = lowB[biq_freq] = lowA[biq_freq] = fmax(fmin(lowA[biq_freq],0.4999),0.00025); double lowFreq = pow(bassF,3)*20000.0; omega = 2.0*M_PI*(lowFreq/getSampleRate()); - K = 2.0-cos(omega); - double lowCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double lowCoef = -sqrt((biqK*biqK)-1.0)+biqK; lowA[biq_reso] = 2.24697960 * lowQ; lowB[biq_reso] = 0.80193774 * lowQ; lowC[biq_reso] = 0.55495813 * lowQ; - K = tan(M_PI * highA[biq_freq]); - double norm = 1.0 / (1.0 + K / highA[biq_reso] + K * K); - highA[biq_a0] = K * K * norm; + biqK = tan(M_PI * highA[biq_freq]); + double norm = 1.0 / (1.0 + biqK / highA[biq_reso] + biqK * biqK); + highA[biq_a0] = biqK * biqK * norm; highA[biq_a1] = 2.0 * highA[biq_a0]; highA[biq_a2] = highA[biq_a0]; - highA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highA[biq_b2] = (1.0 - K / highA[biq_reso] + K * K) * norm; - K = tan(M_PI * highB[biq_freq]); - norm = 1.0 / (1.0 + K / highB[biq_reso] + K * K); - highB[biq_a0] = K * K * norm; + highA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highA[biq_b2] = (1.0 - biqK / highA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highB[biq_freq]); + norm = 1.0 / (1.0 + biqK / highB[biq_reso] + biqK * biqK); + highB[biq_a0] = biqK * biqK * norm; highB[biq_a1] = 2.0 * highB[biq_a0]; highB[biq_a2] = highB[biq_a0]; - highB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highB[biq_b2] = (1.0 - K / highB[biq_reso] + K * K) * norm; - K = tan(M_PI * highC[biq_freq]); - norm = 1.0 / (1.0 + K / highC[biq_reso] + K * K); - highC[biq_a0] = K * K * norm; + highB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highB[biq_b2] = (1.0 - biqK / highB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highC[biq_freq]); + norm = 1.0 / (1.0 + biqK / highC[biq_reso] + biqK * biqK); + highC[biq_a0] = biqK * biqK * norm; highC[biq_a1] = 2.0 * highC[biq_a0]; highC[biq_a2] = highC[biq_a0]; - highC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highC[biq_b2] = (1.0 - K / highC[biq_reso] + K * K) * norm; + highC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highC[biq_b2] = (1.0 - biqK / highC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * midA[biq_freq]); - norm = 1.0 / (1.0 + K / midA[biq_reso] + K * K); - midA[biq_a0] = K * K * norm; + biqK = tan(M_PI * midA[biq_freq]); + norm = 1.0 / (1.0 + biqK / midA[biq_reso] + biqK * biqK); + midA[biq_a0] = biqK * biqK * norm; midA[biq_a1] = 2.0 * midA[biq_a0]; midA[biq_a2] = midA[biq_a0]; - midA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midA[biq_b2] = (1.0 - K / midA[biq_reso] + K * K) * norm; - K = tan(M_PI * midB[biq_freq]); - norm = 1.0 / (1.0 + K / midB[biq_reso] + K * K); - midB[biq_a0] = K * K * norm; + midA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midA[biq_b2] = (1.0 - biqK / midA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midB[biq_freq]); + norm = 1.0 / (1.0 + biqK / midB[biq_reso] + biqK * biqK); + midB[biq_a0] = biqK * biqK * norm; midB[biq_a1] = 2.0 * midB[biq_a0]; midB[biq_a2] = midB[biq_a0]; - midB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midB[biq_b2] = (1.0 - K / midB[biq_reso] + K * K) * norm; - K = tan(M_PI * midC[biq_freq]); - norm = 1.0 / (1.0 + K / midC[biq_reso] + K * K); - midC[biq_a0] = K * K * norm; + midB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midB[biq_b2] = (1.0 - biqK / midB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midC[biq_freq]); + norm = 1.0 / (1.0 + biqK / midC[biq_reso] + biqK * biqK); + midC[biq_a0] = biqK * biqK * norm; midC[biq_a1] = 2.0 * midC[biq_a0]; midC[biq_a2] = midC[biq_a0]; - midC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midC[biq_b2] = (1.0 - K / midC[biq_reso] + K * K) * norm; + midC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midC[biq_b2] = (1.0 - biqK / midC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * lowA[biq_freq]); - norm = 1.0 / (1.0 + K / lowA[biq_reso] + K * K); - lowA[biq_a0] = K * K * norm; + biqK = tan(M_PI * lowA[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowA[biq_reso] + biqK * biqK); + lowA[biq_a0] = biqK * biqK * norm; lowA[biq_a1] = 2.0 * lowA[biq_a0]; lowA[biq_a2] = lowA[biq_a0]; - lowA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowA[biq_b2] = (1.0 - K / lowA[biq_reso] + K * K) * norm; - K = tan(M_PI * lowB[biq_freq]); - norm = 1.0 / (1.0 + K / lowB[biq_reso] + K * K); - lowB[biq_a0] = K * K * norm; + lowA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowA[biq_b2] = (1.0 - biqK / lowA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowB[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowB[biq_reso] + biqK * biqK); + lowB[biq_a0] = biqK * biqK * norm; lowB[biq_a1] = 2.0 * lowB[biq_a0]; lowB[biq_a2] = lowB[biq_a0]; - lowB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowB[biq_b2] = (1.0 - K / lowB[biq_reso] + K * K) * norm; - K = tan(M_PI * lowC[biq_freq]); - norm = 1.0 / (1.0 + K / lowC[biq_reso] + K * K); - lowC[biq_a0] = K * K * norm; + lowB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowB[biq_b2] = (1.0 - biqK / lowB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowC[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowC[biq_reso] + biqK * biqK); + lowC[biq_a0] = biqK * biqK * norm; lowC[biq_a1] = 2.0 * lowC[biq_a0]; lowC[biq_a2] = lowC[biq_a0]; - lowC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowC[biq_b2] = (1.0 - K / lowC[biq_reso] + K * K) * norm; + lowC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowC[biq_b2] = (1.0 - biqK / lowC[biq_reso] + biqK * biqK) * norm; //SmoothEQ2 - double bezCThresh = pow(1.0-I, 6.0) * 8.0; - double bezRez = pow(1.0-J, 8.0) / overallscale; - double sloRez = pow(1.0-K,12.0) / overallscale; + double bezCThresh = pow(1.0-K, 6.0) * 8.0; + double bezRez = pow(1.0-L, 8.0) / overallscale; + double sloRez = pow(1.0-M,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(L,4.0),sqrt(bezCThresh+1.0)); + double gate = pow(pow(N,4.0),sqrt(bezCThresh+1.0)); //Dynamics2 - lFreqA = lFreqB; lFreqB = pow(fmax(M,0.002),overallscale); //the lowpass - hFreqA = hFreqB; hFreqB = pow(N,overallscale+2.0); //the highpass + lFreqA = lFreqB; lFreqB = pow(fmax(O,0.002),overallscale); //the lowpass + hFreqA = hFreqB; hFreqB = pow(P,overallscale+2.0); //the highpass //Cabs2 - double moreDiscontinuity = fmax(pow(O*0.42,3.0)*overallscale,0.00001); - double moreTapeHack = (O*1.4152481)+1.2; - //Discontapeity - - panA = panB; panB = P*1.57079633; inTrimA = inTrimB; inTrimB = Q*2.0; //Console @@ -666,6 +718,101 @@ void ConsoleX2Pre::processDoubleReplacing(double **inputs, double **outputs, Vst double inputSampleR = *in2; if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17; if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17; + + double darkSampleL = inputSampleL; + double darkSampleR = inputSampleR; + if (avgPos > 31) avgPos = 0; + if (spacing > 31) { + avg32L[avgPos] = darkSampleL; avg32R[avgPos] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 32; x++) {darkSampleL += avg32L[x]; darkSampleR += avg32R[x];} + darkSampleL /= 32.0; darkSampleR /= 32.0; + } if (spacing > 15) { + avg16L[avgPos%16] = darkSampleL; avg16R[avgPos%16] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 16; x++) {darkSampleL += avg16L[x]; darkSampleR += avg16R[x];} + darkSampleL /= 16.0; darkSampleR /= 16.0; + } if (spacing > 7) { + avg8L[avgPos%8] = darkSampleL; avg8R[avgPos%8] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 8; x++) {darkSampleL += avg8L[x]; darkSampleR += avg8R[x];} + darkSampleL /= 8.0; darkSampleR /= 8.0; + } if (spacing > 3) { + avg4L[avgPos%4] = darkSampleL; avg4R[avgPos%4] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 4; x++) {darkSampleL += avg4L[x]; darkSampleR += avg4R[x];} + darkSampleL /= 4.0; darkSampleR /= 4.0; + } if (spacing > 1) { + avg2L[avgPos%2] = darkSampleL; avg2R[avgPos%2] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 2; x++) {darkSampleL += avg2L[x]; darkSampleR += avg2R[x];} + darkSampleL /= 2.0; darkSampleR /= 2.0; + } avgPos++; + lastSlewL += fabs(lastSlewpleL-inputSampleL); lastSlewpleL = inputSampleL; + double avgSlewL = fmin(lastSlewL,1.0); + lastSlewL = fmax(lastSlewL*0.78,2.39996322972865332223); + lastSlewR += fabs(lastSlewpleR-inputSampleR); lastSlewpleR = inputSampleR; + double avgSlewR = fmin(lastSlewR,1.0); + lastSlewR = fmax(lastSlewR*0.78,2.39996322972865332223); //look up Golden Angle, it's cool + inputSampleL = (inputSampleL*(1.0-avgSlewL)) + (darkSampleL*avgSlewL); + inputSampleR = (inputSampleR*(1.0-avgSlewR)) + (darkSampleR*avgSlewR); + + //begin Discontinuity section + inputSampleL *= moreTapeHack; + inputSampleL *= moreDiscontinuity; + dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5); + dBaPosL = fmin(dBaPosL,1.0); + int dBdly = floor(dBaPosL*dscBuf); + double dBi = (dBaPosL*dscBuf)-dBdly; + inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi); + dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi; + dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0; + inputSampleL /= moreDiscontinuity; + //end Discontinuity section, begin TapeHack section + inputSampleL = fmax(fmin(inputSampleL*moreTapeHack,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.9239; + //end TapeHack section + + //begin Discontinuity section + inputSampleR *= moreTapeHack; + inputSampleR *= moreDiscontinuity; + dBaR[dBaXR] = inputSampleR; dBaPosR *= 0.5; dBaPosR += fabs((inputSampleR*((inputSampleR*0.25)-0.5))*0.5); + dBaPosR = fmin(dBaPosR,1.0); + dBdly = floor(dBaPosR*dscBuf); + dBi = (dBaPosR*dscBuf)-dBdly; + inputSampleR = dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*(1.0-dBi); + dBdly++; inputSampleR += dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*dBi; + dBaXR++; if (dBaXR < 0 || dBaXR >= dscBuf) dBaXR = 0; + inputSampleR /= moreDiscontinuity; + //end Discontinuity section, begin TapeHack section + inputSampleR = fmax(fmin(inputSampleR*moreTapeHack,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.9239; + //end TapeHack section + //Discontapeity double trebleL = inputSampleL; double outSample = (trebleL * highA[biq_a0]) + highA[biq_sL1]; @@ -927,73 +1074,14 @@ void ConsoleX2Pre::processDoubleReplacing(double **inputs, double **outputs, Vst } //Cabs2 - //begin Discontinuity section - inputSampleL *= moreDiscontinuity; - dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5); - dBaPosL = fmin(dBaPosL,1.0); - int dBdly = floor(dBaPosL*dscBuf); - double dBi = (dBaPosL*dscBuf)-dBdly; - inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi; - dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0; - inputSampleL /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleL = fmax(fmin(inputSampleL*moreTapeHack,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.9239; - //end TapeHack section - - //begin Discontinuity section - inputSampleR *= moreDiscontinuity; - dBaR[dBaXR] = inputSampleR; dBaPosR *= 0.5; dBaPosR += fabs((inputSampleR*((inputSampleR*0.25)-0.5))*0.5); - dBaPosR = fmin(dBaPosR,1.0); - dBdly = floor(dBaPosR*dscBuf); - dBi = (dBaPosR*dscBuf)-dBdly; - inputSampleR = dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleR += dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*dBi; - dBaXR++; if (dBaXR < 0 || dBaXR >= dscBuf) dBaXR = 0; - inputSampleR /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleR = fmax(fmin(inputSampleR*moreTapeHack,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.9239; - //end TapeHack section - //Discontapeity - - 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); - inputSampleL = inputSampleL * gainL * gain; - inputSampleR = inputSampleR * gainR * gain; + inputSampleL = inputSampleL * gain; + inputSampleR = inputSampleR * gain; //applies pan section, and smoothed fader gain - + //begin 64 bit stereo floating point dither //int expon; frexp((double)inputSampleL, &expon); fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5; diff --git a/plugins/MacVST/X2Buss/X2Buss.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/X2Buss/X2Buss.xcodeproj/christopherjohnson.pbxuser new file mode 100755 index 000000000..00c926107 --- /dev/null +++ b/plugins/MacVST/X2Buss/X2Buss.xcodeproj/christopherjohnson.pbxuser @@ -0,0 +1,108 @@ +// !$*UTF8*$! +{ + 089C1669FE841209C02AAC07 /* Project object */ = { + activeBuildConfigurationName = Release; + activeTarget = 8D01CCC60486CAD60068D4B7 /* X2Buss */; + codeSenseManager = 8B02375F1D42B1C400E1E8C8 /* 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, + 324, + 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 = 783620271; + PBXWorkspaceStateSaveDate = 783620271; + }; + sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */; + userBuildSettings = { + }; + }; + 2407DEB6089929BA00EB68BF /* X2Buss.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {848, 3528}}"; + sepNavSelRange = "{7889, 0}"; + sepNavVisRange = "{6703, 1806}"; + sepNavWindowFrame = "{{677, 47}, {895, 831}}"; + }; + }; + 245463B80991757100464AD3 /* X2Buss.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1110, 2790}}"; + sepNavSelRange = "{2615, 0}"; + sepNavVisRange = "{3237, 642}"; + sepNavWindowFrame = "{{619, 47}, {895, 831}}"; + }; + }; + 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {859, 20267}}"; + sepNavSelRange = "{10616, 0}"; + sepNavVisRange = "{9653, 2414}"; + sepNavWindowFrame = "{{15, 42}, {895, 831}}"; + }; + }; + 24D8286F09A914000093AEF8 /* X2BussProc.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1029, 22914}}"; + sepNavSelRange = "{37584, 0}"; + sepNavVisRange = "{40433, 1315}"; + sepNavWindowFrame = "{{498, 47}, {895, 831}}"; + }; + }; + 8B02375E1D42B1C400E1E8C8 /* Source Control */ = { + isa = PBXSourceControlManager; + fallbackIsa = XCSourceControlManager; + isSCMEnabled = 0; + scmConfiguration = { + repositoryNamesForRoots = { + "" = ""; + }; + }; + }; + 8B02375F1D42B1C400E1E8C8 /* Code sense */ = { + isa = PBXCodeSenseManager; + indexTemplatePath = ""; + }; + 8D01CCC60486CAD60068D4B7 /* X2Buss */ = { + activeExec = 0; + }; +} diff --git a/plugins/MacVST/X2Buss/X2Buss.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/X2Buss/X2Buss.xcodeproj/christopherjohnson.perspectivev3 new file mode 100755 index 000000000..f31d604c7 --- /dev/null +++ b/plugins/MacVST/X2Buss/X2Buss.xcodeproj/christopherjohnson.perspectivev3 @@ -0,0 +1,1502 @@ + + + + + ActivePerspectiveName + Project + AllowedModules + + + BundleLoadPath + + MaxInstances + n + Module + PBXSmartGroupTreeModule + Name + Groups and Files Outline View + + + BundleLoadPath + + MaxInstances + n + Module + PBXNavigatorGroup + Name + Editor + + + BundleLoadPath + + MaxInstances + n + Module + XCTaskListModule + Name + Task List + + + BundleLoadPath + + MaxInstances + n + Module + XCDetailModule + Name + File and Smart Group Detail Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXBuildResultsModule + Name + Detailed Build Results Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXProjectFindModule + Name + Project Batch Find Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCProjectFormatConflictsModule + Name + Project Format Conflicts List + + + BundleLoadPath + + MaxInstances + n + Module + PBXBookmarksModule + Name + Bookmarks Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXClassBrowserModule + Name + Class Browser + + + BundleLoadPath + + MaxInstances + n + Module + PBXCVSModule + Name + Source Code Control Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXDebugBreakpointsModule + Name + Debug Breakpoints Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCDockableInspector + Name + Inspector + + + BundleLoadPath + + MaxInstances + n + Module + PBXOpenQuicklyModule + Name + Open Quickly Tool + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugSessionModule + Name + Debugger + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugCLIModule + Name + Debug Console + + + BundleLoadPath + + MaxInstances + n + Module + XCSnapshotModule + Name + Snapshots Tool + + + BundlePath + /Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources + Description + AIODescriptionKey + DockingSystemVisible + + Extension + perspectivev3 + FavBarConfig + + PBXProjectModuleGUID + 8B02375D1D42B1C400E1E8C8 + XCBarModuleItemNames + + XCBarModuleItems + + + FirstTimeWindowDisplayed + + Identifier + com.apple.perspectives.project.defaultV3 + MajorVersion + 34 + MinorVersion + 0 + Name + All-In-One + Notifications + + + XCObserverAutoDisconnectKey + + XCObserverDefintionKey + + PBXStatusErrorsKey + 0 + + XCObserverFactoryKey + XCPerspectivesSpecificationIdentifier + XCObserverGUIDKey + XCObserverProjectIdentifier + XCObserverNotificationKey + PBXStatusBuildStateMessageNotification + XCObserverTargetKey + XCMainBuildResultsModuleGUID + XCObserverTriggerKey + awakenModuleWithObserver: + XCObserverValidationKey + + PBXStatusErrorsKey + 2 + + + + OpenEditors + + PerspectiveWidths + + 810 + 810 + + Perspectives + + + ChosenToolbarItems + + XCToolbarPerspectiveControl + NSToolbarSeparatorItem + active-combo-popup + action + NSToolbarFlexibleSpaceItem + debugger-enable-breakpoints + build-and-go + com.apple.ide.PBXToolbarStopButton + get-info + NSToolbarFlexibleSpaceItem + com.apple.pbx.toolbar.searchfield + + ControllerClassBaseName + + IconName + WindowOfProject + Identifier + perspective.project + IsVertical + + Layout + + + BecomeActive + + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 1C37FABC05509CD000000102 + 1C37FABC05539CD112110102 + E2644B35053B69B200211256 + 1C37FABC04509CD000100104 + 1CC0EA4004350EF90044410B + 1CC0EA4004350EF90041110B + 1C77FABC04509CD000000102 + + PBXProjectModuleGUID + 1CA23ED40692098700951B8B + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + yes + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 185 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 089C166AFE841209C02AAC07 + 08FB77ADFE841716C02AAC07 + 1C37FBAC04509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 6 + 4 + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {185, 428}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + + + GeometryConfiguration + + Frame + {{0, 0}, {202, 446}} + GroupTreeTableConfiguration + + MainColumn + 185 + + RubberWindowFrame + 620 311 810 487 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 202pt + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 8B0237581D42B1C400E1E8C8 + PBXProjectModuleLabel + Gain.h + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 8B0237591D42B1C400E1E8C8 + PBXProjectModuleLabel + Gain.h + + SplitCount + 1 + + StatusBarVisibility + + XCSharingToken + com.apple.Xcode.CommonNavigatorGroupSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {603, 0}} + RubberWindowFrame + 620 311 810 487 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 0pt + + + Proportion + 441pt + Tabs + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA23EDF0692099D00951B8B + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{10, 27}, {603, 414}} + RubberWindowFrame + 620 311 810 487 0 0 1440 878 + + Module + XCDetailModule + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA23EE00692099D00951B8B + PBXProjectModuleLabel + Project Find + + GeometryConfiguration + + Frame + {{10, 31}, {603, 297}} + + Module + PBXProjectFindModule + + + ContentConfiguration + + PBXCVSModuleFilterTypeKey + 1032 + PBXProjectModuleGUID + 1CA23EE10692099D00951B8B + PBXProjectModuleLabel + SCM Results + + GeometryConfiguration + + Frame + {{10, 31}, {603, 297}} + + Module + PBXCVSModule + + + ContentConfiguration + + PBXProjectModuleGUID + XCMainBuildResultsModuleGUID + PBXProjectModuleLabel + Build Results + XCBuildResultsTrigger_Collapse + 1023 + XCBuildResultsTrigger_Open + 1012 + + GeometryConfiguration + + Frame + {{10, 27}, {603, 282}} + + Module + PBXBuildResultsModule + + + + + Proportion + 603pt + + + Name + Project + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + XCModuleDock + PBXNavigatorGroup + XCDockableTabModule + XCDetailModule + PBXProjectFindModule + PBXCVSModule + PBXBuildResultsModule + + TableOfContents + + 8B5C9E842EB51CE1008B9860 + 1CA23ED40692098700951B8B + 8B5C9E852EB51CE1008B9860 + 8B0237581D42B1C400E1E8C8 + 8B5C9E862EB51CE1008B9860 + 1CA23EDF0692099D00951B8B + 1CA23EE00692099D00951B8B + 1CA23EE10692099D00951B8B + XCMainBuildResultsModuleGUID + + ToolbarConfigUserDefaultsMinorVersion + 2 + ToolbarConfiguration + xcode.toolbar.config.defaultV3 + + + ChosenToolbarItems + + XCToolbarPerspectiveControl + NSToolbarSeparatorItem + active-combo-popup + NSToolbarFlexibleSpaceItem + debugger-enable-breakpoints + build-and-go + com.apple.ide.PBXToolbarStopButton + debugger-restart-executable + debugger-pause + debugger-step-over + debugger-step-into + debugger-step-out + NSToolbarFlexibleSpaceItem + servicesModulebreakpoints + debugger-show-console-window + + ControllerClassBaseName + PBXDebugSessionModule + IconName + DebugTabIcon + Identifier + perspective.debug + IsVertical + 1 + Layout + + + ContentConfiguration + + PBXProjectModuleGUID + 1CCC7628064C1048000F2A68 + PBXProjectModuleLabel + Debugger Console + + GeometryConfiguration + + Frame + {{0, 0}, {810, 0}} + + Module + PBXDebugCLIModule + Proportion + 0% + + + ContentConfiguration + + Debugger + + HorizontalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {395, 213}} + {{395, 0}, {415, 213}} + + + VerticalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {810, 213}} + {{0, 213}, {810, 225}} + + + + LauncherConfigVersion + 8 + PBXProjectModuleGUID + 1CCC7629064C1048000F2A68 + PBXProjectModuleLabel + Debug + + GeometryConfiguration + + DebugConsoleDrawerSize + {100, 120} + DebugConsoleVisible + None + DebugConsoleWindowFrame + {{200, 200}, {500, 300}} + DebugSTDIOWindowFrame + {{200, 200}, {500, 300}} + Frame + {{0, 7}, {810, 438}} + + Module + PBXDebugSessionModule + Proportion + 443pt + + + Name + Debug + ServiceClasses + + XCModuleDock + XCModuleDock + PBXDebugCLIModule + PBXDebugSessionModule + XCConsole + + TableOfContents + + 1CC8E6A5069209BD00BB180A + 1CC8E6A6069209BD00BB180A + 1CCC7628064C1048000F2A68 + 1CCC7629064C1048000F2A68 + 1CC8E6A7069209BD00BB180A + + ToolbarConfiguration + xcode.toolbar.config.debugV3 + + + PerspectivesBarVisible + + ShelfIsVisible + + SourceDescription + file at '/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecification.xcperspec' + StatusbarIsVisible + + TimeStamp + 783621345.05743098 + ToolbarConfigUserDefaultsMinorVersion + 2 + ToolbarDisplayMode + 1 + ToolbarIsVisible + + ToolbarSizeMode + 2 + Type + Perspectives + UpdateMessage + + WindowJustification + 5 + WindowOrderList + + /Users/christopherjohnson/Desktop/X2Buss/X2Buss.xcodeproj + + WindowString + 620 311 810 487 0 0 1440 878 + WindowToolsV3 + + + Identifier + windowTool.debugger + Layout + + + Dock + + + ContentConfiguration + + Debugger + + HorizontalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {317, 164}} + {{317, 0}, {377, 164}} + + + VerticalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {694, 164}} + {{0, 164}, {694, 216}} + + + + LauncherConfigVersion + 8 + PBXProjectModuleGUID + 1C162984064C10D400B95A72 + PBXProjectModuleLabel + Debug - GLUTExamples (Underwater) + + GeometryConfiguration + + DebugConsoleDrawerSize + {100, 120} + DebugConsoleVisible + None + DebugConsoleWindowFrame + {{200, 200}, {500, 300}} + DebugSTDIOWindowFrame + {{200, 200}, {500, 300}} + Frame + {{0, 0}, {694, 380}} + RubberWindowFrame + 321 238 694 422 0 0 1440 878 + + Module + PBXDebugSessionModule + Proportion + 100% + + + Proportion + 100% + + + Name + Debugger + ServiceClasses + + PBXDebugSessionModule + + StatusbarIsVisible + 1 + TableOfContents + + 1CD10A99069EF8BA00B06720 + 1C0AD2AB069F1E9B00FABCE6 + 1C162984064C10D400B95A72 + 1C0AD2AC069F1E9B00FABCE6 + + ToolbarConfiguration + xcode.toolbar.config.debugV3 + WindowString + 321 238 694 422 0 0 1440 878 + WindowToolGUID + 1CD10A99069EF8BA00B06720 + WindowToolIsVisible + 0 + + + Identifier + windowTool.build + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528F0623707200166675 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CD052900623707200166675 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {500, 215}} + RubberWindowFrame + 192 257 500 500 0 0 1280 1002 + + Module + PBXNavigatorGroup + Proportion + 218pt + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + XCMainBuildResultsModuleGUID + PBXProjectModuleLabel + Build Results + + GeometryConfiguration + + Frame + {{0, 222}, {500, 236}} + RubberWindowFrame + 192 257 500 500 0 0 1280 1002 + + Module + PBXBuildResultsModule + Proportion + 236pt + + + Proportion + 458pt + + + Name + Build Results + ServiceClasses + + PBXBuildResultsModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C78EAA5065D492600B07095 + 1C78EAA6065D492600B07095 + 1CD0528F0623707200166675 + XCMainBuildResultsModuleGUID + + ToolbarConfiguration + xcode.toolbar.config.buildV3 + WindowString + 192 257 500 500 0 0 1280 1002 + + + Identifier + windowTool.find + Layout + + + Dock + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CDD528C0622207200134675 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CD0528D0623707200166675 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {781, 167}} + RubberWindowFrame + 62 385 781 470 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 781pt + + + Proportion + 50% + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528E0623707200166675 + PBXProjectModuleLabel + Project Find + + GeometryConfiguration + + Frame + {{8, 0}, {773, 254}} + RubberWindowFrame + 62 385 781 470 0 0 1440 878 + + Module + PBXProjectFindModule + Proportion + 50% + + + Proportion + 428pt + + + Name + Project Find + ServiceClasses + + PBXProjectFindModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C530D57069F1CE1000CFCEE + 1C530D58069F1CE1000CFCEE + 1C530D59069F1CE1000CFCEE + 1CDD528C0622207200134675 + 1C530D5A069F1CE1000CFCEE + 1CE0B1FE06471DED0097A5F4 + 1CD0528E0623707200166675 + + WindowString + 62 385 781 470 0 0 1440 878 + WindowToolGUID + 1C530D57069F1CE1000CFCEE + WindowToolIsVisible + 0 + + + Identifier + windowTool.snapshots + Layout + + + Dock + + + Module + XCSnapshotModule + Proportion + 100% + + + Proportion + 100% + + + Name + Snapshots + ServiceClasses + + XCSnapshotModule + + StatusbarIsVisible + Yes + ToolbarConfiguration + xcode.toolbar.config.snapshots + WindowString + 315 824 300 550 0 0 1440 878 + WindowToolIsVisible + Yes + + + Identifier + windowTool.debuggerConsole + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAAC065D492600B07095 + PBXProjectModuleLabel + Debugger Console + + GeometryConfiguration + + Frame + {{0, 0}, {700, 358}} + RubberWindowFrame + 149 87 700 400 0 0 1440 878 + + Module + PBXDebugCLIModule + Proportion + 358pt + + + Proportion + 358pt + + + Name + Debugger Console + ServiceClasses + + PBXDebugCLIModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C530D5B069F1CE1000CFCEE + 1C530D5C069F1CE1000CFCEE + 1C78EAAC065D492600B07095 + + ToolbarConfiguration + xcode.toolbar.config.consoleV3 + WindowString + 149 87 440 400 0 0 1440 878 + WindowToolGUID + 1C530D5B069F1CE1000CFCEE + WindowToolIsVisible + 0 + + + Identifier + windowTool.scm + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAB2065D492600B07095 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1C78EAB3065D492600B07095 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {452, 0}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + + Module + PBXNavigatorGroup + Proportion + 0pt + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD052920623707200166675 + PBXProjectModuleLabel + SCM + + GeometryConfiguration + + ConsoleFrame + {{0, 259}, {452, 0}} + Frame + {{0, 7}, {452, 259}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + TableConfiguration + + Status + 30 + FileName + 199 + Path + 197.09500122070312 + + TableFrame + {{0, 0}, {452, 250}} + + Module + PBXCVSModule + Proportion + 262pt + + + Proportion + 266pt + + + Name + SCM + ServiceClasses + + PBXCVSModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C78EAB4065D492600B07095 + 1C78EAB5065D492600B07095 + 1C78EAB2065D492600B07095 + 1CD052920623707200166675 + + ToolbarConfiguration + xcode.toolbar.config.scmV3 + WindowString + 743 379 452 308 0 0 1280 1002 + + + Identifier + windowTool.breakpoints + IsVertical + 0 + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C77FABC04509CD000000102 + + PBXProjectModuleGUID + 1CE0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + no + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 168 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 1C77FABC04509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {168, 350}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + 0 + + GeometryConfiguration + + Frame + {{0, 0}, {185, 368}} + GroupTreeTableConfiguration + + MainColumn + 168 + + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 185pt + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA1AED706398EBD00589147 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{190, 0}, {554, 368}} + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + XCDetailModule + Proportion + 554pt + + + Proportion + 368pt + + + MajorVersion + 3 + MinorVersion + 0 + Name + Breakpoints + ServiceClasses + + PBXSmartGroupTreeModule + XCDetailModule + + StatusbarIsVisible + 1 + TableOfContents + + 1CDDB66807F98D9800BB5817 + 1CDDB66907F98D9800BB5817 + 1CE0B1FE06471DED0097A5F4 + 1CA1AED706398EBD00589147 + + ToolbarConfiguration + xcode.toolbar.config.breakpointsV3 + WindowString + 315 424 744 409 0 0 1440 878 + WindowToolGUID + 1CDDB66807F98D9800BB5817 + WindowToolIsVisible + 1 + + + Identifier + windowTool.debugAnimator + Layout + + + Dock + + + Module + PBXNavigatorGroup + Proportion + 100% + + + Proportion + 100% + + + Name + Debug Visualizer + ServiceClasses + + PBXNavigatorGroup + + StatusbarIsVisible + 1 + ToolbarConfiguration + xcode.toolbar.config.debugAnimatorV3 + WindowString + 100 100 700 500 0 0 1280 1002 + + + Identifier + windowTool.bookmarks + Layout + + + Dock + + + Module + PBXBookmarksModule + Proportion + 166pt + + + Proportion + 166pt + + + Name + Bookmarks + ServiceClasses + + PBXBookmarksModule + + StatusbarIsVisible + 0 + WindowString + 538 42 401 187 0 0 1280 1002 + + + FirstTimeWindowDisplayed + + Identifier + windowTool.projectFormatConflicts + IsVertical + + Layout + + + Dock + + + BecomeActive + + ContentConfiguration + + PBXProjectModuleGUID + 8BCAE52E1D49920D0047D4BD + + GeometryConfiguration + + Frame + {{0, 0}, {472, 302}} + RubberWindowFrame + 569 378 472 322 0 0 1440 878 + + Module + XCProjectFormatConflictsModule + Proportion + 302pt + + + Proportion + 302pt + + + Name + Project Format Conflicts + ServiceClasses + + XCProjectFormatConflictsModule + + StatusbarIsVisible + + TableOfContents + + 8BCAE52F1D49920D0047D4BD + 8BCAE5301D49920D0047D4BD + 8BCAE52E1D49920D0047D4BD + + WindowContentMinSize + 450 300 + WindowString + 569 378 472 322 0 0 1440 878 + WindowToolGUID + 8BCAE52F1D49920D0047D4BD + WindowToolIsVisible + + + + Identifier + windowTool.classBrowser + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + OptionsSetName + Hierarchy, all classes + PBXProjectModuleGUID + 1CA6456E063B45B4001379D8 + PBXProjectModuleLabel + Class Browser - NSObject + + GeometryConfiguration + + ClassesFrame + {{0, 0}, {369, 96}} + ClassesTreeTableConfiguration + + PBXClassNameColumnIdentifier + 208 + PBXClassBookColumnIdentifier + 22 + + Frame + {{0, 0}, {616, 353}} + MembersFrame + {{0, 105}, {369, 395}} + MembersTreeTableConfiguration + + PBXMemberTypeIconColumnIdentifier + 22 + PBXMemberNameColumnIdentifier + 216 + PBXMemberTypeColumnIdentifier + 94 + PBXMemberBookColumnIdentifier + 22 + + PBXModuleWindowStatusBarHidden2 + 1 + RubberWindowFrame + 597 125 616 374 0 0 1280 1002 + + Module + PBXClassBrowserModule + Proportion + 354pt + + + Proportion + 354pt + + + Name + Class Browser + ServiceClasses + + PBXClassBrowserModule + + StatusbarIsVisible + 0 + TableOfContents + + 1C78EABA065D492600B07095 + 1C78EABB065D492600B07095 + 1CA6456E063B45B4001379D8 + + ToolbarConfiguration + xcode.toolbar.config.classbrowser + WindowString + 597 125 616 374 0 0 1280 1002 + + + Identifier + windowTool.refactoring + IncludeInToolsMenu + 0 + Layout + + + Dock + + + BecomeActive + 1 + GeometryConfiguration + + Frame + {0, 0}, {500, 335} + RubberWindowFrame + {0, 0}, {500, 335} + + Module + XCRefactoringModule + Proportion + 100% + + + Proportion + 100% + + + Name + Refactoring + ServiceClasses + + XCRefactoringModule + + WindowString + 200 200 500 356 0 0 1920 1200 + + + + diff --git a/plugins/MacVST/X2Buss/X2Buss.xcodeproj/project.pbxproj b/plugins/MacVST/X2Buss/X2Buss.xcodeproj/project.pbxproj new file mode 100755 index 000000000..6f91dcc34 --- /dev/null +++ b/plugins/MacVST/X2Buss/X2Buss.xcodeproj/project.pbxproj @@ -0,0 +1,2201 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 42; + objects = { + +/* Begin PBXBuildFile section */ + 2407DEB9089929BA00EB68BF /* X2Buss.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2407DEB6089929BA00EB68BF /* X2Buss.cpp */; }; + 245463B90991757100464AD3 /* X2Buss.h in Headers */ = {isa = PBXBuildFile; fileRef = 245463B80991757100464AD3 /* X2Buss.h */; }; + 24A202190F90D1DE003BB5A7 /* aeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FF910F90D1DD003BB5A7 /* aeffect.h */; }; + 24A2021A0F90D1DE003BB5A7 /* aeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FF920F90D1DD003BB5A7 /* aeffectx.h */; }; + 24A2021B0F90D1DE003BB5A7 /* vstfxstore.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FF930F90D1DD003BB5A7 /* vstfxstore.h */; }; + 24A2021D0F90D1DE003BB5A7 /* adelay.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FF990F90D1DD003BB5A7 /* adelay.h */; }; + 24A202240F90D1DE003BB5A7 /* sdeditor.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFA20F90D1DD003BB5A7 /* sdeditor.h */; }; + 24A202260F90D1DE003BB5A7 /* surrounddelay.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFA40F90D1DD003BB5A7 /* surrounddelay.h */; }; + 24A2022A0F90D1DE003BB5A7 /* again.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFAB0F90D1DD003BB5A7 /* again.h */; }; + 24A202330F90D1DE003BB5A7 /* gmnames.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFBF0F90D1DD003BB5A7 /* gmnames.h */; }; + 24A202350F90D1DE003BB5A7 /* vstxsynth.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFC10F90D1DD003BB5A7 /* vstxsynth.h */; }; + 24A202460F90D1DE003BB5A7 /* aeffeditor.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFD80F90D1DD003BB5A7 /* aeffeditor.h */; }; + 24A202480F90D1DE003BB5A7 /* audioeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFDA0F90D1DD003BB5A7 /* audioeffect.h */; }; + 24A2024A0F90D1DE003BB5A7 /* audioeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFDC0F90D1DD003BB5A7 /* audioeffectx.h */; }; + 24A2024D0F90D1DE003BB5A7 /* cw_vst_prefix.pch++ in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFE20F90D1DD003BB5A7 /* cw_vst_prefix.pch++ */; }; + 24A202510F90D1DE003BB5A7 /* xcode_au_prefix.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFEC0F90D1DD003BB5A7 /* xcode_au_prefix.h */; }; + 24A202520F90D1DE003BB5A7 /* xcode_vst_prefix.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFED0F90D1DD003BB5A7 /* xcode_vst_prefix.h */; }; + 24A202680F90D1DE003BB5A7 /* controlsgui.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A200050F90D1DD003BB5A7 /* controlsgui.h */; }; + 24A2026A0F90D1DE003BB5A7 /* pdrawtesteditor.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A200070F90D1DD003BB5A7 /* pdrawtesteditor.h */; }; + 24A2026C0F90D1DE003BB5A7 /* pdrawtesteffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A200090F90D1DD003BB5A7 /* pdrawtesteffect.h */; }; + 24A2026F0F90D1DE003BB5A7 /* pdrawtestview.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2000C0F90D1DD003BB5A7 /* pdrawtestview.h */; }; + 24A202710F90D1DE003BB5A7 /* pprimitivesviews.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2000E0F90D1DD003BB5A7 /* pprimitivesviews.h */; }; + 24A202780F90D1DE003BB5A7 /* aeffguieditor.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A200180F90D1DD003BB5A7 /* aeffguieditor.h */; }; + 24A2027A0F90D1DE003BB5A7 /* cfileselector.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2001A0F90D1DD003BB5A7 /* cfileselector.h */; }; + 24A2027D0F90D1DE003BB5A7 /* cscrollview.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2001D0F90D1DD003BB5A7 /* cscrollview.h */; }; + 24A2027F0F90D1DE003BB5A7 /* ctabview.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2001F0F90D1DD003BB5A7 /* ctabview.h */; }; + 24A203A50F90D1DE003BB5A7 /* plugguieditor.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A201470F90D1DE003BB5A7 /* plugguieditor.h */; }; + 24A203A70F90D1DE003BB5A7 /* vstcontrols.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A201490F90D1DE003BB5A7 /* vstcontrols.h */; }; + 24A203A90F90D1DE003BB5A7 /* vstgui.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2014B0F90D1DE003BB5A7 /* vstgui.h */; }; + 24A203AA0F90D1DE003BB5A7 /* vstkeycode.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2014C0F90D1DE003BB5A7 /* vstkeycode.h */; }; + 24A203AB0F90D1DE003BB5A7 /* vstplugscarbon.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2014D0F90D1DE003BB5A7 /* vstplugscarbon.h */; }; + 24A203AC0F90D1DE003BB5A7 /* vstplugsmac.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2014E0F90D1DE003BB5A7 /* vstplugsmac.h */; }; + 24A203AD0F90D1DE003BB5A7 /* vstplugsmacho.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2014F0F90D1DE003BB5A7 /* vstplugsmacho.h */; }; + 24A203AE0F90D1DE003BB5A7 /* vstplugsquartz.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A201500F90D1DE003BB5A7 /* vstplugsquartz.h */; }; + 24A203CB0F90D251003BB5A7 /* audioeffect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 24A2FFD90F90D1DD003BB5A7 /* audioeffect.cpp */; }; + 24A203CC0F90D251003BB5A7 /* audioeffectx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */; }; + 24A203CD0F90D251003BB5A7 /* vstplugmain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 24A2FFDD0F90D1DD003BB5A7 /* vstplugmain.cpp */; }; + 24CFB70407E7A0220081BD57 /* PkgInfo in Resources */ = {isa = PBXBuildFile; fileRef = 24CFB70307E7A0220081BD57 /* PkgInfo */; }; + 24D8287009A914000093AEF8 /* X2BussProc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 24D8286F09A914000093AEF8 /* X2BussProc.cpp */; }; + 24D8287F09A9164A0093AEF8 /* xcode_vst_prefix.h in Headers */ = {isa = PBXBuildFile; fileRef = 24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 24A203D60F90D272003BB5A7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 24A2FFB00F90D1DD003BB5A7 /* vst 2.4 examples.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 8D01CCD20486CAD60068D4B7; + remoteInfo = again; + }; + 24A203D80F90D272003BB5A7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 24A2FFB00F90D1DD003BB5A7 /* vst 2.4 examples.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = F4476974093DAE42008998C4; + remoteInfo = adelay; + }; + 24A203DA0F90D272003BB5A7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 24A2FFB00F90D1DD003BB5A7 /* vst 2.4 examples.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = F4FF52220929FBF500DDED7A; + remoteInfo = vstxsynth; + }; + 24A203DC0F90D272003BB5A7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 24A2FFB00F90D1DD003BB5A7 /* vst 2.4 examples.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = F4476A10093DCAF9008998C4; + remoteInfo = surrounddelay; + }; + 24A203DE0F90D272003BB5A7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 24A2FFB00F90D1DD003BB5A7 /* vst 2.4 examples.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = F4FF52F3092A312800DDED7A; + remoteInfo = minihost; + }; + 24A203E40F90D272003BB5A7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 24A2FFE50F90D1DD003BB5A7 /* drawtest.xcode */; + proxyType = 2; + remoteGlobalIDString = 8D01CCD20486CAD60068D4B7; + remoteInfo = AudioUnit; + }; + 24A203E60F90D272003BB5A7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 24A2FFE50F90D1DD003BB5A7 /* drawtest.xcode */; + proxyType = 2; + remoteGlobalIDString = F4C9F1D407B2320800010DAD; + remoteInfo = VST; + }; + 24A203EC0F90D272003BB5A7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 24A2FFE80F90D1DD003BB5A7 /* drawtest.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 8D01CCD20486CAD60068D4B7; + remoteInfo = AudioUnit; + }; + 24A203EE0F90D272003BB5A7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 24A2FFE80F90D1DD003BB5A7 /* drawtest.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = F4C9F1D407B2320800010DAD; + remoteInfo = VST; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 08EA7FFBFE8413EDC02AAC07 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = ""; }; + 2407DE920899296600EB68BF /* X2Buss.vst */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = X2Buss.vst; sourceTree = BUILT_PRODUCTS_DIR; }; + 2407DEB6089929BA00EB68BF /* X2Buss.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = X2Buss.cpp; path = source/X2Buss.cpp; sourceTree = ""; }; + 2434720A098313350063BBF1 /* QuickTime.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = /System/Library/Frameworks/QuickTime.framework; sourceTree = ""; }; + 245463B80991757100464AD3 /* X2Buss.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = X2Buss.h; path = source/X2Buss.h; sourceTree = ""; }; + 24A200000F90D1DD003BB5A7 /* bmp10014.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10014.bmp; sourceTree = ""; }; + 24A200010F90D1DD003BB5A7 /* bmp10015.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10015.bmp; sourceTree = ""; }; + 24A200020F90D1DD003BB5A7 /* bmp10016.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10016.bmp; sourceTree = ""; }; + 24A200040F90D1DD003BB5A7 /* controlsgui.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = controlsgui.cpp; sourceTree = ""; }; + 24A200050F90D1DD003BB5A7 /* controlsgui.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = controlsgui.h; sourceTree = ""; }; + 24A200060F90D1DD003BB5A7 /* pdrawtesteditor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pdrawtesteditor.cpp; sourceTree = ""; }; + 24A200070F90D1DD003BB5A7 /* pdrawtesteditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pdrawtesteditor.h; sourceTree = ""; }; + 24A200080F90D1DD003BB5A7 /* pdrawtesteffect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pdrawtesteffect.cpp; sourceTree = ""; }; + 24A200090F90D1DD003BB5A7 /* pdrawtesteffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pdrawtesteffect.h; sourceTree = ""; }; + 24A2000A0F90D1DD003BB5A7 /* pdrawtestmain.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pdrawtestmain.cpp; sourceTree = ""; }; + 24A2000B0F90D1DD003BB5A7 /* pdrawtestview.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pdrawtestview.cpp; sourceTree = ""; }; + 24A2000C0F90D1DD003BB5A7 /* pdrawtestview.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pdrawtestview.h; sourceTree = ""; }; + 24A2000D0F90D1DD003BB5A7 /* pprimitivesviews.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pprimitivesviews.cpp; sourceTree = ""; }; + 24A2000E0F90D1DD003BB5A7 /* pprimitivesviews.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pprimitivesviews.h; sourceTree = ""; }; + 24A200100F90D1DD003BB5A7 /* drawtest.def */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = drawtest.def; sourceTree = ""; }; + 24A200110F90D1DD003BB5A7 /* drawtest.rc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = drawtest.rc; sourceTree = ""; }; + 24A200120F90D1DD003BB5A7 /* drawtest.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = drawtest.vcproj; sourceTree = ""; }; + 24A200140F90D1DD003BB5A7 /* drawtest.dsp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = drawtest.dsp; sourceTree = ""; }; + 24A200150F90D1DD003BB5A7 /* drawtest.dsw */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = drawtest.dsw; sourceTree = ""; }; + 24A200170F90D1DD003BB5A7 /* aeffguieditor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = aeffguieditor.cpp; sourceTree = ""; }; + 24A200180F90D1DD003BB5A7 /* aeffguieditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffguieditor.h; sourceTree = ""; }; + 24A200190F90D1DD003BB5A7 /* cfileselector.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cfileselector.cpp; sourceTree = ""; }; + 24A2001A0F90D1DD003BB5A7 /* cfileselector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cfileselector.h; sourceTree = ""; }; + 24A2001B0F90D1DD003BB5A7 /* Changelog */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Changelog; sourceTree = ""; }; + 24A2001C0F90D1DD003BB5A7 /* cscrollview.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cscrollview.cpp; sourceTree = ""; }; + 24A2001D0F90D1DD003BB5A7 /* cscrollview.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cscrollview.h; sourceTree = ""; }; + 24A2001E0F90D1DD003BB5A7 /* ctabview.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ctabview.cpp; sourceTree = ""; }; + 24A2001F0F90D1DD003BB5A7 /* ctabview.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ctabview.h; sourceTree = ""; }; + 24A200220F90D1DD003BB5A7 /* aeffguieditor_8cpp.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = aeffguieditor_8cpp.html; sourceTree = ""; }; + 24A200230F90D1DD003BB5A7 /* aeffguieditor_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = aeffguieditor_8h.html; sourceTree = ""; }; + 24A200240F90D1DD003BB5A7 /* annotated.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = annotated.html; sourceTree = ""; }; + 24A200250F90D1DD003BB5A7 /* cfileselector_8cpp.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = cfileselector_8cpp.html; sourceTree = ""; }; + 24A200260F90D1DD003BB5A7 /* cfileselector_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = cfileselector_8h.html; sourceTree = ""; }; + 24A200270F90D1DD003BB5A7 /* class_a_eff_g_u_i_editor-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_a_eff_g_u_i_editor-members.html"; sourceTree = ""; }; + 24A200280F90D1DD003BB5A7 /* class_a_eff_g_u_i_editor.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_a_eff_g_u_i_editor.html; sourceTree = ""; }; + 24A200290F90D1DD003BB5A7 /* class_c_anim_knob-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_anim_knob-members.html"; sourceTree = ""; }; + 24A2002A0F90D1DD003BB5A7 /* class_c_anim_knob.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_anim_knob.html; sourceTree = ""; }; + 24A2002B0F90D1DD003BB5A7 /* class_c_anim_knob.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_anim_knob.png; sourceTree = ""; }; + 24A2002C0F90D1DD003BB5A7 /* class_c_attribute_list_entry-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_attribute_list_entry-members.html"; sourceTree = ""; }; + 24A2002D0F90D1DD003BB5A7 /* class_c_attribute_list_entry.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_attribute_list_entry.html; sourceTree = ""; }; + 24A2002E0F90D1DD003BB5A7 /* class_c_auto_animation-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_auto_animation-members.html"; sourceTree = ""; }; + 24A2002F0F90D1DD003BB5A7 /* class_c_auto_animation.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_auto_animation.html; sourceTree = ""; }; + 24A200300F90D1DD003BB5A7 /* class_c_auto_animation.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_auto_animation.png; sourceTree = ""; }; + 24A200310F90D1DD003BB5A7 /* class_c_bitmap-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_bitmap-members.html"; sourceTree = ""; }; + 24A200320F90D1DD003BB5A7 /* class_c_bitmap.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_bitmap.html; sourceTree = ""; }; + 24A200330F90D1DD003BB5A7 /* class_c_bitmap.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_bitmap.png; sourceTree = ""; }; + 24A200340F90D1DD003BB5A7 /* class_c_c_view-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_c_view-members.html"; sourceTree = ""; }; + 24A200350F90D1DD003BB5A7 /* class_c_c_view.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_c_view.html; sourceTree = ""; }; + 24A200360F90D1DD003BB5A7 /* class_c_control-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_control-members.html"; sourceTree = ""; }; + 24A200370F90D1DD003BB5A7 /* class_c_control.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_control.html; sourceTree = ""; }; + 24A200380F90D1DD003BB5A7 /* class_c_control.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_control.png; sourceTree = ""; }; + 24A200390F90D1DD003BB5A7 /* class_c_control_listener-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_control_listener-members.html"; sourceTree = ""; }; + 24A2003A0F90D1DD003BB5A7 /* class_c_control_listener.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_control_listener.html; sourceTree = ""; }; + 24A2003B0F90D1DD003BB5A7 /* class_c_control_listener.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_control_listener.png; sourceTree = ""; }; + 24A2003C0F90D1DD003BB5A7 /* class_c_drag_container-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_drag_container-members.html"; sourceTree = ""; }; + 24A2003D0F90D1DD003BB5A7 /* class_c_drag_container.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_drag_container.html; sourceTree = ""; }; + 24A2003E0F90D1DD003BB5A7 /* class_c_drag_container.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_drag_container.png; sourceTree = ""; }; + 24A2003F0F90D1DD003BB5A7 /* class_c_draw_context-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_draw_context-members.html"; sourceTree = ""; }; + 24A200400F90D1DD003BB5A7 /* class_c_draw_context.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_draw_context.html; sourceTree = ""; }; + 24A200410F90D1DD003BB5A7 /* class_c_draw_context.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_draw_context.png; sourceTree = ""; }; + 24A200420F90D1DD003BB5A7 /* class_c_file_selector-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_file_selector-members.html"; sourceTree = ""; }; + 24A200430F90D1DD003BB5A7 /* class_c_file_selector.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_file_selector.html; sourceTree = ""; }; + 24A200440F90D1DD003BB5A7 /* class_c_frame-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_frame-members.html"; sourceTree = ""; }; + 24A200450F90D1DD003BB5A7 /* class_c_frame.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_frame.html; sourceTree = ""; }; + 24A200460F90D1DD003BB5A7 /* class_c_frame.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_frame.png; sourceTree = ""; }; + 24A200470F90D1DD003BB5A7 /* class_c_horizontal_slider-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_horizontal_slider-members.html"; sourceTree = ""; }; + 24A200480F90D1DD003BB5A7 /* class_c_horizontal_slider.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_horizontal_slider.html; sourceTree = ""; }; + 24A200490F90D1DD003BB5A7 /* class_c_horizontal_slider.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_horizontal_slider.png; sourceTree = ""; }; + 24A2004A0F90D1DD003BB5A7 /* class_c_horizontal_switch-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_horizontal_switch-members.html"; sourceTree = ""; }; + 24A2004B0F90D1DD003BB5A7 /* class_c_horizontal_switch.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_horizontal_switch.html; sourceTree = ""; }; + 24A2004C0F90D1DD003BB5A7 /* class_c_horizontal_switch.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_horizontal_switch.png; sourceTree = ""; }; + 24A2004D0F90D1DD003BB5A7 /* class_c_kick_button-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_kick_button-members.html"; sourceTree = ""; }; + 24A2004E0F90D1DD003BB5A7 /* class_c_kick_button.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_kick_button.html; sourceTree = ""; }; + 24A2004F0F90D1DD003BB5A7 /* class_c_kick_button.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_kick_button.png; sourceTree = ""; }; + 24A200500F90D1DD003BB5A7 /* class_c_knob-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_knob-members.html"; sourceTree = ""; }; + 24A200510F90D1DD003BB5A7 /* class_c_knob.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_knob.html; sourceTree = ""; }; + 24A200520F90D1DD003BB5A7 /* class_c_knob.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_knob.png; sourceTree = ""; }; + 24A200530F90D1DD003BB5A7 /* class_c_movie_bitmap-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_movie_bitmap-members.html"; sourceTree = ""; }; + 24A200540F90D1DD003BB5A7 /* class_c_movie_bitmap.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_movie_bitmap.html; sourceTree = ""; }; + 24A200550F90D1DD003BB5A7 /* class_c_movie_bitmap.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_movie_bitmap.png; sourceTree = ""; }; + 24A200560F90D1DD003BB5A7 /* class_c_movie_button-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_movie_button-members.html"; sourceTree = ""; }; + 24A200570F90D1DD003BB5A7 /* class_c_movie_button.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_movie_button.html; sourceTree = ""; }; + 24A200580F90D1DD003BB5A7 /* class_c_movie_button.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_movie_button.png; sourceTree = ""; }; + 24A200590F90D1DD003BB5A7 /* class_c_offscreen_context-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_offscreen_context-members.html"; sourceTree = ""; }; + 24A2005A0F90D1DD003BB5A7 /* class_c_offscreen_context.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_offscreen_context.html; sourceTree = ""; }; + 24A2005B0F90D1DD003BB5A7 /* class_c_offscreen_context.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_offscreen_context.png; sourceTree = ""; }; + 24A2005C0F90D1DD003BB5A7 /* class_c_on_off_button-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_on_off_button-members.html"; sourceTree = ""; }; + 24A2005D0F90D1DD003BB5A7 /* class_c_on_off_button.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_on_off_button.html; sourceTree = ""; }; + 24A2005E0F90D1DD003BB5A7 /* class_c_on_off_button.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_on_off_button.png; sourceTree = ""; }; + 24A2005F0F90D1DD003BB5A7 /* class_c_option_menu-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_option_menu-members.html"; sourceTree = ""; }; + 24A200600F90D1DD003BB5A7 /* class_c_option_menu.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_option_menu.html; sourceTree = ""; }; + 24A200610F90D1DD003BB5A7 /* class_c_option_menu.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_option_menu.png; sourceTree = ""; }; + 24A200620F90D1DD003BB5A7 /* class_c_option_menu_scheme-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_option_menu_scheme-members.html"; sourceTree = ""; }; + 24A200630F90D1DD003BB5A7 /* class_c_option_menu_scheme.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_option_menu_scheme.html; sourceTree = ""; }; + 24A200640F90D1DD003BB5A7 /* class_c_option_menu_scheme.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_option_menu_scheme.png; sourceTree = ""; }; + 24A200650F90D1DD003BB5A7 /* class_c_param_display-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_param_display-members.html"; sourceTree = ""; }; + 24A200660F90D1DD003BB5A7 /* class_c_param_display.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_param_display.html; sourceTree = ""; }; + 24A200670F90D1DD003BB5A7 /* class_c_param_display.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_param_display.png; sourceTree = ""; }; + 24A200680F90D1DD003BB5A7 /* class_c_reference_counter-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_reference_counter-members.html"; sourceTree = ""; }; + 24A200690F90D1DD003BB5A7 /* class_c_reference_counter.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_reference_counter.html; sourceTree = ""; }; + 24A2006A0F90D1DD003BB5A7 /* class_c_reference_counter.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_reference_counter.png; sourceTree = ""; }; + 24A2006B0F90D1DD003BB5A7 /* class_c_rocker_switch-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_rocker_switch-members.html"; sourceTree = ""; }; + 24A2006C0F90D1DD003BB5A7 /* class_c_rocker_switch.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_rocker_switch.html; sourceTree = ""; }; + 24A2006D0F90D1DD003BB5A7 /* class_c_rocker_switch.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_rocker_switch.png; sourceTree = ""; }; + 24A2006E0F90D1DD003BB5A7 /* class_c_scroll_container-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_scroll_container-members.html"; sourceTree = ""; }; + 24A2006F0F90D1DD003BB5A7 /* class_c_scroll_container.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_scroll_container.html; sourceTree = ""; }; + 24A200700F90D1DD003BB5A7 /* class_c_scroll_container.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_scroll_container.png; sourceTree = ""; }; + 24A200710F90D1DD003BB5A7 /* class_c_scroll_view-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_scroll_view-members.html"; sourceTree = ""; }; + 24A200720F90D1DD003BB5A7 /* class_c_scroll_view.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_scroll_view.html; sourceTree = ""; }; + 24A200730F90D1DD003BB5A7 /* class_c_scroll_view.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_scroll_view.png; sourceTree = ""; }; + 24A200740F90D1DD003BB5A7 /* class_c_scrollbar-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_scrollbar-members.html"; sourceTree = ""; }; + 24A200750F90D1DD003BB5A7 /* class_c_scrollbar.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_scrollbar.html; sourceTree = ""; }; + 24A200760F90D1DD003BB5A7 /* class_c_scrollbar.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_scrollbar.png; sourceTree = ""; }; + 24A200770F90D1DD003BB5A7 /* class_c_slider-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_slider-members.html"; sourceTree = ""; }; + 24A200780F90D1DD003BB5A7 /* class_c_slider.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_slider.html; sourceTree = ""; }; + 24A200790F90D1DD003BB5A7 /* class_c_slider.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_slider.png; sourceTree = ""; }; + 24A2007A0F90D1DD003BB5A7 /* class_c_special_digit-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_special_digit-members.html"; sourceTree = ""; }; + 24A2007B0F90D1DD003BB5A7 /* class_c_special_digit.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_special_digit.html; sourceTree = ""; }; + 24A2007C0F90D1DD003BB5A7 /* class_c_special_digit.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_special_digit.png; sourceTree = ""; }; + 24A2007D0F90D1DD003BB5A7 /* class_c_splash_screen-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_splash_screen-members.html"; sourceTree = ""; }; + 24A2007E0F90D1DD003BB5A7 /* class_c_splash_screen.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_splash_screen.html; sourceTree = ""; }; + 24A2007F0F90D1DD003BB5A7 /* class_c_splash_screen.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_splash_screen.png; sourceTree = ""; }; + 24A200800F90D1DD003BB5A7 /* class_c_splash_screen_view-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_splash_screen_view-members.html"; sourceTree = ""; }; + 24A200810F90D1DD003BB5A7 /* class_c_splash_screen_view.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_splash_screen_view.html; sourceTree = ""; }; + 24A200820F90D1DD003BB5A7 /* class_c_splash_screen_view.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_splash_screen_view.png; sourceTree = ""; }; + 24A200830F90D1DD003BB5A7 /* class_c_tab_button-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_tab_button-members.html"; sourceTree = ""; }; + 24A200840F90D1DD003BB5A7 /* class_c_tab_button.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_tab_button.html; sourceTree = ""; }; + 24A200850F90D1DD003BB5A7 /* class_c_tab_button.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_tab_button.png; sourceTree = ""; }; + 24A200860F90D1DD003BB5A7 /* class_c_tab_child_view-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_tab_child_view-members.html"; sourceTree = ""; }; + 24A200870F90D1DD003BB5A7 /* class_c_tab_child_view.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_tab_child_view.html; sourceTree = ""; }; + 24A200880F90D1DD003BB5A7 /* class_c_tab_child_view.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_tab_child_view.png; sourceTree = ""; }; + 24A200890F90D1DD003BB5A7 /* class_c_tab_view-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_tab_view-members.html"; sourceTree = ""; }; + 24A2008A0F90D1DD003BB5A7 /* class_c_tab_view.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_tab_view.html; sourceTree = ""; }; + 24A2008B0F90D1DD003BB5A7 /* class_c_tab_view.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_tab_view.png; sourceTree = ""; }; + 24A2008C0F90D1DD003BB5A7 /* class_c_text_edit-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_text_edit-members.html"; sourceTree = ""; }; + 24A2008D0F90D1DD003BB5A7 /* class_c_text_edit.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_text_edit.html; sourceTree = ""; }; + 24A2008E0F90D1DD003BB5A7 /* class_c_text_edit.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_text_edit.png; sourceTree = ""; }; + 24A2008F0F90D1DD003BB5A7 /* class_c_text_label-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_text_label-members.html"; sourceTree = ""; }; + 24A200900F90D1DD003BB5A7 /* class_c_text_label.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_text_label.html; sourceTree = ""; }; + 24A200910F90D1DD003BB5A7 /* class_c_text_label.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_text_label.png; sourceTree = ""; }; + 24A200920F90D1DD003BB5A7 /* class_c_vertical_slider-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_vertical_slider-members.html"; sourceTree = ""; }; + 24A200930F90D1DD003BB5A7 /* class_c_vertical_slider.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_vertical_slider.html; sourceTree = ""; }; + 24A200940F90D1DD003BB5A7 /* class_c_vertical_slider.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_vertical_slider.png; sourceTree = ""; }; + 24A200950F90D1DD003BB5A7 /* class_c_vertical_switch-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_vertical_switch-members.html"; sourceTree = ""; }; + 24A200960F90D1DD003BB5A7 /* class_c_vertical_switch.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_vertical_switch.html; sourceTree = ""; }; + 24A200970F90D1DD003BB5A7 /* class_c_vertical_switch.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_vertical_switch.png; sourceTree = ""; }; + 24A200980F90D1DD003BB5A7 /* class_c_view-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_view-members.html"; sourceTree = ""; }; + 24A200990F90D1DD003BB5A7 /* class_c_view.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_view.html; sourceTree = ""; }; + 24A2009A0F90D1DD003BB5A7 /* class_c_view.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_view.png; sourceTree = ""; }; + 24A2009B0F90D1DD003BB5A7 /* class_c_view_container-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_view_container-members.html"; sourceTree = ""; }; + 24A2009C0F90D1DD003BB5A7 /* class_c_view_container.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_view_container.html; sourceTree = ""; }; + 24A2009D0F90D1DD003BB5A7 /* class_c_view_container.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_view_container.png; sourceTree = ""; }; + 24A2009E0F90D1DD003BB5A7 /* class_c_vu_meter-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_vu_meter-members.html"; sourceTree = ""; }; + 24A2009F0F90D1DD003BB5A7 /* class_c_vu_meter.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_vu_meter.html; sourceTree = ""; }; + 24A200A00F90D1DD003BB5A7 /* class_c_vu_meter.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_vu_meter.png; sourceTree = ""; }; + 24A200A10F90D1DD003BB5A7 /* class_i_scrollbar_drawer-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_i_scrollbar_drawer-members.html"; sourceTree = ""; }; + 24A200A20F90D1DD003BB5A7 /* class_i_scrollbar_drawer.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_i_scrollbar_drawer.html; sourceTree = ""; }; + 24A200A30F90D1DD003BB5A7 /* class_plugin_g_u_i_editor-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_plugin_g_u_i_editor-members.html"; sourceTree = ""; }; + 24A200A40F90D1DD003BB5A7 /* class_plugin_g_u_i_editor.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_plugin_g_u_i_editor.html; sourceTree = ""; }; + 24A200A50F90D1DD003BB5A7 /* cscrollview_8cpp.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = cscrollview_8cpp.html; sourceTree = ""; }; + 24A200A60F90D1DD003BB5A7 /* cscrollview_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = cscrollview_8h.html; sourceTree = ""; }; + 24A200A70F90D1DD003BB5A7 /* ctabview_8cpp.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = ctabview_8cpp.html; sourceTree = ""; }; + 24A200A80F90D1DD003BB5A7 /* ctabview_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = ctabview_8h.html; sourceTree = ""; }; + 24A200A90F90D1DD003BB5A7 /* deprecated.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = deprecated.html; sourceTree = ""; }; + 24A200AA0F90D1DD003BB5A7 /* doc_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = doc_8h.html; sourceTree = ""; }; + 24A200AB0F90D1DD003BB5A7 /* doxygen.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = doxygen.css; sourceTree = ""; }; + 24A200AC0F90D1DD003BB5A7 /* doxygen.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = doxygen.png; sourceTree = ""; }; + 24A200AD0F90D1DD003BB5A7 /* files.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = files.html; sourceTree = ""; }; + 24A200AE0F90D1DD003BB5A7 /* ftv2blank.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2blank.png; sourceTree = ""; }; + 24A200AF0F90D1DD003BB5A7 /* ftv2doc.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2doc.png; sourceTree = ""; }; + 24A200B00F90D1DD003BB5A7 /* ftv2folderclosed.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2folderclosed.png; sourceTree = ""; }; + 24A200B10F90D1DE003BB5A7 /* ftv2folderopen.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2folderopen.png; sourceTree = ""; }; + 24A200B20F90D1DE003BB5A7 /* ftv2lastnode.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2lastnode.png; sourceTree = ""; }; + 24A200B30F90D1DE003BB5A7 /* ftv2link.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2link.png; sourceTree = ""; }; + 24A200B40F90D1DE003BB5A7 /* ftv2mlastnode.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2mlastnode.png; sourceTree = ""; }; + 24A200B50F90D1DE003BB5A7 /* ftv2mnode.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2mnode.png; sourceTree = ""; }; + 24A200B60F90D1DE003BB5A7 /* ftv2node.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2node.png; sourceTree = ""; }; + 24A200B70F90D1DE003BB5A7 /* ftv2plastnode.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2plastnode.png; sourceTree = ""; }; + 24A200B80F90D1DE003BB5A7 /* ftv2pnode.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2pnode.png; sourceTree = ""; }; + 24A200B90F90D1DE003BB5A7 /* ftv2vertline.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2vertline.png; sourceTree = ""; }; + 24A200BA0F90D1DE003BB5A7 /* functions.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions.html; sourceTree = ""; }; + 24A200BB0F90D1DE003BB5A7 /* functions_0x62.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x62.html; sourceTree = ""; }; + 24A200BC0F90D1DE003BB5A7 /* functions_0x63.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x63.html; sourceTree = ""; }; + 24A200BD0F90D1DE003BB5A7 /* functions_0x64.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x64.html; sourceTree = ""; }; + 24A200BE0F90D1DE003BB5A7 /* functions_0x65.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x65.html; sourceTree = ""; }; + 24A200BF0F90D1DE003BB5A7 /* functions_0x66.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x66.html; sourceTree = ""; }; + 24A200C00F90D1DE003BB5A7 /* functions_0x67.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x67.html; sourceTree = ""; }; + 24A200C10F90D1DE003BB5A7 /* functions_0x68.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x68.html; sourceTree = ""; }; + 24A200C20F90D1DE003BB5A7 /* functions_0x69.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x69.html; sourceTree = ""; }; + 24A200C30F90D1DE003BB5A7 /* functions_0x6b.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x6b.html; sourceTree = ""; }; + 24A200C40F90D1DE003BB5A7 /* functions_0x6c.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x6c.html; sourceTree = ""; }; + 24A200C50F90D1DE003BB5A7 /* functions_0x6d.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x6d.html; sourceTree = ""; }; + 24A200C60F90D1DE003BB5A7 /* functions_0x6e.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x6e.html; sourceTree = ""; }; + 24A200C70F90D1DE003BB5A7 /* functions_0x6f.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x6f.html; sourceTree = ""; }; + 24A200C80F90D1DE003BB5A7 /* functions_0x70.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x70.html; sourceTree = ""; }; + 24A200C90F90D1DE003BB5A7 /* functions_0x72.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x72.html; sourceTree = ""; }; + 24A200CA0F90D1DE003BB5A7 /* functions_0x73.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x73.html; sourceTree = ""; }; + 24A200CB0F90D1DE003BB5A7 /* functions_0x74.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x74.html; sourceTree = ""; }; + 24A200CC0F90D1DE003BB5A7 /* functions_0x75.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x75.html; sourceTree = ""; }; + 24A200CD0F90D1DE003BB5A7 /* functions_0x76.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x76.html; sourceTree = ""; }; + 24A200CE0F90D1DE003BB5A7 /* functions_0x77.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x77.html; sourceTree = ""; }; + 24A200CF0F90D1DE003BB5A7 /* functions_0x78.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x78.html; sourceTree = ""; }; + 24A200D00F90D1DE003BB5A7 /* functions_0x79.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x79.html; sourceTree = ""; }; + 24A200D10F90D1DE003BB5A7 /* functions_0x7a.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x7a.html; sourceTree = ""; }; + 24A200D20F90D1DE003BB5A7 /* functions_0x7e.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x7e.html; sourceTree = ""; }; + 24A200D30F90D1DE003BB5A7 /* functions_eval.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_eval.html; sourceTree = ""; }; + 24A200D40F90D1DE003BB5A7 /* functions_func.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func.html; sourceTree = ""; }; + 24A200D50F90D1DE003BB5A7 /* functions_func_0x62.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x62.html; sourceTree = ""; }; + 24A200D60F90D1DE003BB5A7 /* functions_func_0x63.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x63.html; sourceTree = ""; }; + 24A200D70F90D1DE003BB5A7 /* functions_func_0x64.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x64.html; sourceTree = ""; }; + 24A200D80F90D1DE003BB5A7 /* functions_func_0x65.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x65.html; sourceTree = ""; }; + 24A200D90F90D1DE003BB5A7 /* functions_func_0x66.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x66.html; sourceTree = ""; }; + 24A200DA0F90D1DE003BB5A7 /* functions_func_0x67.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x67.html; sourceTree = ""; }; + 24A200DB0F90D1DE003BB5A7 /* functions_func_0x68.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x68.html; sourceTree = ""; }; + 24A200DC0F90D1DE003BB5A7 /* functions_func_0x69.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x69.html; sourceTree = ""; }; + 24A200DD0F90D1DE003BB5A7 /* functions_func_0x6c.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x6c.html; sourceTree = ""; }; + 24A200DE0F90D1DE003BB5A7 /* functions_func_0x6d.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x6d.html; sourceTree = ""; }; + 24A200DF0F90D1DE003BB5A7 /* functions_func_0x6e.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x6e.html; sourceTree = ""; }; + 24A200E00F90D1DE003BB5A7 /* functions_func_0x6f.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x6f.html; sourceTree = ""; }; + 24A200E10F90D1DE003BB5A7 /* functions_func_0x70.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x70.html; sourceTree = ""; }; + 24A200E20F90D1DE003BB5A7 /* functions_func_0x72.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x72.html; sourceTree = ""; }; + 24A200E30F90D1DE003BB5A7 /* functions_func_0x73.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x73.html; sourceTree = ""; }; + 24A200E40F90D1DE003BB5A7 /* functions_func_0x74.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x74.html; sourceTree = ""; }; + 24A200E50F90D1DE003BB5A7 /* functions_func_0x75.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x75.html; sourceTree = ""; }; + 24A200E60F90D1DE003BB5A7 /* functions_func_0x76.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x76.html; sourceTree = ""; }; + 24A200E70F90D1DE003BB5A7 /* functions_func_0x77.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x77.html; sourceTree = ""; }; + 24A200E80F90D1DE003BB5A7 /* functions_func_0x7e.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x7e.html; sourceTree = ""; }; + 24A200E90F90D1DE003BB5A7 /* functions_rela.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_rela.html; sourceTree = ""; }; + 24A200EA0F90D1DE003BB5A7 /* functions_vars.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars.html; sourceTree = ""; }; + 24A200EB0F90D1DE003BB5A7 /* functions_vars_0x62.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x62.html; sourceTree = ""; }; + 24A200EC0F90D1DE003BB5A7 /* functions_vars_0x63.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x63.html; sourceTree = ""; }; + 24A200ED0F90D1DE003BB5A7 /* functions_vars_0x64.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x64.html; sourceTree = ""; }; + 24A200EE0F90D1DE003BB5A7 /* functions_vars_0x65.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x65.html; sourceTree = ""; }; + 24A200EF0F90D1DE003BB5A7 /* functions_vars_0x66.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x66.html; sourceTree = ""; }; + 24A200F00F90D1DE003BB5A7 /* functions_vars_0x67.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x67.html; sourceTree = ""; }; + 24A200F10F90D1DE003BB5A7 /* functions_vars_0x68.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x68.html; sourceTree = ""; }; + 24A200F20F90D1DE003BB5A7 /* functions_vars_0x69.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x69.html; sourceTree = ""; }; + 24A200F30F90D1DE003BB5A7 /* functions_vars_0x6b.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x6b.html; sourceTree = ""; }; + 24A200F40F90D1DE003BB5A7 /* functions_vars_0x6c.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x6c.html; sourceTree = ""; }; + 24A200F50F90D1DE003BB5A7 /* functions_vars_0x6d.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x6d.html; sourceTree = ""; }; + 24A200F60F90D1DE003BB5A7 /* functions_vars_0x6e.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x6e.html; sourceTree = ""; }; + 24A200F70F90D1DE003BB5A7 /* functions_vars_0x6f.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x6f.html; sourceTree = ""; }; + 24A200F80F90D1DE003BB5A7 /* functions_vars_0x70.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x70.html; sourceTree = ""; }; + 24A200F90F90D1DE003BB5A7 /* functions_vars_0x72.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x72.html; sourceTree = ""; }; + 24A200FA0F90D1DE003BB5A7 /* functions_vars_0x73.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x73.html; sourceTree = ""; }; + 24A200FB0F90D1DE003BB5A7 /* functions_vars_0x74.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x74.html; sourceTree = ""; }; + 24A200FC0F90D1DE003BB5A7 /* functions_vars_0x75.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x75.html; sourceTree = ""; }; + 24A200FD0F90D1DE003BB5A7 /* functions_vars_0x76.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x76.html; sourceTree = ""; }; + 24A200FE0F90D1DE003BB5A7 /* functions_vars_0x77.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x77.html; sourceTree = ""; }; + 24A200FF0F90D1DE003BB5A7 /* functions_vars_0x78.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x78.html; sourceTree = ""; }; + 24A201000F90D1DE003BB5A7 /* functions_vars_0x79.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x79.html; sourceTree = ""; }; + 24A201010F90D1DE003BB5A7 /* functions_vars_0x7a.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x7a.html; sourceTree = ""; }; + 24A201020F90D1DE003BB5A7 /* globals.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals.html; sourceTree = ""; }; + 24A201030F90D1DE003BB5A7 /* globals_0x61.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x61.html; sourceTree = ""; }; + 24A201040F90D1DE003BB5A7 /* globals_0x62.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x62.html; sourceTree = ""; }; + 24A201050F90D1DE003BB5A7 /* globals_0x63.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x63.html; sourceTree = ""; }; + 24A201060F90D1DE003BB5A7 /* globals_0x65.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x65.html; sourceTree = ""; }; + 24A201070F90D1DE003BB5A7 /* globals_0x66.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x66.html; sourceTree = ""; }; + 24A201080F90D1DE003BB5A7 /* globals_0x67.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x67.html; sourceTree = ""; }; + 24A201090F90D1DE003BB5A7 /* globals_0x6b.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x6b.html; sourceTree = ""; }; + 24A2010A0F90D1DE003BB5A7 /* globals_0x6d.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x6d.html; sourceTree = ""; }; + 24A2010B0F90D1DE003BB5A7 /* globals_0x6e.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x6e.html; sourceTree = ""; }; + 24A2010C0F90D1DE003BB5A7 /* globals_0x6f.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x6f.html; sourceTree = ""; }; + 24A2010D0F90D1DE003BB5A7 /* globals_0x71.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x71.html; sourceTree = ""; }; + 24A2010E0F90D1DE003BB5A7 /* globals_0x72.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x72.html; sourceTree = ""; }; + 24A2010F0F90D1DE003BB5A7 /* globals_0x73.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x73.html; sourceTree = ""; }; + 24A201100F90D1DE003BB5A7 /* globals_0x74.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x74.html; sourceTree = ""; }; + 24A201110F90D1DE003BB5A7 /* globals_0x75.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x75.html; sourceTree = ""; }; + 24A201120F90D1DE003BB5A7 /* globals_0x76.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x76.html; sourceTree = ""; }; + 24A201130F90D1DE003BB5A7 /* globals_0x77.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x77.html; sourceTree = ""; }; + 24A201140F90D1DE003BB5A7 /* globals_defs.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_defs.html; sourceTree = ""; }; + 24A201150F90D1DE003BB5A7 /* globals_enum.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_enum.html; sourceTree = ""; }; + 24A201160F90D1DE003BB5A7 /* globals_eval.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_eval.html; sourceTree = ""; }; + 24A201170F90D1DE003BB5A7 /* globals_type.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_type.html; sourceTree = ""; }; + 24A201180F90D1DE003BB5A7 /* globals_vars.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_vars.html; sourceTree = ""; }; + 24A201190F90D1DE003BB5A7 /* hierarchy.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = hierarchy.html; sourceTree = ""; }; + 24A2011A0F90D1DE003BB5A7 /* index.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = index.html; sourceTree = ""; }; + 24A2011B0F90D1DE003BB5A7 /* intro.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = intro.html; sourceTree = ""; }; + 24A2011C0F90D1DE003BB5A7 /* license.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = license.html; sourceTree = ""; }; + 24A2011D0F90D1DE003BB5A7 /* maceditor.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = maceditor.html; sourceTree = ""; }; + 24A2011E0F90D1DE003BB5A7 /* main.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = main.html; sourceTree = ""; }; + 24A2011F0F90D1DE003BB5A7 /* others.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = others.html; sourceTree = ""; }; + 24A201200F90D1DE003BB5A7 /* pages.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = pages.html; sourceTree = ""; }; + 24A201210F90D1DE003BB5A7 /* plugguieditor_8cpp.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = plugguieditor_8cpp.html; sourceTree = ""; }; + 24A201220F90D1DE003BB5A7 /* plugguieditor_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = plugguieditor_8h.html; sourceTree = ""; }; + 24A201230F90D1DE003BB5A7 /* sequences.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = sequences.html; sourceTree = ""; }; + 24A201240F90D1DE003BB5A7 /* struct_c_color-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "struct_c_color-members.html"; sourceTree = ""; }; + 24A201250F90D1DE003BB5A7 /* struct_c_color.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = struct_c_color.html; sourceTree = ""; }; + 24A201260F90D1DE003BB5A7 /* struct_c_point-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "struct_c_point-members.html"; sourceTree = ""; }; + 24A201270F90D1DE003BB5A7 /* struct_c_point.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = struct_c_point.html; sourceTree = ""; }; + 24A201280F90D1DE003BB5A7 /* struct_c_rect-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "struct_c_rect-members.html"; sourceTree = ""; }; + 24A201290F90D1DE003BB5A7 /* struct_c_rect.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = struct_c_rect.html; sourceTree = ""; }; + 24A2012A0F90D1DE003BB5A7 /* struct_e_rect-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "struct_e_rect-members.html"; sourceTree = ""; }; + 24A2012B0F90D1DE003BB5A7 /* struct_e_rect.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = struct_e_rect.html; sourceTree = ""; }; + 24A2012C0F90D1DE003BB5A7 /* struct_vst_file_select-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "struct_vst_file_select-members.html"; sourceTree = ""; }; + 24A2012D0F90D1DE003BB5A7 /* struct_vst_file_select.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = struct_vst_file_select.html; sourceTree = ""; }; + 24A2012E0F90D1DE003BB5A7 /* struct_vst_file_type-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "struct_vst_file_type-members.html"; sourceTree = ""; }; + 24A2012F0F90D1DE003BB5A7 /* struct_vst_file_type.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = struct_vst_file_type.html; sourceTree = ""; }; + 24A201300F90D1DE003BB5A7 /* struct_vst_key_code-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "struct_vst_key_code-members.html"; sourceTree = ""; }; + 24A201310F90D1DE003BB5A7 /* struct_vst_key_code.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = struct_vst_key_code.html; sourceTree = ""; }; + 24A201320F90D1DE003BB5A7 /* tab_b.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = tab_b.gif; sourceTree = ""; }; + 24A201330F90D1DE003BB5A7 /* tab_l.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = tab_l.gif; sourceTree = ""; }; + 24A201340F90D1DE003BB5A7 /* tab_r.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = tab_r.gif; sourceTree = ""; }; + 24A201350F90D1DE003BB5A7 /* tabs.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = tabs.css; sourceTree = ""; }; + 24A201360F90D1DE003BB5A7 /* thanks.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = thanks.html; sourceTree = ""; }; + 24A201370F90D1DE003BB5A7 /* tree.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = tree.html; sourceTree = ""; }; + 24A201380F90D1DE003BB5A7 /* vstcontrols_8cpp.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstcontrols_8cpp.html; sourceTree = ""; }; + 24A201390F90D1DE003BB5A7 /* vstcontrols_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstcontrols_8h.html; sourceTree = ""; }; + 24A2013A0F90D1DE003BB5A7 /* vstgui_8cpp.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstgui_8cpp.html; sourceTree = ""; }; + 24A2013B0F90D1DE003BB5A7 /* vstgui_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstgui_8h.html; sourceTree = ""; }; + 24A2013C0F90D1DE003BB5A7 /* vstkeycode_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstkeycode_8h.html; sourceTree = ""; }; + 24A2013D0F90D1DE003BB5A7 /* vstoffline.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstoffline.html; sourceTree = ""; }; + 24A2013E0F90D1DE003BB5A7 /* vstparamstruct.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstparamstruct.html; sourceTree = ""; }; + 24A2013F0F90D1DE003BB5A7 /* vstplugscarbon_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstplugscarbon_8h.html; sourceTree = ""; }; + 24A201400F90D1DE003BB5A7 /* vstplugsmac_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstplugsmac_8h.html; sourceTree = ""; }; + 24A201410F90D1DE003BB5A7 /* vstplugsmacho_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstplugsmacho_8h.html; sourceTree = ""; }; + 24A201420F90D1DE003BB5A7 /* vstplugsquartz_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstplugsquartz_8h.html; sourceTree = ""; }; + 24A201430F90D1DE003BB5A7 /* whatsnew.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = whatsnew.html; sourceTree = ""; }; + 24A201440F90D1DE003BB5A7 /* index.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = index.html; sourceTree = ""; }; + 24A201450F90D1DE003BB5A7 /* Migrating from 2.3.rtf */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; path = "Migrating from 2.3.rtf"; sourceTree = ""; }; + 24A201460F90D1DE003BB5A7 /* plugguieditor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = plugguieditor.cpp; sourceTree = ""; }; + 24A201470F90D1DE003BB5A7 /* plugguieditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = plugguieditor.h; sourceTree = ""; }; + 24A201480F90D1DE003BB5A7 /* vstcontrols.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstcontrols.cpp; sourceTree = ""; }; + 24A201490F90D1DE003BB5A7 /* vstcontrols.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstcontrols.h; sourceTree = ""; }; + 24A2014A0F90D1DE003BB5A7 /* vstgui.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstgui.cpp; sourceTree = ""; }; + 24A2014B0F90D1DE003BB5A7 /* vstgui.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstgui.h; sourceTree = ""; }; + 24A2014C0F90D1DE003BB5A7 /* vstkeycode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstkeycode.h; sourceTree = ""; }; + 24A2014D0F90D1DE003BB5A7 /* vstplugscarbon.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstplugscarbon.h; sourceTree = ""; }; + 24A2014E0F90D1DE003BB5A7 /* vstplugsmac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstplugsmac.h; sourceTree = ""; }; + 24A2014F0F90D1DE003BB5A7 /* vstplugsmacho.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstplugsmacho.h; sourceTree = ""; }; + 24A201500F90D1DE003BB5A7 /* vstplugsquartz.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstplugsquartz.h; sourceTree = ""; }; + 24A2FEBD0F90D1DC003BB5A7 /* Thumbs.db */ = {isa = PBXFileReference; lastKnownFileType = file; path = Thumbs.db; sourceTree = ""; }; + 24A2FEBE0F90D1DC003BB5A7 /* VST_Logo_Usage_Guideline.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = VST_Logo_Usage_Guideline.pdf; sourceTree = ""; }; + 24A2FEBF0F90D1DC003BB5A7 /* VSTLogoAlpha.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = VSTLogoAlpha.png; sourceTree = ""; }; + 24A2FEC00F90D1DC003BB5A7 /* VSTLogoBlack.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = VSTLogoBlack.jpg; sourceTree = ""; }; + 24A2FEC10F90D1DC003BB5A7 /* VSTLogoWhite.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = VSTLogoWhite.jpg; sourceTree = ""; }; + 24A2FEC60F90D1DC003BB5A7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 24A2FEC80F90D1DC003BB5A7 /* VSTMonitor */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.bundle"; path = VSTMonitor; sourceTree = ""; }; + 24A2FEC90F90D1DC003BB5A7 /* PkgInfo */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = PkgInfo; sourceTree = ""; }; + 24A2FECB0F90D1DC003BB5A7 /* bmp50000.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp50000.bmp; sourceTree = ""; }; + 24A2FECC0F90D1DC003BB5A7 /* bmp50001.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp50001.bmp; sourceTree = ""; }; + 24A2FECD0F90D1DC003BB5A7 /* bmp50002.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp50002.bmp; sourceTree = ""; }; + 24A2FECE0F90D1DC003BB5A7 /* bmp50003.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp50003.bmp; sourceTree = ""; }; + 24A2FECF0F90D1DC003BB5A7 /* bmp50004.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp50004.bmp; sourceTree = ""; }; + 24A2FED00F90D1DC003BB5A7 /* bmp50005.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp50005.bmp; sourceTree = ""; }; + 24A2FED10F90D1DC003BB5A7 /* bmp50006.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp50006.bmp; sourceTree = ""; }; + 24A2FED20F90D1DC003BB5A7 /* bmp50007.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp50007.bmp; sourceTree = ""; }; + 24A2FED30F90D1DC003BB5A7 /* bmp50008.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp50008.bmp; sourceTree = ""; }; + 24A2FED40F90D1DC003BB5A7 /* VSTParamTool.app */ = {isa = PBXFileReference; lastKnownFileType = wrapper.application; path = VSTParamTool.app; sourceTree = ""; }; + 24A2FED60F90D1DC003BB5A7 /* vstmonitor.dll */ = {isa = PBXFileReference; lastKnownFileType = file; path = vstmonitor.dll; sourceTree = ""; }; + 24A2FED70F90D1DC003BB5A7 /* vstparamtool.exe */ = {isa = PBXFileReference; lastKnownFileType = file; path = vstparamtool.exe; sourceTree = ""; }; + 24A2FEDA0F90D1DC003BB5A7 /* folder.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = folder.gif; sourceTree = ""; }; + 24A2FEDB0F90D1DC003BB5A7 /* mac.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = mac.gif; sourceTree = ""; }; + 24A2FEDC0F90D1DC003BB5A7 /* vstpluglogo_small.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = vstpluglogo_small.jpg; sourceTree = ""; }; + 24A2FEDD0F90D1DC003BB5A7 /* win.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = win.gif; sourceTree = ""; }; + 24A2FEDF0F90D1DC003BB5A7 /* aeffect_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = aeffect_8h.html; sourceTree = ""; }; + 24A2FEE00F90D1DC003BB5A7 /* aeffectx_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = aeffectx_8h.html; sourceTree = ""; }; + 24A2FEE10F90D1DC003BB5A7 /* aeffeditor_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = aeffeditor_8h.html; sourceTree = ""; }; + 24A2FEE20F90D1DC003BB5A7 /* annotated.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = annotated.html; sourceTree = ""; }; + 24A2FEE30F90D1DC003BB5A7 /* audioeffect_8cpp.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = audioeffect_8cpp.html; sourceTree = ""; }; + 24A2FEE40F90D1DC003BB5A7 /* audioeffect_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = audioeffect_8h.html; sourceTree = ""; }; + 24A2FEE50F90D1DC003BB5A7 /* audioeffectx_8cpp.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = audioeffectx_8cpp.html; sourceTree = ""; }; + 24A2FEE60F90D1DC003BB5A7 /* audioeffectx_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = audioeffectx_8h.html; sourceTree = ""; }; + 24A2FEE70F90D1DC003BB5A7 /* Blocksizechange.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = Blocksizechange.gif; sourceTree = ""; }; + 24A2FEE80F90D1DC003BB5A7 /* class_a_eff_editor-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "class_a_eff_editor-members.html"; sourceTree = ""; }; + 24A2FEE90F90D1DC003BB5A7 /* class_a_eff_editor.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = class_a_eff_editor.html; sourceTree = ""; }; + 24A2FEEA0F90D1DC003BB5A7 /* class_audio_effect-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "class_audio_effect-members.html"; sourceTree = ""; }; + 24A2FEEB0F90D1DC003BB5A7 /* class_audio_effect.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = class_audio_effect.html; sourceTree = ""; }; + 24A2FEEC0F90D1DC003BB5A7 /* class_audio_effect.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_audio_effect.png; sourceTree = ""; }; + 24A2FEED0F90D1DC003BB5A7 /* class_audio_effect_x-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "class_audio_effect_x-members.html"; sourceTree = ""; }; + 24A2FEEE0F90D1DC003BB5A7 /* class_audio_effect_x.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = class_audio_effect_x.html; sourceTree = ""; }; + 24A2FEEF0F90D1DC003BB5A7 /* class_audio_effect_x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_audio_effect_x.png; sourceTree = ""; }; + 24A2FEF00F90D1DC003BB5A7 /* ControlChanged.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = ControlChanged.gif; sourceTree = ""; }; + 24A2FEF10F90D1DC003BB5A7 /* deprecated.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = deprecated.html; sourceTree = ""; }; + 24A2FEF20F90D1DC003BB5A7 /* dir_2d3252dd12c84c66c1d25b26bb45a1f5.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = dir_2d3252dd12c84c66c1d25b26bb45a1f5.html; sourceTree = ""; }; + 24A2FEF30F90D1DC003BB5A7 /* dir_77c628dfee72e555f82d5ef53b733f38.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = dir_77c628dfee72e555f82d5ef53b733f38.html; sourceTree = ""; }; + 24A2FEF40F90D1DC003BB5A7 /* dir_f81105d3b854bea570aaf3bae5cb64c1.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = dir_f81105d3b854bea570aaf3bae5cb64c1.html; sourceTree = ""; }; + 24A2FEF50F90D1DC003BB5A7 /* dir_fa0454ab79b4262333bf837ea3d765e9.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = dir_fa0454ab79b4262333bf837ea3d765e9.html; sourceTree = ""; }; + 24A2FEF60F90D1DC003BB5A7 /* dirs.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = dirs.html; sourceTree = ""; }; + 24A2FEF70F90D1DC003BB5A7 /* doc_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = doc_8h.html; sourceTree = ""; }; + 24A2FEF80F90D1DC003BB5A7 /* doxygen.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = doxygen.css; sourceTree = ""; }; + 24A2FEF90F90D1DC003BB5A7 /* doxygen.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = doxygen.png; sourceTree = ""; }; + 24A2FEFA0F90D1DC003BB5A7 /* files.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = files.html; sourceTree = ""; }; + 24A2FEFB0F90D1DC003BB5A7 /* ftv2blank.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2blank.png; sourceTree = ""; }; + 24A2FEFC0F90D1DC003BB5A7 /* ftv2doc.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2doc.png; sourceTree = ""; }; + 24A2FEFD0F90D1DC003BB5A7 /* ftv2folderclosed.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2folderclosed.png; sourceTree = ""; }; + 24A2FEFE0F90D1DC003BB5A7 /* ftv2folderopen.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2folderopen.png; sourceTree = ""; }; + 24A2FEFF0F90D1DC003BB5A7 /* ftv2lastnode.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2lastnode.png; sourceTree = ""; }; + 24A2FF000F90D1DC003BB5A7 /* ftv2link.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2link.png; sourceTree = ""; }; + 24A2FF010F90D1DC003BB5A7 /* ftv2mlastnode.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2mlastnode.png; sourceTree = ""; }; + 24A2FF020F90D1DC003BB5A7 /* ftv2mnode.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2mnode.png; sourceTree = ""; }; + 24A2FF030F90D1DC003BB5A7 /* ftv2node.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2node.png; sourceTree = ""; }; + 24A2FF040F90D1DC003BB5A7 /* ftv2plastnode.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2plastnode.png; sourceTree = ""; }; + 24A2FF050F90D1DC003BB5A7 /* ftv2pnode.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2pnode.png; sourceTree = ""; }; + 24A2FF060F90D1DC003BB5A7 /* ftv2vertline.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2vertline.png; sourceTree = ""; }; + 24A2FF070F90D1DC003BB5A7 /* functions.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions.html; sourceTree = ""; }; + 24A2FF080F90D1DC003BB5A7 /* functions_0x62.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x62.html; sourceTree = ""; }; + 24A2FF090F90D1DC003BB5A7 /* functions_0x63.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x63.html; sourceTree = ""; }; + 24A2FF0A0F90D1DC003BB5A7 /* functions_0x64.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x64.html; sourceTree = ""; }; + 24A2FF0B0F90D1DC003BB5A7 /* functions_0x65.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x65.html; sourceTree = ""; }; + 24A2FF0C0F90D1DC003BB5A7 /* functions_0x66.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x66.html; sourceTree = ""; }; + 24A2FF0D0F90D1DC003BB5A7 /* functions_0x67.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x67.html; sourceTree = ""; }; + 24A2FF0E0F90D1DC003BB5A7 /* functions_0x68.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x68.html; sourceTree = ""; }; + 24A2FF0F0F90D1DC003BB5A7 /* functions_0x69.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x69.html; sourceTree = ""; }; + 24A2FF100F90D1DC003BB5A7 /* functions_0x6b.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x6b.html; sourceTree = ""; }; + 24A2FF110F90D1DC003BB5A7 /* functions_0x6c.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x6c.html; sourceTree = ""; }; + 24A2FF120F90D1DC003BB5A7 /* functions_0x6d.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x6d.html; sourceTree = ""; }; + 24A2FF130F90D1DC003BB5A7 /* functions_0x6e.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x6e.html; sourceTree = ""; }; + 24A2FF140F90D1DC003BB5A7 /* functions_0x6f.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x6f.html; sourceTree = ""; }; + 24A2FF150F90D1DC003BB5A7 /* functions_0x70.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x70.html; sourceTree = ""; }; + 24A2FF160F90D1DC003BB5A7 /* functions_0x72.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x72.html; sourceTree = ""; }; + 24A2FF170F90D1DC003BB5A7 /* functions_0x73.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x73.html; sourceTree = ""; }; + 24A2FF180F90D1DC003BB5A7 /* functions_0x74.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x74.html; sourceTree = ""; }; + 24A2FF190F90D1DC003BB5A7 /* functions_0x75.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x75.html; sourceTree = ""; }; + 24A2FF1A0F90D1DC003BB5A7 /* functions_0x76.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x76.html; sourceTree = ""; }; + 24A2FF1B0F90D1DC003BB5A7 /* functions_0x77.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x77.html; sourceTree = ""; }; + 24A2FF1C0F90D1DC003BB5A7 /* functions_0x78.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x78.html; sourceTree = ""; }; + 24A2FF1D0F90D1DC003BB5A7 /* functions_0x79.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x79.html; sourceTree = ""; }; + 24A2FF1E0F90D1DC003BB5A7 /* functions_0x7e.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x7e.html; sourceTree = ""; }; + 24A2FF1F0F90D1DC003BB5A7 /* functions_func.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_func.html; sourceTree = ""; }; + 24A2FF200F90D1DC003BB5A7 /* functions_vars.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_vars.html; sourceTree = ""; }; + 24A2FF210F90D1DC003BB5A7 /* globals.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals.html; sourceTree = ""; }; + 24A2FF220F90D1DC003BB5A7 /* globals_0x62.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_0x62.html; sourceTree = ""; }; + 24A2FF230F90D1DC003BB5A7 /* globals_0x63.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_0x63.html; sourceTree = ""; }; + 24A2FF240F90D1DC003BB5A7 /* globals_0x64.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_0x64.html; sourceTree = ""; }; + 24A2FF250F90D1DC003BB5A7 /* globals_0x65.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_0x65.html; sourceTree = ""; }; + 24A2FF260F90D1DC003BB5A7 /* globals_0x66.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_0x66.html; sourceTree = ""; }; + 24A2FF270F90D1DC003BB5A7 /* globals_0x6b.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_0x6b.html; sourceTree = ""; }; + 24A2FF280F90D1DC003BB5A7 /* globals_0x6d.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_0x6d.html; sourceTree = ""; }; + 24A2FF290F90D1DC003BB5A7 /* globals_0x74.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_0x74.html; sourceTree = ""; }; + 24A2FF2A0F90D1DC003BB5A7 /* globals_0x76.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_0x76.html; sourceTree = ""; }; + 24A2FF2B0F90D1DC003BB5A7 /* globals_defs.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_defs.html; sourceTree = ""; }; + 24A2FF2C0F90D1DC003BB5A7 /* globals_enum.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_enum.html; sourceTree = ""; }; + 24A2FF2D0F90D1DC003BB5A7 /* globals_eval.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_eval.html; sourceTree = ""; }; + 24A2FF2E0F90D1DC003BB5A7 /* globals_eval_0x65.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_eval_0x65.html; sourceTree = ""; }; + 24A2FF2F0F90D1DC003BB5A7 /* globals_eval_0x6b.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_eval_0x6b.html; sourceTree = ""; }; + 24A2FF300F90D1DC003BB5A7 /* globals_eval_0x6d.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_eval_0x6d.html; sourceTree = ""; }; + 24A2FF310F90D1DC003BB5A7 /* globals_eval_0x76.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_eval_0x76.html; sourceTree = ""; }; + 24A2FF320F90D1DC003BB5A7 /* globals_func.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_func.html; sourceTree = ""; }; + 24A2FF330F90D1DC003BB5A7 /* globals_type.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_type.html; sourceTree = ""; }; + 24A2FF340F90D1DC003BB5A7 /* globals_vars.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_vars.html; sourceTree = ""; }; + 24A2FF350F90D1DC003BB5A7 /* hierarchy.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = hierarchy.html; sourceTree = ""; }; + 24A2FF360F90D1DC003BB5A7 /* history.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = history.html; sourceTree = ""; }; + 24A2FF370F90D1DC003BB5A7 /* index.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = index.html; sourceTree = ""; }; + 24A2FF380F90D1DC003BB5A7 /* Initialisation.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = Initialisation.gif; sourceTree = ""; }; + 24A2FF390F90D1DC003BB5A7 /* intro.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = intro.html; sourceTree = ""; }; + 24A2FF3A0F90D1DC003BB5A7 /* IOchange.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = IOchange.gif; sourceTree = ""; }; + 24A2FF3B0F90D1DC003BB5A7 /* license.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = license.html; sourceTree = ""; }; + 24A2FF3C0F90D1DC003BB5A7 /* maceditor.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = maceditor.html; sourceTree = ""; }; + 24A2FF3D0F90D1DC003BB5A7 /* main.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = main.html; sourceTree = ""; }; + 24A2FF3E0F90D1DC003BB5A7 /* namespace_host_can_dos.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = namespace_host_can_dos.html; sourceTree = ""; }; + 24A2FF3F0F90D1DC003BB5A7 /* namespace_plug_can_dos.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = namespace_plug_can_dos.html; sourceTree = ""; }; + 24A2FF400F90D1DC003BB5A7 /* namespacemembers.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = namespacemembers.html; sourceTree = ""; }; + 24A2FF410F90D1DC003BB5A7 /* namespacemembers_vars.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = namespacemembers_vars.html; sourceTree = ""; }; + 24A2FF420F90D1DC003BB5A7 /* namespaces.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = namespaces.html; sourceTree = ""; }; + 24A2FF430F90D1DC003BB5A7 /* Offlineprocessing.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = Offlineprocessing.gif; sourceTree = ""; }; + 24A2FF440F90D1DC003BB5A7 /* others.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = others.html; sourceTree = ""; }; + 24A2FF450F90D1DC003BB5A7 /* pages.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = pages.html; sourceTree = ""; }; + 24A2FF460F90D1DC003BB5A7 /* Sampleratechange.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = Sampleratechange.gif; sourceTree = ""; }; + 24A2FF470F90D1DC003BB5A7 /* sequences.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = sequences.html; sourceTree = ""; }; + 24A2FF480F90D1DC003BB5A7 /* SpeakerarrangementnegotiationforVSTfx.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = SpeakerarrangementnegotiationforVSTfx.gif; sourceTree = ""; }; + 24A2FF490F90D1DC003BB5A7 /* struct_a_effect-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_a_effect-members.html"; sourceTree = ""; }; + 24A2FF4A0F90D1DC003BB5A7 /* struct_a_effect.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_a_effect.html; sourceTree = ""; }; + 24A2FF4B0F90D1DC003BB5A7 /* struct_e_rect-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_e_rect-members.html"; sourceTree = ""; }; + 24A2FF4C0F90D1DC003BB5A7 /* struct_e_rect.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_e_rect.html; sourceTree = ""; }; + 24A2FF4D0F90D1DC003BB5A7 /* struct_midi_key_name-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_midi_key_name-members.html"; sourceTree = ""; }; + 24A2FF4E0F90D1DC003BB5A7 /* struct_midi_key_name.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_midi_key_name.html; sourceTree = ""; }; + 24A2FF4F0F90D1DC003BB5A7 /* struct_midi_program_category-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_midi_program_category-members.html"; sourceTree = ""; }; + 24A2FF500F90D1DC003BB5A7 /* struct_midi_program_category.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_midi_program_category.html; sourceTree = ""; }; + 24A2FF510F90D1DC003BB5A7 /* struct_midi_program_name-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_midi_program_name-members.html"; sourceTree = ""; }; + 24A2FF520F90D1DC003BB5A7 /* struct_midi_program_name.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_midi_program_name.html; sourceTree = ""; }; + 24A2FF530F90D1DC003BB5A7 /* struct_vst_audio_file-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_audio_file-members.html"; sourceTree = ""; }; + 24A2FF540F90D1DC003BB5A7 /* struct_vst_audio_file.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_audio_file.html; sourceTree = ""; }; + 24A2FF550F90D1DC003BB5A7 /* struct_vst_audio_file_marker-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_audio_file_marker-members.html"; sourceTree = ""; }; + 24A2FF560F90D1DC003BB5A7 /* struct_vst_audio_file_marker.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_audio_file_marker.html; sourceTree = ""; }; + 24A2FF570F90D1DC003BB5A7 /* struct_vst_event-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_event-members.html"; sourceTree = ""; }; + 24A2FF580F90D1DC003BB5A7 /* struct_vst_event.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_event.html; sourceTree = ""; }; + 24A2FF590F90D1DD003BB5A7 /* struct_vst_events-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_events-members.html"; sourceTree = ""; }; + 24A2FF5A0F90D1DD003BB5A7 /* struct_vst_events.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_events.html; sourceTree = ""; }; + 24A2FF5B0F90D1DD003BB5A7 /* struct_vst_file_select-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_file_select-members.html"; sourceTree = ""; }; + 24A2FF5C0F90D1DD003BB5A7 /* struct_vst_file_select.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_file_select.html; sourceTree = ""; }; + 24A2FF5D0F90D1DD003BB5A7 /* struct_vst_file_type-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_file_type-members.html"; sourceTree = ""; }; + 24A2FF5E0F90D1DD003BB5A7 /* struct_vst_file_type.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_file_type.html; sourceTree = ""; }; + 24A2FF5F0F90D1DD003BB5A7 /* struct_vst_key_code-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_key_code-members.html"; sourceTree = ""; }; + 24A2FF600F90D1DD003BB5A7 /* struct_vst_key_code.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_key_code.html; sourceTree = ""; }; + 24A2FF610F90D1DD003BB5A7 /* struct_vst_midi_event-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_midi_event-members.html"; sourceTree = ""; }; + 24A2FF620F90D1DD003BB5A7 /* struct_vst_midi_event.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_midi_event.html; sourceTree = ""; }; + 24A2FF630F90D1DD003BB5A7 /* struct_vst_midi_sysex_event-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_midi_sysex_event-members.html"; sourceTree = ""; }; + 24A2FF640F90D1DD003BB5A7 /* struct_vst_midi_sysex_event.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_midi_sysex_event.html; sourceTree = ""; }; + 24A2FF650F90D1DD003BB5A7 /* struct_vst_offline_task-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_offline_task-members.html"; sourceTree = ""; }; + 24A2FF660F90D1DD003BB5A7 /* struct_vst_offline_task.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_offline_task.html; sourceTree = ""; }; + 24A2FF670F90D1DD003BB5A7 /* struct_vst_parameter_properties-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_parameter_properties-members.html"; sourceTree = ""; }; + 24A2FF680F90D1DD003BB5A7 /* struct_vst_parameter_properties.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_parameter_properties.html; sourceTree = ""; }; + 24A2FF690F90D1DD003BB5A7 /* struct_vst_patch_chunk_info-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_patch_chunk_info-members.html"; sourceTree = ""; }; + 24A2FF6A0F90D1DD003BB5A7 /* struct_vst_patch_chunk_info.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_patch_chunk_info.html; sourceTree = ""; }; + 24A2FF6B0F90D1DD003BB5A7 /* struct_vst_pin_properties-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_pin_properties-members.html"; sourceTree = ""; }; + 24A2FF6C0F90D1DD003BB5A7 /* struct_vst_pin_properties.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_pin_properties.html; sourceTree = ""; }; + 24A2FF6D0F90D1DD003BB5A7 /* struct_vst_speaker_arrangement-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_speaker_arrangement-members.html"; sourceTree = ""; }; + 24A2FF6E0F90D1DD003BB5A7 /* struct_vst_speaker_arrangement.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_speaker_arrangement.html; sourceTree = ""; }; + 24A2FF6F0F90D1DD003BB5A7 /* struct_vst_speaker_properties-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_speaker_properties-members.html"; sourceTree = ""; }; + 24A2FF700F90D1DD003BB5A7 /* struct_vst_speaker_properties.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_speaker_properties.html; sourceTree = ""; }; + 24A2FF710F90D1DD003BB5A7 /* struct_vst_time_info-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_time_info-members.html"; sourceTree = ""; }; + 24A2FF720F90D1DD003BB5A7 /* struct_vst_time_info.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_time_info.html; sourceTree = ""; }; + 24A2FF730F90D1DD003BB5A7 /* struct_vst_variable_io-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_variable_io-members.html"; sourceTree = ""; }; + 24A2FF740F90D1DD003BB5A7 /* struct_vst_variable_io.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_variable_io.html; sourceTree = ""; }; + 24A2FF750F90D1DD003BB5A7 /* struct_vst_window-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_window-members.html"; sourceTree = ""; }; + 24A2FF760F90D1DD003BB5A7 /* struct_vst_window.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_window.html; sourceTree = ""; }; + 24A2FF770F90D1DD003BB5A7 /* structfx_bank-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "structfx_bank-members.html"; sourceTree = ""; }; + 24A2FF780F90D1DD003BB5A7 /* structfx_bank.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = structfx_bank.html; sourceTree = ""; }; + 24A2FF790F90D1DD003BB5A7 /* structfx_program-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "structfx_program-members.html"; sourceTree = ""; }; + 24A2FF7A0F90D1DD003BB5A7 /* structfx_program.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = structfx_program.html; sourceTree = ""; }; + 24A2FF7B0F90D1DD003BB5A7 /* tab_b.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = tab_b.gif; sourceTree = ""; }; + 24A2FF7C0F90D1DD003BB5A7 /* tab_l.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = tab_l.gif; sourceTree = ""; }; + 24A2FF7D0F90D1DD003BB5A7 /* tab_r.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = tab_r.gif; sourceTree = ""; }; + 24A2FF7E0F90D1DD003BB5A7 /* tabs.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = tabs.css; sourceTree = ""; }; + 24A2FF7F0F90D1DD003BB5A7 /* Termination.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = Termination.gif; sourceTree = ""; }; + 24A2FF800F90D1DD003BB5A7 /* thanks.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = thanks.html; sourceTree = ""; }; + 24A2FF810F90D1DD003BB5A7 /* tree.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = tree.html; sourceTree = ""; }; + 24A2FF820F90D1DD003BB5A7 /* TurnOff.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = TurnOff.gif; sourceTree = ""; }; + 24A2FF830F90D1DD003BB5A7 /* TurnOn.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = TurnOn.gif; sourceTree = ""; }; + 24A2FF840F90D1DD003BB5A7 /* vstfxstore_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = vstfxstore_8h.html; sourceTree = ""; }; + 24A2FF850F90D1DD003BB5A7 /* vstoffline.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = vstoffline.html; sourceTree = ""; }; + 24A2FF860F90D1DD003BB5A7 /* vstparamstruct.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = vstparamstruct.html; sourceTree = ""; }; + 24A2FF870F90D1DD003BB5A7 /* vstpluglogo.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = vstpluglogo.jpg; sourceTree = ""; }; + 24A2FF880F90D1DD003BB5A7 /* vstplugmain_8cpp.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = vstplugmain_8cpp.html; sourceTree = ""; }; + 24A2FF890F90D1DD003BB5A7 /* whatsnew.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = whatsnew.html; sourceTree = ""; }; + 24A2FF8A0F90D1DD003BB5A7 /* sdk.menu.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = sdk.menu.html; sourceTree = ""; }; + 24A2FF8B0F90D1DD003BB5A7 /* sdk.overview.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = sdk.overview.html; sourceTree = ""; }; + 24A2FF8C0F90D1DD003BB5A7 /* sdkdoc.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = sdkdoc.css; sourceTree = ""; }; + 24A2FF8D0F90D1DD003BB5A7 /* VST Licensing Agreement.rtf */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; path = "VST Licensing Agreement.rtf"; sourceTree = ""; }; + 24A2FF8E0F90D1DD003BB5A7 /* index.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = index.html; sourceTree = ""; }; + 24A2FF910F90D1DD003BB5A7 /* aeffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffect.h; sourceTree = ""; }; + 24A2FF920F90D1DD003BB5A7 /* aeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffectx.h; sourceTree = ""; }; + 24A2FF930F90D1DD003BB5A7 /* vstfxstore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstfxstore.h; sourceTree = ""; }; + 24A2FF980F90D1DD003BB5A7 /* adelay.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = adelay.cpp; sourceTree = ""; }; + 24A2FF990F90D1DD003BB5A7 /* adelay.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = adelay.h; sourceTree = ""; }; + 24A2FF9A0F90D1DD003BB5A7 /* adelaymain.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = adelaymain.cpp; sourceTree = ""; }; + 24A2FF9D0F90D1DD003BB5A7 /* bmp00128.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp00128.bmp; sourceTree = ""; }; + 24A2FF9E0F90D1DD003BB5A7 /* bmp00129.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp00129.bmp; sourceTree = ""; }; + 24A2FF9F0F90D1DD003BB5A7 /* bmp00130.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp00130.bmp; sourceTree = ""; }; + 24A2FFA00F90D1DD003BB5A7 /* surrounddelay.rc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = surrounddelay.rc; sourceTree = ""; }; + 24A2FFA10F90D1DD003BB5A7 /* sdeditor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = sdeditor.cpp; sourceTree = ""; }; + 24A2FFA20F90D1DD003BB5A7 /* sdeditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sdeditor.h; sourceTree = ""; }; + 24A2FFA30F90D1DD003BB5A7 /* surrounddelay.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = surrounddelay.cpp; sourceTree = ""; }; + 24A2FFA40F90D1DD003BB5A7 /* surrounddelay.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = surrounddelay.h; sourceTree = ""; }; + 24A2FFA60F90D1DD003BB5A7 /* adelay.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = adelay.vcproj; sourceTree = ""; }; + 24A2FFA70F90D1DD003BB5A7 /* surrounddelay.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = surrounddelay.vcproj; sourceTree = ""; }; + 24A2FFAA0F90D1DD003BB5A7 /* again.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = again.cpp; sourceTree = ""; }; + 24A2FFAB0F90D1DD003BB5A7 /* again.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = again.h; sourceTree = ""; }; + 24A2FFAD0F90D1DD003BB5A7 /* again.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = again.vcproj; sourceTree = ""; }; + 24A2FFAF0F90D1DD003BB5A7 /* minihost-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "minihost-Info.plist"; sourceTree = ""; }; + 24A2FFB00F90D1DD003BB5A7 /* vst 2.4 examples.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; path = "vst 2.4 examples.xcodeproj"; sourceTree = ""; }; + 24A2FFB30F90D1DD003BB5A7 /* vst2.4Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = vst2.4Info.plist; sourceTree = ""; }; + 24A2FFB60F90D1DD003BB5A7 /* minieditor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = minieditor.cpp; sourceTree = ""; }; + 24A2FFB70F90D1DD003BB5A7 /* minihost.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = minihost.cpp; sourceTree = ""; }; + 24A2FFB90F90D1DD003BB5A7 /* minihost.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = minihost.vcproj; sourceTree = ""; }; + 24A2FFBC0F90D1DD003BB5A7 /* vstxsynth.rc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = vstxsynth.rc; sourceTree = ""; }; + 24A2FFBD0F90D1DD003BB5A7 /* vstxsynth.vstxml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = vstxsynth.vstxml; sourceTree = ""; }; + 24A2FFBF0F90D1DD003BB5A7 /* gmnames.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = gmnames.h; sourceTree = ""; }; + 24A2FFC00F90D1DD003BB5A7 /* vstxsynth.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstxsynth.cpp; sourceTree = ""; }; + 24A2FFC10F90D1DD003BB5A7 /* vstxsynth.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstxsynth.h; sourceTree = ""; }; + 24A2FFC20F90D1DD003BB5A7 /* vstxsynthproc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstxsynthproc.cpp; sourceTree = ""; }; + 24A2FFC40F90D1DD003BB5A7 /* vstxsynth.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = vstxsynth.vcproj; sourceTree = ""; }; + 24A2FFC60F90D1DD003BB5A7 /* samples.sln */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = samples.sln; sourceTree = ""; }; + 24A2FFC70F90D1DD003BB5A7 /* vstplug.def */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = vstplug.def; sourceTree = ""; }; + 24A2FFC90F90D1DD003BB5A7 /* adelay.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = adelay.vcproj; sourceTree = ""; }; + 24A2FFCA0F90D1DD003BB5A7 /* again.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = again.vcproj; sourceTree = ""; }; + 24A2FFCB0F90D1DD003BB5A7 /* minihost.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = minihost.vcproj; sourceTree = ""; }; + 24A2FFCC0F90D1DD003BB5A7 /* samples.sln */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = samples.sln; sourceTree = ""; }; + 24A2FFCD0F90D1DD003BB5A7 /* surrounddelay.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = surrounddelay.vcproj; sourceTree = ""; }; + 24A2FFCE0F90D1DD003BB5A7 /* vstxsynth.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = vstxsynth.vcproj; sourceTree = ""; }; + 24A2FFD00F90D1DD003BB5A7 /* adelay.dsp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = adelay.dsp; sourceTree = ""; }; + 24A2FFD10F90D1DD003BB5A7 /* again.dsp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = again.dsp; sourceTree = ""; }; + 24A2FFD20F90D1DD003BB5A7 /* minihost.dsp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = minihost.dsp; sourceTree = ""; }; + 24A2FFD30F90D1DD003BB5A7 /* samples.dsw */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = samples.dsw; sourceTree = ""; }; + 24A2FFD40F90D1DD003BB5A7 /* surrounddelay.dsp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = surrounddelay.dsp; sourceTree = ""; }; + 24A2FFD50F90D1DD003BB5A7 /* vstxsynth.dsp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = vstxsynth.dsp; sourceTree = ""; }; + 24A2FFD80F90D1DD003BB5A7 /* aeffeditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffeditor.h; sourceTree = ""; }; + 24A2FFD90F90D1DD003BB5A7 /* audioeffect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffect.cpp; sourceTree = ""; }; + 24A2FFDA0F90D1DD003BB5A7 /* audioeffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audioeffect.h; sourceTree = ""; }; + 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffectx.cpp; sourceTree = ""; }; + 24A2FFDC0F90D1DD003BB5A7 /* audioeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audioeffectx.h; sourceTree = ""; }; + 24A2FFDD0F90D1DD003BB5A7 /* vstplugmain.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstplugmain.cpp; sourceTree = ""; }; + 24A2FFE10F90D1DD003BB5A7 /* audiounit.exp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.exports; path = audiounit.exp; sourceTree = ""; }; + 24A2FFE20F90D1DD003BB5A7 /* cw_vst_prefix.pch++ */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = "cw_vst_prefix.pch++"; sourceTree = ""; }; + 24A2FFE30F90D1DD003BB5A7 /* drawtest.cw9prj */ = {isa = PBXFileReference; lastKnownFileType = file; path = drawtest.cw9prj; sourceTree = ""; }; + 24A2FFE40F90D1DD003BB5A7 /* drawtest.plc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = drawtest.plc; sourceTree = ""; }; + 24A2FFE50F90D1DD003BB5A7 /* drawtest.xcode */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; path = drawtest.xcode; sourceTree = ""; }; + 24A2FFE80F90D1DD003BB5A7 /* drawtest.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; path = drawtest.xcodeproj; sourceTree = ""; }; + 24A2FFEB0F90D1DD003BB5A7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 24A2FFEC0F90D1DD003BB5A7 /* xcode_au_prefix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = xcode_au_prefix.h; sourceTree = ""; }; + 24A2FFED0F90D1DD003BB5A7 /* xcode_vst_prefix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = xcode_vst_prefix.h; sourceTree = ""; }; + 24A2FFEF0F90D1DD003BB5A7 /* audiounit.r */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; path = audiounit.r; sourceTree = ""; }; + 24A2FFF00F90D1DD003BB5A7 /* bmp00001.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = bmp00001.png; sourceTree = ""; }; + 24A2FFF10F90D1DD003BB5A7 /* bmp00100.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = bmp00100.png; sourceTree = ""; }; + 24A2FFF20F90D1DD003BB5A7 /* bmp01000.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = bmp01000.png; sourceTree = ""; }; + 24A2FFF30F90D1DD003BB5A7 /* bmp10001.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10001.bmp; sourceTree = ""; }; + 24A2FFF40F90D1DD003BB5A7 /* bmp10002.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10002.bmp; sourceTree = ""; }; + 24A2FFF50F90D1DD003BB5A7 /* bmp10003.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10003.bmp; sourceTree = ""; }; + 24A2FFF60F90D1DD003BB5A7 /* bmp10004.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10004.bmp; sourceTree = ""; }; + 24A2FFF70F90D1DD003BB5A7 /* bmp10005.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10005.bmp; sourceTree = ""; }; + 24A2FFF80F90D1DD003BB5A7 /* bmp10006.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10006.bmp; sourceTree = ""; }; + 24A2FFF90F90D1DD003BB5A7 /* bmp10007.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10007.bmp; sourceTree = ""; }; + 24A2FFFA0F90D1DD003BB5A7 /* bmp10008.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10008.bmp; sourceTree = ""; }; + 24A2FFFB0F90D1DD003BB5A7 /* bmp10009.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10009.bmp; sourceTree = ""; }; + 24A2FFFC0F90D1DD003BB5A7 /* bmp10010.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10010.bmp; sourceTree = ""; }; + 24A2FFFD0F90D1DD003BB5A7 /* bmp10011.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10011.bmp; sourceTree = ""; }; + 24A2FFFE0F90D1DD003BB5A7 /* bmp10012.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10012.bmp; sourceTree = ""; }; + 24A2FFFF0F90D1DD003BB5A7 /* bmp10013.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10013.bmp; sourceTree = ""; }; + 24CFB70307E7A0220081BD57 /* PkgInfo */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = PkgInfo; path = mac/PkgInfo; sourceTree = ""; }; + 24D8286F09A914000093AEF8 /* X2BussProc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = X2BussProc.cpp; path = source/X2BussProc.cpp; sourceTree = ""; }; + 24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = xcode_vst_prefix.h; path = mac/xcode_vst_prefix.h; sourceTree = SOURCE_ROOT; }; + 8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = mac/Info.plist; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXGroup section */ + 089C166AFE841209C02AAC07 /* FM-Chopper */ = { + isa = PBXGroup; + children = ( + 089C1671FE841209C02AAC07 /* External Frameworks and Libraries */, + 19C28FB4FE9D528D11CA2CBB /* Products */, + 089C167CFE841241C02AAC07 /* Resources */, + 08FB77ADFE841716C02AAC07 /* Source */, + 24A2FEBB0F90D1DB003BB5A7 /* vstsdk2.4 */, + ); + name = "FM-Chopper"; + sourceTree = ""; + }; + 089C1671FE841209C02AAC07 /* External Frameworks and Libraries */ = { + isa = PBXGroup; + children = ( + 2434720A098313350063BBF1 /* QuickTime.framework */, + 08EA7FFBFE8413EDC02AAC07 /* Carbon.framework */, + ); + name = "External Frameworks and Libraries"; + sourceTree = ""; + }; + 089C167CFE841241C02AAC07 /* Resources */ = { + isa = PBXGroup; + children = ( + 24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */, + 24CFB70307E7A0220081BD57 /* PkgInfo */, + 8D01CCD10486CAD60068D4B7 /* Info.plist */, + ); + name = Resources; + sourceTree = ""; + }; + 08FB77ADFE841716C02AAC07 /* Source */ = { + isa = PBXGroup; + children = ( + 2407DEB6089929BA00EB68BF /* X2Buss.cpp */, + 24D8286F09A914000093AEF8 /* X2BussProc.cpp */, + 245463B80991757100464AD3 /* X2Buss.h */, + ); + name = Source; + sourceTree = ""; + }; + 19C28FB4FE9D528D11CA2CBB /* Products */ = { + isa = PBXGroup; + children = ( + 2407DE920899296600EB68BF /* X2Buss.vst */, + ); + name = Products; + sourceTree = ""; + }; + 24A200030F90D1DD003BB5A7 /* source */ = { + isa = PBXGroup; + children = ( + 24A200040F90D1DD003BB5A7 /* controlsgui.cpp */, + 24A200050F90D1DD003BB5A7 /* controlsgui.h */, + 24A200060F90D1DD003BB5A7 /* pdrawtesteditor.cpp */, + 24A200070F90D1DD003BB5A7 /* pdrawtesteditor.h */, + 24A200080F90D1DD003BB5A7 /* pdrawtesteffect.cpp */, + 24A200090F90D1DD003BB5A7 /* pdrawtesteffect.h */, + 24A2000A0F90D1DD003BB5A7 /* pdrawtestmain.cpp */, + 24A2000B0F90D1DD003BB5A7 /* pdrawtestview.cpp */, + 24A2000C0F90D1DD003BB5A7 /* pdrawtestview.h */, + 24A2000D0F90D1DD003BB5A7 /* pprimitivesviews.cpp */, + 24A2000E0F90D1DD003BB5A7 /* pprimitivesviews.h */, + ); + name = source; + path = /vstsdk2.4/vstgui.sf/drawtest/source; + sourceTree = ""; + }; + 24A2000F0F90D1DD003BB5A7 /* win */ = { + isa = PBXGroup; + children = ( + 24A200100F90D1DD003BB5A7 /* drawtest.def */, + 24A200110F90D1DD003BB5A7 /* drawtest.rc */, + 24A200120F90D1DD003BB5A7 /* drawtest.vcproj */, + ); + name = win; + path = /vstsdk2.4/vstgui.sf/drawtest/win; + sourceTree = ""; + }; + 24A200130F90D1DD003BB5A7 /* win.vc6 */ = { + isa = PBXGroup; + children = ( + 24A200140F90D1DD003BB5A7 /* drawtest.dsp */, + 24A200150F90D1DD003BB5A7 /* drawtest.dsw */, + ); + name = win.vc6; + path = /vstsdk2.4/vstgui.sf/drawtest/win.vc6; + sourceTree = ""; + }; + 24A200160F90D1DD003BB5A7 /* vstgui */ = { + isa = PBXGroup; + children = ( + 24A200170F90D1DD003BB5A7 /* aeffguieditor.cpp */, + 24A200180F90D1DD003BB5A7 /* aeffguieditor.h */, + 24A200190F90D1DD003BB5A7 /* cfileselector.cpp */, + 24A2001A0F90D1DD003BB5A7 /* cfileselector.h */, + 24A2001B0F90D1DD003BB5A7 /* Changelog */, + 24A2001C0F90D1DD003BB5A7 /* cscrollview.cpp */, + 24A2001D0F90D1DD003BB5A7 /* cscrollview.h */, + 24A2001E0F90D1DD003BB5A7 /* ctabview.cpp */, + 24A2001F0F90D1DD003BB5A7 /* ctabview.h */, + 24A200200F90D1DD003BB5A7 /* Documentation */, + 24A201460F90D1DE003BB5A7 /* plugguieditor.cpp */, + 24A201470F90D1DE003BB5A7 /* plugguieditor.h */, + 24A201480F90D1DE003BB5A7 /* vstcontrols.cpp */, + 24A201490F90D1DE003BB5A7 /* vstcontrols.h */, + 24A2014A0F90D1DE003BB5A7 /* vstgui.cpp */, + 24A2014B0F90D1DE003BB5A7 /* vstgui.h */, + 24A2014C0F90D1DE003BB5A7 /* vstkeycode.h */, + 24A2014D0F90D1DE003BB5A7 /* vstplugscarbon.h */, + 24A2014E0F90D1DE003BB5A7 /* vstplugsmac.h */, + 24A2014F0F90D1DE003BB5A7 /* vstplugsmacho.h */, + 24A201500F90D1DE003BB5A7 /* vstplugsquartz.h */, + ); + name = vstgui; + path = /vstsdk2.4/vstgui.sf/vstgui; + sourceTree = ""; + }; + 24A200200F90D1DD003BB5A7 /* Documentation */ = { + isa = PBXGroup; + children = ( + 24A200210F90D1DD003BB5A7 /* html */, + 24A201440F90D1DE003BB5A7 /* index.html */, + 24A201450F90D1DE003BB5A7 /* Migrating from 2.3.rtf */, + ); + name = Documentation; + path = /vstsdk2.4/vstgui.sf/vstgui/Documentation; + sourceTree = ""; + }; + 24A200210F90D1DD003BB5A7 /* html */ = { + isa = PBXGroup; + children = ( + 24A200220F90D1DD003BB5A7 /* aeffguieditor_8cpp.html */, + 24A200230F90D1DD003BB5A7 /* aeffguieditor_8h.html */, + 24A200240F90D1DD003BB5A7 /* annotated.html */, + 24A200250F90D1DD003BB5A7 /* cfileselector_8cpp.html */, + 24A200260F90D1DD003BB5A7 /* cfileselector_8h.html */, + 24A200270F90D1DD003BB5A7 /* class_a_eff_g_u_i_editor-members.html */, + 24A200280F90D1DD003BB5A7 /* class_a_eff_g_u_i_editor.html */, + 24A200290F90D1DD003BB5A7 /* class_c_anim_knob-members.html */, + 24A2002A0F90D1DD003BB5A7 /* class_c_anim_knob.html */, + 24A2002B0F90D1DD003BB5A7 /* class_c_anim_knob.png */, + 24A2002C0F90D1DD003BB5A7 /* class_c_attribute_list_entry-members.html */, + 24A2002D0F90D1DD003BB5A7 /* class_c_attribute_list_entry.html */, + 24A2002E0F90D1DD003BB5A7 /* class_c_auto_animation-members.html */, + 24A2002F0F90D1DD003BB5A7 /* class_c_auto_animation.html */, + 24A200300F90D1DD003BB5A7 /* class_c_auto_animation.png */, + 24A200310F90D1DD003BB5A7 /* class_c_bitmap-members.html */, + 24A200320F90D1DD003BB5A7 /* class_c_bitmap.html */, + 24A200330F90D1DD003BB5A7 /* class_c_bitmap.png */, + 24A200340F90D1DD003BB5A7 /* class_c_c_view-members.html */, + 24A200350F90D1DD003BB5A7 /* class_c_c_view.html */, + 24A200360F90D1DD003BB5A7 /* class_c_control-members.html */, + 24A200370F90D1DD003BB5A7 /* class_c_control.html */, + 24A200380F90D1DD003BB5A7 /* class_c_control.png */, + 24A200390F90D1DD003BB5A7 /* class_c_control_listener-members.html */, + 24A2003A0F90D1DD003BB5A7 /* class_c_control_listener.html */, + 24A2003B0F90D1DD003BB5A7 /* class_c_control_listener.png */, + 24A2003C0F90D1DD003BB5A7 /* class_c_drag_container-members.html */, + 24A2003D0F90D1DD003BB5A7 /* class_c_drag_container.html */, + 24A2003E0F90D1DD003BB5A7 /* class_c_drag_container.png */, + 24A2003F0F90D1DD003BB5A7 /* class_c_draw_context-members.html */, + 24A200400F90D1DD003BB5A7 /* class_c_draw_context.html */, + 24A200410F90D1DD003BB5A7 /* class_c_draw_context.png */, + 24A200420F90D1DD003BB5A7 /* class_c_file_selector-members.html */, + 24A200430F90D1DD003BB5A7 /* class_c_file_selector.html */, + 24A200440F90D1DD003BB5A7 /* class_c_frame-members.html */, + 24A200450F90D1DD003BB5A7 /* class_c_frame.html */, + 24A200460F90D1DD003BB5A7 /* class_c_frame.png */, + 24A200470F90D1DD003BB5A7 /* class_c_horizontal_slider-members.html */, + 24A200480F90D1DD003BB5A7 /* class_c_horizontal_slider.html */, + 24A200490F90D1DD003BB5A7 /* class_c_horizontal_slider.png */, + 24A2004A0F90D1DD003BB5A7 /* class_c_horizontal_switch-members.html */, + 24A2004B0F90D1DD003BB5A7 /* class_c_horizontal_switch.html */, + 24A2004C0F90D1DD003BB5A7 /* class_c_horizontal_switch.png */, + 24A2004D0F90D1DD003BB5A7 /* class_c_kick_button-members.html */, + 24A2004E0F90D1DD003BB5A7 /* class_c_kick_button.html */, + 24A2004F0F90D1DD003BB5A7 /* class_c_kick_button.png */, + 24A200500F90D1DD003BB5A7 /* class_c_knob-members.html */, + 24A200510F90D1DD003BB5A7 /* class_c_knob.html */, + 24A200520F90D1DD003BB5A7 /* class_c_knob.png */, + 24A200530F90D1DD003BB5A7 /* class_c_movie_bitmap-members.html */, + 24A200540F90D1DD003BB5A7 /* class_c_movie_bitmap.html */, + 24A200550F90D1DD003BB5A7 /* class_c_movie_bitmap.png */, + 24A200560F90D1DD003BB5A7 /* class_c_movie_button-members.html */, + 24A200570F90D1DD003BB5A7 /* class_c_movie_button.html */, + 24A200580F90D1DD003BB5A7 /* class_c_movie_button.png */, + 24A200590F90D1DD003BB5A7 /* class_c_offscreen_context-members.html */, + 24A2005A0F90D1DD003BB5A7 /* class_c_offscreen_context.html */, + 24A2005B0F90D1DD003BB5A7 /* class_c_offscreen_context.png */, + 24A2005C0F90D1DD003BB5A7 /* class_c_on_off_button-members.html */, + 24A2005D0F90D1DD003BB5A7 /* class_c_on_off_button.html */, + 24A2005E0F90D1DD003BB5A7 /* class_c_on_off_button.png */, + 24A2005F0F90D1DD003BB5A7 /* class_c_option_menu-members.html */, + 24A200600F90D1DD003BB5A7 /* class_c_option_menu.html */, + 24A200610F90D1DD003BB5A7 /* class_c_option_menu.png */, + 24A200620F90D1DD003BB5A7 /* class_c_option_menu_scheme-members.html */, + 24A200630F90D1DD003BB5A7 /* class_c_option_menu_scheme.html */, + 24A200640F90D1DD003BB5A7 /* class_c_option_menu_scheme.png */, + 24A200650F90D1DD003BB5A7 /* class_c_param_display-members.html */, + 24A200660F90D1DD003BB5A7 /* class_c_param_display.html */, + 24A200670F90D1DD003BB5A7 /* class_c_param_display.png */, + 24A200680F90D1DD003BB5A7 /* class_c_reference_counter-members.html */, + 24A200690F90D1DD003BB5A7 /* class_c_reference_counter.html */, + 24A2006A0F90D1DD003BB5A7 /* class_c_reference_counter.png */, + 24A2006B0F90D1DD003BB5A7 /* class_c_rocker_switch-members.html */, + 24A2006C0F90D1DD003BB5A7 /* class_c_rocker_switch.html */, + 24A2006D0F90D1DD003BB5A7 /* class_c_rocker_switch.png */, + 24A2006E0F90D1DD003BB5A7 /* class_c_scroll_container-members.html */, + 24A2006F0F90D1DD003BB5A7 /* class_c_scroll_container.html */, + 24A200700F90D1DD003BB5A7 /* class_c_scroll_container.png */, + 24A200710F90D1DD003BB5A7 /* class_c_scroll_view-members.html */, + 24A200720F90D1DD003BB5A7 /* class_c_scroll_view.html */, + 24A200730F90D1DD003BB5A7 /* class_c_scroll_view.png */, + 24A200740F90D1DD003BB5A7 /* class_c_scrollbar-members.html */, + 24A200750F90D1DD003BB5A7 /* class_c_scrollbar.html */, + 24A200760F90D1DD003BB5A7 /* class_c_scrollbar.png */, + 24A200770F90D1DD003BB5A7 /* class_c_slider-members.html */, + 24A200780F90D1DD003BB5A7 /* class_c_slider.html */, + 24A200790F90D1DD003BB5A7 /* class_c_slider.png */, + 24A2007A0F90D1DD003BB5A7 /* class_c_special_digit-members.html */, + 24A2007B0F90D1DD003BB5A7 /* class_c_special_digit.html */, + 24A2007C0F90D1DD003BB5A7 /* class_c_special_digit.png */, + 24A2007D0F90D1DD003BB5A7 /* class_c_splash_screen-members.html */, + 24A2007E0F90D1DD003BB5A7 /* class_c_splash_screen.html */, + 24A2007F0F90D1DD003BB5A7 /* class_c_splash_screen.png */, + 24A200800F90D1DD003BB5A7 /* class_c_splash_screen_view-members.html */, + 24A200810F90D1DD003BB5A7 /* class_c_splash_screen_view.html */, + 24A200820F90D1DD003BB5A7 /* class_c_splash_screen_view.png */, + 24A200830F90D1DD003BB5A7 /* class_c_tab_button-members.html */, + 24A200840F90D1DD003BB5A7 /* class_c_tab_button.html */, + 24A200850F90D1DD003BB5A7 /* class_c_tab_button.png */, + 24A200860F90D1DD003BB5A7 /* class_c_tab_child_view-members.html */, + 24A200870F90D1DD003BB5A7 /* class_c_tab_child_view.html */, + 24A200880F90D1DD003BB5A7 /* class_c_tab_child_view.png */, + 24A200890F90D1DD003BB5A7 /* class_c_tab_view-members.html */, + 24A2008A0F90D1DD003BB5A7 /* class_c_tab_view.html */, + 24A2008B0F90D1DD003BB5A7 /* class_c_tab_view.png */, + 24A2008C0F90D1DD003BB5A7 /* class_c_text_edit-members.html */, + 24A2008D0F90D1DD003BB5A7 /* class_c_text_edit.html */, + 24A2008E0F90D1DD003BB5A7 /* class_c_text_edit.png */, + 24A2008F0F90D1DD003BB5A7 /* class_c_text_label-members.html */, + 24A200900F90D1DD003BB5A7 /* class_c_text_label.html */, + 24A200910F90D1DD003BB5A7 /* class_c_text_label.png */, + 24A200920F90D1DD003BB5A7 /* class_c_vertical_slider-members.html */, + 24A200930F90D1DD003BB5A7 /* class_c_vertical_slider.html */, + 24A200940F90D1DD003BB5A7 /* class_c_vertical_slider.png */, + 24A200950F90D1DD003BB5A7 /* class_c_vertical_switch-members.html */, + 24A200960F90D1DD003BB5A7 /* class_c_vertical_switch.html */, + 24A200970F90D1DD003BB5A7 /* class_c_vertical_switch.png */, + 24A200980F90D1DD003BB5A7 /* class_c_view-members.html */, + 24A200990F90D1DD003BB5A7 /* class_c_view.html */, + 24A2009A0F90D1DD003BB5A7 /* class_c_view.png */, + 24A2009B0F90D1DD003BB5A7 /* class_c_view_container-members.html */, + 24A2009C0F90D1DD003BB5A7 /* class_c_view_container.html */, + 24A2009D0F90D1DD003BB5A7 /* class_c_view_container.png */, + 24A2009E0F90D1DD003BB5A7 /* class_c_vu_meter-members.html */, + 24A2009F0F90D1DD003BB5A7 /* class_c_vu_meter.html */, + 24A200A00F90D1DD003BB5A7 /* class_c_vu_meter.png */, + 24A200A10F90D1DD003BB5A7 /* class_i_scrollbar_drawer-members.html */, + 24A200A20F90D1DD003BB5A7 /* class_i_scrollbar_drawer.html */, + 24A200A30F90D1DD003BB5A7 /* class_plugin_g_u_i_editor-members.html */, + 24A200A40F90D1DD003BB5A7 /* class_plugin_g_u_i_editor.html */, + 24A200A50F90D1DD003BB5A7 /* cscrollview_8cpp.html */, + 24A200A60F90D1DD003BB5A7 /* cscrollview_8h.html */, + 24A200A70F90D1DD003BB5A7 /* ctabview_8cpp.html */, + 24A200A80F90D1DD003BB5A7 /* ctabview_8h.html */, + 24A200A90F90D1DD003BB5A7 /* deprecated.html */, + 24A200AA0F90D1DD003BB5A7 /* doc_8h.html */, + 24A200AB0F90D1DD003BB5A7 /* doxygen.css */, + 24A200AC0F90D1DD003BB5A7 /* doxygen.png */, + 24A200AD0F90D1DD003BB5A7 /* files.html */, + 24A200AE0F90D1DD003BB5A7 /* ftv2blank.png */, + 24A200AF0F90D1DD003BB5A7 /* ftv2doc.png */, + 24A200B00F90D1DD003BB5A7 /* ftv2folderclosed.png */, + 24A200B10F90D1DE003BB5A7 /* ftv2folderopen.png */, + 24A200B20F90D1DE003BB5A7 /* ftv2lastnode.png */, + 24A200B30F90D1DE003BB5A7 /* ftv2link.png */, + 24A200B40F90D1DE003BB5A7 /* ftv2mlastnode.png */, + 24A200B50F90D1DE003BB5A7 /* ftv2mnode.png */, + 24A200B60F90D1DE003BB5A7 /* ftv2node.png */, + 24A200B70F90D1DE003BB5A7 /* ftv2plastnode.png */, + 24A200B80F90D1DE003BB5A7 /* ftv2pnode.png */, + 24A200B90F90D1DE003BB5A7 /* ftv2vertline.png */, + 24A200BA0F90D1DE003BB5A7 /* functions.html */, + 24A200BB0F90D1DE003BB5A7 /* functions_0x62.html */, + 24A200BC0F90D1DE003BB5A7 /* functions_0x63.html */, + 24A200BD0F90D1DE003BB5A7 /* functions_0x64.html */, + 24A200BE0F90D1DE003BB5A7 /* functions_0x65.html */, + 24A200BF0F90D1DE003BB5A7 /* functions_0x66.html */, + 24A200C00F90D1DE003BB5A7 /* functions_0x67.html */, + 24A200C10F90D1DE003BB5A7 /* functions_0x68.html */, + 24A200C20F90D1DE003BB5A7 /* functions_0x69.html */, + 24A200C30F90D1DE003BB5A7 /* functions_0x6b.html */, + 24A200C40F90D1DE003BB5A7 /* functions_0x6c.html */, + 24A200C50F90D1DE003BB5A7 /* functions_0x6d.html */, + 24A200C60F90D1DE003BB5A7 /* functions_0x6e.html */, + 24A200C70F90D1DE003BB5A7 /* functions_0x6f.html */, + 24A200C80F90D1DE003BB5A7 /* functions_0x70.html */, + 24A200C90F90D1DE003BB5A7 /* functions_0x72.html */, + 24A200CA0F90D1DE003BB5A7 /* functions_0x73.html */, + 24A200CB0F90D1DE003BB5A7 /* functions_0x74.html */, + 24A200CC0F90D1DE003BB5A7 /* functions_0x75.html */, + 24A200CD0F90D1DE003BB5A7 /* functions_0x76.html */, + 24A200CE0F90D1DE003BB5A7 /* functions_0x77.html */, + 24A200CF0F90D1DE003BB5A7 /* functions_0x78.html */, + 24A200D00F90D1DE003BB5A7 /* functions_0x79.html */, + 24A200D10F90D1DE003BB5A7 /* functions_0x7a.html */, + 24A200D20F90D1DE003BB5A7 /* functions_0x7e.html */, + 24A200D30F90D1DE003BB5A7 /* functions_eval.html */, + 24A200D40F90D1DE003BB5A7 /* functions_func.html */, + 24A200D50F90D1DE003BB5A7 /* functions_func_0x62.html */, + 24A200D60F90D1DE003BB5A7 /* functions_func_0x63.html */, + 24A200D70F90D1DE003BB5A7 /* functions_func_0x64.html */, + 24A200D80F90D1DE003BB5A7 /* functions_func_0x65.html */, + 24A200D90F90D1DE003BB5A7 /* functions_func_0x66.html */, + 24A200DA0F90D1DE003BB5A7 /* functions_func_0x67.html */, + 24A200DB0F90D1DE003BB5A7 /* functions_func_0x68.html */, + 24A200DC0F90D1DE003BB5A7 /* functions_func_0x69.html */, + 24A200DD0F90D1DE003BB5A7 /* functions_func_0x6c.html */, + 24A200DE0F90D1DE003BB5A7 /* functions_func_0x6d.html */, + 24A200DF0F90D1DE003BB5A7 /* functions_func_0x6e.html */, + 24A200E00F90D1DE003BB5A7 /* functions_func_0x6f.html */, + 24A200E10F90D1DE003BB5A7 /* functions_func_0x70.html */, + 24A200E20F90D1DE003BB5A7 /* functions_func_0x72.html */, + 24A200E30F90D1DE003BB5A7 /* functions_func_0x73.html */, + 24A200E40F90D1DE003BB5A7 /* functions_func_0x74.html */, + 24A200E50F90D1DE003BB5A7 /* functions_func_0x75.html */, + 24A200E60F90D1DE003BB5A7 /* functions_func_0x76.html */, + 24A200E70F90D1DE003BB5A7 /* functions_func_0x77.html */, + 24A200E80F90D1DE003BB5A7 /* functions_func_0x7e.html */, + 24A200E90F90D1DE003BB5A7 /* functions_rela.html */, + 24A200EA0F90D1DE003BB5A7 /* functions_vars.html */, + 24A200EB0F90D1DE003BB5A7 /* functions_vars_0x62.html */, + 24A200EC0F90D1DE003BB5A7 /* functions_vars_0x63.html */, + 24A200ED0F90D1DE003BB5A7 /* functions_vars_0x64.html */, + 24A200EE0F90D1DE003BB5A7 /* functions_vars_0x65.html */, + 24A200EF0F90D1DE003BB5A7 /* functions_vars_0x66.html */, + 24A200F00F90D1DE003BB5A7 /* functions_vars_0x67.html */, + 24A200F10F90D1DE003BB5A7 /* functions_vars_0x68.html */, + 24A200F20F90D1DE003BB5A7 /* functions_vars_0x69.html */, + 24A200F30F90D1DE003BB5A7 /* functions_vars_0x6b.html */, + 24A200F40F90D1DE003BB5A7 /* functions_vars_0x6c.html */, + 24A200F50F90D1DE003BB5A7 /* functions_vars_0x6d.html */, + 24A200F60F90D1DE003BB5A7 /* functions_vars_0x6e.html */, + 24A200F70F90D1DE003BB5A7 /* functions_vars_0x6f.html */, + 24A200F80F90D1DE003BB5A7 /* functions_vars_0x70.html */, + 24A200F90F90D1DE003BB5A7 /* functions_vars_0x72.html */, + 24A200FA0F90D1DE003BB5A7 /* functions_vars_0x73.html */, + 24A200FB0F90D1DE003BB5A7 /* functions_vars_0x74.html */, + 24A200FC0F90D1DE003BB5A7 /* functions_vars_0x75.html */, + 24A200FD0F90D1DE003BB5A7 /* functions_vars_0x76.html */, + 24A200FE0F90D1DE003BB5A7 /* functions_vars_0x77.html */, + 24A200FF0F90D1DE003BB5A7 /* functions_vars_0x78.html */, + 24A201000F90D1DE003BB5A7 /* functions_vars_0x79.html */, + 24A201010F90D1DE003BB5A7 /* functions_vars_0x7a.html */, + 24A201020F90D1DE003BB5A7 /* globals.html */, + 24A201030F90D1DE003BB5A7 /* globals_0x61.html */, + 24A201040F90D1DE003BB5A7 /* globals_0x62.html */, + 24A201050F90D1DE003BB5A7 /* globals_0x63.html */, + 24A201060F90D1DE003BB5A7 /* globals_0x65.html */, + 24A201070F90D1DE003BB5A7 /* globals_0x66.html */, + 24A201080F90D1DE003BB5A7 /* globals_0x67.html */, + 24A201090F90D1DE003BB5A7 /* globals_0x6b.html */, + 24A2010A0F90D1DE003BB5A7 /* globals_0x6d.html */, + 24A2010B0F90D1DE003BB5A7 /* globals_0x6e.html */, + 24A2010C0F90D1DE003BB5A7 /* globals_0x6f.html */, + 24A2010D0F90D1DE003BB5A7 /* globals_0x71.html */, + 24A2010E0F90D1DE003BB5A7 /* globals_0x72.html */, + 24A2010F0F90D1DE003BB5A7 /* globals_0x73.html */, + 24A201100F90D1DE003BB5A7 /* globals_0x74.html */, + 24A201110F90D1DE003BB5A7 /* globals_0x75.html */, + 24A201120F90D1DE003BB5A7 /* globals_0x76.html */, + 24A201130F90D1DE003BB5A7 /* globals_0x77.html */, + 24A201140F90D1DE003BB5A7 /* globals_defs.html */, + 24A201150F90D1DE003BB5A7 /* globals_enum.html */, + 24A201160F90D1DE003BB5A7 /* globals_eval.html */, + 24A201170F90D1DE003BB5A7 /* globals_type.html */, + 24A201180F90D1DE003BB5A7 /* globals_vars.html */, + 24A201190F90D1DE003BB5A7 /* hierarchy.html */, + 24A2011A0F90D1DE003BB5A7 /* index.html */, + 24A2011B0F90D1DE003BB5A7 /* intro.html */, + 24A2011C0F90D1DE003BB5A7 /* license.html */, + 24A2011D0F90D1DE003BB5A7 /* maceditor.html */, + 24A2011E0F90D1DE003BB5A7 /* main.html */, + 24A2011F0F90D1DE003BB5A7 /* others.html */, + 24A201200F90D1DE003BB5A7 /* pages.html */, + 24A201210F90D1DE003BB5A7 /* plugguieditor_8cpp.html */, + 24A201220F90D1DE003BB5A7 /* plugguieditor_8h.html */, + 24A201230F90D1DE003BB5A7 /* sequences.html */, + 24A201240F90D1DE003BB5A7 /* struct_c_color-members.html */, + 24A201250F90D1DE003BB5A7 /* struct_c_color.html */, + 24A201260F90D1DE003BB5A7 /* struct_c_point-members.html */, + 24A201270F90D1DE003BB5A7 /* struct_c_point.html */, + 24A201280F90D1DE003BB5A7 /* struct_c_rect-members.html */, + 24A201290F90D1DE003BB5A7 /* struct_c_rect.html */, + 24A2012A0F90D1DE003BB5A7 /* struct_e_rect-members.html */, + 24A2012B0F90D1DE003BB5A7 /* struct_e_rect.html */, + 24A2012C0F90D1DE003BB5A7 /* struct_vst_file_select-members.html */, + 24A2012D0F90D1DE003BB5A7 /* struct_vst_file_select.html */, + 24A2012E0F90D1DE003BB5A7 /* struct_vst_file_type-members.html */, + 24A2012F0F90D1DE003BB5A7 /* struct_vst_file_type.html */, + 24A201300F90D1DE003BB5A7 /* struct_vst_key_code-members.html */, + 24A201310F90D1DE003BB5A7 /* struct_vst_key_code.html */, + 24A201320F90D1DE003BB5A7 /* tab_b.gif */, + 24A201330F90D1DE003BB5A7 /* tab_l.gif */, + 24A201340F90D1DE003BB5A7 /* tab_r.gif */, + 24A201350F90D1DE003BB5A7 /* tabs.css */, + 24A201360F90D1DE003BB5A7 /* thanks.html */, + 24A201370F90D1DE003BB5A7 /* tree.html */, + 24A201380F90D1DE003BB5A7 /* vstcontrols_8cpp.html */, + 24A201390F90D1DE003BB5A7 /* vstcontrols_8h.html */, + 24A2013A0F90D1DE003BB5A7 /* vstgui_8cpp.html */, + 24A2013B0F90D1DE003BB5A7 /* vstgui_8h.html */, + 24A2013C0F90D1DE003BB5A7 /* vstkeycode_8h.html */, + 24A2013D0F90D1DE003BB5A7 /* vstoffline.html */, + 24A2013E0F90D1DE003BB5A7 /* vstparamstruct.html */, + 24A2013F0F90D1DE003BB5A7 /* vstplugscarbon_8h.html */, + 24A201400F90D1DE003BB5A7 /* vstplugsmac_8h.html */, + 24A201410F90D1DE003BB5A7 /* vstplugsmacho_8h.html */, + 24A201420F90D1DE003BB5A7 /* vstplugsquartz_8h.html */, + 24A201430F90D1DE003BB5A7 /* whatsnew.html */, + ); + name = html; + path = /vstsdk2.4/vstgui.sf/vstgui/Documentation/html; + sourceTree = ""; + }; + 24A203CE0F90D272003BB5A7 /* Products */ = { + isa = PBXGroup; + children = ( + 24A203D70F90D272003BB5A7 /* again.vst */, + 24A203D90F90D272003BB5A7 /* adelay.vst */, + 24A203DB0F90D272003BB5A7 /* vstxsynth.vst */, + 24A203DD0F90D272003BB5A7 /* surrounddelay.vst */, + 24A203DF0F90D272003BB5A7 /* minihost.app */, + ); + name = Products; + sourceTree = ""; + }; + 24A203E00F90D272003BB5A7 /* Products */ = { + isa = PBXGroup; + children = ( + 24A203E50F90D272003BB5A7 /* drawtest.component */, + 24A203E70F90D272003BB5A7 /* drawtest.vst */, + ); + name = Products; + sourceTree = ""; + }; + 24A203E80F90D272003BB5A7 /* Products */ = { + isa = PBXGroup; + children = ( + 24A203ED0F90D272003BB5A7 /* drawtest.component */, + 24A203EF0F90D272003BB5A7 /* drawtest.vst */, + ); + name = Products; + sourceTree = ""; + }; + 24A2FEBB0F90D1DB003BB5A7 /* vstsdk2.4 */ = { + isa = PBXGroup; + children = ( + 24A2FEBC0F90D1DC003BB5A7 /* artwork */, + 24A2FEC20F90D1DC003BB5A7 /* bin */, + 24A2FED80F90D1DC003BB5A7 /* doc */, + 24A2FF8E0F90D1DD003BB5A7 /* index.html */, + 24A2FF8F0F90D1DD003BB5A7 /* pluginterfaces */, + 24A2FF940F90D1DD003BB5A7 /* public.sdk */, + 24A2FFDE0F90D1DD003BB5A7 /* vstgui.sf */, + ); + name = vstsdk2.4; + path = /vstsdk2.4; + sourceTree = ""; + }; + 24A2FEBC0F90D1DC003BB5A7 /* artwork */ = { + isa = PBXGroup; + children = ( + 24A2FEBD0F90D1DC003BB5A7 /* Thumbs.db */, + 24A2FEBE0F90D1DC003BB5A7 /* VST_Logo_Usage_Guideline.pdf */, + 24A2FEBF0F90D1DC003BB5A7 /* VSTLogoAlpha.png */, + 24A2FEC00F90D1DC003BB5A7 /* VSTLogoBlack.jpg */, + 24A2FEC10F90D1DC003BB5A7 /* VSTLogoWhite.jpg */, + ); + name = artwork; + path = /vstsdk2.4/artwork; + sourceTree = ""; + }; + 24A2FEC20F90D1DC003BB5A7 /* bin */ = { + isa = PBXGroup; + children = ( + 24A2FEC30F90D1DC003BB5A7 /* mac */, + 24A2FED50F90D1DC003BB5A7 /* win */, + ); + name = bin; + path = /vstsdk2.4/bin; + sourceTree = ""; + }; + 24A2FEC30F90D1DC003BB5A7 /* mac */ = { + isa = PBXGroup; + children = ( + 24A2FEC40F90D1DC003BB5A7 /* VSTMonitor.vst */, + 24A2FED40F90D1DC003BB5A7 /* VSTParamTool.app */, + ); + name = mac; + path = /vstsdk2.4/bin/mac; + sourceTree = ""; + }; + 24A2FEC40F90D1DC003BB5A7 /* VSTMonitor.vst */ = { + isa = PBXGroup; + children = ( + 24A2FEC50F90D1DC003BB5A7 /* Contents */, + ); + name = VSTMonitor.vst; + path = /vstsdk2.4/bin/mac/VSTMonitor.vst; + sourceTree = ""; + }; + 24A2FEC50F90D1DC003BB5A7 /* Contents */ = { + isa = PBXGroup; + children = ( + 24A2FEC60F90D1DC003BB5A7 /* Info.plist */, + 24A2FEC70F90D1DC003BB5A7 /* MacOS */, + 24A2FEC90F90D1DC003BB5A7 /* PkgInfo */, + 24A2FECA0F90D1DC003BB5A7 /* Resources */, + ); + name = Contents; + path = /vstsdk2.4/bin/mac/VSTMonitor.vst/Contents; + sourceTree = ""; + }; + 24A2FEC70F90D1DC003BB5A7 /* MacOS */ = { + isa = PBXGroup; + children = ( + 24A2FEC80F90D1DC003BB5A7 /* VSTMonitor */, + ); + name = MacOS; + path = /vstsdk2.4/bin/mac/VSTMonitor.vst/Contents/MacOS; + sourceTree = ""; + }; + 24A2FECA0F90D1DC003BB5A7 /* Resources */ = { + isa = PBXGroup; + children = ( + 24A2FECB0F90D1DC003BB5A7 /* bmp50000.bmp */, + 24A2FECC0F90D1DC003BB5A7 /* bmp50001.bmp */, + 24A2FECD0F90D1DC003BB5A7 /* bmp50002.bmp */, + 24A2FECE0F90D1DC003BB5A7 /* bmp50003.bmp */, + 24A2FECF0F90D1DC003BB5A7 /* bmp50004.bmp */, + 24A2FED00F90D1DC003BB5A7 /* bmp50005.bmp */, + 24A2FED10F90D1DC003BB5A7 /* bmp50006.bmp */, + 24A2FED20F90D1DC003BB5A7 /* bmp50007.bmp */, + 24A2FED30F90D1DC003BB5A7 /* bmp50008.bmp */, + ); + name = Resources; + path = /vstsdk2.4/bin/mac/VSTMonitor.vst/Contents/Resources; + sourceTree = ""; + }; + 24A2FED50F90D1DC003BB5A7 /* win */ = { + isa = PBXGroup; + children = ( + 24A2FED60F90D1DC003BB5A7 /* vstmonitor.dll */, + 24A2FED70F90D1DC003BB5A7 /* vstparamtool.exe */, + ); + name = win; + path = /vstsdk2.4/bin/win; + sourceTree = ""; + }; + 24A2FED80F90D1DC003BB5A7 /* doc */ = { + isa = PBXGroup; + children = ( + 24A2FED90F90D1DC003BB5A7 /* gfx */, + 24A2FEDE0F90D1DC003BB5A7 /* html */, + 24A2FF8A0F90D1DD003BB5A7 /* sdk.menu.html */, + 24A2FF8B0F90D1DD003BB5A7 /* sdk.overview.html */, + 24A2FF8C0F90D1DD003BB5A7 /* sdkdoc.css */, + 24A2FF8D0F90D1DD003BB5A7 /* VST Licensing Agreement.rtf */, + ); + name = doc; + path = /vstsdk2.4/doc; + sourceTree = ""; + }; + 24A2FED90F90D1DC003BB5A7 /* gfx */ = { + isa = PBXGroup; + children = ( + 24A2FEDA0F90D1DC003BB5A7 /* folder.gif */, + 24A2FEDB0F90D1DC003BB5A7 /* mac.gif */, + 24A2FEDC0F90D1DC003BB5A7 /* vstpluglogo_small.jpg */, + 24A2FEDD0F90D1DC003BB5A7 /* win.gif */, + ); + name = gfx; + path = /vstsdk2.4/doc/gfx; + sourceTree = ""; + }; + 24A2FEDE0F90D1DC003BB5A7 /* html */ = { + isa = PBXGroup; + children = ( + 24A2FEDF0F90D1DC003BB5A7 /* aeffect_8h.html */, + 24A2FEE00F90D1DC003BB5A7 /* aeffectx_8h.html */, + 24A2FEE10F90D1DC003BB5A7 /* aeffeditor_8h.html */, + 24A2FEE20F90D1DC003BB5A7 /* annotated.html */, + 24A2FEE30F90D1DC003BB5A7 /* audioeffect_8cpp.html */, + 24A2FEE40F90D1DC003BB5A7 /* audioeffect_8h.html */, + 24A2FEE50F90D1DC003BB5A7 /* audioeffectx_8cpp.html */, + 24A2FEE60F90D1DC003BB5A7 /* audioeffectx_8h.html */, + 24A2FEE70F90D1DC003BB5A7 /* Blocksizechange.gif */, + 24A2FEE80F90D1DC003BB5A7 /* class_a_eff_editor-members.html */, + 24A2FEE90F90D1DC003BB5A7 /* class_a_eff_editor.html */, + 24A2FEEA0F90D1DC003BB5A7 /* class_audio_effect-members.html */, + 24A2FEEB0F90D1DC003BB5A7 /* class_audio_effect.html */, + 24A2FEEC0F90D1DC003BB5A7 /* class_audio_effect.png */, + 24A2FEED0F90D1DC003BB5A7 /* class_audio_effect_x-members.html */, + 24A2FEEE0F90D1DC003BB5A7 /* class_audio_effect_x.html */, + 24A2FEEF0F90D1DC003BB5A7 /* class_audio_effect_x.png */, + 24A2FEF00F90D1DC003BB5A7 /* ControlChanged.gif */, + 24A2FEF10F90D1DC003BB5A7 /* deprecated.html */, + 24A2FEF20F90D1DC003BB5A7 /* dir_2d3252dd12c84c66c1d25b26bb45a1f5.html */, + 24A2FEF30F90D1DC003BB5A7 /* dir_77c628dfee72e555f82d5ef53b733f38.html */, + 24A2FEF40F90D1DC003BB5A7 /* dir_f81105d3b854bea570aaf3bae5cb64c1.html */, + 24A2FEF50F90D1DC003BB5A7 /* dir_fa0454ab79b4262333bf837ea3d765e9.html */, + 24A2FEF60F90D1DC003BB5A7 /* dirs.html */, + 24A2FEF70F90D1DC003BB5A7 /* doc_8h.html */, + 24A2FEF80F90D1DC003BB5A7 /* doxygen.css */, + 24A2FEF90F90D1DC003BB5A7 /* doxygen.png */, + 24A2FEFA0F90D1DC003BB5A7 /* files.html */, + 24A2FEFB0F90D1DC003BB5A7 /* ftv2blank.png */, + 24A2FEFC0F90D1DC003BB5A7 /* ftv2doc.png */, + 24A2FEFD0F90D1DC003BB5A7 /* ftv2folderclosed.png */, + 24A2FEFE0F90D1DC003BB5A7 /* ftv2folderopen.png */, + 24A2FEFF0F90D1DC003BB5A7 /* ftv2lastnode.png */, + 24A2FF000F90D1DC003BB5A7 /* ftv2link.png */, + 24A2FF010F90D1DC003BB5A7 /* ftv2mlastnode.png */, + 24A2FF020F90D1DC003BB5A7 /* ftv2mnode.png */, + 24A2FF030F90D1DC003BB5A7 /* ftv2node.png */, + 24A2FF040F90D1DC003BB5A7 /* ftv2plastnode.png */, + 24A2FF050F90D1DC003BB5A7 /* ftv2pnode.png */, + 24A2FF060F90D1DC003BB5A7 /* ftv2vertline.png */, + 24A2FF070F90D1DC003BB5A7 /* functions.html */, + 24A2FF080F90D1DC003BB5A7 /* functions_0x62.html */, + 24A2FF090F90D1DC003BB5A7 /* functions_0x63.html */, + 24A2FF0A0F90D1DC003BB5A7 /* functions_0x64.html */, + 24A2FF0B0F90D1DC003BB5A7 /* functions_0x65.html */, + 24A2FF0C0F90D1DC003BB5A7 /* functions_0x66.html */, + 24A2FF0D0F90D1DC003BB5A7 /* functions_0x67.html */, + 24A2FF0E0F90D1DC003BB5A7 /* functions_0x68.html */, + 24A2FF0F0F90D1DC003BB5A7 /* functions_0x69.html */, + 24A2FF100F90D1DC003BB5A7 /* functions_0x6b.html */, + 24A2FF110F90D1DC003BB5A7 /* functions_0x6c.html */, + 24A2FF120F90D1DC003BB5A7 /* functions_0x6d.html */, + 24A2FF130F90D1DC003BB5A7 /* functions_0x6e.html */, + 24A2FF140F90D1DC003BB5A7 /* functions_0x6f.html */, + 24A2FF150F90D1DC003BB5A7 /* functions_0x70.html */, + 24A2FF160F90D1DC003BB5A7 /* functions_0x72.html */, + 24A2FF170F90D1DC003BB5A7 /* functions_0x73.html */, + 24A2FF180F90D1DC003BB5A7 /* functions_0x74.html */, + 24A2FF190F90D1DC003BB5A7 /* functions_0x75.html */, + 24A2FF1A0F90D1DC003BB5A7 /* functions_0x76.html */, + 24A2FF1B0F90D1DC003BB5A7 /* functions_0x77.html */, + 24A2FF1C0F90D1DC003BB5A7 /* functions_0x78.html */, + 24A2FF1D0F90D1DC003BB5A7 /* functions_0x79.html */, + 24A2FF1E0F90D1DC003BB5A7 /* functions_0x7e.html */, + 24A2FF1F0F90D1DC003BB5A7 /* functions_func.html */, + 24A2FF200F90D1DC003BB5A7 /* functions_vars.html */, + 24A2FF210F90D1DC003BB5A7 /* globals.html */, + 24A2FF220F90D1DC003BB5A7 /* globals_0x62.html */, + 24A2FF230F90D1DC003BB5A7 /* globals_0x63.html */, + 24A2FF240F90D1DC003BB5A7 /* globals_0x64.html */, + 24A2FF250F90D1DC003BB5A7 /* globals_0x65.html */, + 24A2FF260F90D1DC003BB5A7 /* globals_0x66.html */, + 24A2FF270F90D1DC003BB5A7 /* globals_0x6b.html */, + 24A2FF280F90D1DC003BB5A7 /* globals_0x6d.html */, + 24A2FF290F90D1DC003BB5A7 /* globals_0x74.html */, + 24A2FF2A0F90D1DC003BB5A7 /* globals_0x76.html */, + 24A2FF2B0F90D1DC003BB5A7 /* globals_defs.html */, + 24A2FF2C0F90D1DC003BB5A7 /* globals_enum.html */, + 24A2FF2D0F90D1DC003BB5A7 /* globals_eval.html */, + 24A2FF2E0F90D1DC003BB5A7 /* globals_eval_0x65.html */, + 24A2FF2F0F90D1DC003BB5A7 /* globals_eval_0x6b.html */, + 24A2FF300F90D1DC003BB5A7 /* globals_eval_0x6d.html */, + 24A2FF310F90D1DC003BB5A7 /* globals_eval_0x76.html */, + 24A2FF320F90D1DC003BB5A7 /* globals_func.html */, + 24A2FF330F90D1DC003BB5A7 /* globals_type.html */, + 24A2FF340F90D1DC003BB5A7 /* globals_vars.html */, + 24A2FF350F90D1DC003BB5A7 /* hierarchy.html */, + 24A2FF360F90D1DC003BB5A7 /* history.html */, + 24A2FF370F90D1DC003BB5A7 /* index.html */, + 24A2FF380F90D1DC003BB5A7 /* Initialisation.gif */, + 24A2FF390F90D1DC003BB5A7 /* intro.html */, + 24A2FF3A0F90D1DC003BB5A7 /* IOchange.gif */, + 24A2FF3B0F90D1DC003BB5A7 /* license.html */, + 24A2FF3C0F90D1DC003BB5A7 /* maceditor.html */, + 24A2FF3D0F90D1DC003BB5A7 /* main.html */, + 24A2FF3E0F90D1DC003BB5A7 /* namespace_host_can_dos.html */, + 24A2FF3F0F90D1DC003BB5A7 /* namespace_plug_can_dos.html */, + 24A2FF400F90D1DC003BB5A7 /* namespacemembers.html */, + 24A2FF410F90D1DC003BB5A7 /* namespacemembers_vars.html */, + 24A2FF420F90D1DC003BB5A7 /* namespaces.html */, + 24A2FF430F90D1DC003BB5A7 /* Offlineprocessing.gif */, + 24A2FF440F90D1DC003BB5A7 /* others.html */, + 24A2FF450F90D1DC003BB5A7 /* pages.html */, + 24A2FF460F90D1DC003BB5A7 /* Sampleratechange.gif */, + 24A2FF470F90D1DC003BB5A7 /* sequences.html */, + 24A2FF480F90D1DC003BB5A7 /* SpeakerarrangementnegotiationforVSTfx.gif */, + 24A2FF490F90D1DC003BB5A7 /* struct_a_effect-members.html */, + 24A2FF4A0F90D1DC003BB5A7 /* struct_a_effect.html */, + 24A2FF4B0F90D1DC003BB5A7 /* struct_e_rect-members.html */, + 24A2FF4C0F90D1DC003BB5A7 /* struct_e_rect.html */, + 24A2FF4D0F90D1DC003BB5A7 /* struct_midi_key_name-members.html */, + 24A2FF4E0F90D1DC003BB5A7 /* struct_midi_key_name.html */, + 24A2FF4F0F90D1DC003BB5A7 /* struct_midi_program_category-members.html */, + 24A2FF500F90D1DC003BB5A7 /* struct_midi_program_category.html */, + 24A2FF510F90D1DC003BB5A7 /* struct_midi_program_name-members.html */, + 24A2FF520F90D1DC003BB5A7 /* struct_midi_program_name.html */, + 24A2FF530F90D1DC003BB5A7 /* struct_vst_audio_file-members.html */, + 24A2FF540F90D1DC003BB5A7 /* struct_vst_audio_file.html */, + 24A2FF550F90D1DC003BB5A7 /* struct_vst_audio_file_marker-members.html */, + 24A2FF560F90D1DC003BB5A7 /* struct_vst_audio_file_marker.html */, + 24A2FF570F90D1DC003BB5A7 /* struct_vst_event-members.html */, + 24A2FF580F90D1DC003BB5A7 /* struct_vst_event.html */, + 24A2FF590F90D1DD003BB5A7 /* struct_vst_events-members.html */, + 24A2FF5A0F90D1DD003BB5A7 /* struct_vst_events.html */, + 24A2FF5B0F90D1DD003BB5A7 /* struct_vst_file_select-members.html */, + 24A2FF5C0F90D1DD003BB5A7 /* struct_vst_file_select.html */, + 24A2FF5D0F90D1DD003BB5A7 /* struct_vst_file_type-members.html */, + 24A2FF5E0F90D1DD003BB5A7 /* struct_vst_file_type.html */, + 24A2FF5F0F90D1DD003BB5A7 /* struct_vst_key_code-members.html */, + 24A2FF600F90D1DD003BB5A7 /* struct_vst_key_code.html */, + 24A2FF610F90D1DD003BB5A7 /* struct_vst_midi_event-members.html */, + 24A2FF620F90D1DD003BB5A7 /* struct_vst_midi_event.html */, + 24A2FF630F90D1DD003BB5A7 /* struct_vst_midi_sysex_event-members.html */, + 24A2FF640F90D1DD003BB5A7 /* struct_vst_midi_sysex_event.html */, + 24A2FF650F90D1DD003BB5A7 /* struct_vst_offline_task-members.html */, + 24A2FF660F90D1DD003BB5A7 /* struct_vst_offline_task.html */, + 24A2FF670F90D1DD003BB5A7 /* struct_vst_parameter_properties-members.html */, + 24A2FF680F90D1DD003BB5A7 /* struct_vst_parameter_properties.html */, + 24A2FF690F90D1DD003BB5A7 /* struct_vst_patch_chunk_info-members.html */, + 24A2FF6A0F90D1DD003BB5A7 /* struct_vst_patch_chunk_info.html */, + 24A2FF6B0F90D1DD003BB5A7 /* struct_vst_pin_properties-members.html */, + 24A2FF6C0F90D1DD003BB5A7 /* struct_vst_pin_properties.html */, + 24A2FF6D0F90D1DD003BB5A7 /* struct_vst_speaker_arrangement-members.html */, + 24A2FF6E0F90D1DD003BB5A7 /* struct_vst_speaker_arrangement.html */, + 24A2FF6F0F90D1DD003BB5A7 /* struct_vst_speaker_properties-members.html */, + 24A2FF700F90D1DD003BB5A7 /* struct_vst_speaker_properties.html */, + 24A2FF710F90D1DD003BB5A7 /* struct_vst_time_info-members.html */, + 24A2FF720F90D1DD003BB5A7 /* struct_vst_time_info.html */, + 24A2FF730F90D1DD003BB5A7 /* struct_vst_variable_io-members.html */, + 24A2FF740F90D1DD003BB5A7 /* struct_vst_variable_io.html */, + 24A2FF750F90D1DD003BB5A7 /* struct_vst_window-members.html */, + 24A2FF760F90D1DD003BB5A7 /* struct_vst_window.html */, + 24A2FF770F90D1DD003BB5A7 /* structfx_bank-members.html */, + 24A2FF780F90D1DD003BB5A7 /* structfx_bank.html */, + 24A2FF790F90D1DD003BB5A7 /* structfx_program-members.html */, + 24A2FF7A0F90D1DD003BB5A7 /* structfx_program.html */, + 24A2FF7B0F90D1DD003BB5A7 /* tab_b.gif */, + 24A2FF7C0F90D1DD003BB5A7 /* tab_l.gif */, + 24A2FF7D0F90D1DD003BB5A7 /* tab_r.gif */, + 24A2FF7E0F90D1DD003BB5A7 /* tabs.css */, + 24A2FF7F0F90D1DD003BB5A7 /* Termination.gif */, + 24A2FF800F90D1DD003BB5A7 /* thanks.html */, + 24A2FF810F90D1DD003BB5A7 /* tree.html */, + 24A2FF820F90D1DD003BB5A7 /* TurnOff.gif */, + 24A2FF830F90D1DD003BB5A7 /* TurnOn.gif */, + 24A2FF840F90D1DD003BB5A7 /* vstfxstore_8h.html */, + 24A2FF850F90D1DD003BB5A7 /* vstoffline.html */, + 24A2FF860F90D1DD003BB5A7 /* vstparamstruct.html */, + 24A2FF870F90D1DD003BB5A7 /* vstpluglogo.jpg */, + 24A2FF880F90D1DD003BB5A7 /* vstplugmain_8cpp.html */, + 24A2FF890F90D1DD003BB5A7 /* whatsnew.html */, + ); + name = html; + path = /vstsdk2.4/doc/html; + sourceTree = ""; + }; + 24A2FF8F0F90D1DD003BB5A7 /* pluginterfaces */ = { + isa = PBXGroup; + children = ( + 24A2FF900F90D1DD003BB5A7 /* vst2.x */, + ); + name = pluginterfaces; + path = /vstsdk2.4/pluginterfaces; + sourceTree = ""; + }; + 24A2FF900F90D1DD003BB5A7 /* vst2.x */ = { + isa = PBXGroup; + children = ( + 24A2FF910F90D1DD003BB5A7 /* aeffect.h */, + 24A2FF920F90D1DD003BB5A7 /* aeffectx.h */, + 24A2FF930F90D1DD003BB5A7 /* vstfxstore.h */, + ); + name = vst2.x; + path = /vstsdk2.4/pluginterfaces/vst2.x; + sourceTree = ""; + }; + 24A2FF940F90D1DD003BB5A7 /* public.sdk */ = { + isa = PBXGroup; + children = ( + 24A2FF950F90D1DD003BB5A7 /* samples */, + 24A2FFD60F90D1DD003BB5A7 /* source */, + ); + name = public.sdk; + path = /vstsdk2.4/public.sdk; + sourceTree = ""; + }; + 24A2FF950F90D1DD003BB5A7 /* samples */ = { + isa = PBXGroup; + children = ( + 24A2FF960F90D1DD003BB5A7 /* vst2.x */, + ); + name = samples; + path = /vstsdk2.4/public.sdk/samples; + sourceTree = ""; + }; + 24A2FF960F90D1DD003BB5A7 /* vst2.x */ = { + isa = PBXGroup; + children = ( + 24A2FF970F90D1DD003BB5A7 /* adelay */, + 24A2FFA80F90D1DD003BB5A7 /* again */, + 24A2FFAE0F90D1DD003BB5A7 /* mac */, + 24A2FFB40F90D1DD003BB5A7 /* minihost */, + 24A2FFBA0F90D1DD003BB5A7 /* vstxsynth */, + 24A2FFC50F90D1DD003BB5A7 /* win */, + 24A2FFC80F90D1DD003BB5A7 /* win.vc2003 */, + 24A2FFCF0F90D1DD003BB5A7 /* win.vc6 */, + ); + name = vst2.x; + path = /vstsdk2.4/public.sdk/samples/vst2.x; + sourceTree = ""; + }; + 24A2FF970F90D1DD003BB5A7 /* adelay */ = { + isa = PBXGroup; + children = ( + 24A2FF980F90D1DD003BB5A7 /* adelay.cpp */, + 24A2FF990F90D1DD003BB5A7 /* adelay.h */, + 24A2FF9A0F90D1DD003BB5A7 /* adelaymain.cpp */, + 24A2FF9B0F90D1DD003BB5A7 /* editor */, + 24A2FFA30F90D1DD003BB5A7 /* surrounddelay.cpp */, + 24A2FFA40F90D1DD003BB5A7 /* surrounddelay.h */, + 24A2FFA50F90D1DD003BB5A7 /* win */, + ); + name = adelay; + path = /vstsdk2.4/public.sdk/samples/vst2.x/adelay; + sourceTree = ""; + }; + 24A2FF9B0F90D1DD003BB5A7 /* editor */ = { + isa = PBXGroup; + children = ( + 24A2FF9C0F90D1DD003BB5A7 /* resources */, + 24A2FFA10F90D1DD003BB5A7 /* sdeditor.cpp */, + 24A2FFA20F90D1DD003BB5A7 /* sdeditor.h */, + ); + name = editor; + path = /vstsdk2.4/public.sdk/samples/vst2.x/adelay/editor; + sourceTree = ""; + }; + 24A2FF9C0F90D1DD003BB5A7 /* resources */ = { + isa = PBXGroup; + children = ( + 24A2FF9D0F90D1DD003BB5A7 /* bmp00128.bmp */, + 24A2FF9E0F90D1DD003BB5A7 /* bmp00129.bmp */, + 24A2FF9F0F90D1DD003BB5A7 /* bmp00130.bmp */, + 24A2FFA00F90D1DD003BB5A7 /* surrounddelay.rc */, + ); + name = resources; + path = /vstsdk2.4/public.sdk/samples/vst2.x/adelay/editor/resources; + sourceTree = ""; + }; + 24A2FFA50F90D1DD003BB5A7 /* win */ = { + isa = PBXGroup; + children = ( + 24A2FFA60F90D1DD003BB5A7 /* adelay.vcproj */, + 24A2FFA70F90D1DD003BB5A7 /* surrounddelay.vcproj */, + ); + name = win; + path = /vstsdk2.4/public.sdk/samples/vst2.x/adelay/win; + sourceTree = ""; + }; + 24A2FFA80F90D1DD003BB5A7 /* again */ = { + isa = PBXGroup; + children = ( + 24A2FFA90F90D1DD003BB5A7 /* source */, + 24A2FFAC0F90D1DD003BB5A7 /* win */, + ); + name = again; + path = /vstsdk2.4/public.sdk/samples/vst2.x/again; + sourceTree = ""; + }; + 24A2FFA90F90D1DD003BB5A7 /* source */ = { + isa = PBXGroup; + children = ( + 24A2FFAA0F90D1DD003BB5A7 /* again.cpp */, + 24A2FFAB0F90D1DD003BB5A7 /* again.h */, + ); + name = source; + path = /vstsdk2.4/public.sdk/samples/vst2.x/again/source; + sourceTree = ""; + }; + 24A2FFAC0F90D1DD003BB5A7 /* win */ = { + isa = PBXGroup; + children = ( + 24A2FFAD0F90D1DD003BB5A7 /* again.vcproj */, + ); + name = win; + path = /vstsdk2.4/public.sdk/samples/vst2.x/again/win; + sourceTree = ""; + }; + 24A2FFAE0F90D1DD003BB5A7 /* mac */ = { + isa = PBXGroup; + children = ( + 24A2FFAF0F90D1DD003BB5A7 /* minihost-Info.plist */, + 24A2FFB00F90D1DD003BB5A7 /* vst 2.4 examples.xcodeproj */, + 24A2FFB30F90D1DD003BB5A7 /* vst2.4Info.plist */, + ); + name = mac; + path = /vstsdk2.4/public.sdk/samples/vst2.x/mac; + sourceTree = ""; + }; + 24A2FFB40F90D1DD003BB5A7 /* minihost */ = { + isa = PBXGroup; + children = ( + 24A2FFB50F90D1DD003BB5A7 /* source */, + 24A2FFB80F90D1DD003BB5A7 /* win */, + ); + name = minihost; + path = /vstsdk2.4/public.sdk/samples/vst2.x/minihost; + sourceTree = ""; + }; + 24A2FFB50F90D1DD003BB5A7 /* source */ = { + isa = PBXGroup; + children = ( + 24A2FFB60F90D1DD003BB5A7 /* minieditor.cpp */, + 24A2FFB70F90D1DD003BB5A7 /* minihost.cpp */, + ); + name = source; + path = /vstsdk2.4/public.sdk/samples/vst2.x/minihost/source; + sourceTree = ""; + }; + 24A2FFB80F90D1DD003BB5A7 /* win */ = { + isa = PBXGroup; + children = ( + 24A2FFB90F90D1DD003BB5A7 /* minihost.vcproj */, + ); + name = win; + path = /vstsdk2.4/public.sdk/samples/vst2.x/minihost/win; + sourceTree = ""; + }; + 24A2FFBA0F90D1DD003BB5A7 /* vstxsynth */ = { + isa = PBXGroup; + children = ( + 24A2FFBB0F90D1DD003BB5A7 /* resource */, + 24A2FFBE0F90D1DD003BB5A7 /* source */, + 24A2FFC30F90D1DD003BB5A7 /* win */, + ); + name = vstxsynth; + path = /vstsdk2.4/public.sdk/samples/vst2.x/vstxsynth; + sourceTree = ""; + }; + 24A2FFBB0F90D1DD003BB5A7 /* resource */ = { + isa = PBXGroup; + children = ( + 24A2FFBC0F90D1DD003BB5A7 /* vstxsynth.rc */, + 24A2FFBD0F90D1DD003BB5A7 /* vstxsynth.vstxml */, + ); + name = resource; + path = /vstsdk2.4/public.sdk/samples/vst2.x/vstxsynth/resource; + sourceTree = ""; + }; + 24A2FFBE0F90D1DD003BB5A7 /* source */ = { + isa = PBXGroup; + children = ( + 24A2FFBF0F90D1DD003BB5A7 /* gmnames.h */, + 24A2FFC00F90D1DD003BB5A7 /* vstxsynth.cpp */, + 24A2FFC10F90D1DD003BB5A7 /* vstxsynth.h */, + 24A2FFC20F90D1DD003BB5A7 /* vstxsynthproc.cpp */, + ); + name = source; + path = /vstsdk2.4/public.sdk/samples/vst2.x/vstxsynth/source; + sourceTree = ""; + }; + 24A2FFC30F90D1DD003BB5A7 /* win */ = { + isa = PBXGroup; + children = ( + 24A2FFC40F90D1DD003BB5A7 /* vstxsynth.vcproj */, + ); + name = win; + path = /vstsdk2.4/public.sdk/samples/vst2.x/vstxsynth/win; + sourceTree = ""; + }; + 24A2FFC50F90D1DD003BB5A7 /* win */ = { + isa = PBXGroup; + children = ( + 24A2FFC60F90D1DD003BB5A7 /* samples.sln */, + 24A2FFC70F90D1DD003BB5A7 /* vstplug.def */, + ); + name = win; + path = /vstsdk2.4/public.sdk/samples/vst2.x/win; + sourceTree = ""; + }; + 24A2FFC80F90D1DD003BB5A7 /* win.vc2003 */ = { + isa = PBXGroup; + children = ( + 24A2FFC90F90D1DD003BB5A7 /* adelay.vcproj */, + 24A2FFCA0F90D1DD003BB5A7 /* again.vcproj */, + 24A2FFCB0F90D1DD003BB5A7 /* minihost.vcproj */, + 24A2FFCC0F90D1DD003BB5A7 /* samples.sln */, + 24A2FFCD0F90D1DD003BB5A7 /* surrounddelay.vcproj */, + 24A2FFCE0F90D1DD003BB5A7 /* vstxsynth.vcproj */, + ); + name = win.vc2003; + path = /vstsdk2.4/public.sdk/samples/vst2.x/win.vc2003; + sourceTree = ""; + }; + 24A2FFCF0F90D1DD003BB5A7 /* win.vc6 */ = { + isa = PBXGroup; + children = ( + 24A2FFD00F90D1DD003BB5A7 /* adelay.dsp */, + 24A2FFD10F90D1DD003BB5A7 /* again.dsp */, + 24A2FFD20F90D1DD003BB5A7 /* minihost.dsp */, + 24A2FFD30F90D1DD003BB5A7 /* samples.dsw */, + 24A2FFD40F90D1DD003BB5A7 /* surrounddelay.dsp */, + 24A2FFD50F90D1DD003BB5A7 /* vstxsynth.dsp */, + ); + name = win.vc6; + path = /vstsdk2.4/public.sdk/samples/vst2.x/win.vc6; + sourceTree = ""; + }; + 24A2FFD60F90D1DD003BB5A7 /* source */ = { + isa = PBXGroup; + children = ( + 24A2FFD70F90D1DD003BB5A7 /* vst2.x */, + ); + name = source; + path = /vstsdk2.4/public.sdk/source; + sourceTree = ""; + }; + 24A2FFD70F90D1DD003BB5A7 /* vst2.x */ = { + isa = PBXGroup; + children = ( + 24A2FFD80F90D1DD003BB5A7 /* aeffeditor.h */, + 24A2FFD90F90D1DD003BB5A7 /* audioeffect.cpp */, + 24A2FFDA0F90D1DD003BB5A7 /* audioeffect.h */, + 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */, + 24A2FFDC0F90D1DD003BB5A7 /* audioeffectx.h */, + 24A2FFDD0F90D1DD003BB5A7 /* vstplugmain.cpp */, + ); + name = vst2.x; + path = /vstsdk2.4/public.sdk/source/vst2.x; + sourceTree = ""; + }; + 24A2FFDE0F90D1DD003BB5A7 /* vstgui.sf */ = { + isa = PBXGroup; + children = ( + 24A2FFDF0F90D1DD003BB5A7 /* drawtest */, + 24A200160F90D1DD003BB5A7 /* vstgui */, + ); + name = vstgui.sf; + path = /vstsdk2.4/vstgui.sf; + sourceTree = ""; + }; + 24A2FFDF0F90D1DD003BB5A7 /* drawtest */ = { + isa = PBXGroup; + children = ( + 24A2FFE00F90D1DD003BB5A7 /* mac */, + 24A2FFEE0F90D1DD003BB5A7 /* resources */, + 24A200030F90D1DD003BB5A7 /* source */, + 24A2000F0F90D1DD003BB5A7 /* win */, + 24A200130F90D1DD003BB5A7 /* win.vc6 */, + ); + name = drawtest; + path = /vstsdk2.4/vstgui.sf/drawtest; + sourceTree = ""; + }; + 24A2FFE00F90D1DD003BB5A7 /* mac */ = { + isa = PBXGroup; + children = ( + 24A2FFE10F90D1DD003BB5A7 /* audiounit.exp */, + 24A2FFE20F90D1DD003BB5A7 /* cw_vst_prefix.pch++ */, + 24A2FFE30F90D1DD003BB5A7 /* drawtest.cw9prj */, + 24A2FFE40F90D1DD003BB5A7 /* drawtest.plc */, + 24A2FFE50F90D1DD003BB5A7 /* drawtest.xcode */, + 24A2FFE80F90D1DD003BB5A7 /* drawtest.xcodeproj */, + 24A2FFEB0F90D1DD003BB5A7 /* Info.plist */, + 24A2FFEC0F90D1DD003BB5A7 /* xcode_au_prefix.h */, + 24A2FFED0F90D1DD003BB5A7 /* xcode_vst_prefix.h */, + ); + name = mac; + path = /vstsdk2.4/vstgui.sf/drawtest/mac; + sourceTree = ""; + }; + 24A2FFEE0F90D1DD003BB5A7 /* resources */ = { + isa = PBXGroup; + children = ( + 24A2FFEF0F90D1DD003BB5A7 /* audiounit.r */, + 24A2FFF00F90D1DD003BB5A7 /* bmp00001.png */, + 24A2FFF10F90D1DD003BB5A7 /* bmp00100.png */, + 24A2FFF20F90D1DD003BB5A7 /* bmp01000.png */, + 24A2FFF30F90D1DD003BB5A7 /* bmp10001.bmp */, + 24A2FFF40F90D1DD003BB5A7 /* bmp10002.bmp */, + 24A2FFF50F90D1DD003BB5A7 /* bmp10003.bmp */, + 24A2FFF60F90D1DD003BB5A7 /* bmp10004.bmp */, + 24A2FFF70F90D1DD003BB5A7 /* bmp10005.bmp */, + 24A2FFF80F90D1DD003BB5A7 /* bmp10006.bmp */, + 24A2FFF90F90D1DD003BB5A7 /* bmp10007.bmp */, + 24A2FFFA0F90D1DD003BB5A7 /* bmp10008.bmp */, + 24A2FFFB0F90D1DD003BB5A7 /* bmp10009.bmp */, + 24A2FFFC0F90D1DD003BB5A7 /* bmp10010.bmp */, + 24A2FFFD0F90D1DD003BB5A7 /* bmp10011.bmp */, + 24A2FFFE0F90D1DD003BB5A7 /* bmp10012.bmp */, + 24A2FFFF0F90D1DD003BB5A7 /* bmp10013.bmp */, + 24A200000F90D1DD003BB5A7 /* bmp10014.bmp */, + 24A200010F90D1DD003BB5A7 /* bmp10015.bmp */, + 24A200020F90D1DD003BB5A7 /* bmp10016.bmp */, + ); + name = resources; + path = /vstsdk2.4/vstgui.sf/drawtest/resources; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 8D01CCC70486CAD60068D4B7 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 245463B90991757100464AD3 /* X2Buss.h in Headers */, + 24D8287F09A9164A0093AEF8 /* xcode_vst_prefix.h in Headers */, + 24A202190F90D1DE003BB5A7 /* aeffect.h in Headers */, + 24A2021A0F90D1DE003BB5A7 /* aeffectx.h in Headers */, + 24A2021B0F90D1DE003BB5A7 /* vstfxstore.h in Headers */, + 24A2021D0F90D1DE003BB5A7 /* adelay.h in Headers */, + 24A202240F90D1DE003BB5A7 /* sdeditor.h in Headers */, + 24A202260F90D1DE003BB5A7 /* surrounddelay.h in Headers */, + 24A2022A0F90D1DE003BB5A7 /* again.h in Headers */, + 24A202330F90D1DE003BB5A7 /* gmnames.h in Headers */, + 24A202350F90D1DE003BB5A7 /* vstxsynth.h in Headers */, + 24A202460F90D1DE003BB5A7 /* aeffeditor.h in Headers */, + 24A202480F90D1DE003BB5A7 /* audioeffect.h in Headers */, + 24A2024A0F90D1DE003BB5A7 /* audioeffectx.h in Headers */, + 24A2024D0F90D1DE003BB5A7 /* cw_vst_prefix.pch++ in Headers */, + 24A202510F90D1DE003BB5A7 /* xcode_au_prefix.h in Headers */, + 24A202520F90D1DE003BB5A7 /* xcode_vst_prefix.h in Headers */, + 24A202680F90D1DE003BB5A7 /* controlsgui.h in Headers */, + 24A2026A0F90D1DE003BB5A7 /* pdrawtesteditor.h in Headers */, + 24A2026C0F90D1DE003BB5A7 /* pdrawtesteffect.h in Headers */, + 24A2026F0F90D1DE003BB5A7 /* pdrawtestview.h in Headers */, + 24A202710F90D1DE003BB5A7 /* pprimitivesviews.h in Headers */, + 24A202780F90D1DE003BB5A7 /* aeffguieditor.h in Headers */, + 24A2027A0F90D1DE003BB5A7 /* cfileselector.h in Headers */, + 24A2027D0F90D1DE003BB5A7 /* cscrollview.h in Headers */, + 24A2027F0F90D1DE003BB5A7 /* ctabview.h in Headers */, + 24A203A50F90D1DE003BB5A7 /* plugguieditor.h in Headers */, + 24A203A70F90D1DE003BB5A7 /* vstcontrols.h in Headers */, + 24A203A90F90D1DE003BB5A7 /* vstgui.h in Headers */, + 24A203AA0F90D1DE003BB5A7 /* vstkeycode.h in Headers */, + 24A203AB0F90D1DE003BB5A7 /* vstplugscarbon.h in Headers */, + 24A203AC0F90D1DE003BB5A7 /* vstplugsmac.h in Headers */, + 24A203AD0F90D1DE003BB5A7 /* vstplugsmacho.h in Headers */, + 24A203AE0F90D1DE003BB5A7 /* vstplugsquartz.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 8D01CCC60486CAD60068D4B7 /* X2Buss */ = { + isa = PBXNativeTarget; + buildConfigurationList = 24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "X2Buss" */; + buildPhases = ( + 8D01CCC70486CAD60068D4B7 /* Headers */, + 8D01CCC90486CAD60068D4B7 /* Resources */, + 8D01CCCB0486CAD60068D4B7 /* Sources */, + 8D01CCCF0486CAD60068D4B7 /* Rez */, + 24CFB70807E7A07C0081BD57 /* Copy PkgInfo */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = X2Buss; + productInstallPath = "$(HOME)/Library/Bundles"; + productName = "FM-Chopper"; + productReference = 2407DE920899296600EB68BF /* X2Buss.vst */; + productType = "com.apple.product-type.bundle"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 089C1669FE841209C02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 24BEAAF108919AE700E695F9 /* Build configuration list for PBXProject "X2Buss" */; + compatibilityVersion = "Xcode 2.4"; + developmentRegion = English; + hasScannedForEncodings = 1; + knownRegions = ( + English, + Japanese, + French, + German, + ); + mainGroup = 089C166AFE841209C02AAC07 /* FM-Chopper */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 24A203E00F90D272003BB5A7 /* Products */; + ProjectRef = 24A2FFE50F90D1DD003BB5A7 /* drawtest.xcode */; + }, + { + ProductGroup = 24A203E80F90D272003BB5A7 /* Products */; + ProjectRef = 24A2FFE80F90D1DD003BB5A7 /* drawtest.xcodeproj */; + }, + { + ProductGroup = 24A203CE0F90D272003BB5A7 /* Products */; + ProjectRef = 24A2FFB00F90D1DD003BB5A7 /* vst 2.4 examples.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 8D01CCC60486CAD60068D4B7 /* X2Buss */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 24A203D70F90D272003BB5A7 /* again.vst */ = { + isa = PBXReferenceProxy; + fileType = wrapper.cfbundle; + path = again.vst; + remoteRef = 24A203D60F90D272003BB5A7 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 24A203D90F90D272003BB5A7 /* adelay.vst */ = { + isa = PBXReferenceProxy; + fileType = wrapper.cfbundle; + path = adelay.vst; + remoteRef = 24A203D80F90D272003BB5A7 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 24A203DB0F90D272003BB5A7 /* vstxsynth.vst */ = { + isa = PBXReferenceProxy; + fileType = wrapper.cfbundle; + path = vstxsynth.vst; + remoteRef = 24A203DA0F90D272003BB5A7 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 24A203DD0F90D272003BB5A7 /* surrounddelay.vst */ = { + isa = PBXReferenceProxy; + fileType = wrapper.cfbundle; + path = surrounddelay.vst; + remoteRef = 24A203DC0F90D272003BB5A7 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 24A203DF0F90D272003BB5A7 /* minihost.app */ = { + isa = PBXReferenceProxy; + fileType = wrapper.application; + path = minihost.app; + remoteRef = 24A203DE0F90D272003BB5A7 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 24A203E50F90D272003BB5A7 /* drawtest.component */ = { + isa = PBXReferenceProxy; + fileType = wrapper.cfbundle; + path = drawtest.component; + remoteRef = 24A203E40F90D272003BB5A7 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 24A203E70F90D272003BB5A7 /* drawtest.vst */ = { + isa = PBXReferenceProxy; + fileType = wrapper.cfbundle; + path = drawtest.vst; + remoteRef = 24A203E60F90D272003BB5A7 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 24A203ED0F90D272003BB5A7 /* drawtest.component */ = { + isa = PBXReferenceProxy; + fileType = wrapper.cfbundle; + path = drawtest.component; + remoteRef = 24A203EC0F90D272003BB5A7 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 24A203EF0F90D272003BB5A7 /* drawtest.vst */ = { + isa = PBXReferenceProxy; + fileType = wrapper.cfbundle; + path = drawtest.vst; + remoteRef = 24A203EE0F90D272003BB5A7 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 8D01CCC90486CAD60068D4B7 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 24CFB70407E7A0220081BD57 /* PkgInfo in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXRezBuildPhase section */ + 8D01CCCF0486CAD60068D4B7 /* Rez */ = { + isa = PBXRezBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXRezBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 24CFB70807E7A07C0081BD57 /* Copy PkgInfo */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Copy PkgInfo"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/bash; + shellScript = "cp mac/PkgInfo \"$BUILT_PRODUCTS_DIR/$PRODUCT_NAME.vst/Contents/\""; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 8D01CCCB0486CAD60068D4B7 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 2407DEB9089929BA00EB68BF /* X2Buss.cpp in Sources */, + 24D8287009A914000093AEF8 /* X2BussProc.cpp in Sources */, + 24A203CB0F90D251003BB5A7 /* audioeffect.cpp in Sources */, + 24A203CC0F90D251003BB5A7 /* audioeffectx.cpp in Sources */, + 24A203CD0F90D251003BB5A7 /* vstplugmain.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 24BEAAEE08919AE700E695F9 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = NO; + FRAMEWORK_SEARCH_PATHS = ""; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_TRIGRAPHS = NO; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ""; + GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO; + GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO; + GCC_WARN_UNKNOWN_PRAGMAS = NO; + HEADER_SEARCH_PATHS = "/vstsdk2.4/**"; + INFOPLIST_FILE = ./mac/Info.plist; + LIBRARY_SEARCH_PATHS = ""; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ""; + OTHER_REZFLAGS = ""; + PRODUCT_NAME = Gain; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + WRAPPER_EXTENSION = vst; + }; + name = Debug; + }; + 24BEAAEF08919AE700E695F9 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = ( + ppc, + i386, + x86_64, + ); + COPY_PHASE_STRIP = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + FRAMEWORK_SEARCH_PATHS = ""; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + GCC_ENABLE_TRIGRAPHS = NO; + GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + GCC_MODEL_TUNING = G4; + GCC_OPTIMIZATION_LEVEL = s; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ""; + GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO; + GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO; + GCC_WARN_UNKNOWN_PRAGMAS = NO; + HEADER_SEARCH_PATHS = "/vstsdk2.4/**"; + INFOPLIST_FILE = ./mac/Info.plist; + LIBRARY_SEARCH_PATHS = ""; + MACOSX_DEPLOYMENT_TARGET = 10.4; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ""; + OTHER_REZFLAGS = ""; + PRODUCT_NAME = X2Buss; + SDKROOT = /Developer/SDKs/MacOSX10.5.sdk; + SECTORDER_FLAGS = ""; + SKIP_INSTALL = NO; + STRIP_INSTALLED_PRODUCT = YES; + STRIP_STYLE = all; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + WRAPPER_EXTENSION = vst; + }; + name = Release; + }; + 24BEAAF208919AE700E695F9 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH)"; + GCC_MODEL_TUNING = G5; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = "DEBUG=1"; + INFOPLIST_FILE = ""; + INFOPLIST_PREPROCESS = NO; + }; + name = Debug; + }; + 24BEAAF308919AE700E695F9 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; + ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc"; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_MODEL_TUNING = G4; + GCC_OPTIMIZATION_LEVEL = s; + INFOPLIST_FILE = ""; + INFOPLIST_PREPROCESS = NO; + SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.6.sdk"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "X2Buss" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 24BEAAEE08919AE700E695F9 /* Debug */, + 24BEAAEF08919AE700E695F9 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 24BEAAF108919AE700E695F9 /* Build configuration list for PBXProject "X2Buss" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 24BEAAF208919AE700E695F9 /* Debug */, + 24BEAAF308919AE700E695F9 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; +/* End XCConfigurationList section */ + }; + rootObject = 089C1669FE841209C02AAC07 /* Project object */; +} diff --git a/plugins/MacVST/X2Buss/X2Buss.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/plugins/MacVST/X2Buss/X2Buss.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100755 index 000000000..a80c03824 --- /dev/null +++ b/plugins/MacVST/X2Buss/X2Buss.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/plugins/MacVST/X2Buss/X2Buss.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacVST/X2Buss/X2Buss.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100755 index 000000000..5c38f9460 Binary files /dev/null and b/plugins/MacVST/X2Buss/X2Buss.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/plugins/MacVST/X2Buss/X2Buss.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacVST/X2Buss/X2Buss.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100755 index 000000000..314de0ff8 Binary files /dev/null and b/plugins/MacVST/X2Buss/X2Buss.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/plugins/MacVST/X2Buss/X2Buss.xcodeproj/spiadmin.mode1v3 b/plugins/MacVST/X2Buss/X2Buss.xcodeproj/spiadmin.mode1v3 new file mode 100755 index 000000000..c5723261d --- /dev/null +++ b/plugins/MacVST/X2Buss/X2Buss.xcodeproj/spiadmin.mode1v3 @@ -0,0 +1,1372 @@ + + + + + ActivePerspectiveName + Project + AllowedModules + + + BundleLoadPath + + MaxInstances + n + Module + PBXSmartGroupTreeModule + Name + Groups and Files Outline View + + + BundleLoadPath + + MaxInstances + n + Module + PBXNavigatorGroup + Name + Editor + + + BundleLoadPath + + MaxInstances + n + Module + XCTaskListModule + Name + Task List + + + BundleLoadPath + + MaxInstances + n + Module + XCDetailModule + Name + File and Smart Group Detail Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXBuildResultsModule + Name + Detailed Build Results Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXProjectFindModule + Name + Project Batch Find Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCProjectFormatConflictsModule + Name + Project Format Conflicts List + + + BundleLoadPath + + MaxInstances + n + Module + PBXBookmarksModule + Name + Bookmarks Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXClassBrowserModule + Name + Class Browser + + + BundleLoadPath + + MaxInstances + n + Module + PBXCVSModule + Name + Source Code Control Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXDebugBreakpointsModule + Name + Debug Breakpoints Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCDockableInspector + Name + Inspector + + + BundleLoadPath + + MaxInstances + n + Module + PBXOpenQuicklyModule + Name + Open Quickly Tool + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugSessionModule + Name + Debugger + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugCLIModule + Name + Debug Console + + + BundleLoadPath + + MaxInstances + n + Module + XCSnapshotModule + Name + Snapshots Tool + + + BundlePath + /Xcode3/Library/PrivateFrameworks/DevToolsInterface.framework/Resources + Description + DefaultDescriptionKey + DockingSystemVisible + + Extension + mode1v3 + FavBarConfig + + PBXProjectModuleGUID + 91857D9F148EF61800AAA11B + XCBarModuleItemNames + + XCBarModuleItems + + + FirstTimeWindowDisplayed + + Identifier + com.apple.perspectives.project.mode1v3 + MajorVersion + 33 + MinorVersion + 0 + Name + Default + Notifications + + OpenEditors + + PerspectiveWidths + + -1 + -1 + + Perspectives + + + ChosenToolbarItems + + active-combo-popup + action + NSToolbarFlexibleSpaceItem + debugger-enable-breakpoints + build-and-go + com.apple.ide.PBXToolbarStopButton + get-info + NSToolbarFlexibleSpaceItem + com.apple.pbx.toolbar.searchfield + + ControllerClassBaseName + + IconName + WindowOfProjectWithEditor + Identifier + perspective.project + IsVertical + + Layout + + + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 1C37FABC05509CD000000102 + 1C37FABC05539CD112110102 + E2644B35053B69B200211256 + 1C37FABC04509CD000100104 + 1CC0EA4004350EF90044410B + 1CC0EA4004350EF90041110B + + PBXProjectModuleGUID + 1CE0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + yes + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 186 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 089C166AFE841209C02AAC07 + 089C1671FE841209C02AAC07 + 19C28FB4FE9D528D11CA2CBB + 089C167CFE841241C02AAC07 + 08FB77ADFE841716C02AAC07 + 1C37FBAC04509CD000000102 + 1C37FABC05509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 11 + 10 + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {186, 693}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + + XCSharingToken + com.apple.Xcode.GFSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {203, 711}} + GroupTreeTableConfiguration + + MainColumn + 186 + + RubberWindowFrame + 286 197 1261 752 0 0 1680 1028 + + Module + PBXSmartGroupTreeModule + Proportion + 203pt + + + Dock + + + BecomeActive + + ContentConfiguration + + PBXProjectModuleGUID + 1CE0B20306471E060097A5F4 + PBXProjectModuleLabel + Gain.cpp + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CE0B20406471E060097A5F4 + PBXProjectModuleLabel + Gain.cpp + _historyCapacity + 0 + bookmark + 911C2A9D1491A5F600A430AF + history + + 915DCCBB1491A5B8008574E6 + + + SplitCount + 1 + + StatusBarVisibility + + + GeometryConfiguration + + Frame + {{0, 0}, {1053, 508}} + RubberWindowFrame + 286 197 1261 752 0 0 1680 1028 + + Module + PBXNavigatorGroup + Proportion + 508pt + + + ContentConfiguration + + PBXProjectModuleGUID + 1CE0B20506471E060097A5F4 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{0, 513}, {1053, 198}} + RubberWindowFrame + 286 197 1261 752 0 0 1680 1028 + + Module + XCDetailModule + Proportion + 198pt + + + Proportion + 1053pt + + + Name + Project + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + XCModuleDock + PBXNavigatorGroup + XCDetailModule + + TableOfContents + + 911C2A901491A5F600A430AF + 1CE0B1FE06471DED0097A5F4 + 911C2A911491A5F600A430AF + 1CE0B20306471E060097A5F4 + 1CE0B20506471E060097A5F4 + + ToolbarConfigUserDefaultsMinorVersion + 2 + ToolbarConfiguration + xcode.toolbar.config.defaultV3 + + + ControllerClassBaseName + + IconName + WindowOfProject + Identifier + perspective.morph + IsVertical + 0 + Layout + + + BecomeActive + 1 + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 1C08E77C0454961000C914BD + 1C37FABC05509CD000000102 + 1C37FABC05539CD112110102 + E2644B35053B69B200211256 + 1C37FABC04509CD000100104 + 1CC0EA4004350EF90044410B + 1CC0EA4004350EF90041110B + + PBXProjectModuleGUID + 11E0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + yes + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 186 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 29B97314FDCFA39411CA2CEA + 1C37FABC05509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {186, 337}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + 1 + XCSharingToken + com.apple.Xcode.GFSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {203, 355}} + GroupTreeTableConfiguration + + MainColumn + 186 + + RubberWindowFrame + 373 269 690 397 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 100% + + + Name + Morph + PreferredWidth + 300 + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + + TableOfContents + + 11E0B1FE06471DED0097A5F4 + + ToolbarConfiguration + xcode.toolbar.config.default.shortV3 + + + PerspectivesBarVisible + + ShelfIsVisible + + SourceDescription + file at '/Xcode3/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecificationMode1.xcperspec' + StatusbarIsVisible + + TimeStamp + 0.0 + ToolbarConfigUserDefaultsMinorVersion + 2 + ToolbarDisplayMode + 1 + ToolbarIsVisible + + ToolbarSizeMode + 1 + Type + Perspectives + UpdateMessage + The Default Workspace in this version of Xcode now includes support to hide and show the detail view (what has been referred to as the "Metro-Morph" feature). You must discard your current Default Workspace settings and update to the latest Default Workspace in order to gain this feature. Do you wish to update to the latest Workspace defaults for project '%@'? + WindowJustification + 5 + WindowOrderList + + 91857DA0148EF61800AAA11B + /Users/spiadmin/Documents/Gain/Gain.xcodeproj + + WindowString + 286 197 1261 752 0 0 1680 1028 + WindowToolsV3 + + + FirstTimeWindowDisplayed + + Identifier + windowTool.build + IsVertical + + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528F0623707200166675 + PBXProjectModuleLabel + + StatusBarVisibility + + + GeometryConfiguration + + Frame + {{0, 0}, {743, 413}} + RubberWindowFrame + 112 208 743 695 0 0 1680 1028 + + Module + PBXNavigatorGroup + Proportion + 413pt + + + ContentConfiguration + + PBXProjectModuleGUID + XCMainBuildResultsModuleGUID + PBXProjectModuleLabel + Build Results + XCBuildResultsTrigger_Collapse + 1021 + XCBuildResultsTrigger_Open + 1011 + + GeometryConfiguration + + Frame + {{0, 418}, {743, 236}} + RubberWindowFrame + 112 208 743 695 0 0 1680 1028 + + Module + PBXBuildResultsModule + Proportion + 236pt + + + Proportion + 654pt + + + Name + Build Results + ServiceClasses + + PBXBuildResultsModule + + StatusbarIsVisible + + TableOfContents + + 91857DA0148EF61800AAA11B + 911C2A921491A5F600A430AF + 1CD0528F0623707200166675 + XCMainBuildResultsModuleGUID + + ToolbarConfiguration + xcode.toolbar.config.buildV3 + WindowContentMinSize + 486 300 + WindowString + 112 208 743 695 0 0 1680 1028 + WindowToolGUID + 91857DA0148EF61800AAA11B + WindowToolIsVisible + + + + Identifier + windowTool.debugger + Layout + + + Dock + + + ContentConfiguration + + Debugger + + HorizontalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {317, 164}} + {{317, 0}, {377, 164}} + + + VerticalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {694, 164}} + {{0, 164}, {694, 216}} + + + + LauncherConfigVersion + 8 + PBXProjectModuleGUID + 1C162984064C10D400B95A72 + PBXProjectModuleLabel + Debug - GLUTExamples (Underwater) + + GeometryConfiguration + + DebugConsoleDrawerSize + {100, 120} + DebugConsoleVisible + None + DebugConsoleWindowFrame + {{200, 200}, {500, 300}} + DebugSTDIOWindowFrame + {{200, 200}, {500, 300}} + Frame + {{0, 0}, {694, 380}} + RubberWindowFrame + 321 238 694 422 0 0 1440 878 + + Module + PBXDebugSessionModule + Proportion + 100% + + + Proportion + 100% + + + Name + Debugger + ServiceClasses + + PBXDebugSessionModule + + StatusbarIsVisible + 1 + TableOfContents + + 1CD10A99069EF8BA00B06720 + 1C0AD2AB069F1E9B00FABCE6 + 1C162984064C10D400B95A72 + 1C0AD2AC069F1E9B00FABCE6 + + ToolbarConfiguration + xcode.toolbar.config.debugV3 + WindowString + 321 238 694 422 0 0 1440 878 + WindowToolGUID + 1CD10A99069EF8BA00B06720 + WindowToolIsVisible + 0 + + + Identifier + windowTool.find + Layout + + + Dock + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CDD528C0622207200134675 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CD0528D0623707200166675 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {781, 167}} + RubberWindowFrame + 62 385 781 470 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 781pt + + + Proportion + 50% + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528E0623707200166675 + PBXProjectModuleLabel + Project Find + + GeometryConfiguration + + Frame + {{8, 0}, {773, 254}} + RubberWindowFrame + 62 385 781 470 0 0 1440 878 + + Module + PBXProjectFindModule + Proportion + 50% + + + Proportion + 428pt + + + Name + Project Find + ServiceClasses + + PBXProjectFindModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C530D57069F1CE1000CFCEE + 1C530D58069F1CE1000CFCEE + 1C530D59069F1CE1000CFCEE + 1CDD528C0622207200134675 + 1C530D5A069F1CE1000CFCEE + 1CE0B1FE06471DED0097A5F4 + 1CD0528E0623707200166675 + + WindowString + 62 385 781 470 0 0 1440 878 + WindowToolGUID + 1C530D57069F1CE1000CFCEE + WindowToolIsVisible + 0 + + + Identifier + MENUSEPARATOR + + + Identifier + windowTool.debuggerConsole + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAAC065D492600B07095 + PBXProjectModuleLabel + Debugger Console + + GeometryConfiguration + + Frame + {{0, 0}, {650, 250}} + RubberWindowFrame + 516 632 650 250 0 0 1680 1027 + + Module + PBXDebugCLIModule + Proportion + 209pt + + + Proportion + 209pt + + + Name + Debugger Console + ServiceClasses + + PBXDebugCLIModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C78EAAD065D492600B07095 + 1C78EAAE065D492600B07095 + 1C78EAAC065D492600B07095 + + ToolbarConfiguration + xcode.toolbar.config.consoleV3 + WindowString + 650 41 650 250 0 0 1280 1002 + WindowToolGUID + 1C78EAAD065D492600B07095 + WindowToolIsVisible + 0 + + + Identifier + windowTool.snapshots + Layout + + + Dock + + + Module + XCSnapshotModule + Proportion + 100% + + + Proportion + 100% + + + Name + Snapshots + ServiceClasses + + XCSnapshotModule + + StatusbarIsVisible + Yes + ToolbarConfiguration + xcode.toolbar.config.snapshots + WindowString + 315 824 300 550 0 0 1440 878 + WindowToolIsVisible + Yes + + + Identifier + windowTool.scm + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAB2065D492600B07095 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1C78EAB3065D492600B07095 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {452, 0}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + + Module + PBXNavigatorGroup + Proportion + 0pt + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD052920623707200166675 + PBXProjectModuleLabel + SCM + + GeometryConfiguration + + ConsoleFrame + {{0, 259}, {452, 0}} + Frame + {{0, 7}, {452, 259}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + TableConfiguration + + Status + 30 + FileName + 199 + Path + 197.0950012207031 + + TableFrame + {{0, 0}, {452, 250}} + + Module + PBXCVSModule + Proportion + 262pt + + + Proportion + 266pt + + + Name + SCM + ServiceClasses + + PBXCVSModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C78EAB4065D492600B07095 + 1C78EAB5065D492600B07095 + 1C78EAB2065D492600B07095 + 1CD052920623707200166675 + + ToolbarConfiguration + xcode.toolbar.config.scm + WindowString + 743 379 452 308 0 0 1280 1002 + + + Identifier + windowTool.breakpoints + IsVertical + 0 + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C77FABC04509CD000000102 + + PBXProjectModuleGUID + 1CE0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + no + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 168 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 1C77FABC04509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {168, 350}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + 0 + + GeometryConfiguration + + Frame + {{0, 0}, {185, 368}} + GroupTreeTableConfiguration + + MainColumn + 168 + + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 185pt + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA1AED706398EBD00589147 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{190, 0}, {554, 368}} + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + XCDetailModule + Proportion + 554pt + + + Proportion + 368pt + + + MajorVersion + 3 + MinorVersion + 0 + Name + Breakpoints + ServiceClasses + + PBXSmartGroupTreeModule + XCDetailModule + + StatusbarIsVisible + 1 + TableOfContents + + 1CDDB66807F98D9800BB5817 + 1CDDB66907F98D9800BB5817 + 1CE0B1FE06471DED0097A5F4 + 1CA1AED706398EBD00589147 + + ToolbarConfiguration + xcode.toolbar.config.breakpointsV3 + WindowString + 315 424 744 409 0 0 1440 878 + WindowToolGUID + 1CDDB66807F98D9800BB5817 + WindowToolIsVisible + 1 + + + Identifier + windowTool.debugAnimator + Layout + + + Dock + + + Module + PBXNavigatorGroup + Proportion + 100% + + + Proportion + 100% + + + Name + Debug Visualizer + ServiceClasses + + PBXNavigatorGroup + + StatusbarIsVisible + 1 + ToolbarConfiguration + xcode.toolbar.config.debugAnimatorV3 + WindowString + 100 100 700 500 0 0 1280 1002 + + + Identifier + windowTool.bookmarks + Layout + + + Dock + + + Module + PBXBookmarksModule + Proportion + 100% + + + Proportion + 100% + + + Name + Bookmarks + ServiceClasses + + PBXBookmarksModule + + StatusbarIsVisible + 0 + WindowString + 538 42 401 187 0 0 1280 1002 + + + Identifier + windowTool.projectFormatConflicts + Layout + + + Dock + + + Module + XCProjectFormatConflictsModule + Proportion + 100% + + + Proportion + 100% + + + Name + Project Format Conflicts + ServiceClasses + + XCProjectFormatConflictsModule + + StatusbarIsVisible + 0 + WindowContentMinSize + 450 300 + WindowString + 50 850 472 307 0 0 1440 877 + + + Identifier + windowTool.classBrowser + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + OptionsSetName + Hierarchy, all classes + PBXProjectModuleGUID + 1CA6456E063B45B4001379D8 + PBXProjectModuleLabel + Class Browser - NSObject + + GeometryConfiguration + + ClassesFrame + {{0, 0}, {374, 96}} + ClassesTreeTableConfiguration + + PBXClassNameColumnIdentifier + 208 + PBXClassBookColumnIdentifier + 22 + + Frame + {{0, 0}, {630, 331}} + MembersFrame + {{0, 105}, {374, 395}} + MembersTreeTableConfiguration + + PBXMemberTypeIconColumnIdentifier + 22 + PBXMemberNameColumnIdentifier + 216 + PBXMemberTypeColumnIdentifier + 97 + PBXMemberBookColumnIdentifier + 22 + + PBXModuleWindowStatusBarHidden2 + 1 + RubberWindowFrame + 385 179 630 352 0 0 1440 878 + + Module + PBXClassBrowserModule + Proportion + 332pt + + + Proportion + 332pt + + + Name + Class Browser + ServiceClasses + + PBXClassBrowserModule + + StatusbarIsVisible + 0 + TableOfContents + + 1C0AD2AF069F1E9B00FABCE6 + 1C0AD2B0069F1E9B00FABCE6 + 1CA6456E063B45B4001379D8 + + ToolbarConfiguration + xcode.toolbar.config.classbrowser + WindowString + 385 179 630 352 0 0 1440 878 + WindowToolGUID + 1C0AD2AF069F1E9B00FABCE6 + WindowToolIsVisible + 0 + + + Identifier + windowTool.refactoring + IncludeInToolsMenu + 0 + Layout + + + Dock + + + BecomeActive + 1 + GeometryConfiguration + + Frame + {0, 0}, {500, 335} + RubberWindowFrame + {0, 0}, {500, 335} + + Module + XCRefactoringModule + Proportion + 100% + + + Proportion + 100% + + + Name + Refactoring + ServiceClasses + + XCRefactoringModule + + WindowString + 200 200 500 356 0 0 1920 1200 + + + + diff --git a/plugins/MacVST/X2Buss/X2Buss.xcodeproj/spiadmin.pbxuser b/plugins/MacVST/X2Buss/X2Buss.xcodeproj/spiadmin.pbxuser new file mode 100755 index 000000000..df947808e --- /dev/null +++ b/plugins/MacVST/X2Buss/X2Buss.xcodeproj/spiadmin.pbxuser @@ -0,0 +1,143 @@ +// !$*UTF8*$! +{ + 089C1669FE841209C02AAC07 /* Project object */ = { + activeBuildConfigurationName = Release; + activeTarget = 8D01CCC60486CAD60068D4B7 /* Gain */; + codeSenseManager = 91857D95148EF55400AAA11B /* Code sense */; + perUserDictionary = { + PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = { + PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; + PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; + PBXFileTableDataSourceColumnWidthsKey = ( + 20, + 829, + 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, + 789, + 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 = 345089498; + PBXWorkspaceStateSaveDate = 345089498; + }; + perUserProjectItems = { + 911C2A9D1491A5F600A430AF /* PBXTextBookmark */ = 911C2A9D1491A5F600A430AF /* PBXTextBookmark */; + 915DCCBB1491A5B8008574E6 /* PBXTextBookmark */ = 915DCCBB1491A5B8008574E6 /* PBXTextBookmark */; + }; + sourceControlManager = 91857D94148EF55400AAA11B /* Source Control */; + userBuildSettings = { + }; + }; + 2407DEB6089929BA00EB68BF /* Gain.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {992, 1768}}"; + sepNavSelRange = "{247, 0}"; + sepNavVisRange = "{0, 1657}"; + }; + }; + 245463B80991757100464AD3 /* Gain.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {992, 975}}"; + sepNavSelRange = "{1552, 0}"; + sepNavVisRange = "{796, 1857}"; + sepNavWindowFrame = "{{15, 465}, {750, 558}}"; + }; + }; + 24A2FF9A0F90D1DD003BB5A7 /* adelaymain.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {992, 488}}"; + sepNavSelRange = "{0, 0}"; + sepNavVisRange = "{0, 798}"; + }; + }; + 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {859, 19825}}"; + sepNavSelRange = "{10641, 0}"; + sepNavVisRange = "{10076, 1095}"; + }; + }; + 24D8286F09A914000093AEF8 /* GainProc.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {992, 482}}"; + sepNavSelRange = "{239, 0}"; + sepNavVisRange = "{0, 950}"; + }; + }; + 24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {992, 493}}"; + sepNavSelRange = "{249, 0}"; + sepNavVisRange = "{0, 249}"; + }; + }; + 8D01CCC60486CAD60068D4B7 /* Gain */ = { + activeExec = 0; + }; + 911C2A9D1491A5F600A430AF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2407DEB6089929BA00EB68BF /* Gain.cpp */; + name = "Gain.cpp: 10"; + rLen = 0; + rLoc = 247; + rType = 0; + vrLen = 1657; + vrLoc = 0; + }; + 915DCCBB1491A5B8008574E6 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2407DEB6089929BA00EB68BF /* Gain.cpp */; + name = "Gain.cpp: 10"; + rLen = 0; + rLoc = 247; + rType = 0; + vrLen = 1625; + vrLoc = 0; + }; + 91857D94148EF55400AAA11B /* Source Control */ = { + isa = PBXSourceControlManager; + fallbackIsa = XCSourceControlManager; + isSCMEnabled = 0; + scmConfiguration = { + repositoryNamesForRoots = { + "" = ""; + }; + }; + }; + 91857D95148EF55400AAA11B /* Code sense */ = { + isa = PBXCodeSenseManager; + indexTemplatePath = ""; + }; +} diff --git a/plugins/MacVST/X2Buss/X2Buss.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme b/plugins/MacVST/X2Buss/X2Buss.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme new file mode 100755 index 000000000..8ee693f95 --- /dev/null +++ b/plugins/MacVST/X2Buss/X2Buss.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/MacVST/X2Buss/X2Buss.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist b/plugins/MacVST/X2Buss/X2Buss.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100755 index 000000000..5bccbcb4f --- /dev/null +++ b/plugins/MacVST/X2Buss/X2Buss.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,22 @@ + + + + + SchemeUserState + + Gain.xcscheme + + orderHint + 8 + + + SuppressBuildableAutocreation + + 8D01CCC60486CAD60068D4B7 + + primary + + + + + diff --git a/plugins/MacVST/X2Buss/X2Buss.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist b/plugins/MacVST/X2Buss/X2Buss.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100755 index 000000000..a7bdd62d4 --- /dev/null +++ b/plugins/MacVST/X2Buss/X2Buss.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,22 @@ + + + + + SchemeUserState + + «PROJECTNAME».xcscheme + + orderHint + 0 + + + SuppressBuildableAutocreation + + 8D01CCC60486CAD60068D4B7 + + primary + + + + + diff --git a/plugins/MacVST/X2Buss/X2Buss.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme b/plugins/MacVST/X2Buss/X2Buss.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme new file mode 100755 index 000000000..0df2de4a3 --- /dev/null +++ b/plugins/MacVST/X2Buss/X2Buss.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/MacVST/X2Buss/mac/Info.plist b/plugins/MacVST/X2Buss/mac/Info.plist new file mode 100755 index 000000000..f8b00f8fc --- /dev/null +++ b/plugins/MacVST/X2Buss/mac/Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + X2Buss + CFBundleIconFile + + CFBundleIdentifier + com.airwindows.X2Buss + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + BNDL + CFBundleSignature + Dthr + CFBundleVersion + 1.0 + CSResourcesFileMapped + + + diff --git a/plugins/MacVST/X2Buss/mac/PkgInfo b/plugins/MacVST/X2Buss/mac/PkgInfo new file mode 100755 index 000000000..19a9cf67e --- /dev/null +++ b/plugins/MacVST/X2Buss/mac/PkgInfo @@ -0,0 +1 @@ +BNDL???? \ No newline at end of file diff --git a/plugins/MacVST/X2Buss/mac/xcode_vst_prefix.h b/plugins/MacVST/X2Buss/mac/xcode_vst_prefix.h new file mode 100755 index 000000000..eaf4c0b4b --- /dev/null +++ b/plugins/MacVST/X2Buss/mac/xcode_vst_prefix.h @@ -0,0 +1,17 @@ +#define MAC 1 +#define MACX 1 + +#define USE_NAMESPACE 0 + +#define TARGET_API_MAC_CARBON 1 +#define USENAVSERVICES 1 + +#define __CF_USE_FRAMEWORK_INCLUDES__ + +#if __MWERKS__ +#define __NOEXTENSIONS__ +#endif + +#define QUARTZ 1 + +#include \ No newline at end of file diff --git a/plugins/MacVST/X2Buss/source/X2Buss.cpp b/plugins/MacVST/X2Buss/source/X2Buss.cpp new file mode 100755 index 000000000..59b50e4ab --- /dev/null +++ b/plugins/MacVST/X2Buss/source/X2Buss.cpp @@ -0,0 +1,228 @@ +/* ======================================== + * X2Buss - X2Buss.h + * Copyright (c) airwindows, Airwindows uses the MIT license + * ======================================== */ + +#ifndef __X2Buss_H +#include "X2Buss.h" +#endif + +AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new X2Buss(audioMaster);} + +X2Buss::X2Buss(audioMasterCallback audioMaster) : + AudioEffectX(audioMaster, kNumPrograms, kNumParameters) +{ + A = 0.5; + B = 0.5; + C = 0.5; + D = 0.5; + E = 0.5; + F = 0.5; + G = 0.5; + H = 0.5; + I = 1.0; + J = 0.5; + + for (int x = 0; x < biq_total; x++) { + highA[x] = 0.0; + highB[x] = 0.0; + highC[x] = 0.0; + midA[x] = 0.0; + midB[x] = 0.0; + midC[x] = 0.0; + lowA[x] = 0.0; + lowB[x] = 0.0; + lowC[x] = 0.0; + } + highLIIR = 0.0; + highRIIR = 0.0; + midLIIR = 0.0; + midRIIR = 0.0; + lowLIIR = 0.0; + lowRIIR = 0.0; + //SmoothEQ2 + + for (int x = 0; x < bez_total; x++) {bezCompF[x] = 0.0;bezCompS[x] = 0.0;} + bezCompF[bez_cycle] = 1.0; bezMaxF = 0.0; + bezCompS[bez_cycle] = 1.0; + //Dynamics2 + + 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 + + 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 +} + +X2Buss::~X2Buss() {} +VstInt32 X2Buss::getVendorVersion () {return 1000;} +void X2Buss::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);} +void X2Buss::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 X2Buss::getChunk (void** data, bool isPreset) +{ + float *chunkData = (float *)calloc(kNumParameters, sizeof(float)); + chunkData[0] = A; + chunkData[1] = B; + chunkData[2] = C; + chunkData[3] = D; + chunkData[4] = E; + chunkData[5] = F; + chunkData[6] = G; + chunkData[7] = H; + chunkData[8] = I; + chunkData[9] = J; + /* 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 X2Buss::setChunk (void* data, VstInt32 byteSize, bool isPreset) +{ + float *chunkData = (float *)data; + A = pinParameter(chunkData[0]); + B = pinParameter(chunkData[1]); + C = pinParameter(chunkData[2]); + D = pinParameter(chunkData[3]); + E = pinParameter(chunkData[4]); + F = pinParameter(chunkData[5]); + G = pinParameter(chunkData[6]); + H = pinParameter(chunkData[7]); + I = pinParameter(chunkData[8]); + J = pinParameter(chunkData[9]); + /* 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 X2Buss::setParameter(VstInt32 index, float value) { + switch (index) { + case kParamA: A = value; break; + case kParamB: B = value; break; + case kParamC: C = value; break; + case kParamD: D = value; break; + case kParamE: E = value; break; + case kParamF: F = value; break; + case kParamG: G = value; break; + case kParamH: H = value; break; + case kParamI: I = value; break; + case kParamJ: J = value; break; + default: throw; // unknown parameter, shouldn't happen! + } +} + +float X2Buss::getParameter(VstInt32 index) { + switch (index) { + case kParamA: return A; break; + case kParamB: return B; break; + case kParamC: return C; break; + case kParamD: return D; break; + case kParamE: return E; break; + case kParamF: return F; break; + case kParamG: return G; break; + case kParamH: return H; break; + case kParamI: return I; break; + case kParamJ: return J; 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 X2Buss::getParameterName(VstInt32 index, char *text) { + switch (index) { + case kParamA: vst_strncpy (text, "High", kVstMaxParamStrLen); break; + case kParamB: vst_strncpy (text, "HMid", kVstMaxParamStrLen); break; + case kParamC: vst_strncpy (text, "LMid", kVstMaxParamStrLen); break; + case kParamD: vst_strncpy (text, "Bass", kVstMaxParamStrLen); break; + case kParamE: vst_strncpy (text, "HighF", kVstMaxParamStrLen); break; + case kParamF: vst_strncpy (text, "HMidF", kVstMaxParamStrLen); break; + case kParamG: vst_strncpy (text, "LMidF", kVstMaxParamStrLen); break; + case kParamH: vst_strncpy (text, "BassF", kVstMaxParamStrLen); break; + case kParamI: vst_strncpy (text, "Thresh", kVstMaxParamStrLen); break; + case kParamJ: vst_strncpy (text, "Fader", kVstMaxParamStrLen); break; + default: break; // unknown parameter, shouldn't happen! + } //this is our labels for displaying in the VST host +} + +void X2Buss::getParameterDisplay(VstInt32 index, char *text) { + switch (index) { + case kParamA: float2string (A, text, kVstMaxParamStrLen); break; + case kParamB: float2string (B, text, kVstMaxParamStrLen); break; + case kParamC: float2string (C, text, kVstMaxParamStrLen); break; + case kParamD: float2string (D, text, kVstMaxParamStrLen); break; + case kParamE: float2string (E, text, kVstMaxParamStrLen); break; + case kParamF: float2string (F, text, kVstMaxParamStrLen); break; + case kParamG: float2string (G, text, kVstMaxParamStrLen); break; + case kParamH: float2string (H, text, kVstMaxParamStrLen); break; + case kParamI: float2string (I, text, kVstMaxParamStrLen); break; + case kParamJ: float2string (J, text, kVstMaxParamStrLen); break; + default: break; // unknown parameter, shouldn't happen! + } //this displays the values and handles 'popups' where it's discrete choices +} + +void X2Buss::getParameterLabel(VstInt32 index, char *text) { + switch (index) { + case kParamA: vst_strncpy (text, "eq", kVstMaxParamStrLen); break; + case kParamB: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamC: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamD: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamE: vst_strncpy (text, "freq", kVstMaxParamStrLen); break; + case kParamF: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamG: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamH: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamI: vst_strncpy (text, "dyn", kVstMaxParamStrLen); break; + case kParamJ: vst_strncpy (text, "", kVstMaxParamStrLen); break; + default: break; // unknown parameter, shouldn't happen! + } +} + +VstInt32 X2Buss::canDo(char *text) +{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know + +bool X2Buss::getEffectName(char* name) { + vst_strncpy(name, "X2Buss", kVstMaxProductStrLen); return true; +} + +VstPlugCategory X2Buss::getPlugCategory() {return kPlugCategEffect;} + +bool X2Buss::getProductString(char* text) { + vst_strncpy (text, "airwindows X2Buss", kVstMaxProductStrLen); return true; +} + +bool X2Buss::getVendorString(char* text) { + vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true; +} diff --git a/plugins/MacVST/X2Buss/source/X2Buss.h b/plugins/MacVST/X2Buss/source/X2Buss.h new file mode 100755 index 000000000..2a192358b --- /dev/null +++ b/plugins/MacVST/X2Buss/source/X2Buss.h @@ -0,0 +1,154 @@ +/* ======================================== + * X2Buss - X2Buss.h + * Created 8/12/11 by SPIAdmin + * Copyright (c) Airwindows, Airwindows uses the MIT license + * ======================================== */ + +#ifndef __X2Buss_H +#define __X2Buss_H + +#ifndef __audioeffect__ +#include "audioeffectx.h" +#endif + +#include +#include +#include + +enum { + kParamA =0, + kParamB =1, + kParamC =2, + kParamD =3, + kParamE =4, + kParamF =5, + kParamG =6, + kParamH =7, + kParamI =8, + kParamJ =9, + kNumParameters = 10 +}; // + +const int kNumPrograms = 0; +const int kNumInputs = 2; +const int kNumOutputs = 2; +const unsigned long kUniqueId = 'x2bs'; //Change this to what the AU identity is! + +class X2Buss : + public AudioEffectX +{ +public: + X2Buss(audioMasterCallback audioMaster); + ~X2Buss(); + virtual bool getEffectName(char* name); // The plug-in name + virtual VstPlugCategory getPlugCategory(); // The general category for the plug-in + virtual bool getProductString(char* text); // This is a unique plug-in string provided by Steinberg + virtual bool getVendorString(char* text); // Vendor info + virtual VstInt32 getVendorVersion(); // Version number + virtual void processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames); + virtual void processDoubleReplacing (double** inputs, double** outputs, VstInt32 sampleFrames); + virtual void getProgramName(char *name); // read the name from the host + virtual void setProgramName(char *name); // changes the name of the preset displayed in the host + virtual VstInt32 getChunk (void** data, bool isPreset); + virtual VstInt32 setChunk (void* data, VstInt32 byteSize, bool isPreset); + virtual float getParameter(VstInt32 index); // get the parameter value at the specified index + virtual void setParameter(VstInt32 index, float value); // set the parameter at index to value + virtual void getParameterLabel(VstInt32 index, char *text); // label for the parameter (eg dB) + virtual void getParameterName(VstInt32 index, char *text); // name of the parameter + virtual void getParameterDisplay(VstInt32 index, char *text); // text description of the current value + virtual VstInt32 canDo(char *text); +private: + char _programName[kVstMaxProgNameLen + 1]; + std::set< std::string > _canDo; + + float A; + float B; + float C; + float D; + float E; + float F; + float G; + float H; + float I; + float J; + + 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 highA[biq_total]; + double highB[biq_total]; + double highC[biq_total]; + double highLIIR; + double highRIIR; + + double midA[biq_total]; + double midB[biq_total]; + double midC[biq_total]; + double midLIIR; + double midRIIR; + + double lowA[biq_total]; + double lowB[biq_total]; + double lowC[biq_total]; + double lowLIIR; + double lowRIIR; + //SmoothEQ2 + + enum { + bez_AL, + bez_BL, + bez_CL, + bez_InL, + bez_UnInL, + bez_SampL, + bez_AR, + bez_BR, + bez_CR, + bez_InR, + bez_UnInR, + bez_SampR, + bez_cycle, + bez_total + }; //the new undersampling. bez signifies the bezier curve reconstruction + double bezCompF[bez_total]; + double bezMaxF; + double bezCompS[bez_total]; + //Dynamics2 + + 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 diff --git a/plugins/MacVST/X2Buss/source/X2BussProc.cpp b/plugins/MacVST/X2Buss/source/X2BussProc.cpp new file mode 100755 index 000000000..d203aadb5 --- /dev/null +++ b/plugins/MacVST/X2Buss/source/X2BussProc.cpp @@ -0,0 +1,915 @@ +/* ======================================== + * X2Buss - X2Buss.h + * Copyright (c) airwindows, Airwindows uses the MIT license + * ======================================== */ + +#ifndef __X2Buss_H +#include "X2Buss.h" +#endif + +void X2Buss::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 = (A-0.5)*2.0; + trebleGain = 1.0+(trebleGain*fabs(trebleGain)*fabs(trebleGain)); + double highmidGain = (B-0.5)*2.0; + highmidGain = 1.0+(highmidGain*fabs(highmidGain)*fabs(highmidGain)); + double lowmidGain = (C-0.5)*2.0; + lowmidGain = 1.0+(lowmidGain*fabs(lowmidGain)*fabs(lowmidGain)); + double bassGain = (D-0.5)*2.0; + bassGain = 1.0+(bassGain*fabs(bassGain)*fabs(bassGain)); + + double trebleRef = E-0.5; + double highmidRef = F-0.5; + double lowmidRef = G-0.5; + double bassRef = H-0.5; + double highF = 0.75 + ((trebleRef+trebleRef+trebleRef+highmidRef)*0.125); + double bassF = 0.25 + ((lowmidRef+bassRef+bassRef+bassRef)*0.125); + double midF = (highF*0.5) + (bassF*0.5) + ((highmidRef+lowmidRef)*0.125); + + double highQ = fmax(fmin(1.0+(highmidRef-trebleRef),4.0),0.125); + double midQ = fmax(fmin(1.0+(lowmidRef-highmidRef),4.0),0.125); + double lowQ = fmax(fmin(1.0+(bassRef-lowmidRef),4.0),0.125); + + highA[biq_freq] = ((pow(highF,3)*20000.0)/getSampleRate()); + highC[biq_freq] = highB[biq_freq] = highA[biq_freq] = fmax(fmin(highA[biq_freq],0.4999),0.00025); + double highFreq = pow(highF,3)*20000.0; + double omega = 2.0*M_PI*(highFreq/getSampleRate()); + double biqK = 2.0-cos(omega); + double highCoef = -sqrt((biqK*biqK)-1.0)+biqK; + highA[biq_reso] = 2.24697960 * highQ; + highB[biq_reso] = 0.80193774 * highQ; + highC[biq_reso] = 0.55495813 * highQ; + + midA[biq_freq] = ((pow(midF,3)*20000.0)/getSampleRate()); + midC[biq_freq] = midB[biq_freq] = midA[biq_freq] = fmax(fmin(midA[biq_freq],0.4999),0.00025); + double midFreq = pow(midF,3)*20000.0; + omega = 2.0*M_PI*(midFreq/getSampleRate()); + biqK = 2.0-cos(omega); + double midCoef = -sqrt((biqK*biqK)-1.0)+biqK; + midA[biq_reso] = 2.24697960 * midQ; + midB[biq_reso] = 0.80193774 * midQ; + midC[biq_reso] = 0.55495813 * midQ; + + lowA[biq_freq] = ((pow(bassF,3)*20000.0)/getSampleRate()); + lowC[biq_freq] = lowB[biq_freq] = lowA[biq_freq] = fmax(fmin(lowA[biq_freq],0.4999),0.00025); + double lowFreq = pow(bassF,3)*20000.0; + omega = 2.0*M_PI*(lowFreq/getSampleRate()); + biqK = 2.0-cos(omega); + double lowCoef = -sqrt((biqK*biqK)-1.0)+biqK; + lowA[biq_reso] = 2.24697960 * lowQ; + lowB[biq_reso] = 0.80193774 * lowQ; + lowC[biq_reso] = 0.55495813 * lowQ; + + biqK = tan(M_PI * highA[biq_freq]); + double norm = 1.0 / (1.0 + biqK / highA[biq_reso] + biqK * biqK); + highA[biq_a0] = biqK * biqK * norm; + highA[biq_a1] = 2.0 * highA[biq_a0]; + highA[biq_a2] = highA[biq_a0]; + highA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highA[biq_b2] = (1.0 - biqK / highA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highB[biq_freq]); + norm = 1.0 / (1.0 + biqK / highB[biq_reso] + biqK * biqK); + highB[biq_a0] = biqK * biqK * norm; + highB[biq_a1] = 2.0 * highB[biq_a0]; + highB[biq_a2] = highB[biq_a0]; + highB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highB[biq_b2] = (1.0 - biqK / highB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highC[biq_freq]); + norm = 1.0 / (1.0 + biqK / highC[biq_reso] + biqK * biqK); + highC[biq_a0] = biqK * biqK * norm; + highC[biq_a1] = 2.0 * highC[biq_a0]; + highC[biq_a2] = highC[biq_a0]; + highC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highC[biq_b2] = (1.0 - biqK / highC[biq_reso] + biqK * biqK) * norm; + + biqK = tan(M_PI * midA[biq_freq]); + norm = 1.0 / (1.0 + biqK / midA[biq_reso] + biqK * biqK); + midA[biq_a0] = biqK * biqK * norm; + midA[biq_a1] = 2.0 * midA[biq_a0]; + midA[biq_a2] = midA[biq_a0]; + midA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midA[biq_b2] = (1.0 - biqK / midA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midB[biq_freq]); + norm = 1.0 / (1.0 + biqK / midB[biq_reso] + biqK * biqK); + midB[biq_a0] = biqK * biqK * norm; + midB[biq_a1] = 2.0 * midB[biq_a0]; + midB[biq_a2] = midB[biq_a0]; + midB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midB[biq_b2] = (1.0 - biqK / midB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midC[biq_freq]); + norm = 1.0 / (1.0 + biqK / midC[biq_reso] + biqK * biqK); + midC[biq_a0] = biqK * biqK * norm; + midC[biq_a1] = 2.0 * midC[biq_a0]; + midC[biq_a2] = midC[biq_a0]; + midC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midC[biq_b2] = (1.0 - biqK / midC[biq_reso] + biqK * biqK) * norm; + + biqK = tan(M_PI * lowA[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowA[biq_reso] + biqK * biqK); + lowA[biq_a0] = biqK * biqK * norm; + lowA[biq_a1] = 2.0 * lowA[biq_a0]; + lowA[biq_a2] = lowA[biq_a0]; + lowA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowA[biq_b2] = (1.0 - biqK / lowA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowB[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowB[biq_reso] + biqK * biqK); + lowB[biq_a0] = biqK * biqK * norm; + lowB[biq_a1] = 2.0 * lowB[biq_a0]; + lowB[biq_a2] = lowB[biq_a0]; + lowB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowB[biq_b2] = (1.0 - biqK / lowB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowC[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowC[biq_reso] + biqK * biqK); + lowC[biq_a0] = biqK * biqK * norm; + lowC[biq_a1] = 2.0 * lowC[biq_a0]; + lowC[biq_a2] = lowC[biq_a0]; + lowC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowC[biq_b2] = (1.0 - biqK / lowC[biq_reso] + biqK * biqK) * norm; + //SmoothEQ2 + + double bezCThresh = pow(1.0-I, 6.0) * 8.0; + double bezRez = pow(1.0-I, 12.360679774997898) / overallscale; + double sloRez = pow(1.0-I,10.0) / overallscale; + sloRez = fmin(fmax(sloRez,0.00001),1.0); + bezRez = fmin(fmax(bezRez,0.00001),1.0); + //Dynamics2 + + inTrimA = inTrimB; inTrimB = J*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; + + 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)); + + double trebleL = inputSampleL; + double outSample = (trebleL * highA[biq_a0]) + highA[biq_sL1]; + highA[biq_sL1] = (trebleL * highA[biq_a1]) - (outSample * highA[biq_b1]) + highA[biq_sL2]; + highA[biq_sL2] = (trebleL * highA[biq_a2]) - (outSample * highA[biq_b2]); + double highmidL = outSample; trebleL -= highmidL; + + outSample = (highmidL * midA[biq_a0]) + midA[biq_sL1]; + midA[biq_sL1] = (highmidL * midA[biq_a1]) - (outSample * midA[biq_b1]) + midA[biq_sL2]; + midA[biq_sL2] = (highmidL * midA[biq_a2]) - (outSample * midA[biq_b2]); + double lowmidL = outSample; highmidL -= lowmidL; + + outSample = (lowmidL * lowA[biq_a0]) + lowA[biq_sL1]; + lowA[biq_sL1] = (lowmidL * lowA[biq_a1]) - (outSample * lowA[biq_b1]) + lowA[biq_sL2]; + lowA[biq_sL2] = (lowmidL * lowA[biq_a2]) - (outSample * lowA[biq_b2]); + double bassL = outSample; lowmidL -= bassL; + + trebleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain); + //first stage of three crossovers + + outSample = (trebleL * highB[biq_a0]) + highB[biq_sL1]; + highB[biq_sL1] = (trebleL * highB[biq_a1]) - (outSample * highB[biq_b1]) + highB[biq_sL2]; + highB[biq_sL2] = (trebleL * highB[biq_a2]) - (outSample * highB[biq_b2]); + highmidL = outSample; trebleL -= highmidL; + + outSample = (highmidL * midB[biq_a0]) + midB[biq_sL1]; + midB[biq_sL1] = (highmidL * midB[biq_a1]) - (outSample * midB[biq_b1]) + midB[biq_sL2]; + midB[biq_sL2] = (highmidL * midB[biq_a2]) - (outSample * midB[biq_b2]); + lowmidL = outSample; highmidL -= lowmidL; + + outSample = (lowmidL * lowB[biq_a0]) + lowB[biq_sL1]; + lowB[biq_sL1] = (lowmidL * lowB[biq_a1]) - (outSample * lowB[biq_b1]) + lowB[biq_sL2]; + lowB[biq_sL2] = (lowmidL * lowB[biq_a2]) - (outSample * lowB[biq_b2]); + bassL = outSample; lowmidL -= bassL; + + trebleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain); + //second stage of three crossovers + + outSample = (trebleL * highC[biq_a0]) + highC[biq_sL1]; + highC[biq_sL1] = (trebleL * highC[biq_a1]) - (outSample * highC[biq_b1]) + highC[biq_sL2]; + highC[biq_sL2] = (trebleL * highC[biq_a2]) - (outSample * highC[biq_b2]); + highmidL = outSample; trebleL -= highmidL; + + outSample = (highmidL * midC[biq_a0]) + midC[biq_sL1]; + midC[biq_sL1] = (highmidL * midC[biq_a1]) - (outSample * midC[biq_b1]) + midC[biq_sL2]; + midC[biq_sL2] = (highmidL * midC[biq_a2]) - (outSample * midC[biq_b2]); + lowmidL = outSample; highmidL -= lowmidL; + + outSample = (lowmidL * lowC[biq_a0]) + lowC[biq_sL1]; + lowC[biq_sL1] = (lowmidL * lowC[biq_a1]) - (outSample * lowC[biq_b1]) + lowC[biq_sL2]; + lowC[biq_sL2] = (lowmidL * lowC[biq_a2]) - (outSample * lowC[biq_b2]); + bassL = outSample; lowmidL -= bassL; + + trebleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain); + //third stage of three crossovers + + highLIIR = (highLIIR*highCoef) + (trebleL*(1.0-highCoef)); + highmidL = highLIIR; trebleL -= highmidL; + + midLIIR = (midLIIR*midCoef) + (highmidL*(1.0-midCoef)); + lowmidL = midLIIR; highmidL -= lowmidL; + + lowLIIR = (lowLIIR*lowCoef) + (lowmidL*(1.0-lowCoef)); + bassL = lowLIIR; lowmidL -= bassL; + + inputSampleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain); + //fourth stage of three crossovers is the exponential filters + + + double trebleR = inputSampleR; + outSample = (trebleR * highA[biq_a0]) + highA[biq_sR1]; + highA[biq_sR1] = (trebleR * highA[biq_a1]) - (outSample * highA[biq_b1]) + highA[biq_sR2]; + highA[biq_sR2] = (trebleR * highA[biq_a2]) - (outSample * highA[biq_b2]); + double highmidR = outSample; trebleR -= highmidR; + + outSample = (highmidR * midA[biq_a0]) + midA[biq_sR1]; + midA[biq_sR1] = (highmidR * midA[biq_a1]) - (outSample * midA[biq_b1]) + midA[biq_sR2]; + midA[biq_sR2] = (highmidR * midA[biq_a2]) - (outSample * midA[biq_b2]); + double lowmidR = outSample; highmidR -= lowmidR; + + outSample = (lowmidR * lowA[biq_a0]) + lowA[biq_sR1]; + lowA[biq_sR1] = (lowmidR * lowA[biq_a1]) - (outSample * lowA[biq_b1]) + lowA[biq_sR2]; + lowA[biq_sR2] = (lowmidR * lowA[biq_a2]) - (outSample * lowA[biq_b2]); + double bassR = outSample; lowmidR -= bassR; + + trebleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain); + //first stage of three crossovers + + outSample = (trebleR * highB[biq_a0]) + highB[biq_sR1]; + highB[biq_sR1] = (trebleR * highB[biq_a1]) - (outSample * highB[biq_b1]) + highB[biq_sR2]; + highB[biq_sR2] = (trebleR * highB[biq_a2]) - (outSample * highB[biq_b2]); + highmidR = outSample; trebleR -= highmidR; + + outSample = (highmidR * midB[biq_a0]) + midB[biq_sR1]; + midB[biq_sR1] = (highmidR * midB[biq_a1]) - (outSample * midB[biq_b1]) + midB[biq_sR2]; + midB[biq_sR2] = (highmidR * midB[biq_a2]) - (outSample * midB[biq_b2]); + lowmidR = outSample; highmidR -= lowmidR; + + outSample = (lowmidR * lowB[biq_a0]) + lowB[biq_sR1]; + lowB[biq_sR1] = (lowmidR * lowB[biq_a1]) - (outSample * lowB[biq_b1]) + lowB[biq_sR2]; + lowB[biq_sR2] = (lowmidR * lowB[biq_a2]) - (outSample * lowB[biq_b2]); + bassR = outSample; lowmidR -= bassR; + + trebleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain); + //second stage of three crossovers + + outSample = (trebleR * highC[biq_a0]) + highC[biq_sR1]; + highC[biq_sR1] = (trebleR * highC[biq_a1]) - (outSample * highC[biq_b1]) + highC[biq_sR2]; + highC[biq_sR2] = (trebleR * highC[biq_a2]) - (outSample * highC[biq_b2]); + highmidR = outSample; trebleR -= highmidR; + + outSample = (highmidR * midC[biq_a0]) + midC[biq_sR1]; + midC[biq_sR1] = (highmidR * midC[biq_a1]) - (outSample * midC[biq_b1]) + midC[biq_sR2]; + midC[biq_sR2] = (highmidR * midC[biq_a2]) - (outSample * midC[biq_b2]); + lowmidR = outSample; highmidR -= lowmidR; + + outSample = (lowmidR * lowC[biq_a0]) + lowC[biq_sR1]; + lowC[biq_sR1] = (lowmidR * lowC[biq_a1]) - (outSample * lowC[biq_b1]) + lowC[biq_sR2]; + lowC[biq_sR2] = (lowmidR * lowC[biq_a2]) - (outSample * lowC[biq_b2]); + bassR = outSample; lowmidR -= bassR; + + trebleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain); + //third stage of three crossovers + + highRIIR = (highRIIR*highCoef) + (trebleR*(1.0-highCoef)); + highmidR = highRIIR; trebleR -= highmidR; + + midRIIR = (midRIIR*midCoef) + (highmidR*(1.0-midCoef)); + lowmidR = midRIIR; highmidR -= lowmidR; + + lowRIIR = (lowRIIR*lowCoef) + (lowmidR*(1.0-lowCoef)); + bassR = lowRIIR; lowmidR -= bassR; + + inputSampleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain); + //fourth stage of three crossovers is the exponential filters + //SmoothEQ2 + + if (bezCThresh > 0.0) { + inputSampleL *= ((bezCThresh*0.5)+1.0); + inputSampleR *= ((bezCThresh*0.5)+1.0); + } + + bezCompF[bez_cycle] += bezRez; + bezCompF[bez_SampL] += (fabs(inputSampleL) * bezRez); + bezCompF[bez_SampR] += (fabs(inputSampleR) * bezRez); + bezMaxF = fmax(bezMaxF,fmax(fabs(inputSampleL),fabs(inputSampleR))); + + if (bezCompF[bez_cycle] > 1.0) { + bezCompF[bez_cycle] -= 1.0; + bezCompF[bez_CL] = bezCompF[bez_BL]; + bezCompF[bez_BL] = bezCompF[bez_AL]; + bezCompF[bez_AL] = bezCompF[bez_SampL]; + bezCompF[bez_SampL] = 0.0; + bezCompF[bez_CR] = bezCompF[bez_BR]; + bezCompF[bez_BR] = bezCompF[bez_AR]; + bezCompF[bez_AR] = bezCompF[bez_SampR]; + bezCompF[bez_SampR] = 0.0; + bezMaxF = 0.0; + } + bezCompS[bez_cycle] += sloRez; + bezCompS[bez_SampL] += (fabs(inputSampleL) * sloRez); //note: SampL is a control voltage + bezCompS[bez_SampR] += (fabs(inputSampleR) * sloRez); //note: SampR is a control voltage + if (bezCompS[bez_cycle] > 1.0) { + bezCompS[bez_cycle] -= 1.0; + bezCompS[bez_CL] = bezCompS[bez_BL]; + bezCompS[bez_BL] = bezCompS[bez_AL]; + bezCompS[bez_AL] = bezCompS[bez_SampL]; + bezCompS[bez_SampL] = 0.0; + bezCompS[bez_CR] = bezCompS[bez_BR]; + bezCompS[bez_BR] = bezCompS[bez_AR]; + bezCompS[bez_AR] = bezCompS[bez_SampR]; + bezCompS[bez_SampR] = 0.0; + } + double CBFL = (bezCompF[bez_CL]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_BL]*bezCompF[bez_cycle]); + double BAFL = (bezCompF[bez_BL]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_AL]*bezCompF[bez_cycle]); + double CBAFL = (bezCompF[bez_BL]+(CBFL*(1.0-bezCompF[bez_cycle]))+(BAFL*bezCompF[bez_cycle]))*0.5; + double CBSL = (bezCompS[bez_CL]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_BL]*bezCompS[bez_cycle]); + double BASL = (bezCompS[bez_BL]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_AL]*bezCompS[bez_cycle]); + double CBASL = (bezCompS[bez_BL]+(CBSL*(1.0-bezCompS[bez_cycle]))+(BASL*bezCompS[bez_cycle]))*0.5; + double CBAMax = fmax(CBASL,CBAFL); if (CBAMax > 0.0) CBAMax = 1.0/CBAMax; + double CBAFade = ((CBASL*-CBAMax)+(CBAFL*CBAMax)+1.0)*0.5; + if (bezCThresh > 0.0) inputSampleL *= 1.0-(fmin(((CBASL*(1.0-CBAFade))+(CBAFL*CBAFade))*bezCThresh,1.0)); + + double CBFR = (bezCompF[bez_CR]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_BR]*bezCompF[bez_cycle]); + double BAFR = (bezCompF[bez_BR]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_AR]*bezCompF[bez_cycle]); + double CBAFR = (bezCompF[bez_BR]+(CBFR*(1.0-bezCompF[bez_cycle]))+(BAFR*bezCompF[bez_cycle]))*0.5; + double CBSR = (bezCompS[bez_CR]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_BR]*bezCompS[bez_cycle]); + double BASR = (bezCompS[bez_BR]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_AR]*bezCompS[bez_cycle]); + double CBASR = (bezCompS[bez_BR]+(CBSR*(1.0-bezCompS[bez_cycle]))+(BASR*bezCompS[bez_cycle]))*0.5; + CBAMax = fmax(CBASR,CBAFR); if (CBAMax > 0.0) CBAMax = 1.0/CBAMax; + CBAFade = ((CBASR*-CBAMax)+(CBAFR*CBAMax)+1.0)*0.5; + if (bezCThresh > 0.0) inputSampleR *= 1.0-(fmin(((CBASR*(1.0-CBAFade))+(CBAFR*CBAFade))*bezCThresh,1.0)); + //Dynamics2 + + const double temp = (double)sampleFrames/inFramesToProcess; + 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 * gain; + inputSampleR = inputSampleR * 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 X2Buss::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 = (A-0.5)*2.0; + trebleGain = 1.0+(trebleGain*fabs(trebleGain)*fabs(trebleGain)); + double highmidGain = (B-0.5)*2.0; + highmidGain = 1.0+(highmidGain*fabs(highmidGain)*fabs(highmidGain)); + double lowmidGain = (C-0.5)*2.0; + lowmidGain = 1.0+(lowmidGain*fabs(lowmidGain)*fabs(lowmidGain)); + double bassGain = (D-0.5)*2.0; + bassGain = 1.0+(bassGain*fabs(bassGain)*fabs(bassGain)); + + double trebleRef = E-0.5; + double highmidRef = F-0.5; + double lowmidRef = G-0.5; + double bassRef = H-0.5; + double highF = 0.75 + ((trebleRef+trebleRef+trebleRef+highmidRef)*0.125); + double bassF = 0.25 + ((lowmidRef+bassRef+bassRef+bassRef)*0.125); + double midF = (highF*0.5) + (bassF*0.5) + ((highmidRef+lowmidRef)*0.125); + + double highQ = fmax(fmin(1.0+(highmidRef-trebleRef),4.0),0.125); + double midQ = fmax(fmin(1.0+(lowmidRef-highmidRef),4.0),0.125); + double lowQ = fmax(fmin(1.0+(bassRef-lowmidRef),4.0),0.125); + + highA[biq_freq] = ((pow(highF,3)*20000.0)/getSampleRate()); + highC[biq_freq] = highB[biq_freq] = highA[biq_freq] = fmax(fmin(highA[biq_freq],0.4999),0.00025); + double highFreq = pow(highF,3)*20000.0; + double omega = 2.0*M_PI*(highFreq/getSampleRate()); + double biqK = 2.0-cos(omega); + double highCoef = -sqrt((biqK*biqK)-1.0)+biqK; + highA[biq_reso] = 2.24697960 * highQ; + highB[biq_reso] = 0.80193774 * highQ; + highC[biq_reso] = 0.55495813 * highQ; + + midA[biq_freq] = ((pow(midF,3)*20000.0)/getSampleRate()); + midC[biq_freq] = midB[biq_freq] = midA[biq_freq] = fmax(fmin(midA[biq_freq],0.4999),0.00025); + double midFreq = pow(midF,3)*20000.0; + omega = 2.0*M_PI*(midFreq/getSampleRate()); + biqK = 2.0-cos(omega); + double midCoef = -sqrt((biqK*biqK)-1.0)+biqK; + midA[biq_reso] = 2.24697960 * midQ; + midB[biq_reso] = 0.80193774 * midQ; + midC[biq_reso] = 0.55495813 * midQ; + + lowA[biq_freq] = ((pow(bassF,3)*20000.0)/getSampleRate()); + lowC[biq_freq] = lowB[biq_freq] = lowA[biq_freq] = fmax(fmin(lowA[biq_freq],0.4999),0.00025); + double lowFreq = pow(bassF,3)*20000.0; + omega = 2.0*M_PI*(lowFreq/getSampleRate()); + biqK = 2.0-cos(omega); + double lowCoef = -sqrt((biqK*biqK)-1.0)+biqK; + lowA[biq_reso] = 2.24697960 * lowQ; + lowB[biq_reso] = 0.80193774 * lowQ; + lowC[biq_reso] = 0.55495813 * lowQ; + + biqK = tan(M_PI * highA[biq_freq]); + double norm = 1.0 / (1.0 + biqK / highA[biq_reso] + biqK * biqK); + highA[biq_a0] = biqK * biqK * norm; + highA[biq_a1] = 2.0 * highA[biq_a0]; + highA[biq_a2] = highA[biq_a0]; + highA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highA[biq_b2] = (1.0 - biqK / highA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highB[biq_freq]); + norm = 1.0 / (1.0 + biqK / highB[biq_reso] + biqK * biqK); + highB[biq_a0] = biqK * biqK * norm; + highB[biq_a1] = 2.0 * highB[biq_a0]; + highB[biq_a2] = highB[biq_a0]; + highB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highB[biq_b2] = (1.0 - biqK / highB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highC[biq_freq]); + norm = 1.0 / (1.0 + biqK / highC[biq_reso] + biqK * biqK); + highC[biq_a0] = biqK * biqK * norm; + highC[biq_a1] = 2.0 * highC[biq_a0]; + highC[biq_a2] = highC[biq_a0]; + highC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highC[biq_b2] = (1.0 - biqK / highC[biq_reso] + biqK * biqK) * norm; + + biqK = tan(M_PI * midA[biq_freq]); + norm = 1.0 / (1.0 + biqK / midA[biq_reso] + biqK * biqK); + midA[biq_a0] = biqK * biqK * norm; + midA[biq_a1] = 2.0 * midA[biq_a0]; + midA[biq_a2] = midA[biq_a0]; + midA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midA[biq_b2] = (1.0 - biqK / midA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midB[biq_freq]); + norm = 1.0 / (1.0 + biqK / midB[biq_reso] + biqK * biqK); + midB[biq_a0] = biqK * biqK * norm; + midB[biq_a1] = 2.0 * midB[biq_a0]; + midB[biq_a2] = midB[biq_a0]; + midB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midB[biq_b2] = (1.0 - biqK / midB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midC[biq_freq]); + norm = 1.0 / (1.0 + biqK / midC[biq_reso] + biqK * biqK); + midC[biq_a0] = biqK * biqK * norm; + midC[biq_a1] = 2.0 * midC[biq_a0]; + midC[biq_a2] = midC[biq_a0]; + midC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midC[biq_b2] = (1.0 - biqK / midC[biq_reso] + biqK * biqK) * norm; + + biqK = tan(M_PI * lowA[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowA[biq_reso] + biqK * biqK); + lowA[biq_a0] = biqK * biqK * norm; + lowA[biq_a1] = 2.0 * lowA[biq_a0]; + lowA[biq_a2] = lowA[biq_a0]; + lowA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowA[biq_b2] = (1.0 - biqK / lowA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowB[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowB[biq_reso] + biqK * biqK); + lowB[biq_a0] = biqK * biqK * norm; + lowB[biq_a1] = 2.0 * lowB[biq_a0]; + lowB[biq_a2] = lowB[biq_a0]; + lowB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowB[biq_b2] = (1.0 - biqK / lowB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowC[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowC[biq_reso] + biqK * biqK); + lowC[biq_a0] = biqK * biqK * norm; + lowC[biq_a1] = 2.0 * lowC[biq_a0]; + lowC[biq_a2] = lowC[biq_a0]; + lowC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowC[biq_b2] = (1.0 - biqK / lowC[biq_reso] + biqK * biqK) * norm; + //SmoothEQ2 + + double bezCThresh = pow(1.0-I, 6.0) * 8.0; + double bezRez = pow(1.0-I, 12.360679774997898) / overallscale; + double sloRez = pow(1.0-I,10.0) / overallscale; + sloRez = fmin(fmax(sloRez,0.00001),1.0); + bezRez = fmin(fmax(bezRez,0.00001),1.0); + //Dynamics2 + + inTrimA = inTrimB; inTrimB = J*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; + + 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)); + + double trebleL = inputSampleL; + double outSample = (trebleL * highA[biq_a0]) + highA[biq_sL1]; + highA[biq_sL1] = (trebleL * highA[biq_a1]) - (outSample * highA[biq_b1]) + highA[biq_sL2]; + highA[biq_sL2] = (trebleL * highA[biq_a2]) - (outSample * highA[biq_b2]); + double highmidL = outSample; trebleL -= highmidL; + + outSample = (highmidL * midA[biq_a0]) + midA[biq_sL1]; + midA[biq_sL1] = (highmidL * midA[biq_a1]) - (outSample * midA[biq_b1]) + midA[biq_sL2]; + midA[biq_sL2] = (highmidL * midA[biq_a2]) - (outSample * midA[biq_b2]); + double lowmidL = outSample; highmidL -= lowmidL; + + outSample = (lowmidL * lowA[biq_a0]) + lowA[biq_sL1]; + lowA[biq_sL1] = (lowmidL * lowA[biq_a1]) - (outSample * lowA[biq_b1]) + lowA[biq_sL2]; + lowA[biq_sL2] = (lowmidL * lowA[biq_a2]) - (outSample * lowA[biq_b2]); + double bassL = outSample; lowmidL -= bassL; + + trebleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain); + //first stage of three crossovers + + outSample = (trebleL * highB[biq_a0]) + highB[biq_sL1]; + highB[biq_sL1] = (trebleL * highB[biq_a1]) - (outSample * highB[biq_b1]) + highB[biq_sL2]; + highB[biq_sL2] = (trebleL * highB[biq_a2]) - (outSample * highB[biq_b2]); + highmidL = outSample; trebleL -= highmidL; + + outSample = (highmidL * midB[biq_a0]) + midB[biq_sL1]; + midB[biq_sL1] = (highmidL * midB[biq_a1]) - (outSample * midB[biq_b1]) + midB[biq_sL2]; + midB[biq_sL2] = (highmidL * midB[biq_a2]) - (outSample * midB[biq_b2]); + lowmidL = outSample; highmidL -= lowmidL; + + outSample = (lowmidL * lowB[biq_a0]) + lowB[biq_sL1]; + lowB[biq_sL1] = (lowmidL * lowB[biq_a1]) - (outSample * lowB[biq_b1]) + lowB[biq_sL2]; + lowB[biq_sL2] = (lowmidL * lowB[biq_a2]) - (outSample * lowB[biq_b2]); + bassL = outSample; lowmidL -= bassL; + + trebleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain); + //second stage of three crossovers + + outSample = (trebleL * highC[biq_a0]) + highC[biq_sL1]; + highC[biq_sL1] = (trebleL * highC[biq_a1]) - (outSample * highC[biq_b1]) + highC[biq_sL2]; + highC[biq_sL2] = (trebleL * highC[biq_a2]) - (outSample * highC[biq_b2]); + highmidL = outSample; trebleL -= highmidL; + + outSample = (highmidL * midC[biq_a0]) + midC[biq_sL1]; + midC[biq_sL1] = (highmidL * midC[biq_a1]) - (outSample * midC[biq_b1]) + midC[biq_sL2]; + midC[biq_sL2] = (highmidL * midC[biq_a2]) - (outSample * midC[biq_b2]); + lowmidL = outSample; highmidL -= lowmidL; + + outSample = (lowmidL * lowC[biq_a0]) + lowC[biq_sL1]; + lowC[biq_sL1] = (lowmidL * lowC[biq_a1]) - (outSample * lowC[biq_b1]) + lowC[biq_sL2]; + lowC[biq_sL2] = (lowmidL * lowC[biq_a2]) - (outSample * lowC[biq_b2]); + bassL = outSample; lowmidL -= bassL; + + trebleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain); + //third stage of three crossovers + + highLIIR = (highLIIR*highCoef) + (trebleL*(1.0-highCoef)); + highmidL = highLIIR; trebleL -= highmidL; + + midLIIR = (midLIIR*midCoef) + (highmidL*(1.0-midCoef)); + lowmidL = midLIIR; highmidL -= lowmidL; + + lowLIIR = (lowLIIR*lowCoef) + (lowmidL*(1.0-lowCoef)); + bassL = lowLIIR; lowmidL -= bassL; + + inputSampleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain); + //fourth stage of three crossovers is the exponential filters + + + double trebleR = inputSampleR; + outSample = (trebleR * highA[biq_a0]) + highA[biq_sR1]; + highA[biq_sR1] = (trebleR * highA[biq_a1]) - (outSample * highA[biq_b1]) + highA[biq_sR2]; + highA[biq_sR2] = (trebleR * highA[biq_a2]) - (outSample * highA[biq_b2]); + double highmidR = outSample; trebleR -= highmidR; + + outSample = (highmidR * midA[biq_a0]) + midA[biq_sR1]; + midA[biq_sR1] = (highmidR * midA[biq_a1]) - (outSample * midA[biq_b1]) + midA[biq_sR2]; + midA[biq_sR2] = (highmidR * midA[biq_a2]) - (outSample * midA[biq_b2]); + double lowmidR = outSample; highmidR -= lowmidR; + + outSample = (lowmidR * lowA[biq_a0]) + lowA[biq_sR1]; + lowA[biq_sR1] = (lowmidR * lowA[biq_a1]) - (outSample * lowA[biq_b1]) + lowA[biq_sR2]; + lowA[biq_sR2] = (lowmidR * lowA[biq_a2]) - (outSample * lowA[biq_b2]); + double bassR = outSample; lowmidR -= bassR; + + trebleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain); + //first stage of three crossovers + + outSample = (trebleR * highB[biq_a0]) + highB[biq_sR1]; + highB[biq_sR1] = (trebleR * highB[biq_a1]) - (outSample * highB[biq_b1]) + highB[biq_sR2]; + highB[biq_sR2] = (trebleR * highB[biq_a2]) - (outSample * highB[biq_b2]); + highmidR = outSample; trebleR -= highmidR; + + outSample = (highmidR * midB[biq_a0]) + midB[biq_sR1]; + midB[biq_sR1] = (highmidR * midB[biq_a1]) - (outSample * midB[biq_b1]) + midB[biq_sR2]; + midB[biq_sR2] = (highmidR * midB[biq_a2]) - (outSample * midB[biq_b2]); + lowmidR = outSample; highmidR -= lowmidR; + + outSample = (lowmidR * lowB[biq_a0]) + lowB[biq_sR1]; + lowB[biq_sR1] = (lowmidR * lowB[biq_a1]) - (outSample * lowB[biq_b1]) + lowB[biq_sR2]; + lowB[biq_sR2] = (lowmidR * lowB[biq_a2]) - (outSample * lowB[biq_b2]); + bassR = outSample; lowmidR -= bassR; + + trebleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain); + //second stage of three crossovers + + outSample = (trebleR * highC[biq_a0]) + highC[biq_sR1]; + highC[biq_sR1] = (trebleR * highC[biq_a1]) - (outSample * highC[biq_b1]) + highC[biq_sR2]; + highC[biq_sR2] = (trebleR * highC[biq_a2]) - (outSample * highC[biq_b2]); + highmidR = outSample; trebleR -= highmidR; + + outSample = (highmidR * midC[biq_a0]) + midC[biq_sR1]; + midC[biq_sR1] = (highmidR * midC[biq_a1]) - (outSample * midC[biq_b1]) + midC[biq_sR2]; + midC[biq_sR2] = (highmidR * midC[biq_a2]) - (outSample * midC[biq_b2]); + lowmidR = outSample; highmidR -= lowmidR; + + outSample = (lowmidR * lowC[biq_a0]) + lowC[biq_sR1]; + lowC[biq_sR1] = (lowmidR * lowC[biq_a1]) - (outSample * lowC[biq_b1]) + lowC[biq_sR2]; + lowC[biq_sR2] = (lowmidR * lowC[biq_a2]) - (outSample * lowC[biq_b2]); + bassR = outSample; lowmidR -= bassR; + + trebleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain); + //third stage of three crossovers + + highRIIR = (highRIIR*highCoef) + (trebleR*(1.0-highCoef)); + highmidR = highRIIR; trebleR -= highmidR; + + midRIIR = (midRIIR*midCoef) + (highmidR*(1.0-midCoef)); + lowmidR = midRIIR; highmidR -= lowmidR; + + lowRIIR = (lowRIIR*lowCoef) + (lowmidR*(1.0-lowCoef)); + bassR = lowRIIR; lowmidR -= bassR; + + inputSampleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain); + //fourth stage of three crossovers is the exponential filters + //SmoothEQ2 + + if (bezCThresh > 0.0) { + inputSampleL *= ((bezCThresh*0.5)+1.0); + inputSampleR *= ((bezCThresh*0.5)+1.0); + } + + bezCompF[bez_cycle] += bezRez; + bezCompF[bez_SampL] += (fabs(inputSampleL) * bezRez); + bezCompF[bez_SampR] += (fabs(inputSampleR) * bezRez); + bezMaxF = fmax(bezMaxF,fmax(fabs(inputSampleL),fabs(inputSampleR))); + + if (bezCompF[bez_cycle] > 1.0) { + bezCompF[bez_cycle] -= 1.0; + bezCompF[bez_CL] = bezCompF[bez_BL]; + bezCompF[bez_BL] = bezCompF[bez_AL]; + bezCompF[bez_AL] = bezCompF[bez_SampL]; + bezCompF[bez_SampL] = 0.0; + bezCompF[bez_CR] = bezCompF[bez_BR]; + bezCompF[bez_BR] = bezCompF[bez_AR]; + bezCompF[bez_AR] = bezCompF[bez_SampR]; + bezCompF[bez_SampR] = 0.0; + bezMaxF = 0.0; + } + bezCompS[bez_cycle] += sloRez; + bezCompS[bez_SampL] += (fabs(inputSampleL) * sloRez); //note: SampL is a control voltage + bezCompS[bez_SampR] += (fabs(inputSampleR) * sloRez); //note: SampR is a control voltage + if (bezCompS[bez_cycle] > 1.0) { + bezCompS[bez_cycle] -= 1.0; + bezCompS[bez_CL] = bezCompS[bez_BL]; + bezCompS[bez_BL] = bezCompS[bez_AL]; + bezCompS[bez_AL] = bezCompS[bez_SampL]; + bezCompS[bez_SampL] = 0.0; + bezCompS[bez_CR] = bezCompS[bez_BR]; + bezCompS[bez_BR] = bezCompS[bez_AR]; + bezCompS[bez_AR] = bezCompS[bez_SampR]; + bezCompS[bez_SampR] = 0.0; + } + double CBFL = (bezCompF[bez_CL]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_BL]*bezCompF[bez_cycle]); + double BAFL = (bezCompF[bez_BL]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_AL]*bezCompF[bez_cycle]); + double CBAFL = (bezCompF[bez_BL]+(CBFL*(1.0-bezCompF[bez_cycle]))+(BAFL*bezCompF[bez_cycle]))*0.5; + double CBSL = (bezCompS[bez_CL]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_BL]*bezCompS[bez_cycle]); + double BASL = (bezCompS[bez_BL]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_AL]*bezCompS[bez_cycle]); + double CBASL = (bezCompS[bez_BL]+(CBSL*(1.0-bezCompS[bez_cycle]))+(BASL*bezCompS[bez_cycle]))*0.5; + double CBAMax = fmax(CBASL,CBAFL); if (CBAMax > 0.0) CBAMax = 1.0/CBAMax; + double CBAFade = ((CBASL*-CBAMax)+(CBAFL*CBAMax)+1.0)*0.5; + if (bezCThresh > 0.0) inputSampleL *= 1.0-(fmin(((CBASL*(1.0-CBAFade))+(CBAFL*CBAFade))*bezCThresh,1.0)); + + double CBFR = (bezCompF[bez_CR]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_BR]*bezCompF[bez_cycle]); + double BAFR = (bezCompF[bez_BR]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_AR]*bezCompF[bez_cycle]); + double CBAFR = (bezCompF[bez_BR]+(CBFR*(1.0-bezCompF[bez_cycle]))+(BAFR*bezCompF[bez_cycle]))*0.5; + double CBSR = (bezCompS[bez_CR]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_BR]*bezCompS[bez_cycle]); + double BASR = (bezCompS[bez_BR]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_AR]*bezCompS[bez_cycle]); + double CBASR = (bezCompS[bez_BR]+(CBSR*(1.0-bezCompS[bez_cycle]))+(BASR*bezCompS[bez_cycle]))*0.5; + CBAMax = fmax(CBASR,CBAFR); if (CBAMax > 0.0) CBAMax = 1.0/CBAMax; + CBAFade = ((CBASR*-CBAMax)+(CBAFR*CBAMax)+1.0)*0.5; + if (bezCThresh > 0.0) inputSampleR *= 1.0-(fmin(((CBASR*(1.0-CBAFade))+(CBAFR*CBAFade))*bezCThresh,1.0)); + //Dynamics2 + + const double temp = (double)sampleFrames/inFramesToProcess; + 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 * gain; + inputSampleR = inputSampleR * 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 + //Discontapeity + + //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++; + } +} diff --git a/plugins/MacVST/kWoodRoom/kWoodRoom.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/kWoodRoom/kWoodRoom.xcodeproj/christopherjohnson.pbxuser new file mode 100755 index 000000000..321851ca5 --- /dev/null +++ b/plugins/MacVST/kWoodRoom/kWoodRoom.xcodeproj/christopherjohnson.pbxuser @@ -0,0 +1,108 @@ +// !$*UTF8*$! +{ + 089C1669FE841209C02AAC07 /* Project object */ = { + activeBuildConfigurationName = Release; + activeTarget = 8D01CCC60486CAD60068D4B7 /* kWoodRoom */; + codeSenseManager = 8B02375F1D42B1C400E1E8C8 /* 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, + 324, + 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 = 783774281; + PBXWorkspaceStateSaveDate = 783774281; + }; + sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */; + userBuildSettings = { + }; + }; + 2407DEB6089929BA00EB68BF /* kWoodRoom.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {849, 4410}}"; + sepNavSelRange = "{507, 0}"; + sepNavVisRange = "{8305, 1769}"; + sepNavWindowFrame = "{{545, 47}, {895, 831}}"; + }; + }; + 245463B80991757100464AD3 /* kWoodRoom.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {7041, 3618}}"; + sepNavSelRange = "{1734, 0}"; + sepNavVisRange = "{4267, 862}"; + sepNavWindowFrame = "{{545, 47}, {895, 831}}"; + }; + }; + 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {859, 20267}}"; + sepNavSelRange = "{10616, 0}"; + sepNavVisRange = "{9653, 2414}"; + sepNavWindowFrame = "{{15, 42}, {895, 831}}"; + }; + }; + 24D8286F09A914000093AEF8 /* kWoodRoomProc.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1029, 19206}}"; + sepNavSelRange = "{45767, 0}"; + sepNavVisRange = "{25294, 1430}"; + sepNavWindowFrame = "{{255, 47}, {895, 831}}"; + }; + }; + 8B02375E1D42B1C400E1E8C8 /* Source Control */ = { + isa = PBXSourceControlManager; + fallbackIsa = XCSourceControlManager; + isSCMEnabled = 0; + scmConfiguration = { + repositoryNamesForRoots = { + "" = ""; + }; + }; + }; + 8B02375F1D42B1C400E1E8C8 /* Code sense */ = { + isa = PBXCodeSenseManager; + indexTemplatePath = ""; + }; + 8D01CCC60486CAD60068D4B7 /* kWoodRoom */ = { + activeExec = 0; + }; +} diff --git a/plugins/MacVST/kWoodRoom/kWoodRoom.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/kWoodRoom/kWoodRoom.xcodeproj/christopherjohnson.perspectivev3 new file mode 100755 index 000000000..8ae8bc0c2 --- /dev/null +++ b/plugins/MacVST/kWoodRoom/kWoodRoom.xcodeproj/christopherjohnson.perspectivev3 @@ -0,0 +1,1502 @@ + + + + + ActivePerspectiveName + Project + AllowedModules + + + BundleLoadPath + + MaxInstances + n + Module + PBXSmartGroupTreeModule + Name + Groups and Files Outline View + + + BundleLoadPath + + MaxInstances + n + Module + PBXNavigatorGroup + Name + Editor + + + BundleLoadPath + + MaxInstances + n + Module + XCTaskListModule + Name + Task List + + + BundleLoadPath + + MaxInstances + n + Module + XCDetailModule + Name + File and Smart Group Detail Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXBuildResultsModule + Name + Detailed Build Results Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXProjectFindModule + Name + Project Batch Find Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCProjectFormatConflictsModule + Name + Project Format Conflicts List + + + BundleLoadPath + + MaxInstances + n + Module + PBXBookmarksModule + Name + Bookmarks Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXClassBrowserModule + Name + Class Browser + + + BundleLoadPath + + MaxInstances + n + Module + PBXCVSModule + Name + Source Code Control Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXDebugBreakpointsModule + Name + Debug Breakpoints Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCDockableInspector + Name + Inspector + + + BundleLoadPath + + MaxInstances + n + Module + PBXOpenQuicklyModule + Name + Open Quickly Tool + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugSessionModule + Name + Debugger + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugCLIModule + Name + Debug Console + + + BundleLoadPath + + MaxInstances + n + Module + XCSnapshotModule + Name + Snapshots Tool + + + BundlePath + /Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources + Description + AIODescriptionKey + DockingSystemVisible + + Extension + perspectivev3 + FavBarConfig + + PBXProjectModuleGUID + 8B02375D1D42B1C400E1E8C8 + XCBarModuleItemNames + + XCBarModuleItems + + + FirstTimeWindowDisplayed + + Identifier + com.apple.perspectives.project.defaultV3 + MajorVersion + 34 + MinorVersion + 0 + Name + All-In-One + Notifications + + + XCObserverAutoDisconnectKey + + XCObserverDefintionKey + + PBXStatusErrorsKey + 0 + + XCObserverFactoryKey + XCPerspectivesSpecificationIdentifier + XCObserverGUIDKey + XCObserverProjectIdentifier + XCObserverNotificationKey + PBXStatusBuildStateMessageNotification + XCObserverTargetKey + XCMainBuildResultsModuleGUID + XCObserverTriggerKey + awakenModuleWithObserver: + XCObserverValidationKey + + PBXStatusErrorsKey + 2 + + + + OpenEditors + + PerspectiveWidths + + 810 + 810 + + Perspectives + + + ChosenToolbarItems + + XCToolbarPerspectiveControl + NSToolbarSeparatorItem + active-combo-popup + action + NSToolbarFlexibleSpaceItem + debugger-enable-breakpoints + build-and-go + com.apple.ide.PBXToolbarStopButton + get-info + NSToolbarFlexibleSpaceItem + com.apple.pbx.toolbar.searchfield + + ControllerClassBaseName + + IconName + WindowOfProject + Identifier + perspective.project + IsVertical + + Layout + + + BecomeActive + + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 1C37FABC05509CD000000102 + 1C37FABC05539CD112110102 + E2644B35053B69B200211256 + 1C37FABC04509CD000100104 + 1CC0EA4004350EF90044410B + 1CC0EA4004350EF90041110B + 1C77FABC04509CD000000102 + + PBXProjectModuleGUID + 1CA23ED40692098700951B8B + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + yes + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 185 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 089C166AFE841209C02AAC07 + 08FB77ADFE841716C02AAC07 + 1C37FBAC04509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 6 + 4 + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {185, 428}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + + + GeometryConfiguration + + Frame + {{0, 0}, {202, 446}} + GroupTreeTableConfiguration + + MainColumn + 185 + + RubberWindowFrame + 614 270 810 487 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 202pt + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 8B0237581D42B1C400E1E8C8 + PBXProjectModuleLabel + Gain.h + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 8B0237591D42B1C400E1E8C8 + PBXProjectModuleLabel + Gain.h + + SplitCount + 1 + + StatusBarVisibility + + XCSharingToken + com.apple.Xcode.CommonNavigatorGroupSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {603, 0}} + RubberWindowFrame + 614 270 810 487 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 0pt + + + Proportion + 441pt + Tabs + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA23EDF0692099D00951B8B + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{10, 27}, {603, 414}} + RubberWindowFrame + 614 270 810 487 0 0 1440 878 + + Module + XCDetailModule + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA23EE00692099D00951B8B + PBXProjectModuleLabel + Project Find + + GeometryConfiguration + + Frame + {{10, 31}, {603, 297}} + + Module + PBXProjectFindModule + + + ContentConfiguration + + PBXCVSModuleFilterTypeKey + 1032 + PBXProjectModuleGUID + 1CA23EE10692099D00951B8B + PBXProjectModuleLabel + SCM Results + + GeometryConfiguration + + Frame + {{10, 31}, {603, 297}} + + Module + PBXCVSModule + + + ContentConfiguration + + PBXProjectModuleGUID + XCMainBuildResultsModuleGUID + PBXProjectModuleLabel + Build Results + XCBuildResultsTrigger_Collapse + 1023 + XCBuildResultsTrigger_Open + 1012 + + GeometryConfiguration + + Frame + {{10, 27}, {603, 282}} + + Module + PBXBuildResultsModule + + + + + Proportion + 603pt + + + Name + Project + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + XCModuleDock + PBXNavigatorGroup + XCDockableTabModule + XCDetailModule + PBXProjectFindModule + PBXCVSModule + PBXBuildResultsModule + + TableOfContents + + 8B28295C2EB7769B003789A7 + 1CA23ED40692098700951B8B + 8B28295D2EB7769B003789A7 + 8B0237581D42B1C400E1E8C8 + 8B28295E2EB7769B003789A7 + 1CA23EDF0692099D00951B8B + 1CA23EE00692099D00951B8B + 1CA23EE10692099D00951B8B + XCMainBuildResultsModuleGUID + + ToolbarConfigUserDefaultsMinorVersion + 2 + ToolbarConfiguration + xcode.toolbar.config.defaultV3 + + + ChosenToolbarItems + + XCToolbarPerspectiveControl + NSToolbarSeparatorItem + active-combo-popup + NSToolbarFlexibleSpaceItem + debugger-enable-breakpoints + build-and-go + com.apple.ide.PBXToolbarStopButton + debugger-restart-executable + debugger-pause + debugger-step-over + debugger-step-into + debugger-step-out + NSToolbarFlexibleSpaceItem + servicesModulebreakpoints + debugger-show-console-window + + ControllerClassBaseName + PBXDebugSessionModule + IconName + DebugTabIcon + Identifier + perspective.debug + IsVertical + 1 + Layout + + + ContentConfiguration + + PBXProjectModuleGUID + 1CCC7628064C1048000F2A68 + PBXProjectModuleLabel + Debugger Console + + GeometryConfiguration + + Frame + {{0, 0}, {810, 0}} + + Module + PBXDebugCLIModule + Proportion + 0% + + + ContentConfiguration + + Debugger + + HorizontalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {395, 213}} + {{395, 0}, {415, 213}} + + + VerticalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {810, 213}} + {{0, 213}, {810, 225}} + + + + LauncherConfigVersion + 8 + PBXProjectModuleGUID + 1CCC7629064C1048000F2A68 + PBXProjectModuleLabel + Debug + + GeometryConfiguration + + DebugConsoleDrawerSize + {100, 120} + DebugConsoleVisible + None + DebugConsoleWindowFrame + {{200, 200}, {500, 300}} + DebugSTDIOWindowFrame + {{200, 200}, {500, 300}} + Frame + {{0, 7}, {810, 438}} + + Module + PBXDebugSessionModule + Proportion + 443pt + + + Name + Debug + ServiceClasses + + XCModuleDock + XCModuleDock + PBXDebugCLIModule + PBXDebugSessionModule + XCConsole + + TableOfContents + + 1CC8E6A5069209BD00BB180A + 1CC8E6A6069209BD00BB180A + 1CCC7628064C1048000F2A68 + 1CCC7629064C1048000F2A68 + 1CC8E6A7069209BD00BB180A + + ToolbarConfiguration + xcode.toolbar.config.debugV3 + + + PerspectivesBarVisible + + ShelfIsVisible + + SourceDescription + file at '/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecification.xcperspec' + StatusbarIsVisible + + TimeStamp + 783775387.98298597 + ToolbarConfigUserDefaultsMinorVersion + 2 + ToolbarDisplayMode + 1 + ToolbarIsVisible + + ToolbarSizeMode + 2 + Type + Perspectives + UpdateMessage + + WindowJustification + 5 + WindowOrderList + + /Users/christopherjohnson/Desktop/kWoodRoom/kWoodRoom.xcodeproj + + WindowString + 614 270 810 487 0 0 1440 878 + WindowToolsV3 + + + Identifier + windowTool.debugger + Layout + + + Dock + + + ContentConfiguration + + Debugger + + HorizontalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {317, 164}} + {{317, 0}, {377, 164}} + + + VerticalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {694, 164}} + {{0, 164}, {694, 216}} + + + + LauncherConfigVersion + 8 + PBXProjectModuleGUID + 1C162984064C10D400B95A72 + PBXProjectModuleLabel + Debug - GLUTExamples (Underwater) + + GeometryConfiguration + + DebugConsoleDrawerSize + {100, 120} + DebugConsoleVisible + None + DebugConsoleWindowFrame + {{200, 200}, {500, 300}} + DebugSTDIOWindowFrame + {{200, 200}, {500, 300}} + Frame + {{0, 0}, {694, 380}} + RubberWindowFrame + 321 238 694 422 0 0 1440 878 + + Module + PBXDebugSessionModule + Proportion + 100% + + + Proportion + 100% + + + Name + Debugger + ServiceClasses + + PBXDebugSessionModule + + StatusbarIsVisible + 1 + TableOfContents + + 1CD10A99069EF8BA00B06720 + 1C0AD2AB069F1E9B00FABCE6 + 1C162984064C10D400B95A72 + 1C0AD2AC069F1E9B00FABCE6 + + ToolbarConfiguration + xcode.toolbar.config.debugV3 + WindowString + 321 238 694 422 0 0 1440 878 + WindowToolGUID + 1CD10A99069EF8BA00B06720 + WindowToolIsVisible + 0 + + + Identifier + windowTool.build + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528F0623707200166675 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CD052900623707200166675 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {500, 215}} + RubberWindowFrame + 192 257 500 500 0 0 1280 1002 + + Module + PBXNavigatorGroup + Proportion + 218pt + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + XCMainBuildResultsModuleGUID + PBXProjectModuleLabel + Build Results + + GeometryConfiguration + + Frame + {{0, 222}, {500, 236}} + RubberWindowFrame + 192 257 500 500 0 0 1280 1002 + + Module + PBXBuildResultsModule + Proportion + 236pt + + + Proportion + 458pt + + + Name + Build Results + ServiceClasses + + PBXBuildResultsModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C78EAA5065D492600B07095 + 1C78EAA6065D492600B07095 + 1CD0528F0623707200166675 + XCMainBuildResultsModuleGUID + + ToolbarConfiguration + xcode.toolbar.config.buildV3 + WindowString + 192 257 500 500 0 0 1280 1002 + + + Identifier + windowTool.find + Layout + + + Dock + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CDD528C0622207200134675 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CD0528D0623707200166675 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {781, 167}} + RubberWindowFrame + 62 385 781 470 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 781pt + + + Proportion + 50% + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528E0623707200166675 + PBXProjectModuleLabel + Project Find + + GeometryConfiguration + + Frame + {{8, 0}, {773, 254}} + RubberWindowFrame + 62 385 781 470 0 0 1440 878 + + Module + PBXProjectFindModule + Proportion + 50% + + + Proportion + 428pt + + + Name + Project Find + ServiceClasses + + PBXProjectFindModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C530D57069F1CE1000CFCEE + 1C530D58069F1CE1000CFCEE + 1C530D59069F1CE1000CFCEE + 1CDD528C0622207200134675 + 1C530D5A069F1CE1000CFCEE + 1CE0B1FE06471DED0097A5F4 + 1CD0528E0623707200166675 + + WindowString + 62 385 781 470 0 0 1440 878 + WindowToolGUID + 1C530D57069F1CE1000CFCEE + WindowToolIsVisible + 0 + + + Identifier + windowTool.snapshots + Layout + + + Dock + + + Module + XCSnapshotModule + Proportion + 100% + + + Proportion + 100% + + + Name + Snapshots + ServiceClasses + + XCSnapshotModule + + StatusbarIsVisible + Yes + ToolbarConfiguration + xcode.toolbar.config.snapshots + WindowString + 315 824 300 550 0 0 1440 878 + WindowToolIsVisible + Yes + + + Identifier + windowTool.debuggerConsole + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAAC065D492600B07095 + PBXProjectModuleLabel + Debugger Console + + GeometryConfiguration + + Frame + {{0, 0}, {700, 358}} + RubberWindowFrame + 149 87 700 400 0 0 1440 878 + + Module + PBXDebugCLIModule + Proportion + 358pt + + + Proportion + 358pt + + + Name + Debugger Console + ServiceClasses + + PBXDebugCLIModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C530D5B069F1CE1000CFCEE + 1C530D5C069F1CE1000CFCEE + 1C78EAAC065D492600B07095 + + ToolbarConfiguration + xcode.toolbar.config.consoleV3 + WindowString + 149 87 440 400 0 0 1440 878 + WindowToolGUID + 1C530D5B069F1CE1000CFCEE + WindowToolIsVisible + 0 + + + Identifier + windowTool.scm + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAB2065D492600B07095 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1C78EAB3065D492600B07095 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {452, 0}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + + Module + PBXNavigatorGroup + Proportion + 0pt + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD052920623707200166675 + PBXProjectModuleLabel + SCM + + GeometryConfiguration + + ConsoleFrame + {{0, 259}, {452, 0}} + Frame + {{0, 7}, {452, 259}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + TableConfiguration + + Status + 30 + FileName + 199 + Path + 197.09500122070312 + + TableFrame + {{0, 0}, {452, 250}} + + Module + PBXCVSModule + Proportion + 262pt + + + Proportion + 266pt + + + Name + SCM + ServiceClasses + + PBXCVSModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C78EAB4065D492600B07095 + 1C78EAB5065D492600B07095 + 1C78EAB2065D492600B07095 + 1CD052920623707200166675 + + ToolbarConfiguration + xcode.toolbar.config.scmV3 + WindowString + 743 379 452 308 0 0 1280 1002 + + + Identifier + windowTool.breakpoints + IsVertical + 0 + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C77FABC04509CD000000102 + + PBXProjectModuleGUID + 1CE0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + no + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 168 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 1C77FABC04509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {168, 350}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + 0 + + GeometryConfiguration + + Frame + {{0, 0}, {185, 368}} + GroupTreeTableConfiguration + + MainColumn + 168 + + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 185pt + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA1AED706398EBD00589147 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{190, 0}, {554, 368}} + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + XCDetailModule + Proportion + 554pt + + + Proportion + 368pt + + + MajorVersion + 3 + MinorVersion + 0 + Name + Breakpoints + ServiceClasses + + PBXSmartGroupTreeModule + XCDetailModule + + StatusbarIsVisible + 1 + TableOfContents + + 1CDDB66807F98D9800BB5817 + 1CDDB66907F98D9800BB5817 + 1CE0B1FE06471DED0097A5F4 + 1CA1AED706398EBD00589147 + + ToolbarConfiguration + xcode.toolbar.config.breakpointsV3 + WindowString + 315 424 744 409 0 0 1440 878 + WindowToolGUID + 1CDDB66807F98D9800BB5817 + WindowToolIsVisible + 1 + + + Identifier + windowTool.debugAnimator + Layout + + + Dock + + + Module + PBXNavigatorGroup + Proportion + 100% + + + Proportion + 100% + + + Name + Debug Visualizer + ServiceClasses + + PBXNavigatorGroup + + StatusbarIsVisible + 1 + ToolbarConfiguration + xcode.toolbar.config.debugAnimatorV3 + WindowString + 100 100 700 500 0 0 1280 1002 + + + Identifier + windowTool.bookmarks + Layout + + + Dock + + + Module + PBXBookmarksModule + Proportion + 166pt + + + Proportion + 166pt + + + Name + Bookmarks + ServiceClasses + + PBXBookmarksModule + + StatusbarIsVisible + 0 + WindowString + 538 42 401 187 0 0 1280 1002 + + + FirstTimeWindowDisplayed + + Identifier + windowTool.projectFormatConflicts + IsVertical + + Layout + + + Dock + + + BecomeActive + + ContentConfiguration + + PBXProjectModuleGUID + 8BCAE52E1D49920D0047D4BD + + GeometryConfiguration + + Frame + {{0, 0}, {472, 302}} + RubberWindowFrame + 569 378 472 322 0 0 1440 878 + + Module + XCProjectFormatConflictsModule + Proportion + 302pt + + + Proportion + 302pt + + + Name + Project Format Conflicts + ServiceClasses + + XCProjectFormatConflictsModule + + StatusbarIsVisible + + TableOfContents + + 8BCAE52F1D49920D0047D4BD + 8BCAE5301D49920D0047D4BD + 8BCAE52E1D49920D0047D4BD + + WindowContentMinSize + 450 300 + WindowString + 569 378 472 322 0 0 1440 878 + WindowToolGUID + 8BCAE52F1D49920D0047D4BD + WindowToolIsVisible + + + + Identifier + windowTool.classBrowser + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + OptionsSetName + Hierarchy, all classes + PBXProjectModuleGUID + 1CA6456E063B45B4001379D8 + PBXProjectModuleLabel + Class Browser - NSObject + + GeometryConfiguration + + ClassesFrame + {{0, 0}, {369, 96}} + ClassesTreeTableConfiguration + + PBXClassNameColumnIdentifier + 208 + PBXClassBookColumnIdentifier + 22 + + Frame + {{0, 0}, {616, 353}} + MembersFrame + {{0, 105}, {369, 395}} + MembersTreeTableConfiguration + + PBXMemberTypeIconColumnIdentifier + 22 + PBXMemberNameColumnIdentifier + 216 + PBXMemberTypeColumnIdentifier + 94 + PBXMemberBookColumnIdentifier + 22 + + PBXModuleWindowStatusBarHidden2 + 1 + RubberWindowFrame + 597 125 616 374 0 0 1280 1002 + + Module + PBXClassBrowserModule + Proportion + 354pt + + + Proportion + 354pt + + + Name + Class Browser + ServiceClasses + + PBXClassBrowserModule + + StatusbarIsVisible + 0 + TableOfContents + + 1C78EABA065D492600B07095 + 1C78EABB065D492600B07095 + 1CA6456E063B45B4001379D8 + + ToolbarConfiguration + xcode.toolbar.config.classbrowser + WindowString + 597 125 616 374 0 0 1280 1002 + + + Identifier + windowTool.refactoring + IncludeInToolsMenu + 0 + Layout + + + Dock + + + BecomeActive + 1 + GeometryConfiguration + + Frame + {0, 0}, {500, 335} + RubberWindowFrame + {0, 0}, {500, 335} + + Module + XCRefactoringModule + Proportion + 100% + + + Proportion + 100% + + + Name + Refactoring + ServiceClasses + + XCRefactoringModule + + WindowString + 200 200 500 356 0 0 1920 1200 + + + + diff --git a/plugins/MacVST/kWoodRoom/kWoodRoom.xcodeproj/project.pbxproj b/plugins/MacVST/kWoodRoom/kWoodRoom.xcodeproj/project.pbxproj new file mode 100755 index 000000000..78297ffd4 --- /dev/null +++ b/plugins/MacVST/kWoodRoom/kWoodRoom.xcodeproj/project.pbxproj @@ -0,0 +1,2201 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 42; + objects = { + +/* Begin PBXBuildFile section */ + 2407DEB9089929BA00EB68BF /* kWoodRoom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2407DEB6089929BA00EB68BF /* kWoodRoom.cpp */; }; + 245463B90991757100464AD3 /* kWoodRoom.h in Headers */ = {isa = PBXBuildFile; fileRef = 245463B80991757100464AD3 /* kWoodRoom.h */; }; + 24A202190F90D1DE003BB5A7 /* aeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FF910F90D1DD003BB5A7 /* aeffect.h */; }; + 24A2021A0F90D1DE003BB5A7 /* aeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FF920F90D1DD003BB5A7 /* aeffectx.h */; }; + 24A2021B0F90D1DE003BB5A7 /* vstfxstore.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FF930F90D1DD003BB5A7 /* vstfxstore.h */; }; + 24A2021D0F90D1DE003BB5A7 /* adelay.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FF990F90D1DD003BB5A7 /* adelay.h */; }; + 24A202240F90D1DE003BB5A7 /* sdeditor.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFA20F90D1DD003BB5A7 /* sdeditor.h */; }; + 24A202260F90D1DE003BB5A7 /* surrounddelay.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFA40F90D1DD003BB5A7 /* surrounddelay.h */; }; + 24A2022A0F90D1DE003BB5A7 /* again.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFAB0F90D1DD003BB5A7 /* again.h */; }; + 24A202330F90D1DE003BB5A7 /* gmnames.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFBF0F90D1DD003BB5A7 /* gmnames.h */; }; + 24A202350F90D1DE003BB5A7 /* vstxsynth.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFC10F90D1DD003BB5A7 /* vstxsynth.h */; }; + 24A202460F90D1DE003BB5A7 /* aeffeditor.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFD80F90D1DD003BB5A7 /* aeffeditor.h */; }; + 24A202480F90D1DE003BB5A7 /* audioeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFDA0F90D1DD003BB5A7 /* audioeffect.h */; }; + 24A2024A0F90D1DE003BB5A7 /* audioeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFDC0F90D1DD003BB5A7 /* audioeffectx.h */; }; + 24A2024D0F90D1DE003BB5A7 /* cw_vst_prefix.pch++ in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFE20F90D1DD003BB5A7 /* cw_vst_prefix.pch++ */; }; + 24A202510F90D1DE003BB5A7 /* xcode_au_prefix.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFEC0F90D1DD003BB5A7 /* xcode_au_prefix.h */; }; + 24A202520F90D1DE003BB5A7 /* xcode_vst_prefix.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFED0F90D1DD003BB5A7 /* xcode_vst_prefix.h */; }; + 24A202680F90D1DE003BB5A7 /* controlsgui.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A200050F90D1DD003BB5A7 /* controlsgui.h */; }; + 24A2026A0F90D1DE003BB5A7 /* pdrawtesteditor.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A200070F90D1DD003BB5A7 /* pdrawtesteditor.h */; }; + 24A2026C0F90D1DE003BB5A7 /* pdrawtesteffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A200090F90D1DD003BB5A7 /* pdrawtesteffect.h */; }; + 24A2026F0F90D1DE003BB5A7 /* pdrawtestview.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2000C0F90D1DD003BB5A7 /* pdrawtestview.h */; }; + 24A202710F90D1DE003BB5A7 /* pprimitivesviews.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2000E0F90D1DD003BB5A7 /* pprimitivesviews.h */; }; + 24A202780F90D1DE003BB5A7 /* aeffguieditor.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A200180F90D1DD003BB5A7 /* aeffguieditor.h */; }; + 24A2027A0F90D1DE003BB5A7 /* cfileselector.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2001A0F90D1DD003BB5A7 /* cfileselector.h */; }; + 24A2027D0F90D1DE003BB5A7 /* cscrollview.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2001D0F90D1DD003BB5A7 /* cscrollview.h */; }; + 24A2027F0F90D1DE003BB5A7 /* ctabview.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2001F0F90D1DD003BB5A7 /* ctabview.h */; }; + 24A203A50F90D1DE003BB5A7 /* plugguieditor.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A201470F90D1DE003BB5A7 /* plugguieditor.h */; }; + 24A203A70F90D1DE003BB5A7 /* vstcontrols.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A201490F90D1DE003BB5A7 /* vstcontrols.h */; }; + 24A203A90F90D1DE003BB5A7 /* vstgui.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2014B0F90D1DE003BB5A7 /* vstgui.h */; }; + 24A203AA0F90D1DE003BB5A7 /* vstkeycode.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2014C0F90D1DE003BB5A7 /* vstkeycode.h */; }; + 24A203AB0F90D1DE003BB5A7 /* vstplugscarbon.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2014D0F90D1DE003BB5A7 /* vstplugscarbon.h */; }; + 24A203AC0F90D1DE003BB5A7 /* vstplugsmac.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2014E0F90D1DE003BB5A7 /* vstplugsmac.h */; }; + 24A203AD0F90D1DE003BB5A7 /* vstplugsmacho.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2014F0F90D1DE003BB5A7 /* vstplugsmacho.h */; }; + 24A203AE0F90D1DE003BB5A7 /* vstplugsquartz.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A201500F90D1DE003BB5A7 /* vstplugsquartz.h */; }; + 24A203CB0F90D251003BB5A7 /* audioeffect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 24A2FFD90F90D1DD003BB5A7 /* audioeffect.cpp */; }; + 24A203CC0F90D251003BB5A7 /* audioeffectx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */; }; + 24A203CD0F90D251003BB5A7 /* vstplugmain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 24A2FFDD0F90D1DD003BB5A7 /* vstplugmain.cpp */; }; + 24CFB70407E7A0220081BD57 /* PkgInfo in Resources */ = {isa = PBXBuildFile; fileRef = 24CFB70307E7A0220081BD57 /* PkgInfo */; }; + 24D8287009A914000093AEF8 /* kWoodRoomProc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 24D8286F09A914000093AEF8 /* kWoodRoomProc.cpp */; }; + 24D8287F09A9164A0093AEF8 /* xcode_vst_prefix.h in Headers */ = {isa = PBXBuildFile; fileRef = 24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 24A203D60F90D272003BB5A7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 24A2FFB00F90D1DD003BB5A7 /* vst 2.4 examples.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 8D01CCD20486CAD60068D4B7; + remoteInfo = again; + }; + 24A203D80F90D272003BB5A7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 24A2FFB00F90D1DD003BB5A7 /* vst 2.4 examples.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = F4476974093DAE42008998C4; + remoteInfo = adelay; + }; + 24A203DA0F90D272003BB5A7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 24A2FFB00F90D1DD003BB5A7 /* vst 2.4 examples.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = F4FF52220929FBF500DDED7A; + remoteInfo = vstxsynth; + }; + 24A203DC0F90D272003BB5A7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 24A2FFB00F90D1DD003BB5A7 /* vst 2.4 examples.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = F4476A10093DCAF9008998C4; + remoteInfo = surrounddelay; + }; + 24A203DE0F90D272003BB5A7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 24A2FFB00F90D1DD003BB5A7 /* vst 2.4 examples.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = F4FF52F3092A312800DDED7A; + remoteInfo = minihost; + }; + 24A203E40F90D272003BB5A7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 24A2FFE50F90D1DD003BB5A7 /* drawtest.xcode */; + proxyType = 2; + remoteGlobalIDString = 8D01CCD20486CAD60068D4B7; + remoteInfo = AudioUnit; + }; + 24A203E60F90D272003BB5A7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 24A2FFE50F90D1DD003BB5A7 /* drawtest.xcode */; + proxyType = 2; + remoteGlobalIDString = F4C9F1D407B2320800010DAD; + remoteInfo = VST; + }; + 24A203EC0F90D272003BB5A7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 24A2FFE80F90D1DD003BB5A7 /* drawtest.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 8D01CCD20486CAD60068D4B7; + remoteInfo = AudioUnit; + }; + 24A203EE0F90D272003BB5A7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 24A2FFE80F90D1DD003BB5A7 /* drawtest.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = F4C9F1D407B2320800010DAD; + remoteInfo = VST; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 08EA7FFBFE8413EDC02AAC07 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = ""; }; + 2407DE920899296600EB68BF /* kWoodRoom.vst */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = kWoodRoom.vst; sourceTree = BUILT_PRODUCTS_DIR; }; + 2407DEB6089929BA00EB68BF /* kWoodRoom.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = kWoodRoom.cpp; path = source/kWoodRoom.cpp; sourceTree = ""; }; + 2434720A098313350063BBF1 /* QuickTime.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = /System/Library/Frameworks/QuickTime.framework; sourceTree = ""; }; + 245463B80991757100464AD3 /* kWoodRoom.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = kWoodRoom.h; path = source/kWoodRoom.h; sourceTree = ""; }; + 24A200000F90D1DD003BB5A7 /* bmp10014.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10014.bmp; sourceTree = ""; }; + 24A200010F90D1DD003BB5A7 /* bmp10015.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10015.bmp; sourceTree = ""; }; + 24A200020F90D1DD003BB5A7 /* bmp10016.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10016.bmp; sourceTree = ""; }; + 24A200040F90D1DD003BB5A7 /* controlsgui.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = controlsgui.cpp; sourceTree = ""; }; + 24A200050F90D1DD003BB5A7 /* controlsgui.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = controlsgui.h; sourceTree = ""; }; + 24A200060F90D1DD003BB5A7 /* pdrawtesteditor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pdrawtesteditor.cpp; sourceTree = ""; }; + 24A200070F90D1DD003BB5A7 /* pdrawtesteditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pdrawtesteditor.h; sourceTree = ""; }; + 24A200080F90D1DD003BB5A7 /* pdrawtesteffect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pdrawtesteffect.cpp; sourceTree = ""; }; + 24A200090F90D1DD003BB5A7 /* pdrawtesteffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pdrawtesteffect.h; sourceTree = ""; }; + 24A2000A0F90D1DD003BB5A7 /* pdrawtestmain.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pdrawtestmain.cpp; sourceTree = ""; }; + 24A2000B0F90D1DD003BB5A7 /* pdrawtestview.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pdrawtestview.cpp; sourceTree = ""; }; + 24A2000C0F90D1DD003BB5A7 /* pdrawtestview.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pdrawtestview.h; sourceTree = ""; }; + 24A2000D0F90D1DD003BB5A7 /* pprimitivesviews.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pprimitivesviews.cpp; sourceTree = ""; }; + 24A2000E0F90D1DD003BB5A7 /* pprimitivesviews.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pprimitivesviews.h; sourceTree = ""; }; + 24A200100F90D1DD003BB5A7 /* drawtest.def */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = drawtest.def; sourceTree = ""; }; + 24A200110F90D1DD003BB5A7 /* drawtest.rc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = drawtest.rc; sourceTree = ""; }; + 24A200120F90D1DD003BB5A7 /* drawtest.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = drawtest.vcproj; sourceTree = ""; }; + 24A200140F90D1DD003BB5A7 /* drawtest.dsp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = drawtest.dsp; sourceTree = ""; }; + 24A200150F90D1DD003BB5A7 /* drawtest.dsw */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = drawtest.dsw; sourceTree = ""; }; + 24A200170F90D1DD003BB5A7 /* aeffguieditor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = aeffguieditor.cpp; sourceTree = ""; }; + 24A200180F90D1DD003BB5A7 /* aeffguieditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffguieditor.h; sourceTree = ""; }; + 24A200190F90D1DD003BB5A7 /* cfileselector.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cfileselector.cpp; sourceTree = ""; }; + 24A2001A0F90D1DD003BB5A7 /* cfileselector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cfileselector.h; sourceTree = ""; }; + 24A2001B0F90D1DD003BB5A7 /* Changelog */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Changelog; sourceTree = ""; }; + 24A2001C0F90D1DD003BB5A7 /* cscrollview.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cscrollview.cpp; sourceTree = ""; }; + 24A2001D0F90D1DD003BB5A7 /* cscrollview.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cscrollview.h; sourceTree = ""; }; + 24A2001E0F90D1DD003BB5A7 /* ctabview.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ctabview.cpp; sourceTree = ""; }; + 24A2001F0F90D1DD003BB5A7 /* ctabview.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ctabview.h; sourceTree = ""; }; + 24A200220F90D1DD003BB5A7 /* aeffguieditor_8cpp.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = aeffguieditor_8cpp.html; sourceTree = ""; }; + 24A200230F90D1DD003BB5A7 /* aeffguieditor_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = aeffguieditor_8h.html; sourceTree = ""; }; + 24A200240F90D1DD003BB5A7 /* annotated.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = annotated.html; sourceTree = ""; }; + 24A200250F90D1DD003BB5A7 /* cfileselector_8cpp.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = cfileselector_8cpp.html; sourceTree = ""; }; + 24A200260F90D1DD003BB5A7 /* cfileselector_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = cfileselector_8h.html; sourceTree = ""; }; + 24A200270F90D1DD003BB5A7 /* class_a_eff_g_u_i_editor-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_a_eff_g_u_i_editor-members.html"; sourceTree = ""; }; + 24A200280F90D1DD003BB5A7 /* class_a_eff_g_u_i_editor.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_a_eff_g_u_i_editor.html; sourceTree = ""; }; + 24A200290F90D1DD003BB5A7 /* class_c_anim_knob-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_anim_knob-members.html"; sourceTree = ""; }; + 24A2002A0F90D1DD003BB5A7 /* class_c_anim_knob.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_anim_knob.html; sourceTree = ""; }; + 24A2002B0F90D1DD003BB5A7 /* class_c_anim_knob.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_anim_knob.png; sourceTree = ""; }; + 24A2002C0F90D1DD003BB5A7 /* class_c_attribute_list_entry-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_attribute_list_entry-members.html"; sourceTree = ""; }; + 24A2002D0F90D1DD003BB5A7 /* class_c_attribute_list_entry.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_attribute_list_entry.html; sourceTree = ""; }; + 24A2002E0F90D1DD003BB5A7 /* class_c_auto_animation-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_auto_animation-members.html"; sourceTree = ""; }; + 24A2002F0F90D1DD003BB5A7 /* class_c_auto_animation.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_auto_animation.html; sourceTree = ""; }; + 24A200300F90D1DD003BB5A7 /* class_c_auto_animation.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_auto_animation.png; sourceTree = ""; }; + 24A200310F90D1DD003BB5A7 /* class_c_bitmap-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_bitmap-members.html"; sourceTree = ""; }; + 24A200320F90D1DD003BB5A7 /* class_c_bitmap.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_bitmap.html; sourceTree = ""; }; + 24A200330F90D1DD003BB5A7 /* class_c_bitmap.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_bitmap.png; sourceTree = ""; }; + 24A200340F90D1DD003BB5A7 /* class_c_c_view-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_c_view-members.html"; sourceTree = ""; }; + 24A200350F90D1DD003BB5A7 /* class_c_c_view.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_c_view.html; sourceTree = ""; }; + 24A200360F90D1DD003BB5A7 /* class_c_control-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_control-members.html"; sourceTree = ""; }; + 24A200370F90D1DD003BB5A7 /* class_c_control.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_control.html; sourceTree = ""; }; + 24A200380F90D1DD003BB5A7 /* class_c_control.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_control.png; sourceTree = ""; }; + 24A200390F90D1DD003BB5A7 /* class_c_control_listener-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_control_listener-members.html"; sourceTree = ""; }; + 24A2003A0F90D1DD003BB5A7 /* class_c_control_listener.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_control_listener.html; sourceTree = ""; }; + 24A2003B0F90D1DD003BB5A7 /* class_c_control_listener.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_control_listener.png; sourceTree = ""; }; + 24A2003C0F90D1DD003BB5A7 /* class_c_drag_container-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_drag_container-members.html"; sourceTree = ""; }; + 24A2003D0F90D1DD003BB5A7 /* class_c_drag_container.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_drag_container.html; sourceTree = ""; }; + 24A2003E0F90D1DD003BB5A7 /* class_c_drag_container.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_drag_container.png; sourceTree = ""; }; + 24A2003F0F90D1DD003BB5A7 /* class_c_draw_context-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_draw_context-members.html"; sourceTree = ""; }; + 24A200400F90D1DD003BB5A7 /* class_c_draw_context.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_draw_context.html; sourceTree = ""; }; + 24A200410F90D1DD003BB5A7 /* class_c_draw_context.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_draw_context.png; sourceTree = ""; }; + 24A200420F90D1DD003BB5A7 /* class_c_file_selector-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_file_selector-members.html"; sourceTree = ""; }; + 24A200430F90D1DD003BB5A7 /* class_c_file_selector.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_file_selector.html; sourceTree = ""; }; + 24A200440F90D1DD003BB5A7 /* class_c_frame-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_frame-members.html"; sourceTree = ""; }; + 24A200450F90D1DD003BB5A7 /* class_c_frame.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_frame.html; sourceTree = ""; }; + 24A200460F90D1DD003BB5A7 /* class_c_frame.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_frame.png; sourceTree = ""; }; + 24A200470F90D1DD003BB5A7 /* class_c_horizontal_slider-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_horizontal_slider-members.html"; sourceTree = ""; }; + 24A200480F90D1DD003BB5A7 /* class_c_horizontal_slider.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_horizontal_slider.html; sourceTree = ""; }; + 24A200490F90D1DD003BB5A7 /* class_c_horizontal_slider.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_horizontal_slider.png; sourceTree = ""; }; + 24A2004A0F90D1DD003BB5A7 /* class_c_horizontal_switch-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_horizontal_switch-members.html"; sourceTree = ""; }; + 24A2004B0F90D1DD003BB5A7 /* class_c_horizontal_switch.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_horizontal_switch.html; sourceTree = ""; }; + 24A2004C0F90D1DD003BB5A7 /* class_c_horizontal_switch.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_horizontal_switch.png; sourceTree = ""; }; + 24A2004D0F90D1DD003BB5A7 /* class_c_kick_button-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_kick_button-members.html"; sourceTree = ""; }; + 24A2004E0F90D1DD003BB5A7 /* class_c_kick_button.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_kick_button.html; sourceTree = ""; }; + 24A2004F0F90D1DD003BB5A7 /* class_c_kick_button.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_kick_button.png; sourceTree = ""; }; + 24A200500F90D1DD003BB5A7 /* class_c_knob-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_knob-members.html"; sourceTree = ""; }; + 24A200510F90D1DD003BB5A7 /* class_c_knob.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_knob.html; sourceTree = ""; }; + 24A200520F90D1DD003BB5A7 /* class_c_knob.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_knob.png; sourceTree = ""; }; + 24A200530F90D1DD003BB5A7 /* class_c_movie_bitmap-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_movie_bitmap-members.html"; sourceTree = ""; }; + 24A200540F90D1DD003BB5A7 /* class_c_movie_bitmap.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_movie_bitmap.html; sourceTree = ""; }; + 24A200550F90D1DD003BB5A7 /* class_c_movie_bitmap.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_movie_bitmap.png; sourceTree = ""; }; + 24A200560F90D1DD003BB5A7 /* class_c_movie_button-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_movie_button-members.html"; sourceTree = ""; }; + 24A200570F90D1DD003BB5A7 /* class_c_movie_button.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_movie_button.html; sourceTree = ""; }; + 24A200580F90D1DD003BB5A7 /* class_c_movie_button.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_movie_button.png; sourceTree = ""; }; + 24A200590F90D1DD003BB5A7 /* class_c_offscreen_context-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_offscreen_context-members.html"; sourceTree = ""; }; + 24A2005A0F90D1DD003BB5A7 /* class_c_offscreen_context.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_offscreen_context.html; sourceTree = ""; }; + 24A2005B0F90D1DD003BB5A7 /* class_c_offscreen_context.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_offscreen_context.png; sourceTree = ""; }; + 24A2005C0F90D1DD003BB5A7 /* class_c_on_off_button-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_on_off_button-members.html"; sourceTree = ""; }; + 24A2005D0F90D1DD003BB5A7 /* class_c_on_off_button.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_on_off_button.html; sourceTree = ""; }; + 24A2005E0F90D1DD003BB5A7 /* class_c_on_off_button.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_on_off_button.png; sourceTree = ""; }; + 24A2005F0F90D1DD003BB5A7 /* class_c_option_menu-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_option_menu-members.html"; sourceTree = ""; }; + 24A200600F90D1DD003BB5A7 /* class_c_option_menu.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_option_menu.html; sourceTree = ""; }; + 24A200610F90D1DD003BB5A7 /* class_c_option_menu.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_option_menu.png; sourceTree = ""; }; + 24A200620F90D1DD003BB5A7 /* class_c_option_menu_scheme-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_option_menu_scheme-members.html"; sourceTree = ""; }; + 24A200630F90D1DD003BB5A7 /* class_c_option_menu_scheme.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_option_menu_scheme.html; sourceTree = ""; }; + 24A200640F90D1DD003BB5A7 /* class_c_option_menu_scheme.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_option_menu_scheme.png; sourceTree = ""; }; + 24A200650F90D1DD003BB5A7 /* class_c_param_display-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_param_display-members.html"; sourceTree = ""; }; + 24A200660F90D1DD003BB5A7 /* class_c_param_display.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_param_display.html; sourceTree = ""; }; + 24A200670F90D1DD003BB5A7 /* class_c_param_display.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_param_display.png; sourceTree = ""; }; + 24A200680F90D1DD003BB5A7 /* class_c_reference_counter-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_reference_counter-members.html"; sourceTree = ""; }; + 24A200690F90D1DD003BB5A7 /* class_c_reference_counter.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_reference_counter.html; sourceTree = ""; }; + 24A2006A0F90D1DD003BB5A7 /* class_c_reference_counter.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_reference_counter.png; sourceTree = ""; }; + 24A2006B0F90D1DD003BB5A7 /* class_c_rocker_switch-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_rocker_switch-members.html"; sourceTree = ""; }; + 24A2006C0F90D1DD003BB5A7 /* class_c_rocker_switch.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_rocker_switch.html; sourceTree = ""; }; + 24A2006D0F90D1DD003BB5A7 /* class_c_rocker_switch.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_rocker_switch.png; sourceTree = ""; }; + 24A2006E0F90D1DD003BB5A7 /* class_c_scroll_container-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_scroll_container-members.html"; sourceTree = ""; }; + 24A2006F0F90D1DD003BB5A7 /* class_c_scroll_container.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_scroll_container.html; sourceTree = ""; }; + 24A200700F90D1DD003BB5A7 /* class_c_scroll_container.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_scroll_container.png; sourceTree = ""; }; + 24A200710F90D1DD003BB5A7 /* class_c_scroll_view-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_scroll_view-members.html"; sourceTree = ""; }; + 24A200720F90D1DD003BB5A7 /* class_c_scroll_view.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_scroll_view.html; sourceTree = ""; }; + 24A200730F90D1DD003BB5A7 /* class_c_scroll_view.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_scroll_view.png; sourceTree = ""; }; + 24A200740F90D1DD003BB5A7 /* class_c_scrollbar-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_scrollbar-members.html"; sourceTree = ""; }; + 24A200750F90D1DD003BB5A7 /* class_c_scrollbar.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_scrollbar.html; sourceTree = ""; }; + 24A200760F90D1DD003BB5A7 /* class_c_scrollbar.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_scrollbar.png; sourceTree = ""; }; + 24A200770F90D1DD003BB5A7 /* class_c_slider-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_slider-members.html"; sourceTree = ""; }; + 24A200780F90D1DD003BB5A7 /* class_c_slider.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_slider.html; sourceTree = ""; }; + 24A200790F90D1DD003BB5A7 /* class_c_slider.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_slider.png; sourceTree = ""; }; + 24A2007A0F90D1DD003BB5A7 /* class_c_special_digit-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_special_digit-members.html"; sourceTree = ""; }; + 24A2007B0F90D1DD003BB5A7 /* class_c_special_digit.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_special_digit.html; sourceTree = ""; }; + 24A2007C0F90D1DD003BB5A7 /* class_c_special_digit.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_special_digit.png; sourceTree = ""; }; + 24A2007D0F90D1DD003BB5A7 /* class_c_splash_screen-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_splash_screen-members.html"; sourceTree = ""; }; + 24A2007E0F90D1DD003BB5A7 /* class_c_splash_screen.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_splash_screen.html; sourceTree = ""; }; + 24A2007F0F90D1DD003BB5A7 /* class_c_splash_screen.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_splash_screen.png; sourceTree = ""; }; + 24A200800F90D1DD003BB5A7 /* class_c_splash_screen_view-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_splash_screen_view-members.html"; sourceTree = ""; }; + 24A200810F90D1DD003BB5A7 /* class_c_splash_screen_view.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_splash_screen_view.html; sourceTree = ""; }; + 24A200820F90D1DD003BB5A7 /* class_c_splash_screen_view.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_splash_screen_view.png; sourceTree = ""; }; + 24A200830F90D1DD003BB5A7 /* class_c_tab_button-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_tab_button-members.html"; sourceTree = ""; }; + 24A200840F90D1DD003BB5A7 /* class_c_tab_button.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_tab_button.html; sourceTree = ""; }; + 24A200850F90D1DD003BB5A7 /* class_c_tab_button.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_tab_button.png; sourceTree = ""; }; + 24A200860F90D1DD003BB5A7 /* class_c_tab_child_view-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_tab_child_view-members.html"; sourceTree = ""; }; + 24A200870F90D1DD003BB5A7 /* class_c_tab_child_view.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_tab_child_view.html; sourceTree = ""; }; + 24A200880F90D1DD003BB5A7 /* class_c_tab_child_view.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_tab_child_view.png; sourceTree = ""; }; + 24A200890F90D1DD003BB5A7 /* class_c_tab_view-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_tab_view-members.html"; sourceTree = ""; }; + 24A2008A0F90D1DD003BB5A7 /* class_c_tab_view.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_tab_view.html; sourceTree = ""; }; + 24A2008B0F90D1DD003BB5A7 /* class_c_tab_view.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_tab_view.png; sourceTree = ""; }; + 24A2008C0F90D1DD003BB5A7 /* class_c_text_edit-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_text_edit-members.html"; sourceTree = ""; }; + 24A2008D0F90D1DD003BB5A7 /* class_c_text_edit.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_text_edit.html; sourceTree = ""; }; + 24A2008E0F90D1DD003BB5A7 /* class_c_text_edit.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_text_edit.png; sourceTree = ""; }; + 24A2008F0F90D1DD003BB5A7 /* class_c_text_label-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_text_label-members.html"; sourceTree = ""; }; + 24A200900F90D1DD003BB5A7 /* class_c_text_label.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_text_label.html; sourceTree = ""; }; + 24A200910F90D1DD003BB5A7 /* class_c_text_label.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_text_label.png; sourceTree = ""; }; + 24A200920F90D1DD003BB5A7 /* class_c_vertical_slider-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_vertical_slider-members.html"; sourceTree = ""; }; + 24A200930F90D1DD003BB5A7 /* class_c_vertical_slider.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_vertical_slider.html; sourceTree = ""; }; + 24A200940F90D1DD003BB5A7 /* class_c_vertical_slider.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_vertical_slider.png; sourceTree = ""; }; + 24A200950F90D1DD003BB5A7 /* class_c_vertical_switch-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_vertical_switch-members.html"; sourceTree = ""; }; + 24A200960F90D1DD003BB5A7 /* class_c_vertical_switch.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_vertical_switch.html; sourceTree = ""; }; + 24A200970F90D1DD003BB5A7 /* class_c_vertical_switch.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_vertical_switch.png; sourceTree = ""; }; + 24A200980F90D1DD003BB5A7 /* class_c_view-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_view-members.html"; sourceTree = ""; }; + 24A200990F90D1DD003BB5A7 /* class_c_view.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_view.html; sourceTree = ""; }; + 24A2009A0F90D1DD003BB5A7 /* class_c_view.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_view.png; sourceTree = ""; }; + 24A2009B0F90D1DD003BB5A7 /* class_c_view_container-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_view_container-members.html"; sourceTree = ""; }; + 24A2009C0F90D1DD003BB5A7 /* class_c_view_container.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_view_container.html; sourceTree = ""; }; + 24A2009D0F90D1DD003BB5A7 /* class_c_view_container.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_view_container.png; sourceTree = ""; }; + 24A2009E0F90D1DD003BB5A7 /* class_c_vu_meter-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_vu_meter-members.html"; sourceTree = ""; }; + 24A2009F0F90D1DD003BB5A7 /* class_c_vu_meter.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_vu_meter.html; sourceTree = ""; }; + 24A200A00F90D1DD003BB5A7 /* class_c_vu_meter.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_vu_meter.png; sourceTree = ""; }; + 24A200A10F90D1DD003BB5A7 /* class_i_scrollbar_drawer-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_i_scrollbar_drawer-members.html"; sourceTree = ""; }; + 24A200A20F90D1DD003BB5A7 /* class_i_scrollbar_drawer.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_i_scrollbar_drawer.html; sourceTree = ""; }; + 24A200A30F90D1DD003BB5A7 /* class_plugin_g_u_i_editor-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_plugin_g_u_i_editor-members.html"; sourceTree = ""; }; + 24A200A40F90D1DD003BB5A7 /* class_plugin_g_u_i_editor.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_plugin_g_u_i_editor.html; sourceTree = ""; }; + 24A200A50F90D1DD003BB5A7 /* cscrollview_8cpp.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = cscrollview_8cpp.html; sourceTree = ""; }; + 24A200A60F90D1DD003BB5A7 /* cscrollview_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = cscrollview_8h.html; sourceTree = ""; }; + 24A200A70F90D1DD003BB5A7 /* ctabview_8cpp.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = ctabview_8cpp.html; sourceTree = ""; }; + 24A200A80F90D1DD003BB5A7 /* ctabview_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = ctabview_8h.html; sourceTree = ""; }; + 24A200A90F90D1DD003BB5A7 /* deprecated.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = deprecated.html; sourceTree = ""; }; + 24A200AA0F90D1DD003BB5A7 /* doc_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = doc_8h.html; sourceTree = ""; }; + 24A200AB0F90D1DD003BB5A7 /* doxygen.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = doxygen.css; sourceTree = ""; }; + 24A200AC0F90D1DD003BB5A7 /* doxygen.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = doxygen.png; sourceTree = ""; }; + 24A200AD0F90D1DD003BB5A7 /* files.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = files.html; sourceTree = ""; }; + 24A200AE0F90D1DD003BB5A7 /* ftv2blank.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2blank.png; sourceTree = ""; }; + 24A200AF0F90D1DD003BB5A7 /* ftv2doc.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2doc.png; sourceTree = ""; }; + 24A200B00F90D1DD003BB5A7 /* ftv2folderclosed.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2folderclosed.png; sourceTree = ""; }; + 24A200B10F90D1DE003BB5A7 /* ftv2folderopen.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2folderopen.png; sourceTree = ""; }; + 24A200B20F90D1DE003BB5A7 /* ftv2lastnode.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2lastnode.png; sourceTree = ""; }; + 24A200B30F90D1DE003BB5A7 /* ftv2link.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2link.png; sourceTree = ""; }; + 24A200B40F90D1DE003BB5A7 /* ftv2mlastnode.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2mlastnode.png; sourceTree = ""; }; + 24A200B50F90D1DE003BB5A7 /* ftv2mnode.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2mnode.png; sourceTree = ""; }; + 24A200B60F90D1DE003BB5A7 /* ftv2node.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2node.png; sourceTree = ""; }; + 24A200B70F90D1DE003BB5A7 /* ftv2plastnode.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2plastnode.png; sourceTree = ""; }; + 24A200B80F90D1DE003BB5A7 /* ftv2pnode.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2pnode.png; sourceTree = ""; }; + 24A200B90F90D1DE003BB5A7 /* ftv2vertline.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2vertline.png; sourceTree = ""; }; + 24A200BA0F90D1DE003BB5A7 /* functions.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions.html; sourceTree = ""; }; + 24A200BB0F90D1DE003BB5A7 /* functions_0x62.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x62.html; sourceTree = ""; }; + 24A200BC0F90D1DE003BB5A7 /* functions_0x63.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x63.html; sourceTree = ""; }; + 24A200BD0F90D1DE003BB5A7 /* functions_0x64.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x64.html; sourceTree = ""; }; + 24A200BE0F90D1DE003BB5A7 /* functions_0x65.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x65.html; sourceTree = ""; }; + 24A200BF0F90D1DE003BB5A7 /* functions_0x66.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x66.html; sourceTree = ""; }; + 24A200C00F90D1DE003BB5A7 /* functions_0x67.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x67.html; sourceTree = ""; }; + 24A200C10F90D1DE003BB5A7 /* functions_0x68.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x68.html; sourceTree = ""; }; + 24A200C20F90D1DE003BB5A7 /* functions_0x69.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x69.html; sourceTree = ""; }; + 24A200C30F90D1DE003BB5A7 /* functions_0x6b.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x6b.html; sourceTree = ""; }; + 24A200C40F90D1DE003BB5A7 /* functions_0x6c.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x6c.html; sourceTree = ""; }; + 24A200C50F90D1DE003BB5A7 /* functions_0x6d.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x6d.html; sourceTree = ""; }; + 24A200C60F90D1DE003BB5A7 /* functions_0x6e.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x6e.html; sourceTree = ""; }; + 24A200C70F90D1DE003BB5A7 /* functions_0x6f.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x6f.html; sourceTree = ""; }; + 24A200C80F90D1DE003BB5A7 /* functions_0x70.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x70.html; sourceTree = ""; }; + 24A200C90F90D1DE003BB5A7 /* functions_0x72.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x72.html; sourceTree = ""; }; + 24A200CA0F90D1DE003BB5A7 /* functions_0x73.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x73.html; sourceTree = ""; }; + 24A200CB0F90D1DE003BB5A7 /* functions_0x74.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x74.html; sourceTree = ""; }; + 24A200CC0F90D1DE003BB5A7 /* functions_0x75.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x75.html; sourceTree = ""; }; + 24A200CD0F90D1DE003BB5A7 /* functions_0x76.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x76.html; sourceTree = ""; }; + 24A200CE0F90D1DE003BB5A7 /* functions_0x77.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x77.html; sourceTree = ""; }; + 24A200CF0F90D1DE003BB5A7 /* functions_0x78.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x78.html; sourceTree = ""; }; + 24A200D00F90D1DE003BB5A7 /* functions_0x79.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x79.html; sourceTree = ""; }; + 24A200D10F90D1DE003BB5A7 /* functions_0x7a.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x7a.html; sourceTree = ""; }; + 24A200D20F90D1DE003BB5A7 /* functions_0x7e.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x7e.html; sourceTree = ""; }; + 24A200D30F90D1DE003BB5A7 /* functions_eval.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_eval.html; sourceTree = ""; }; + 24A200D40F90D1DE003BB5A7 /* functions_func.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func.html; sourceTree = ""; }; + 24A200D50F90D1DE003BB5A7 /* functions_func_0x62.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x62.html; sourceTree = ""; }; + 24A200D60F90D1DE003BB5A7 /* functions_func_0x63.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x63.html; sourceTree = ""; }; + 24A200D70F90D1DE003BB5A7 /* functions_func_0x64.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x64.html; sourceTree = ""; }; + 24A200D80F90D1DE003BB5A7 /* functions_func_0x65.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x65.html; sourceTree = ""; }; + 24A200D90F90D1DE003BB5A7 /* functions_func_0x66.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x66.html; sourceTree = ""; }; + 24A200DA0F90D1DE003BB5A7 /* functions_func_0x67.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x67.html; sourceTree = ""; }; + 24A200DB0F90D1DE003BB5A7 /* functions_func_0x68.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x68.html; sourceTree = ""; }; + 24A200DC0F90D1DE003BB5A7 /* functions_func_0x69.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x69.html; sourceTree = ""; }; + 24A200DD0F90D1DE003BB5A7 /* functions_func_0x6c.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x6c.html; sourceTree = ""; }; + 24A200DE0F90D1DE003BB5A7 /* functions_func_0x6d.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x6d.html; sourceTree = ""; }; + 24A200DF0F90D1DE003BB5A7 /* functions_func_0x6e.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x6e.html; sourceTree = ""; }; + 24A200E00F90D1DE003BB5A7 /* functions_func_0x6f.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x6f.html; sourceTree = ""; }; + 24A200E10F90D1DE003BB5A7 /* functions_func_0x70.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x70.html; sourceTree = ""; }; + 24A200E20F90D1DE003BB5A7 /* functions_func_0x72.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x72.html; sourceTree = ""; }; + 24A200E30F90D1DE003BB5A7 /* functions_func_0x73.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x73.html; sourceTree = ""; }; + 24A200E40F90D1DE003BB5A7 /* functions_func_0x74.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x74.html; sourceTree = ""; }; + 24A200E50F90D1DE003BB5A7 /* functions_func_0x75.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x75.html; sourceTree = ""; }; + 24A200E60F90D1DE003BB5A7 /* functions_func_0x76.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x76.html; sourceTree = ""; }; + 24A200E70F90D1DE003BB5A7 /* functions_func_0x77.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x77.html; sourceTree = ""; }; + 24A200E80F90D1DE003BB5A7 /* functions_func_0x7e.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x7e.html; sourceTree = ""; }; + 24A200E90F90D1DE003BB5A7 /* functions_rela.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_rela.html; sourceTree = ""; }; + 24A200EA0F90D1DE003BB5A7 /* functions_vars.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars.html; sourceTree = ""; }; + 24A200EB0F90D1DE003BB5A7 /* functions_vars_0x62.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x62.html; sourceTree = ""; }; + 24A200EC0F90D1DE003BB5A7 /* functions_vars_0x63.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x63.html; sourceTree = ""; }; + 24A200ED0F90D1DE003BB5A7 /* functions_vars_0x64.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x64.html; sourceTree = ""; }; + 24A200EE0F90D1DE003BB5A7 /* functions_vars_0x65.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x65.html; sourceTree = ""; }; + 24A200EF0F90D1DE003BB5A7 /* functions_vars_0x66.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x66.html; sourceTree = ""; }; + 24A200F00F90D1DE003BB5A7 /* functions_vars_0x67.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x67.html; sourceTree = ""; }; + 24A200F10F90D1DE003BB5A7 /* functions_vars_0x68.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x68.html; sourceTree = ""; }; + 24A200F20F90D1DE003BB5A7 /* functions_vars_0x69.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x69.html; sourceTree = ""; }; + 24A200F30F90D1DE003BB5A7 /* functions_vars_0x6b.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x6b.html; sourceTree = ""; }; + 24A200F40F90D1DE003BB5A7 /* functions_vars_0x6c.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x6c.html; sourceTree = ""; }; + 24A200F50F90D1DE003BB5A7 /* functions_vars_0x6d.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x6d.html; sourceTree = ""; }; + 24A200F60F90D1DE003BB5A7 /* functions_vars_0x6e.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x6e.html; sourceTree = ""; }; + 24A200F70F90D1DE003BB5A7 /* functions_vars_0x6f.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x6f.html; sourceTree = ""; }; + 24A200F80F90D1DE003BB5A7 /* functions_vars_0x70.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x70.html; sourceTree = ""; }; + 24A200F90F90D1DE003BB5A7 /* functions_vars_0x72.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x72.html; sourceTree = ""; }; + 24A200FA0F90D1DE003BB5A7 /* functions_vars_0x73.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x73.html; sourceTree = ""; }; + 24A200FB0F90D1DE003BB5A7 /* functions_vars_0x74.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x74.html; sourceTree = ""; }; + 24A200FC0F90D1DE003BB5A7 /* functions_vars_0x75.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x75.html; sourceTree = ""; }; + 24A200FD0F90D1DE003BB5A7 /* functions_vars_0x76.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x76.html; sourceTree = ""; }; + 24A200FE0F90D1DE003BB5A7 /* functions_vars_0x77.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x77.html; sourceTree = ""; }; + 24A200FF0F90D1DE003BB5A7 /* functions_vars_0x78.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x78.html; sourceTree = ""; }; + 24A201000F90D1DE003BB5A7 /* functions_vars_0x79.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x79.html; sourceTree = ""; }; + 24A201010F90D1DE003BB5A7 /* functions_vars_0x7a.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x7a.html; sourceTree = ""; }; + 24A201020F90D1DE003BB5A7 /* globals.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals.html; sourceTree = ""; }; + 24A201030F90D1DE003BB5A7 /* globals_0x61.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x61.html; sourceTree = ""; }; + 24A201040F90D1DE003BB5A7 /* globals_0x62.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x62.html; sourceTree = ""; }; + 24A201050F90D1DE003BB5A7 /* globals_0x63.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x63.html; sourceTree = ""; }; + 24A201060F90D1DE003BB5A7 /* globals_0x65.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x65.html; sourceTree = ""; }; + 24A201070F90D1DE003BB5A7 /* globals_0x66.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x66.html; sourceTree = ""; }; + 24A201080F90D1DE003BB5A7 /* globals_0x67.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x67.html; sourceTree = ""; }; + 24A201090F90D1DE003BB5A7 /* globals_0x6b.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x6b.html; sourceTree = ""; }; + 24A2010A0F90D1DE003BB5A7 /* globals_0x6d.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x6d.html; sourceTree = ""; }; + 24A2010B0F90D1DE003BB5A7 /* globals_0x6e.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x6e.html; sourceTree = ""; }; + 24A2010C0F90D1DE003BB5A7 /* globals_0x6f.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x6f.html; sourceTree = ""; }; + 24A2010D0F90D1DE003BB5A7 /* globals_0x71.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x71.html; sourceTree = ""; }; + 24A2010E0F90D1DE003BB5A7 /* globals_0x72.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x72.html; sourceTree = ""; }; + 24A2010F0F90D1DE003BB5A7 /* globals_0x73.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x73.html; sourceTree = ""; }; + 24A201100F90D1DE003BB5A7 /* globals_0x74.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x74.html; sourceTree = ""; }; + 24A201110F90D1DE003BB5A7 /* globals_0x75.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x75.html; sourceTree = ""; }; + 24A201120F90D1DE003BB5A7 /* globals_0x76.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x76.html; sourceTree = ""; }; + 24A201130F90D1DE003BB5A7 /* globals_0x77.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x77.html; sourceTree = ""; }; + 24A201140F90D1DE003BB5A7 /* globals_defs.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_defs.html; sourceTree = ""; }; + 24A201150F90D1DE003BB5A7 /* globals_enum.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_enum.html; sourceTree = ""; }; + 24A201160F90D1DE003BB5A7 /* globals_eval.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_eval.html; sourceTree = ""; }; + 24A201170F90D1DE003BB5A7 /* globals_type.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_type.html; sourceTree = ""; }; + 24A201180F90D1DE003BB5A7 /* globals_vars.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_vars.html; sourceTree = ""; }; + 24A201190F90D1DE003BB5A7 /* hierarchy.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = hierarchy.html; sourceTree = ""; }; + 24A2011A0F90D1DE003BB5A7 /* index.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = index.html; sourceTree = ""; }; + 24A2011B0F90D1DE003BB5A7 /* intro.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = intro.html; sourceTree = ""; }; + 24A2011C0F90D1DE003BB5A7 /* license.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = license.html; sourceTree = ""; }; + 24A2011D0F90D1DE003BB5A7 /* maceditor.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = maceditor.html; sourceTree = ""; }; + 24A2011E0F90D1DE003BB5A7 /* main.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = main.html; sourceTree = ""; }; + 24A2011F0F90D1DE003BB5A7 /* others.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = others.html; sourceTree = ""; }; + 24A201200F90D1DE003BB5A7 /* pages.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = pages.html; sourceTree = ""; }; + 24A201210F90D1DE003BB5A7 /* plugguieditor_8cpp.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = plugguieditor_8cpp.html; sourceTree = ""; }; + 24A201220F90D1DE003BB5A7 /* plugguieditor_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = plugguieditor_8h.html; sourceTree = ""; }; + 24A201230F90D1DE003BB5A7 /* sequences.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = sequences.html; sourceTree = ""; }; + 24A201240F90D1DE003BB5A7 /* struct_c_color-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "struct_c_color-members.html"; sourceTree = ""; }; + 24A201250F90D1DE003BB5A7 /* struct_c_color.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = struct_c_color.html; sourceTree = ""; }; + 24A201260F90D1DE003BB5A7 /* struct_c_point-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "struct_c_point-members.html"; sourceTree = ""; }; + 24A201270F90D1DE003BB5A7 /* struct_c_point.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = struct_c_point.html; sourceTree = ""; }; + 24A201280F90D1DE003BB5A7 /* struct_c_rect-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "struct_c_rect-members.html"; sourceTree = ""; }; + 24A201290F90D1DE003BB5A7 /* struct_c_rect.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = struct_c_rect.html; sourceTree = ""; }; + 24A2012A0F90D1DE003BB5A7 /* struct_e_rect-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "struct_e_rect-members.html"; sourceTree = ""; }; + 24A2012B0F90D1DE003BB5A7 /* struct_e_rect.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = struct_e_rect.html; sourceTree = ""; }; + 24A2012C0F90D1DE003BB5A7 /* struct_vst_file_select-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "struct_vst_file_select-members.html"; sourceTree = ""; }; + 24A2012D0F90D1DE003BB5A7 /* struct_vst_file_select.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = struct_vst_file_select.html; sourceTree = ""; }; + 24A2012E0F90D1DE003BB5A7 /* struct_vst_file_type-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "struct_vst_file_type-members.html"; sourceTree = ""; }; + 24A2012F0F90D1DE003BB5A7 /* struct_vst_file_type.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = struct_vst_file_type.html; sourceTree = ""; }; + 24A201300F90D1DE003BB5A7 /* struct_vst_key_code-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "struct_vst_key_code-members.html"; sourceTree = ""; }; + 24A201310F90D1DE003BB5A7 /* struct_vst_key_code.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = struct_vst_key_code.html; sourceTree = ""; }; + 24A201320F90D1DE003BB5A7 /* tab_b.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = tab_b.gif; sourceTree = ""; }; + 24A201330F90D1DE003BB5A7 /* tab_l.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = tab_l.gif; sourceTree = ""; }; + 24A201340F90D1DE003BB5A7 /* tab_r.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = tab_r.gif; sourceTree = ""; }; + 24A201350F90D1DE003BB5A7 /* tabs.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = tabs.css; sourceTree = ""; }; + 24A201360F90D1DE003BB5A7 /* thanks.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = thanks.html; sourceTree = ""; }; + 24A201370F90D1DE003BB5A7 /* tree.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = tree.html; sourceTree = ""; }; + 24A201380F90D1DE003BB5A7 /* vstcontrols_8cpp.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstcontrols_8cpp.html; sourceTree = ""; }; + 24A201390F90D1DE003BB5A7 /* vstcontrols_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstcontrols_8h.html; sourceTree = ""; }; + 24A2013A0F90D1DE003BB5A7 /* vstgui_8cpp.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstgui_8cpp.html; sourceTree = ""; }; + 24A2013B0F90D1DE003BB5A7 /* vstgui_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstgui_8h.html; sourceTree = ""; }; + 24A2013C0F90D1DE003BB5A7 /* vstkeycode_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstkeycode_8h.html; sourceTree = ""; }; + 24A2013D0F90D1DE003BB5A7 /* vstoffline.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstoffline.html; sourceTree = ""; }; + 24A2013E0F90D1DE003BB5A7 /* vstparamstruct.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstparamstruct.html; sourceTree = ""; }; + 24A2013F0F90D1DE003BB5A7 /* vstplugscarbon_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstplugscarbon_8h.html; sourceTree = ""; }; + 24A201400F90D1DE003BB5A7 /* vstplugsmac_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstplugsmac_8h.html; sourceTree = ""; }; + 24A201410F90D1DE003BB5A7 /* vstplugsmacho_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstplugsmacho_8h.html; sourceTree = ""; }; + 24A201420F90D1DE003BB5A7 /* vstplugsquartz_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstplugsquartz_8h.html; sourceTree = ""; }; + 24A201430F90D1DE003BB5A7 /* whatsnew.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = whatsnew.html; sourceTree = ""; }; + 24A201440F90D1DE003BB5A7 /* index.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = index.html; sourceTree = ""; }; + 24A201450F90D1DE003BB5A7 /* Migrating from 2.3.rtf */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; path = "Migrating from 2.3.rtf"; sourceTree = ""; }; + 24A201460F90D1DE003BB5A7 /* plugguieditor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = plugguieditor.cpp; sourceTree = ""; }; + 24A201470F90D1DE003BB5A7 /* plugguieditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = plugguieditor.h; sourceTree = ""; }; + 24A201480F90D1DE003BB5A7 /* vstcontrols.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstcontrols.cpp; sourceTree = ""; }; + 24A201490F90D1DE003BB5A7 /* vstcontrols.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstcontrols.h; sourceTree = ""; }; + 24A2014A0F90D1DE003BB5A7 /* vstgui.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstgui.cpp; sourceTree = ""; }; + 24A2014B0F90D1DE003BB5A7 /* vstgui.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstgui.h; sourceTree = ""; }; + 24A2014C0F90D1DE003BB5A7 /* vstkeycode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstkeycode.h; sourceTree = ""; }; + 24A2014D0F90D1DE003BB5A7 /* vstplugscarbon.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstplugscarbon.h; sourceTree = ""; }; + 24A2014E0F90D1DE003BB5A7 /* vstplugsmac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstplugsmac.h; sourceTree = ""; }; + 24A2014F0F90D1DE003BB5A7 /* vstplugsmacho.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstplugsmacho.h; sourceTree = ""; }; + 24A201500F90D1DE003BB5A7 /* vstplugsquartz.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstplugsquartz.h; sourceTree = ""; }; + 24A2FEBD0F90D1DC003BB5A7 /* Thumbs.db */ = {isa = PBXFileReference; lastKnownFileType = file; path = Thumbs.db; sourceTree = ""; }; + 24A2FEBE0F90D1DC003BB5A7 /* VST_Logo_Usage_Guideline.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = VST_Logo_Usage_Guideline.pdf; sourceTree = ""; }; + 24A2FEBF0F90D1DC003BB5A7 /* VSTLogoAlpha.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = VSTLogoAlpha.png; sourceTree = ""; }; + 24A2FEC00F90D1DC003BB5A7 /* VSTLogoBlack.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = VSTLogoBlack.jpg; sourceTree = ""; }; + 24A2FEC10F90D1DC003BB5A7 /* VSTLogoWhite.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = VSTLogoWhite.jpg; sourceTree = ""; }; + 24A2FEC60F90D1DC003BB5A7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 24A2FEC80F90D1DC003BB5A7 /* VSTMonitor */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.bundle"; path = VSTMonitor; sourceTree = ""; }; + 24A2FEC90F90D1DC003BB5A7 /* PkgInfo */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = PkgInfo; sourceTree = ""; }; + 24A2FECB0F90D1DC003BB5A7 /* bmp50000.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp50000.bmp; sourceTree = ""; }; + 24A2FECC0F90D1DC003BB5A7 /* bmp50001.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp50001.bmp; sourceTree = ""; }; + 24A2FECD0F90D1DC003BB5A7 /* bmp50002.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp50002.bmp; sourceTree = ""; }; + 24A2FECE0F90D1DC003BB5A7 /* bmp50003.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp50003.bmp; sourceTree = ""; }; + 24A2FECF0F90D1DC003BB5A7 /* bmp50004.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp50004.bmp; sourceTree = ""; }; + 24A2FED00F90D1DC003BB5A7 /* bmp50005.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp50005.bmp; sourceTree = ""; }; + 24A2FED10F90D1DC003BB5A7 /* bmp50006.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp50006.bmp; sourceTree = ""; }; + 24A2FED20F90D1DC003BB5A7 /* bmp50007.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp50007.bmp; sourceTree = ""; }; + 24A2FED30F90D1DC003BB5A7 /* bmp50008.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp50008.bmp; sourceTree = ""; }; + 24A2FED40F90D1DC003BB5A7 /* VSTParamTool.app */ = {isa = PBXFileReference; lastKnownFileType = wrapper.application; path = VSTParamTool.app; sourceTree = ""; }; + 24A2FED60F90D1DC003BB5A7 /* vstmonitor.dll */ = {isa = PBXFileReference; lastKnownFileType = file; path = vstmonitor.dll; sourceTree = ""; }; + 24A2FED70F90D1DC003BB5A7 /* vstparamtool.exe */ = {isa = PBXFileReference; lastKnownFileType = file; path = vstparamtool.exe; sourceTree = ""; }; + 24A2FEDA0F90D1DC003BB5A7 /* folder.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = folder.gif; sourceTree = ""; }; + 24A2FEDB0F90D1DC003BB5A7 /* mac.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = mac.gif; sourceTree = ""; }; + 24A2FEDC0F90D1DC003BB5A7 /* vstpluglogo_small.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = vstpluglogo_small.jpg; sourceTree = ""; }; + 24A2FEDD0F90D1DC003BB5A7 /* win.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = win.gif; sourceTree = ""; }; + 24A2FEDF0F90D1DC003BB5A7 /* aeffect_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = aeffect_8h.html; sourceTree = ""; }; + 24A2FEE00F90D1DC003BB5A7 /* aeffectx_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = aeffectx_8h.html; sourceTree = ""; }; + 24A2FEE10F90D1DC003BB5A7 /* aeffeditor_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = aeffeditor_8h.html; sourceTree = ""; }; + 24A2FEE20F90D1DC003BB5A7 /* annotated.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = annotated.html; sourceTree = ""; }; + 24A2FEE30F90D1DC003BB5A7 /* audioeffect_8cpp.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = audioeffect_8cpp.html; sourceTree = ""; }; + 24A2FEE40F90D1DC003BB5A7 /* audioeffect_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = audioeffect_8h.html; sourceTree = ""; }; + 24A2FEE50F90D1DC003BB5A7 /* audioeffectx_8cpp.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = audioeffectx_8cpp.html; sourceTree = ""; }; + 24A2FEE60F90D1DC003BB5A7 /* audioeffectx_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = audioeffectx_8h.html; sourceTree = ""; }; + 24A2FEE70F90D1DC003BB5A7 /* Blocksizechange.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = Blocksizechange.gif; sourceTree = ""; }; + 24A2FEE80F90D1DC003BB5A7 /* class_a_eff_editor-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "class_a_eff_editor-members.html"; sourceTree = ""; }; + 24A2FEE90F90D1DC003BB5A7 /* class_a_eff_editor.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = class_a_eff_editor.html; sourceTree = ""; }; + 24A2FEEA0F90D1DC003BB5A7 /* class_audio_effect-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "class_audio_effect-members.html"; sourceTree = ""; }; + 24A2FEEB0F90D1DC003BB5A7 /* class_audio_effect.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = class_audio_effect.html; sourceTree = ""; }; + 24A2FEEC0F90D1DC003BB5A7 /* class_audio_effect.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_audio_effect.png; sourceTree = ""; }; + 24A2FEED0F90D1DC003BB5A7 /* class_audio_effect_x-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "class_audio_effect_x-members.html"; sourceTree = ""; }; + 24A2FEEE0F90D1DC003BB5A7 /* class_audio_effect_x.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = class_audio_effect_x.html; sourceTree = ""; }; + 24A2FEEF0F90D1DC003BB5A7 /* class_audio_effect_x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_audio_effect_x.png; sourceTree = ""; }; + 24A2FEF00F90D1DC003BB5A7 /* ControlChanged.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = ControlChanged.gif; sourceTree = ""; }; + 24A2FEF10F90D1DC003BB5A7 /* deprecated.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = deprecated.html; sourceTree = ""; }; + 24A2FEF20F90D1DC003BB5A7 /* dir_2d3252dd12c84c66c1d25b26bb45a1f5.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = dir_2d3252dd12c84c66c1d25b26bb45a1f5.html; sourceTree = ""; }; + 24A2FEF30F90D1DC003BB5A7 /* dir_77c628dfee72e555f82d5ef53b733f38.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = dir_77c628dfee72e555f82d5ef53b733f38.html; sourceTree = ""; }; + 24A2FEF40F90D1DC003BB5A7 /* dir_f81105d3b854bea570aaf3bae5cb64c1.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = dir_f81105d3b854bea570aaf3bae5cb64c1.html; sourceTree = ""; }; + 24A2FEF50F90D1DC003BB5A7 /* dir_fa0454ab79b4262333bf837ea3d765e9.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = dir_fa0454ab79b4262333bf837ea3d765e9.html; sourceTree = ""; }; + 24A2FEF60F90D1DC003BB5A7 /* dirs.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = dirs.html; sourceTree = ""; }; + 24A2FEF70F90D1DC003BB5A7 /* doc_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = doc_8h.html; sourceTree = ""; }; + 24A2FEF80F90D1DC003BB5A7 /* doxygen.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = doxygen.css; sourceTree = ""; }; + 24A2FEF90F90D1DC003BB5A7 /* doxygen.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = doxygen.png; sourceTree = ""; }; + 24A2FEFA0F90D1DC003BB5A7 /* files.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = files.html; sourceTree = ""; }; + 24A2FEFB0F90D1DC003BB5A7 /* ftv2blank.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2blank.png; sourceTree = ""; }; + 24A2FEFC0F90D1DC003BB5A7 /* ftv2doc.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2doc.png; sourceTree = ""; }; + 24A2FEFD0F90D1DC003BB5A7 /* ftv2folderclosed.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2folderclosed.png; sourceTree = ""; }; + 24A2FEFE0F90D1DC003BB5A7 /* ftv2folderopen.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2folderopen.png; sourceTree = ""; }; + 24A2FEFF0F90D1DC003BB5A7 /* ftv2lastnode.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2lastnode.png; sourceTree = ""; }; + 24A2FF000F90D1DC003BB5A7 /* ftv2link.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2link.png; sourceTree = ""; }; + 24A2FF010F90D1DC003BB5A7 /* ftv2mlastnode.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2mlastnode.png; sourceTree = ""; }; + 24A2FF020F90D1DC003BB5A7 /* ftv2mnode.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2mnode.png; sourceTree = ""; }; + 24A2FF030F90D1DC003BB5A7 /* ftv2node.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2node.png; sourceTree = ""; }; + 24A2FF040F90D1DC003BB5A7 /* ftv2plastnode.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2plastnode.png; sourceTree = ""; }; + 24A2FF050F90D1DC003BB5A7 /* ftv2pnode.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2pnode.png; sourceTree = ""; }; + 24A2FF060F90D1DC003BB5A7 /* ftv2vertline.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2vertline.png; sourceTree = ""; }; + 24A2FF070F90D1DC003BB5A7 /* functions.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions.html; sourceTree = ""; }; + 24A2FF080F90D1DC003BB5A7 /* functions_0x62.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x62.html; sourceTree = ""; }; + 24A2FF090F90D1DC003BB5A7 /* functions_0x63.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x63.html; sourceTree = ""; }; + 24A2FF0A0F90D1DC003BB5A7 /* functions_0x64.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x64.html; sourceTree = ""; }; + 24A2FF0B0F90D1DC003BB5A7 /* functions_0x65.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x65.html; sourceTree = ""; }; + 24A2FF0C0F90D1DC003BB5A7 /* functions_0x66.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x66.html; sourceTree = ""; }; + 24A2FF0D0F90D1DC003BB5A7 /* functions_0x67.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x67.html; sourceTree = ""; }; + 24A2FF0E0F90D1DC003BB5A7 /* functions_0x68.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x68.html; sourceTree = ""; }; + 24A2FF0F0F90D1DC003BB5A7 /* functions_0x69.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x69.html; sourceTree = ""; }; + 24A2FF100F90D1DC003BB5A7 /* functions_0x6b.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x6b.html; sourceTree = ""; }; + 24A2FF110F90D1DC003BB5A7 /* functions_0x6c.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x6c.html; sourceTree = ""; }; + 24A2FF120F90D1DC003BB5A7 /* functions_0x6d.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x6d.html; sourceTree = ""; }; + 24A2FF130F90D1DC003BB5A7 /* functions_0x6e.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x6e.html; sourceTree = ""; }; + 24A2FF140F90D1DC003BB5A7 /* functions_0x6f.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x6f.html; sourceTree = ""; }; + 24A2FF150F90D1DC003BB5A7 /* functions_0x70.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x70.html; sourceTree = ""; }; + 24A2FF160F90D1DC003BB5A7 /* functions_0x72.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x72.html; sourceTree = ""; }; + 24A2FF170F90D1DC003BB5A7 /* functions_0x73.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x73.html; sourceTree = ""; }; + 24A2FF180F90D1DC003BB5A7 /* functions_0x74.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x74.html; sourceTree = ""; }; + 24A2FF190F90D1DC003BB5A7 /* functions_0x75.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x75.html; sourceTree = ""; }; + 24A2FF1A0F90D1DC003BB5A7 /* functions_0x76.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x76.html; sourceTree = ""; }; + 24A2FF1B0F90D1DC003BB5A7 /* functions_0x77.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x77.html; sourceTree = ""; }; + 24A2FF1C0F90D1DC003BB5A7 /* functions_0x78.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x78.html; sourceTree = ""; }; + 24A2FF1D0F90D1DC003BB5A7 /* functions_0x79.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x79.html; sourceTree = ""; }; + 24A2FF1E0F90D1DC003BB5A7 /* functions_0x7e.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x7e.html; sourceTree = ""; }; + 24A2FF1F0F90D1DC003BB5A7 /* functions_func.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_func.html; sourceTree = ""; }; + 24A2FF200F90D1DC003BB5A7 /* functions_vars.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_vars.html; sourceTree = ""; }; + 24A2FF210F90D1DC003BB5A7 /* globals.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals.html; sourceTree = ""; }; + 24A2FF220F90D1DC003BB5A7 /* globals_0x62.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_0x62.html; sourceTree = ""; }; + 24A2FF230F90D1DC003BB5A7 /* globals_0x63.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_0x63.html; sourceTree = ""; }; + 24A2FF240F90D1DC003BB5A7 /* globals_0x64.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_0x64.html; sourceTree = ""; }; + 24A2FF250F90D1DC003BB5A7 /* globals_0x65.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_0x65.html; sourceTree = ""; }; + 24A2FF260F90D1DC003BB5A7 /* globals_0x66.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_0x66.html; sourceTree = ""; }; + 24A2FF270F90D1DC003BB5A7 /* globals_0x6b.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_0x6b.html; sourceTree = ""; }; + 24A2FF280F90D1DC003BB5A7 /* globals_0x6d.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_0x6d.html; sourceTree = ""; }; + 24A2FF290F90D1DC003BB5A7 /* globals_0x74.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_0x74.html; sourceTree = ""; }; + 24A2FF2A0F90D1DC003BB5A7 /* globals_0x76.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_0x76.html; sourceTree = ""; }; + 24A2FF2B0F90D1DC003BB5A7 /* globals_defs.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_defs.html; sourceTree = ""; }; + 24A2FF2C0F90D1DC003BB5A7 /* globals_enum.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_enum.html; sourceTree = ""; }; + 24A2FF2D0F90D1DC003BB5A7 /* globals_eval.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_eval.html; sourceTree = ""; }; + 24A2FF2E0F90D1DC003BB5A7 /* globals_eval_0x65.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_eval_0x65.html; sourceTree = ""; }; + 24A2FF2F0F90D1DC003BB5A7 /* globals_eval_0x6b.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_eval_0x6b.html; sourceTree = ""; }; + 24A2FF300F90D1DC003BB5A7 /* globals_eval_0x6d.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_eval_0x6d.html; sourceTree = ""; }; + 24A2FF310F90D1DC003BB5A7 /* globals_eval_0x76.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_eval_0x76.html; sourceTree = ""; }; + 24A2FF320F90D1DC003BB5A7 /* globals_func.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_func.html; sourceTree = ""; }; + 24A2FF330F90D1DC003BB5A7 /* globals_type.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_type.html; sourceTree = ""; }; + 24A2FF340F90D1DC003BB5A7 /* globals_vars.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_vars.html; sourceTree = ""; }; + 24A2FF350F90D1DC003BB5A7 /* hierarchy.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = hierarchy.html; sourceTree = ""; }; + 24A2FF360F90D1DC003BB5A7 /* history.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = history.html; sourceTree = ""; }; + 24A2FF370F90D1DC003BB5A7 /* index.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = index.html; sourceTree = ""; }; + 24A2FF380F90D1DC003BB5A7 /* Initialisation.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = Initialisation.gif; sourceTree = ""; }; + 24A2FF390F90D1DC003BB5A7 /* intro.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = intro.html; sourceTree = ""; }; + 24A2FF3A0F90D1DC003BB5A7 /* IOchange.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = IOchange.gif; sourceTree = ""; }; + 24A2FF3B0F90D1DC003BB5A7 /* license.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = license.html; sourceTree = ""; }; + 24A2FF3C0F90D1DC003BB5A7 /* maceditor.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = maceditor.html; sourceTree = ""; }; + 24A2FF3D0F90D1DC003BB5A7 /* main.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = main.html; sourceTree = ""; }; + 24A2FF3E0F90D1DC003BB5A7 /* namespace_host_can_dos.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = namespace_host_can_dos.html; sourceTree = ""; }; + 24A2FF3F0F90D1DC003BB5A7 /* namespace_plug_can_dos.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = namespace_plug_can_dos.html; sourceTree = ""; }; + 24A2FF400F90D1DC003BB5A7 /* namespacemembers.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = namespacemembers.html; sourceTree = ""; }; + 24A2FF410F90D1DC003BB5A7 /* namespacemembers_vars.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = namespacemembers_vars.html; sourceTree = ""; }; + 24A2FF420F90D1DC003BB5A7 /* namespaces.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = namespaces.html; sourceTree = ""; }; + 24A2FF430F90D1DC003BB5A7 /* Offlineprocessing.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = Offlineprocessing.gif; sourceTree = ""; }; + 24A2FF440F90D1DC003BB5A7 /* others.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = others.html; sourceTree = ""; }; + 24A2FF450F90D1DC003BB5A7 /* pages.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = pages.html; sourceTree = ""; }; + 24A2FF460F90D1DC003BB5A7 /* Sampleratechange.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = Sampleratechange.gif; sourceTree = ""; }; + 24A2FF470F90D1DC003BB5A7 /* sequences.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = sequences.html; sourceTree = ""; }; + 24A2FF480F90D1DC003BB5A7 /* SpeakerarrangementnegotiationforVSTfx.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = SpeakerarrangementnegotiationforVSTfx.gif; sourceTree = ""; }; + 24A2FF490F90D1DC003BB5A7 /* struct_a_effect-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_a_effect-members.html"; sourceTree = ""; }; + 24A2FF4A0F90D1DC003BB5A7 /* struct_a_effect.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_a_effect.html; sourceTree = ""; }; + 24A2FF4B0F90D1DC003BB5A7 /* struct_e_rect-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_e_rect-members.html"; sourceTree = ""; }; + 24A2FF4C0F90D1DC003BB5A7 /* struct_e_rect.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_e_rect.html; sourceTree = ""; }; + 24A2FF4D0F90D1DC003BB5A7 /* struct_midi_key_name-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_midi_key_name-members.html"; sourceTree = ""; }; + 24A2FF4E0F90D1DC003BB5A7 /* struct_midi_key_name.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_midi_key_name.html; sourceTree = ""; }; + 24A2FF4F0F90D1DC003BB5A7 /* struct_midi_program_category-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_midi_program_category-members.html"; sourceTree = ""; }; + 24A2FF500F90D1DC003BB5A7 /* struct_midi_program_category.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_midi_program_category.html; sourceTree = ""; }; + 24A2FF510F90D1DC003BB5A7 /* struct_midi_program_name-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_midi_program_name-members.html"; sourceTree = ""; }; + 24A2FF520F90D1DC003BB5A7 /* struct_midi_program_name.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_midi_program_name.html; sourceTree = ""; }; + 24A2FF530F90D1DC003BB5A7 /* struct_vst_audio_file-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_audio_file-members.html"; sourceTree = ""; }; + 24A2FF540F90D1DC003BB5A7 /* struct_vst_audio_file.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_audio_file.html; sourceTree = ""; }; + 24A2FF550F90D1DC003BB5A7 /* struct_vst_audio_file_marker-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_audio_file_marker-members.html"; sourceTree = ""; }; + 24A2FF560F90D1DC003BB5A7 /* struct_vst_audio_file_marker.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_audio_file_marker.html; sourceTree = ""; }; + 24A2FF570F90D1DC003BB5A7 /* struct_vst_event-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_event-members.html"; sourceTree = ""; }; + 24A2FF580F90D1DC003BB5A7 /* struct_vst_event.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_event.html; sourceTree = ""; }; + 24A2FF590F90D1DD003BB5A7 /* struct_vst_events-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_events-members.html"; sourceTree = ""; }; + 24A2FF5A0F90D1DD003BB5A7 /* struct_vst_events.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_events.html; sourceTree = ""; }; + 24A2FF5B0F90D1DD003BB5A7 /* struct_vst_file_select-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_file_select-members.html"; sourceTree = ""; }; + 24A2FF5C0F90D1DD003BB5A7 /* struct_vst_file_select.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_file_select.html; sourceTree = ""; }; + 24A2FF5D0F90D1DD003BB5A7 /* struct_vst_file_type-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_file_type-members.html"; sourceTree = ""; }; + 24A2FF5E0F90D1DD003BB5A7 /* struct_vst_file_type.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_file_type.html; sourceTree = ""; }; + 24A2FF5F0F90D1DD003BB5A7 /* struct_vst_key_code-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_key_code-members.html"; sourceTree = ""; }; + 24A2FF600F90D1DD003BB5A7 /* struct_vst_key_code.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_key_code.html; sourceTree = ""; }; + 24A2FF610F90D1DD003BB5A7 /* struct_vst_midi_event-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_midi_event-members.html"; sourceTree = ""; }; + 24A2FF620F90D1DD003BB5A7 /* struct_vst_midi_event.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_midi_event.html; sourceTree = ""; }; + 24A2FF630F90D1DD003BB5A7 /* struct_vst_midi_sysex_event-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_midi_sysex_event-members.html"; sourceTree = ""; }; + 24A2FF640F90D1DD003BB5A7 /* struct_vst_midi_sysex_event.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_midi_sysex_event.html; sourceTree = ""; }; + 24A2FF650F90D1DD003BB5A7 /* struct_vst_offline_task-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_offline_task-members.html"; sourceTree = ""; }; + 24A2FF660F90D1DD003BB5A7 /* struct_vst_offline_task.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_offline_task.html; sourceTree = ""; }; + 24A2FF670F90D1DD003BB5A7 /* struct_vst_parameter_properties-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_parameter_properties-members.html"; sourceTree = ""; }; + 24A2FF680F90D1DD003BB5A7 /* struct_vst_parameter_properties.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_parameter_properties.html; sourceTree = ""; }; + 24A2FF690F90D1DD003BB5A7 /* struct_vst_patch_chunk_info-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_patch_chunk_info-members.html"; sourceTree = ""; }; + 24A2FF6A0F90D1DD003BB5A7 /* struct_vst_patch_chunk_info.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_patch_chunk_info.html; sourceTree = ""; }; + 24A2FF6B0F90D1DD003BB5A7 /* struct_vst_pin_properties-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_pin_properties-members.html"; sourceTree = ""; }; + 24A2FF6C0F90D1DD003BB5A7 /* struct_vst_pin_properties.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_pin_properties.html; sourceTree = ""; }; + 24A2FF6D0F90D1DD003BB5A7 /* struct_vst_speaker_arrangement-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_speaker_arrangement-members.html"; sourceTree = ""; }; + 24A2FF6E0F90D1DD003BB5A7 /* struct_vst_speaker_arrangement.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_speaker_arrangement.html; sourceTree = ""; }; + 24A2FF6F0F90D1DD003BB5A7 /* struct_vst_speaker_properties-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_speaker_properties-members.html"; sourceTree = ""; }; + 24A2FF700F90D1DD003BB5A7 /* struct_vst_speaker_properties.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_speaker_properties.html; sourceTree = ""; }; + 24A2FF710F90D1DD003BB5A7 /* struct_vst_time_info-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_time_info-members.html"; sourceTree = ""; }; + 24A2FF720F90D1DD003BB5A7 /* struct_vst_time_info.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_time_info.html; sourceTree = ""; }; + 24A2FF730F90D1DD003BB5A7 /* struct_vst_variable_io-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_variable_io-members.html"; sourceTree = ""; }; + 24A2FF740F90D1DD003BB5A7 /* struct_vst_variable_io.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_variable_io.html; sourceTree = ""; }; + 24A2FF750F90D1DD003BB5A7 /* struct_vst_window-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_window-members.html"; sourceTree = ""; }; + 24A2FF760F90D1DD003BB5A7 /* struct_vst_window.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_window.html; sourceTree = ""; }; + 24A2FF770F90D1DD003BB5A7 /* structfx_bank-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "structfx_bank-members.html"; sourceTree = ""; }; + 24A2FF780F90D1DD003BB5A7 /* structfx_bank.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = structfx_bank.html; sourceTree = ""; }; + 24A2FF790F90D1DD003BB5A7 /* structfx_program-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "structfx_program-members.html"; sourceTree = ""; }; + 24A2FF7A0F90D1DD003BB5A7 /* structfx_program.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = structfx_program.html; sourceTree = ""; }; + 24A2FF7B0F90D1DD003BB5A7 /* tab_b.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = tab_b.gif; sourceTree = ""; }; + 24A2FF7C0F90D1DD003BB5A7 /* tab_l.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = tab_l.gif; sourceTree = ""; }; + 24A2FF7D0F90D1DD003BB5A7 /* tab_r.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = tab_r.gif; sourceTree = ""; }; + 24A2FF7E0F90D1DD003BB5A7 /* tabs.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = tabs.css; sourceTree = ""; }; + 24A2FF7F0F90D1DD003BB5A7 /* Termination.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = Termination.gif; sourceTree = ""; }; + 24A2FF800F90D1DD003BB5A7 /* thanks.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = thanks.html; sourceTree = ""; }; + 24A2FF810F90D1DD003BB5A7 /* tree.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = tree.html; sourceTree = ""; }; + 24A2FF820F90D1DD003BB5A7 /* TurnOff.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = TurnOff.gif; sourceTree = ""; }; + 24A2FF830F90D1DD003BB5A7 /* TurnOn.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = TurnOn.gif; sourceTree = ""; }; + 24A2FF840F90D1DD003BB5A7 /* vstfxstore_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = vstfxstore_8h.html; sourceTree = ""; }; + 24A2FF850F90D1DD003BB5A7 /* vstoffline.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = vstoffline.html; sourceTree = ""; }; + 24A2FF860F90D1DD003BB5A7 /* vstparamstruct.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = vstparamstruct.html; sourceTree = ""; }; + 24A2FF870F90D1DD003BB5A7 /* vstpluglogo.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = vstpluglogo.jpg; sourceTree = ""; }; + 24A2FF880F90D1DD003BB5A7 /* vstplugmain_8cpp.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = vstplugmain_8cpp.html; sourceTree = ""; }; + 24A2FF890F90D1DD003BB5A7 /* whatsnew.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = whatsnew.html; sourceTree = ""; }; + 24A2FF8A0F90D1DD003BB5A7 /* sdk.menu.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = sdk.menu.html; sourceTree = ""; }; + 24A2FF8B0F90D1DD003BB5A7 /* sdk.overview.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = sdk.overview.html; sourceTree = ""; }; + 24A2FF8C0F90D1DD003BB5A7 /* sdkdoc.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = sdkdoc.css; sourceTree = ""; }; + 24A2FF8D0F90D1DD003BB5A7 /* VST Licensing Agreement.rtf */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; path = "VST Licensing Agreement.rtf"; sourceTree = ""; }; + 24A2FF8E0F90D1DD003BB5A7 /* index.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = index.html; sourceTree = ""; }; + 24A2FF910F90D1DD003BB5A7 /* aeffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffect.h; sourceTree = ""; }; + 24A2FF920F90D1DD003BB5A7 /* aeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffectx.h; sourceTree = ""; }; + 24A2FF930F90D1DD003BB5A7 /* vstfxstore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstfxstore.h; sourceTree = ""; }; + 24A2FF980F90D1DD003BB5A7 /* adelay.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = adelay.cpp; sourceTree = ""; }; + 24A2FF990F90D1DD003BB5A7 /* adelay.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = adelay.h; sourceTree = ""; }; + 24A2FF9A0F90D1DD003BB5A7 /* adelaymain.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = adelaymain.cpp; sourceTree = ""; }; + 24A2FF9D0F90D1DD003BB5A7 /* bmp00128.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp00128.bmp; sourceTree = ""; }; + 24A2FF9E0F90D1DD003BB5A7 /* bmp00129.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp00129.bmp; sourceTree = ""; }; + 24A2FF9F0F90D1DD003BB5A7 /* bmp00130.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp00130.bmp; sourceTree = ""; }; + 24A2FFA00F90D1DD003BB5A7 /* surrounddelay.rc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = surrounddelay.rc; sourceTree = ""; }; + 24A2FFA10F90D1DD003BB5A7 /* sdeditor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = sdeditor.cpp; sourceTree = ""; }; + 24A2FFA20F90D1DD003BB5A7 /* sdeditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sdeditor.h; sourceTree = ""; }; + 24A2FFA30F90D1DD003BB5A7 /* surrounddelay.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = surrounddelay.cpp; sourceTree = ""; }; + 24A2FFA40F90D1DD003BB5A7 /* surrounddelay.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = surrounddelay.h; sourceTree = ""; }; + 24A2FFA60F90D1DD003BB5A7 /* adelay.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = adelay.vcproj; sourceTree = ""; }; + 24A2FFA70F90D1DD003BB5A7 /* surrounddelay.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = surrounddelay.vcproj; sourceTree = ""; }; + 24A2FFAA0F90D1DD003BB5A7 /* again.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = again.cpp; sourceTree = ""; }; + 24A2FFAB0F90D1DD003BB5A7 /* again.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = again.h; sourceTree = ""; }; + 24A2FFAD0F90D1DD003BB5A7 /* again.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = again.vcproj; sourceTree = ""; }; + 24A2FFAF0F90D1DD003BB5A7 /* minihost-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "minihost-Info.plist"; sourceTree = ""; }; + 24A2FFB00F90D1DD003BB5A7 /* vst 2.4 examples.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; path = "vst 2.4 examples.xcodeproj"; sourceTree = ""; }; + 24A2FFB30F90D1DD003BB5A7 /* vst2.4Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = vst2.4Info.plist; sourceTree = ""; }; + 24A2FFB60F90D1DD003BB5A7 /* minieditor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = minieditor.cpp; sourceTree = ""; }; + 24A2FFB70F90D1DD003BB5A7 /* minihost.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = minihost.cpp; sourceTree = ""; }; + 24A2FFB90F90D1DD003BB5A7 /* minihost.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = minihost.vcproj; sourceTree = ""; }; + 24A2FFBC0F90D1DD003BB5A7 /* vstxsynth.rc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = vstxsynth.rc; sourceTree = ""; }; + 24A2FFBD0F90D1DD003BB5A7 /* vstxsynth.vstxml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = vstxsynth.vstxml; sourceTree = ""; }; + 24A2FFBF0F90D1DD003BB5A7 /* gmnames.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = gmnames.h; sourceTree = ""; }; + 24A2FFC00F90D1DD003BB5A7 /* vstxsynth.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstxsynth.cpp; sourceTree = ""; }; + 24A2FFC10F90D1DD003BB5A7 /* vstxsynth.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstxsynth.h; sourceTree = ""; }; + 24A2FFC20F90D1DD003BB5A7 /* vstxsynthproc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstxsynthproc.cpp; sourceTree = ""; }; + 24A2FFC40F90D1DD003BB5A7 /* vstxsynth.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = vstxsynth.vcproj; sourceTree = ""; }; + 24A2FFC60F90D1DD003BB5A7 /* samples.sln */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = samples.sln; sourceTree = ""; }; + 24A2FFC70F90D1DD003BB5A7 /* vstplug.def */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = vstplug.def; sourceTree = ""; }; + 24A2FFC90F90D1DD003BB5A7 /* adelay.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = adelay.vcproj; sourceTree = ""; }; + 24A2FFCA0F90D1DD003BB5A7 /* again.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = again.vcproj; sourceTree = ""; }; + 24A2FFCB0F90D1DD003BB5A7 /* minihost.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = minihost.vcproj; sourceTree = ""; }; + 24A2FFCC0F90D1DD003BB5A7 /* samples.sln */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = samples.sln; sourceTree = ""; }; + 24A2FFCD0F90D1DD003BB5A7 /* surrounddelay.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = surrounddelay.vcproj; sourceTree = ""; }; + 24A2FFCE0F90D1DD003BB5A7 /* vstxsynth.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = vstxsynth.vcproj; sourceTree = ""; }; + 24A2FFD00F90D1DD003BB5A7 /* adelay.dsp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = adelay.dsp; sourceTree = ""; }; + 24A2FFD10F90D1DD003BB5A7 /* again.dsp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = again.dsp; sourceTree = ""; }; + 24A2FFD20F90D1DD003BB5A7 /* minihost.dsp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = minihost.dsp; sourceTree = ""; }; + 24A2FFD30F90D1DD003BB5A7 /* samples.dsw */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = samples.dsw; sourceTree = ""; }; + 24A2FFD40F90D1DD003BB5A7 /* surrounddelay.dsp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = surrounddelay.dsp; sourceTree = ""; }; + 24A2FFD50F90D1DD003BB5A7 /* vstxsynth.dsp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = vstxsynth.dsp; sourceTree = ""; }; + 24A2FFD80F90D1DD003BB5A7 /* aeffeditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffeditor.h; sourceTree = ""; }; + 24A2FFD90F90D1DD003BB5A7 /* audioeffect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffect.cpp; sourceTree = ""; }; + 24A2FFDA0F90D1DD003BB5A7 /* audioeffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audioeffect.h; sourceTree = ""; }; + 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffectx.cpp; sourceTree = ""; }; + 24A2FFDC0F90D1DD003BB5A7 /* audioeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audioeffectx.h; sourceTree = ""; }; + 24A2FFDD0F90D1DD003BB5A7 /* vstplugmain.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstplugmain.cpp; sourceTree = ""; }; + 24A2FFE10F90D1DD003BB5A7 /* audiounit.exp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.exports; path = audiounit.exp; sourceTree = ""; }; + 24A2FFE20F90D1DD003BB5A7 /* cw_vst_prefix.pch++ */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = "cw_vst_prefix.pch++"; sourceTree = ""; }; + 24A2FFE30F90D1DD003BB5A7 /* drawtest.cw9prj */ = {isa = PBXFileReference; lastKnownFileType = file; path = drawtest.cw9prj; sourceTree = ""; }; + 24A2FFE40F90D1DD003BB5A7 /* drawtest.plc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = drawtest.plc; sourceTree = ""; }; + 24A2FFE50F90D1DD003BB5A7 /* drawtest.xcode */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; path = drawtest.xcode; sourceTree = ""; }; + 24A2FFE80F90D1DD003BB5A7 /* drawtest.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; path = drawtest.xcodeproj; sourceTree = ""; }; + 24A2FFEB0F90D1DD003BB5A7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 24A2FFEC0F90D1DD003BB5A7 /* xcode_au_prefix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = xcode_au_prefix.h; sourceTree = ""; }; + 24A2FFED0F90D1DD003BB5A7 /* xcode_vst_prefix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = xcode_vst_prefix.h; sourceTree = ""; }; + 24A2FFEF0F90D1DD003BB5A7 /* audiounit.r */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; path = audiounit.r; sourceTree = ""; }; + 24A2FFF00F90D1DD003BB5A7 /* bmp00001.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = bmp00001.png; sourceTree = ""; }; + 24A2FFF10F90D1DD003BB5A7 /* bmp00100.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = bmp00100.png; sourceTree = ""; }; + 24A2FFF20F90D1DD003BB5A7 /* bmp01000.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = bmp01000.png; sourceTree = ""; }; + 24A2FFF30F90D1DD003BB5A7 /* bmp10001.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10001.bmp; sourceTree = ""; }; + 24A2FFF40F90D1DD003BB5A7 /* bmp10002.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10002.bmp; sourceTree = ""; }; + 24A2FFF50F90D1DD003BB5A7 /* bmp10003.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10003.bmp; sourceTree = ""; }; + 24A2FFF60F90D1DD003BB5A7 /* bmp10004.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10004.bmp; sourceTree = ""; }; + 24A2FFF70F90D1DD003BB5A7 /* bmp10005.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10005.bmp; sourceTree = ""; }; + 24A2FFF80F90D1DD003BB5A7 /* bmp10006.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10006.bmp; sourceTree = ""; }; + 24A2FFF90F90D1DD003BB5A7 /* bmp10007.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10007.bmp; sourceTree = ""; }; + 24A2FFFA0F90D1DD003BB5A7 /* bmp10008.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10008.bmp; sourceTree = ""; }; + 24A2FFFB0F90D1DD003BB5A7 /* bmp10009.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10009.bmp; sourceTree = ""; }; + 24A2FFFC0F90D1DD003BB5A7 /* bmp10010.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10010.bmp; sourceTree = ""; }; + 24A2FFFD0F90D1DD003BB5A7 /* bmp10011.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10011.bmp; sourceTree = ""; }; + 24A2FFFE0F90D1DD003BB5A7 /* bmp10012.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10012.bmp; sourceTree = ""; }; + 24A2FFFF0F90D1DD003BB5A7 /* bmp10013.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10013.bmp; sourceTree = ""; }; + 24CFB70307E7A0220081BD57 /* PkgInfo */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = PkgInfo; path = mac/PkgInfo; sourceTree = ""; }; + 24D8286F09A914000093AEF8 /* kWoodRoomProc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = kWoodRoomProc.cpp; path = source/kWoodRoomProc.cpp; sourceTree = ""; }; + 24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = xcode_vst_prefix.h; path = mac/xcode_vst_prefix.h; sourceTree = SOURCE_ROOT; }; + 8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = mac/Info.plist; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXGroup section */ + 089C166AFE841209C02AAC07 /* FM-Chopper */ = { + isa = PBXGroup; + children = ( + 089C1671FE841209C02AAC07 /* External Frameworks and Libraries */, + 19C28FB4FE9D528D11CA2CBB /* Products */, + 089C167CFE841241C02AAC07 /* Resources */, + 08FB77ADFE841716C02AAC07 /* Source */, + 24A2FEBB0F90D1DB003BB5A7 /* vstsdk2.4 */, + ); + name = "FM-Chopper"; + sourceTree = ""; + }; + 089C1671FE841209C02AAC07 /* External Frameworks and Libraries */ = { + isa = PBXGroup; + children = ( + 2434720A098313350063BBF1 /* QuickTime.framework */, + 08EA7FFBFE8413EDC02AAC07 /* Carbon.framework */, + ); + name = "External Frameworks and Libraries"; + sourceTree = ""; + }; + 089C167CFE841241C02AAC07 /* Resources */ = { + isa = PBXGroup; + children = ( + 24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */, + 24CFB70307E7A0220081BD57 /* PkgInfo */, + 8D01CCD10486CAD60068D4B7 /* Info.plist */, + ); + name = Resources; + sourceTree = ""; + }; + 08FB77ADFE841716C02AAC07 /* Source */ = { + isa = PBXGroup; + children = ( + 2407DEB6089929BA00EB68BF /* kWoodRoom.cpp */, + 24D8286F09A914000093AEF8 /* kWoodRoomProc.cpp */, + 245463B80991757100464AD3 /* kWoodRoom.h */, + ); + name = Source; + sourceTree = ""; + }; + 19C28FB4FE9D528D11CA2CBB /* Products */ = { + isa = PBXGroup; + children = ( + 2407DE920899296600EB68BF /* kWoodRoom.vst */, + ); + name = Products; + sourceTree = ""; + }; + 24A200030F90D1DD003BB5A7 /* source */ = { + isa = PBXGroup; + children = ( + 24A200040F90D1DD003BB5A7 /* controlsgui.cpp */, + 24A200050F90D1DD003BB5A7 /* controlsgui.h */, + 24A200060F90D1DD003BB5A7 /* pdrawtesteditor.cpp */, + 24A200070F90D1DD003BB5A7 /* pdrawtesteditor.h */, + 24A200080F90D1DD003BB5A7 /* pdrawtesteffect.cpp */, + 24A200090F90D1DD003BB5A7 /* pdrawtesteffect.h */, + 24A2000A0F90D1DD003BB5A7 /* pdrawtestmain.cpp */, + 24A2000B0F90D1DD003BB5A7 /* pdrawtestview.cpp */, + 24A2000C0F90D1DD003BB5A7 /* pdrawtestview.h */, + 24A2000D0F90D1DD003BB5A7 /* pprimitivesviews.cpp */, + 24A2000E0F90D1DD003BB5A7 /* pprimitivesviews.h */, + ); + name = source; + path = /vstsdk2.4/vstgui.sf/drawtest/source; + sourceTree = ""; + }; + 24A2000F0F90D1DD003BB5A7 /* win */ = { + isa = PBXGroup; + children = ( + 24A200100F90D1DD003BB5A7 /* drawtest.def */, + 24A200110F90D1DD003BB5A7 /* drawtest.rc */, + 24A200120F90D1DD003BB5A7 /* drawtest.vcproj */, + ); + name = win; + path = /vstsdk2.4/vstgui.sf/drawtest/win; + sourceTree = ""; + }; + 24A200130F90D1DD003BB5A7 /* win.vc6 */ = { + isa = PBXGroup; + children = ( + 24A200140F90D1DD003BB5A7 /* drawtest.dsp */, + 24A200150F90D1DD003BB5A7 /* drawtest.dsw */, + ); + name = win.vc6; + path = /vstsdk2.4/vstgui.sf/drawtest/win.vc6; + sourceTree = ""; + }; + 24A200160F90D1DD003BB5A7 /* vstgui */ = { + isa = PBXGroup; + children = ( + 24A200170F90D1DD003BB5A7 /* aeffguieditor.cpp */, + 24A200180F90D1DD003BB5A7 /* aeffguieditor.h */, + 24A200190F90D1DD003BB5A7 /* cfileselector.cpp */, + 24A2001A0F90D1DD003BB5A7 /* cfileselector.h */, + 24A2001B0F90D1DD003BB5A7 /* Changelog */, + 24A2001C0F90D1DD003BB5A7 /* cscrollview.cpp */, + 24A2001D0F90D1DD003BB5A7 /* cscrollview.h */, + 24A2001E0F90D1DD003BB5A7 /* ctabview.cpp */, + 24A2001F0F90D1DD003BB5A7 /* ctabview.h */, + 24A200200F90D1DD003BB5A7 /* Documentation */, + 24A201460F90D1DE003BB5A7 /* plugguieditor.cpp */, + 24A201470F90D1DE003BB5A7 /* plugguieditor.h */, + 24A201480F90D1DE003BB5A7 /* vstcontrols.cpp */, + 24A201490F90D1DE003BB5A7 /* vstcontrols.h */, + 24A2014A0F90D1DE003BB5A7 /* vstgui.cpp */, + 24A2014B0F90D1DE003BB5A7 /* vstgui.h */, + 24A2014C0F90D1DE003BB5A7 /* vstkeycode.h */, + 24A2014D0F90D1DE003BB5A7 /* vstplugscarbon.h */, + 24A2014E0F90D1DE003BB5A7 /* vstplugsmac.h */, + 24A2014F0F90D1DE003BB5A7 /* vstplugsmacho.h */, + 24A201500F90D1DE003BB5A7 /* vstplugsquartz.h */, + ); + name = vstgui; + path = /vstsdk2.4/vstgui.sf/vstgui; + sourceTree = ""; + }; + 24A200200F90D1DD003BB5A7 /* Documentation */ = { + isa = PBXGroup; + children = ( + 24A200210F90D1DD003BB5A7 /* html */, + 24A201440F90D1DE003BB5A7 /* index.html */, + 24A201450F90D1DE003BB5A7 /* Migrating from 2.3.rtf */, + ); + name = Documentation; + path = /vstsdk2.4/vstgui.sf/vstgui/Documentation; + sourceTree = ""; + }; + 24A200210F90D1DD003BB5A7 /* html */ = { + isa = PBXGroup; + children = ( + 24A200220F90D1DD003BB5A7 /* aeffguieditor_8cpp.html */, + 24A200230F90D1DD003BB5A7 /* aeffguieditor_8h.html */, + 24A200240F90D1DD003BB5A7 /* annotated.html */, + 24A200250F90D1DD003BB5A7 /* cfileselector_8cpp.html */, + 24A200260F90D1DD003BB5A7 /* cfileselector_8h.html */, + 24A200270F90D1DD003BB5A7 /* class_a_eff_g_u_i_editor-members.html */, + 24A200280F90D1DD003BB5A7 /* class_a_eff_g_u_i_editor.html */, + 24A200290F90D1DD003BB5A7 /* class_c_anim_knob-members.html */, + 24A2002A0F90D1DD003BB5A7 /* class_c_anim_knob.html */, + 24A2002B0F90D1DD003BB5A7 /* class_c_anim_knob.png */, + 24A2002C0F90D1DD003BB5A7 /* class_c_attribute_list_entry-members.html */, + 24A2002D0F90D1DD003BB5A7 /* class_c_attribute_list_entry.html */, + 24A2002E0F90D1DD003BB5A7 /* class_c_auto_animation-members.html */, + 24A2002F0F90D1DD003BB5A7 /* class_c_auto_animation.html */, + 24A200300F90D1DD003BB5A7 /* class_c_auto_animation.png */, + 24A200310F90D1DD003BB5A7 /* class_c_bitmap-members.html */, + 24A200320F90D1DD003BB5A7 /* class_c_bitmap.html */, + 24A200330F90D1DD003BB5A7 /* class_c_bitmap.png */, + 24A200340F90D1DD003BB5A7 /* class_c_c_view-members.html */, + 24A200350F90D1DD003BB5A7 /* class_c_c_view.html */, + 24A200360F90D1DD003BB5A7 /* class_c_control-members.html */, + 24A200370F90D1DD003BB5A7 /* class_c_control.html */, + 24A200380F90D1DD003BB5A7 /* class_c_control.png */, + 24A200390F90D1DD003BB5A7 /* class_c_control_listener-members.html */, + 24A2003A0F90D1DD003BB5A7 /* class_c_control_listener.html */, + 24A2003B0F90D1DD003BB5A7 /* class_c_control_listener.png */, + 24A2003C0F90D1DD003BB5A7 /* class_c_drag_container-members.html */, + 24A2003D0F90D1DD003BB5A7 /* class_c_drag_container.html */, + 24A2003E0F90D1DD003BB5A7 /* class_c_drag_container.png */, + 24A2003F0F90D1DD003BB5A7 /* class_c_draw_context-members.html */, + 24A200400F90D1DD003BB5A7 /* class_c_draw_context.html */, + 24A200410F90D1DD003BB5A7 /* class_c_draw_context.png */, + 24A200420F90D1DD003BB5A7 /* class_c_file_selector-members.html */, + 24A200430F90D1DD003BB5A7 /* class_c_file_selector.html */, + 24A200440F90D1DD003BB5A7 /* class_c_frame-members.html */, + 24A200450F90D1DD003BB5A7 /* class_c_frame.html */, + 24A200460F90D1DD003BB5A7 /* class_c_frame.png */, + 24A200470F90D1DD003BB5A7 /* class_c_horizontal_slider-members.html */, + 24A200480F90D1DD003BB5A7 /* class_c_horizontal_slider.html */, + 24A200490F90D1DD003BB5A7 /* class_c_horizontal_slider.png */, + 24A2004A0F90D1DD003BB5A7 /* class_c_horizontal_switch-members.html */, + 24A2004B0F90D1DD003BB5A7 /* class_c_horizontal_switch.html */, + 24A2004C0F90D1DD003BB5A7 /* class_c_horizontal_switch.png */, + 24A2004D0F90D1DD003BB5A7 /* class_c_kick_button-members.html */, + 24A2004E0F90D1DD003BB5A7 /* class_c_kick_button.html */, + 24A2004F0F90D1DD003BB5A7 /* class_c_kick_button.png */, + 24A200500F90D1DD003BB5A7 /* class_c_knob-members.html */, + 24A200510F90D1DD003BB5A7 /* class_c_knob.html */, + 24A200520F90D1DD003BB5A7 /* class_c_knob.png */, + 24A200530F90D1DD003BB5A7 /* class_c_movie_bitmap-members.html */, + 24A200540F90D1DD003BB5A7 /* class_c_movie_bitmap.html */, + 24A200550F90D1DD003BB5A7 /* class_c_movie_bitmap.png */, + 24A200560F90D1DD003BB5A7 /* class_c_movie_button-members.html */, + 24A200570F90D1DD003BB5A7 /* class_c_movie_button.html */, + 24A200580F90D1DD003BB5A7 /* class_c_movie_button.png */, + 24A200590F90D1DD003BB5A7 /* class_c_offscreen_context-members.html */, + 24A2005A0F90D1DD003BB5A7 /* class_c_offscreen_context.html */, + 24A2005B0F90D1DD003BB5A7 /* class_c_offscreen_context.png */, + 24A2005C0F90D1DD003BB5A7 /* class_c_on_off_button-members.html */, + 24A2005D0F90D1DD003BB5A7 /* class_c_on_off_button.html */, + 24A2005E0F90D1DD003BB5A7 /* class_c_on_off_button.png */, + 24A2005F0F90D1DD003BB5A7 /* class_c_option_menu-members.html */, + 24A200600F90D1DD003BB5A7 /* class_c_option_menu.html */, + 24A200610F90D1DD003BB5A7 /* class_c_option_menu.png */, + 24A200620F90D1DD003BB5A7 /* class_c_option_menu_scheme-members.html */, + 24A200630F90D1DD003BB5A7 /* class_c_option_menu_scheme.html */, + 24A200640F90D1DD003BB5A7 /* class_c_option_menu_scheme.png */, + 24A200650F90D1DD003BB5A7 /* class_c_param_display-members.html */, + 24A200660F90D1DD003BB5A7 /* class_c_param_display.html */, + 24A200670F90D1DD003BB5A7 /* class_c_param_display.png */, + 24A200680F90D1DD003BB5A7 /* class_c_reference_counter-members.html */, + 24A200690F90D1DD003BB5A7 /* class_c_reference_counter.html */, + 24A2006A0F90D1DD003BB5A7 /* class_c_reference_counter.png */, + 24A2006B0F90D1DD003BB5A7 /* class_c_rocker_switch-members.html */, + 24A2006C0F90D1DD003BB5A7 /* class_c_rocker_switch.html */, + 24A2006D0F90D1DD003BB5A7 /* class_c_rocker_switch.png */, + 24A2006E0F90D1DD003BB5A7 /* class_c_scroll_container-members.html */, + 24A2006F0F90D1DD003BB5A7 /* class_c_scroll_container.html */, + 24A200700F90D1DD003BB5A7 /* class_c_scroll_container.png */, + 24A200710F90D1DD003BB5A7 /* class_c_scroll_view-members.html */, + 24A200720F90D1DD003BB5A7 /* class_c_scroll_view.html */, + 24A200730F90D1DD003BB5A7 /* class_c_scroll_view.png */, + 24A200740F90D1DD003BB5A7 /* class_c_scrollbar-members.html */, + 24A200750F90D1DD003BB5A7 /* class_c_scrollbar.html */, + 24A200760F90D1DD003BB5A7 /* class_c_scrollbar.png */, + 24A200770F90D1DD003BB5A7 /* class_c_slider-members.html */, + 24A200780F90D1DD003BB5A7 /* class_c_slider.html */, + 24A200790F90D1DD003BB5A7 /* class_c_slider.png */, + 24A2007A0F90D1DD003BB5A7 /* class_c_special_digit-members.html */, + 24A2007B0F90D1DD003BB5A7 /* class_c_special_digit.html */, + 24A2007C0F90D1DD003BB5A7 /* class_c_special_digit.png */, + 24A2007D0F90D1DD003BB5A7 /* class_c_splash_screen-members.html */, + 24A2007E0F90D1DD003BB5A7 /* class_c_splash_screen.html */, + 24A2007F0F90D1DD003BB5A7 /* class_c_splash_screen.png */, + 24A200800F90D1DD003BB5A7 /* class_c_splash_screen_view-members.html */, + 24A200810F90D1DD003BB5A7 /* class_c_splash_screen_view.html */, + 24A200820F90D1DD003BB5A7 /* class_c_splash_screen_view.png */, + 24A200830F90D1DD003BB5A7 /* class_c_tab_button-members.html */, + 24A200840F90D1DD003BB5A7 /* class_c_tab_button.html */, + 24A200850F90D1DD003BB5A7 /* class_c_tab_button.png */, + 24A200860F90D1DD003BB5A7 /* class_c_tab_child_view-members.html */, + 24A200870F90D1DD003BB5A7 /* class_c_tab_child_view.html */, + 24A200880F90D1DD003BB5A7 /* class_c_tab_child_view.png */, + 24A200890F90D1DD003BB5A7 /* class_c_tab_view-members.html */, + 24A2008A0F90D1DD003BB5A7 /* class_c_tab_view.html */, + 24A2008B0F90D1DD003BB5A7 /* class_c_tab_view.png */, + 24A2008C0F90D1DD003BB5A7 /* class_c_text_edit-members.html */, + 24A2008D0F90D1DD003BB5A7 /* class_c_text_edit.html */, + 24A2008E0F90D1DD003BB5A7 /* class_c_text_edit.png */, + 24A2008F0F90D1DD003BB5A7 /* class_c_text_label-members.html */, + 24A200900F90D1DD003BB5A7 /* class_c_text_label.html */, + 24A200910F90D1DD003BB5A7 /* class_c_text_label.png */, + 24A200920F90D1DD003BB5A7 /* class_c_vertical_slider-members.html */, + 24A200930F90D1DD003BB5A7 /* class_c_vertical_slider.html */, + 24A200940F90D1DD003BB5A7 /* class_c_vertical_slider.png */, + 24A200950F90D1DD003BB5A7 /* class_c_vertical_switch-members.html */, + 24A200960F90D1DD003BB5A7 /* class_c_vertical_switch.html */, + 24A200970F90D1DD003BB5A7 /* class_c_vertical_switch.png */, + 24A200980F90D1DD003BB5A7 /* class_c_view-members.html */, + 24A200990F90D1DD003BB5A7 /* class_c_view.html */, + 24A2009A0F90D1DD003BB5A7 /* class_c_view.png */, + 24A2009B0F90D1DD003BB5A7 /* class_c_view_container-members.html */, + 24A2009C0F90D1DD003BB5A7 /* class_c_view_container.html */, + 24A2009D0F90D1DD003BB5A7 /* class_c_view_container.png */, + 24A2009E0F90D1DD003BB5A7 /* class_c_vu_meter-members.html */, + 24A2009F0F90D1DD003BB5A7 /* class_c_vu_meter.html */, + 24A200A00F90D1DD003BB5A7 /* class_c_vu_meter.png */, + 24A200A10F90D1DD003BB5A7 /* class_i_scrollbar_drawer-members.html */, + 24A200A20F90D1DD003BB5A7 /* class_i_scrollbar_drawer.html */, + 24A200A30F90D1DD003BB5A7 /* class_plugin_g_u_i_editor-members.html */, + 24A200A40F90D1DD003BB5A7 /* class_plugin_g_u_i_editor.html */, + 24A200A50F90D1DD003BB5A7 /* cscrollview_8cpp.html */, + 24A200A60F90D1DD003BB5A7 /* cscrollview_8h.html */, + 24A200A70F90D1DD003BB5A7 /* ctabview_8cpp.html */, + 24A200A80F90D1DD003BB5A7 /* ctabview_8h.html */, + 24A200A90F90D1DD003BB5A7 /* deprecated.html */, + 24A200AA0F90D1DD003BB5A7 /* doc_8h.html */, + 24A200AB0F90D1DD003BB5A7 /* doxygen.css */, + 24A200AC0F90D1DD003BB5A7 /* doxygen.png */, + 24A200AD0F90D1DD003BB5A7 /* files.html */, + 24A200AE0F90D1DD003BB5A7 /* ftv2blank.png */, + 24A200AF0F90D1DD003BB5A7 /* ftv2doc.png */, + 24A200B00F90D1DD003BB5A7 /* ftv2folderclosed.png */, + 24A200B10F90D1DE003BB5A7 /* ftv2folderopen.png */, + 24A200B20F90D1DE003BB5A7 /* ftv2lastnode.png */, + 24A200B30F90D1DE003BB5A7 /* ftv2link.png */, + 24A200B40F90D1DE003BB5A7 /* ftv2mlastnode.png */, + 24A200B50F90D1DE003BB5A7 /* ftv2mnode.png */, + 24A200B60F90D1DE003BB5A7 /* ftv2node.png */, + 24A200B70F90D1DE003BB5A7 /* ftv2plastnode.png */, + 24A200B80F90D1DE003BB5A7 /* ftv2pnode.png */, + 24A200B90F90D1DE003BB5A7 /* ftv2vertline.png */, + 24A200BA0F90D1DE003BB5A7 /* functions.html */, + 24A200BB0F90D1DE003BB5A7 /* functions_0x62.html */, + 24A200BC0F90D1DE003BB5A7 /* functions_0x63.html */, + 24A200BD0F90D1DE003BB5A7 /* functions_0x64.html */, + 24A200BE0F90D1DE003BB5A7 /* functions_0x65.html */, + 24A200BF0F90D1DE003BB5A7 /* functions_0x66.html */, + 24A200C00F90D1DE003BB5A7 /* functions_0x67.html */, + 24A200C10F90D1DE003BB5A7 /* functions_0x68.html */, + 24A200C20F90D1DE003BB5A7 /* functions_0x69.html */, + 24A200C30F90D1DE003BB5A7 /* functions_0x6b.html */, + 24A200C40F90D1DE003BB5A7 /* functions_0x6c.html */, + 24A200C50F90D1DE003BB5A7 /* functions_0x6d.html */, + 24A200C60F90D1DE003BB5A7 /* functions_0x6e.html */, + 24A200C70F90D1DE003BB5A7 /* functions_0x6f.html */, + 24A200C80F90D1DE003BB5A7 /* functions_0x70.html */, + 24A200C90F90D1DE003BB5A7 /* functions_0x72.html */, + 24A200CA0F90D1DE003BB5A7 /* functions_0x73.html */, + 24A200CB0F90D1DE003BB5A7 /* functions_0x74.html */, + 24A200CC0F90D1DE003BB5A7 /* functions_0x75.html */, + 24A200CD0F90D1DE003BB5A7 /* functions_0x76.html */, + 24A200CE0F90D1DE003BB5A7 /* functions_0x77.html */, + 24A200CF0F90D1DE003BB5A7 /* functions_0x78.html */, + 24A200D00F90D1DE003BB5A7 /* functions_0x79.html */, + 24A200D10F90D1DE003BB5A7 /* functions_0x7a.html */, + 24A200D20F90D1DE003BB5A7 /* functions_0x7e.html */, + 24A200D30F90D1DE003BB5A7 /* functions_eval.html */, + 24A200D40F90D1DE003BB5A7 /* functions_func.html */, + 24A200D50F90D1DE003BB5A7 /* functions_func_0x62.html */, + 24A200D60F90D1DE003BB5A7 /* functions_func_0x63.html */, + 24A200D70F90D1DE003BB5A7 /* functions_func_0x64.html */, + 24A200D80F90D1DE003BB5A7 /* functions_func_0x65.html */, + 24A200D90F90D1DE003BB5A7 /* functions_func_0x66.html */, + 24A200DA0F90D1DE003BB5A7 /* functions_func_0x67.html */, + 24A200DB0F90D1DE003BB5A7 /* functions_func_0x68.html */, + 24A200DC0F90D1DE003BB5A7 /* functions_func_0x69.html */, + 24A200DD0F90D1DE003BB5A7 /* functions_func_0x6c.html */, + 24A200DE0F90D1DE003BB5A7 /* functions_func_0x6d.html */, + 24A200DF0F90D1DE003BB5A7 /* functions_func_0x6e.html */, + 24A200E00F90D1DE003BB5A7 /* functions_func_0x6f.html */, + 24A200E10F90D1DE003BB5A7 /* functions_func_0x70.html */, + 24A200E20F90D1DE003BB5A7 /* functions_func_0x72.html */, + 24A200E30F90D1DE003BB5A7 /* functions_func_0x73.html */, + 24A200E40F90D1DE003BB5A7 /* functions_func_0x74.html */, + 24A200E50F90D1DE003BB5A7 /* functions_func_0x75.html */, + 24A200E60F90D1DE003BB5A7 /* functions_func_0x76.html */, + 24A200E70F90D1DE003BB5A7 /* functions_func_0x77.html */, + 24A200E80F90D1DE003BB5A7 /* functions_func_0x7e.html */, + 24A200E90F90D1DE003BB5A7 /* functions_rela.html */, + 24A200EA0F90D1DE003BB5A7 /* functions_vars.html */, + 24A200EB0F90D1DE003BB5A7 /* functions_vars_0x62.html */, + 24A200EC0F90D1DE003BB5A7 /* functions_vars_0x63.html */, + 24A200ED0F90D1DE003BB5A7 /* functions_vars_0x64.html */, + 24A200EE0F90D1DE003BB5A7 /* functions_vars_0x65.html */, + 24A200EF0F90D1DE003BB5A7 /* functions_vars_0x66.html */, + 24A200F00F90D1DE003BB5A7 /* functions_vars_0x67.html */, + 24A200F10F90D1DE003BB5A7 /* functions_vars_0x68.html */, + 24A200F20F90D1DE003BB5A7 /* functions_vars_0x69.html */, + 24A200F30F90D1DE003BB5A7 /* functions_vars_0x6b.html */, + 24A200F40F90D1DE003BB5A7 /* functions_vars_0x6c.html */, + 24A200F50F90D1DE003BB5A7 /* functions_vars_0x6d.html */, + 24A200F60F90D1DE003BB5A7 /* functions_vars_0x6e.html */, + 24A200F70F90D1DE003BB5A7 /* functions_vars_0x6f.html */, + 24A200F80F90D1DE003BB5A7 /* functions_vars_0x70.html */, + 24A200F90F90D1DE003BB5A7 /* functions_vars_0x72.html */, + 24A200FA0F90D1DE003BB5A7 /* functions_vars_0x73.html */, + 24A200FB0F90D1DE003BB5A7 /* functions_vars_0x74.html */, + 24A200FC0F90D1DE003BB5A7 /* functions_vars_0x75.html */, + 24A200FD0F90D1DE003BB5A7 /* functions_vars_0x76.html */, + 24A200FE0F90D1DE003BB5A7 /* functions_vars_0x77.html */, + 24A200FF0F90D1DE003BB5A7 /* functions_vars_0x78.html */, + 24A201000F90D1DE003BB5A7 /* functions_vars_0x79.html */, + 24A201010F90D1DE003BB5A7 /* functions_vars_0x7a.html */, + 24A201020F90D1DE003BB5A7 /* globals.html */, + 24A201030F90D1DE003BB5A7 /* globals_0x61.html */, + 24A201040F90D1DE003BB5A7 /* globals_0x62.html */, + 24A201050F90D1DE003BB5A7 /* globals_0x63.html */, + 24A201060F90D1DE003BB5A7 /* globals_0x65.html */, + 24A201070F90D1DE003BB5A7 /* globals_0x66.html */, + 24A201080F90D1DE003BB5A7 /* globals_0x67.html */, + 24A201090F90D1DE003BB5A7 /* globals_0x6b.html */, + 24A2010A0F90D1DE003BB5A7 /* globals_0x6d.html */, + 24A2010B0F90D1DE003BB5A7 /* globals_0x6e.html */, + 24A2010C0F90D1DE003BB5A7 /* globals_0x6f.html */, + 24A2010D0F90D1DE003BB5A7 /* globals_0x71.html */, + 24A2010E0F90D1DE003BB5A7 /* globals_0x72.html */, + 24A2010F0F90D1DE003BB5A7 /* globals_0x73.html */, + 24A201100F90D1DE003BB5A7 /* globals_0x74.html */, + 24A201110F90D1DE003BB5A7 /* globals_0x75.html */, + 24A201120F90D1DE003BB5A7 /* globals_0x76.html */, + 24A201130F90D1DE003BB5A7 /* globals_0x77.html */, + 24A201140F90D1DE003BB5A7 /* globals_defs.html */, + 24A201150F90D1DE003BB5A7 /* globals_enum.html */, + 24A201160F90D1DE003BB5A7 /* globals_eval.html */, + 24A201170F90D1DE003BB5A7 /* globals_type.html */, + 24A201180F90D1DE003BB5A7 /* globals_vars.html */, + 24A201190F90D1DE003BB5A7 /* hierarchy.html */, + 24A2011A0F90D1DE003BB5A7 /* index.html */, + 24A2011B0F90D1DE003BB5A7 /* intro.html */, + 24A2011C0F90D1DE003BB5A7 /* license.html */, + 24A2011D0F90D1DE003BB5A7 /* maceditor.html */, + 24A2011E0F90D1DE003BB5A7 /* main.html */, + 24A2011F0F90D1DE003BB5A7 /* others.html */, + 24A201200F90D1DE003BB5A7 /* pages.html */, + 24A201210F90D1DE003BB5A7 /* plugguieditor_8cpp.html */, + 24A201220F90D1DE003BB5A7 /* plugguieditor_8h.html */, + 24A201230F90D1DE003BB5A7 /* sequences.html */, + 24A201240F90D1DE003BB5A7 /* struct_c_color-members.html */, + 24A201250F90D1DE003BB5A7 /* struct_c_color.html */, + 24A201260F90D1DE003BB5A7 /* struct_c_point-members.html */, + 24A201270F90D1DE003BB5A7 /* struct_c_point.html */, + 24A201280F90D1DE003BB5A7 /* struct_c_rect-members.html */, + 24A201290F90D1DE003BB5A7 /* struct_c_rect.html */, + 24A2012A0F90D1DE003BB5A7 /* struct_e_rect-members.html */, + 24A2012B0F90D1DE003BB5A7 /* struct_e_rect.html */, + 24A2012C0F90D1DE003BB5A7 /* struct_vst_file_select-members.html */, + 24A2012D0F90D1DE003BB5A7 /* struct_vst_file_select.html */, + 24A2012E0F90D1DE003BB5A7 /* struct_vst_file_type-members.html */, + 24A2012F0F90D1DE003BB5A7 /* struct_vst_file_type.html */, + 24A201300F90D1DE003BB5A7 /* struct_vst_key_code-members.html */, + 24A201310F90D1DE003BB5A7 /* struct_vst_key_code.html */, + 24A201320F90D1DE003BB5A7 /* tab_b.gif */, + 24A201330F90D1DE003BB5A7 /* tab_l.gif */, + 24A201340F90D1DE003BB5A7 /* tab_r.gif */, + 24A201350F90D1DE003BB5A7 /* tabs.css */, + 24A201360F90D1DE003BB5A7 /* thanks.html */, + 24A201370F90D1DE003BB5A7 /* tree.html */, + 24A201380F90D1DE003BB5A7 /* vstcontrols_8cpp.html */, + 24A201390F90D1DE003BB5A7 /* vstcontrols_8h.html */, + 24A2013A0F90D1DE003BB5A7 /* vstgui_8cpp.html */, + 24A2013B0F90D1DE003BB5A7 /* vstgui_8h.html */, + 24A2013C0F90D1DE003BB5A7 /* vstkeycode_8h.html */, + 24A2013D0F90D1DE003BB5A7 /* vstoffline.html */, + 24A2013E0F90D1DE003BB5A7 /* vstparamstruct.html */, + 24A2013F0F90D1DE003BB5A7 /* vstplugscarbon_8h.html */, + 24A201400F90D1DE003BB5A7 /* vstplugsmac_8h.html */, + 24A201410F90D1DE003BB5A7 /* vstplugsmacho_8h.html */, + 24A201420F90D1DE003BB5A7 /* vstplugsquartz_8h.html */, + 24A201430F90D1DE003BB5A7 /* whatsnew.html */, + ); + name = html; + path = /vstsdk2.4/vstgui.sf/vstgui/Documentation/html; + sourceTree = ""; + }; + 24A203CE0F90D272003BB5A7 /* Products */ = { + isa = PBXGroup; + children = ( + 24A203D70F90D272003BB5A7 /* again.vst */, + 24A203D90F90D272003BB5A7 /* adelay.vst */, + 24A203DB0F90D272003BB5A7 /* vstxsynth.vst */, + 24A203DD0F90D272003BB5A7 /* surrounddelay.vst */, + 24A203DF0F90D272003BB5A7 /* minihost.app */, + ); + name = Products; + sourceTree = ""; + }; + 24A203E00F90D272003BB5A7 /* Products */ = { + isa = PBXGroup; + children = ( + 24A203E50F90D272003BB5A7 /* drawtest.component */, + 24A203E70F90D272003BB5A7 /* drawtest.vst */, + ); + name = Products; + sourceTree = ""; + }; + 24A203E80F90D272003BB5A7 /* Products */ = { + isa = PBXGroup; + children = ( + 24A203ED0F90D272003BB5A7 /* drawtest.component */, + 24A203EF0F90D272003BB5A7 /* drawtest.vst */, + ); + name = Products; + sourceTree = ""; + }; + 24A2FEBB0F90D1DB003BB5A7 /* vstsdk2.4 */ = { + isa = PBXGroup; + children = ( + 24A2FEBC0F90D1DC003BB5A7 /* artwork */, + 24A2FEC20F90D1DC003BB5A7 /* bin */, + 24A2FED80F90D1DC003BB5A7 /* doc */, + 24A2FF8E0F90D1DD003BB5A7 /* index.html */, + 24A2FF8F0F90D1DD003BB5A7 /* pluginterfaces */, + 24A2FF940F90D1DD003BB5A7 /* public.sdk */, + 24A2FFDE0F90D1DD003BB5A7 /* vstgui.sf */, + ); + name = vstsdk2.4; + path = /vstsdk2.4; + sourceTree = ""; + }; + 24A2FEBC0F90D1DC003BB5A7 /* artwork */ = { + isa = PBXGroup; + children = ( + 24A2FEBD0F90D1DC003BB5A7 /* Thumbs.db */, + 24A2FEBE0F90D1DC003BB5A7 /* VST_Logo_Usage_Guideline.pdf */, + 24A2FEBF0F90D1DC003BB5A7 /* VSTLogoAlpha.png */, + 24A2FEC00F90D1DC003BB5A7 /* VSTLogoBlack.jpg */, + 24A2FEC10F90D1DC003BB5A7 /* VSTLogoWhite.jpg */, + ); + name = artwork; + path = /vstsdk2.4/artwork; + sourceTree = ""; + }; + 24A2FEC20F90D1DC003BB5A7 /* bin */ = { + isa = PBXGroup; + children = ( + 24A2FEC30F90D1DC003BB5A7 /* mac */, + 24A2FED50F90D1DC003BB5A7 /* win */, + ); + name = bin; + path = /vstsdk2.4/bin; + sourceTree = ""; + }; + 24A2FEC30F90D1DC003BB5A7 /* mac */ = { + isa = PBXGroup; + children = ( + 24A2FEC40F90D1DC003BB5A7 /* VSTMonitor.vst */, + 24A2FED40F90D1DC003BB5A7 /* VSTParamTool.app */, + ); + name = mac; + path = /vstsdk2.4/bin/mac; + sourceTree = ""; + }; + 24A2FEC40F90D1DC003BB5A7 /* VSTMonitor.vst */ = { + isa = PBXGroup; + children = ( + 24A2FEC50F90D1DC003BB5A7 /* Contents */, + ); + name = VSTMonitor.vst; + path = /vstsdk2.4/bin/mac/VSTMonitor.vst; + sourceTree = ""; + }; + 24A2FEC50F90D1DC003BB5A7 /* Contents */ = { + isa = PBXGroup; + children = ( + 24A2FEC60F90D1DC003BB5A7 /* Info.plist */, + 24A2FEC70F90D1DC003BB5A7 /* MacOS */, + 24A2FEC90F90D1DC003BB5A7 /* PkgInfo */, + 24A2FECA0F90D1DC003BB5A7 /* Resources */, + ); + name = Contents; + path = /vstsdk2.4/bin/mac/VSTMonitor.vst/Contents; + sourceTree = ""; + }; + 24A2FEC70F90D1DC003BB5A7 /* MacOS */ = { + isa = PBXGroup; + children = ( + 24A2FEC80F90D1DC003BB5A7 /* VSTMonitor */, + ); + name = MacOS; + path = /vstsdk2.4/bin/mac/VSTMonitor.vst/Contents/MacOS; + sourceTree = ""; + }; + 24A2FECA0F90D1DC003BB5A7 /* Resources */ = { + isa = PBXGroup; + children = ( + 24A2FECB0F90D1DC003BB5A7 /* bmp50000.bmp */, + 24A2FECC0F90D1DC003BB5A7 /* bmp50001.bmp */, + 24A2FECD0F90D1DC003BB5A7 /* bmp50002.bmp */, + 24A2FECE0F90D1DC003BB5A7 /* bmp50003.bmp */, + 24A2FECF0F90D1DC003BB5A7 /* bmp50004.bmp */, + 24A2FED00F90D1DC003BB5A7 /* bmp50005.bmp */, + 24A2FED10F90D1DC003BB5A7 /* bmp50006.bmp */, + 24A2FED20F90D1DC003BB5A7 /* bmp50007.bmp */, + 24A2FED30F90D1DC003BB5A7 /* bmp50008.bmp */, + ); + name = Resources; + path = /vstsdk2.4/bin/mac/VSTMonitor.vst/Contents/Resources; + sourceTree = ""; + }; + 24A2FED50F90D1DC003BB5A7 /* win */ = { + isa = PBXGroup; + children = ( + 24A2FED60F90D1DC003BB5A7 /* vstmonitor.dll */, + 24A2FED70F90D1DC003BB5A7 /* vstparamtool.exe */, + ); + name = win; + path = /vstsdk2.4/bin/win; + sourceTree = ""; + }; + 24A2FED80F90D1DC003BB5A7 /* doc */ = { + isa = PBXGroup; + children = ( + 24A2FED90F90D1DC003BB5A7 /* gfx */, + 24A2FEDE0F90D1DC003BB5A7 /* html */, + 24A2FF8A0F90D1DD003BB5A7 /* sdk.menu.html */, + 24A2FF8B0F90D1DD003BB5A7 /* sdk.overview.html */, + 24A2FF8C0F90D1DD003BB5A7 /* sdkdoc.css */, + 24A2FF8D0F90D1DD003BB5A7 /* VST Licensing Agreement.rtf */, + ); + name = doc; + path = /vstsdk2.4/doc; + sourceTree = ""; + }; + 24A2FED90F90D1DC003BB5A7 /* gfx */ = { + isa = PBXGroup; + children = ( + 24A2FEDA0F90D1DC003BB5A7 /* folder.gif */, + 24A2FEDB0F90D1DC003BB5A7 /* mac.gif */, + 24A2FEDC0F90D1DC003BB5A7 /* vstpluglogo_small.jpg */, + 24A2FEDD0F90D1DC003BB5A7 /* win.gif */, + ); + name = gfx; + path = /vstsdk2.4/doc/gfx; + sourceTree = ""; + }; + 24A2FEDE0F90D1DC003BB5A7 /* html */ = { + isa = PBXGroup; + children = ( + 24A2FEDF0F90D1DC003BB5A7 /* aeffect_8h.html */, + 24A2FEE00F90D1DC003BB5A7 /* aeffectx_8h.html */, + 24A2FEE10F90D1DC003BB5A7 /* aeffeditor_8h.html */, + 24A2FEE20F90D1DC003BB5A7 /* annotated.html */, + 24A2FEE30F90D1DC003BB5A7 /* audioeffect_8cpp.html */, + 24A2FEE40F90D1DC003BB5A7 /* audioeffect_8h.html */, + 24A2FEE50F90D1DC003BB5A7 /* audioeffectx_8cpp.html */, + 24A2FEE60F90D1DC003BB5A7 /* audioeffectx_8h.html */, + 24A2FEE70F90D1DC003BB5A7 /* Blocksizechange.gif */, + 24A2FEE80F90D1DC003BB5A7 /* class_a_eff_editor-members.html */, + 24A2FEE90F90D1DC003BB5A7 /* class_a_eff_editor.html */, + 24A2FEEA0F90D1DC003BB5A7 /* class_audio_effect-members.html */, + 24A2FEEB0F90D1DC003BB5A7 /* class_audio_effect.html */, + 24A2FEEC0F90D1DC003BB5A7 /* class_audio_effect.png */, + 24A2FEED0F90D1DC003BB5A7 /* class_audio_effect_x-members.html */, + 24A2FEEE0F90D1DC003BB5A7 /* class_audio_effect_x.html */, + 24A2FEEF0F90D1DC003BB5A7 /* class_audio_effect_x.png */, + 24A2FEF00F90D1DC003BB5A7 /* ControlChanged.gif */, + 24A2FEF10F90D1DC003BB5A7 /* deprecated.html */, + 24A2FEF20F90D1DC003BB5A7 /* dir_2d3252dd12c84c66c1d25b26bb45a1f5.html */, + 24A2FEF30F90D1DC003BB5A7 /* dir_77c628dfee72e555f82d5ef53b733f38.html */, + 24A2FEF40F90D1DC003BB5A7 /* dir_f81105d3b854bea570aaf3bae5cb64c1.html */, + 24A2FEF50F90D1DC003BB5A7 /* dir_fa0454ab79b4262333bf837ea3d765e9.html */, + 24A2FEF60F90D1DC003BB5A7 /* dirs.html */, + 24A2FEF70F90D1DC003BB5A7 /* doc_8h.html */, + 24A2FEF80F90D1DC003BB5A7 /* doxygen.css */, + 24A2FEF90F90D1DC003BB5A7 /* doxygen.png */, + 24A2FEFA0F90D1DC003BB5A7 /* files.html */, + 24A2FEFB0F90D1DC003BB5A7 /* ftv2blank.png */, + 24A2FEFC0F90D1DC003BB5A7 /* ftv2doc.png */, + 24A2FEFD0F90D1DC003BB5A7 /* ftv2folderclosed.png */, + 24A2FEFE0F90D1DC003BB5A7 /* ftv2folderopen.png */, + 24A2FEFF0F90D1DC003BB5A7 /* ftv2lastnode.png */, + 24A2FF000F90D1DC003BB5A7 /* ftv2link.png */, + 24A2FF010F90D1DC003BB5A7 /* ftv2mlastnode.png */, + 24A2FF020F90D1DC003BB5A7 /* ftv2mnode.png */, + 24A2FF030F90D1DC003BB5A7 /* ftv2node.png */, + 24A2FF040F90D1DC003BB5A7 /* ftv2plastnode.png */, + 24A2FF050F90D1DC003BB5A7 /* ftv2pnode.png */, + 24A2FF060F90D1DC003BB5A7 /* ftv2vertline.png */, + 24A2FF070F90D1DC003BB5A7 /* functions.html */, + 24A2FF080F90D1DC003BB5A7 /* functions_0x62.html */, + 24A2FF090F90D1DC003BB5A7 /* functions_0x63.html */, + 24A2FF0A0F90D1DC003BB5A7 /* functions_0x64.html */, + 24A2FF0B0F90D1DC003BB5A7 /* functions_0x65.html */, + 24A2FF0C0F90D1DC003BB5A7 /* functions_0x66.html */, + 24A2FF0D0F90D1DC003BB5A7 /* functions_0x67.html */, + 24A2FF0E0F90D1DC003BB5A7 /* functions_0x68.html */, + 24A2FF0F0F90D1DC003BB5A7 /* functions_0x69.html */, + 24A2FF100F90D1DC003BB5A7 /* functions_0x6b.html */, + 24A2FF110F90D1DC003BB5A7 /* functions_0x6c.html */, + 24A2FF120F90D1DC003BB5A7 /* functions_0x6d.html */, + 24A2FF130F90D1DC003BB5A7 /* functions_0x6e.html */, + 24A2FF140F90D1DC003BB5A7 /* functions_0x6f.html */, + 24A2FF150F90D1DC003BB5A7 /* functions_0x70.html */, + 24A2FF160F90D1DC003BB5A7 /* functions_0x72.html */, + 24A2FF170F90D1DC003BB5A7 /* functions_0x73.html */, + 24A2FF180F90D1DC003BB5A7 /* functions_0x74.html */, + 24A2FF190F90D1DC003BB5A7 /* functions_0x75.html */, + 24A2FF1A0F90D1DC003BB5A7 /* functions_0x76.html */, + 24A2FF1B0F90D1DC003BB5A7 /* functions_0x77.html */, + 24A2FF1C0F90D1DC003BB5A7 /* functions_0x78.html */, + 24A2FF1D0F90D1DC003BB5A7 /* functions_0x79.html */, + 24A2FF1E0F90D1DC003BB5A7 /* functions_0x7e.html */, + 24A2FF1F0F90D1DC003BB5A7 /* functions_func.html */, + 24A2FF200F90D1DC003BB5A7 /* functions_vars.html */, + 24A2FF210F90D1DC003BB5A7 /* globals.html */, + 24A2FF220F90D1DC003BB5A7 /* globals_0x62.html */, + 24A2FF230F90D1DC003BB5A7 /* globals_0x63.html */, + 24A2FF240F90D1DC003BB5A7 /* globals_0x64.html */, + 24A2FF250F90D1DC003BB5A7 /* globals_0x65.html */, + 24A2FF260F90D1DC003BB5A7 /* globals_0x66.html */, + 24A2FF270F90D1DC003BB5A7 /* globals_0x6b.html */, + 24A2FF280F90D1DC003BB5A7 /* globals_0x6d.html */, + 24A2FF290F90D1DC003BB5A7 /* globals_0x74.html */, + 24A2FF2A0F90D1DC003BB5A7 /* globals_0x76.html */, + 24A2FF2B0F90D1DC003BB5A7 /* globals_defs.html */, + 24A2FF2C0F90D1DC003BB5A7 /* globals_enum.html */, + 24A2FF2D0F90D1DC003BB5A7 /* globals_eval.html */, + 24A2FF2E0F90D1DC003BB5A7 /* globals_eval_0x65.html */, + 24A2FF2F0F90D1DC003BB5A7 /* globals_eval_0x6b.html */, + 24A2FF300F90D1DC003BB5A7 /* globals_eval_0x6d.html */, + 24A2FF310F90D1DC003BB5A7 /* globals_eval_0x76.html */, + 24A2FF320F90D1DC003BB5A7 /* globals_func.html */, + 24A2FF330F90D1DC003BB5A7 /* globals_type.html */, + 24A2FF340F90D1DC003BB5A7 /* globals_vars.html */, + 24A2FF350F90D1DC003BB5A7 /* hierarchy.html */, + 24A2FF360F90D1DC003BB5A7 /* history.html */, + 24A2FF370F90D1DC003BB5A7 /* index.html */, + 24A2FF380F90D1DC003BB5A7 /* Initialisation.gif */, + 24A2FF390F90D1DC003BB5A7 /* intro.html */, + 24A2FF3A0F90D1DC003BB5A7 /* IOchange.gif */, + 24A2FF3B0F90D1DC003BB5A7 /* license.html */, + 24A2FF3C0F90D1DC003BB5A7 /* maceditor.html */, + 24A2FF3D0F90D1DC003BB5A7 /* main.html */, + 24A2FF3E0F90D1DC003BB5A7 /* namespace_host_can_dos.html */, + 24A2FF3F0F90D1DC003BB5A7 /* namespace_plug_can_dos.html */, + 24A2FF400F90D1DC003BB5A7 /* namespacemembers.html */, + 24A2FF410F90D1DC003BB5A7 /* namespacemembers_vars.html */, + 24A2FF420F90D1DC003BB5A7 /* namespaces.html */, + 24A2FF430F90D1DC003BB5A7 /* Offlineprocessing.gif */, + 24A2FF440F90D1DC003BB5A7 /* others.html */, + 24A2FF450F90D1DC003BB5A7 /* pages.html */, + 24A2FF460F90D1DC003BB5A7 /* Sampleratechange.gif */, + 24A2FF470F90D1DC003BB5A7 /* sequences.html */, + 24A2FF480F90D1DC003BB5A7 /* SpeakerarrangementnegotiationforVSTfx.gif */, + 24A2FF490F90D1DC003BB5A7 /* struct_a_effect-members.html */, + 24A2FF4A0F90D1DC003BB5A7 /* struct_a_effect.html */, + 24A2FF4B0F90D1DC003BB5A7 /* struct_e_rect-members.html */, + 24A2FF4C0F90D1DC003BB5A7 /* struct_e_rect.html */, + 24A2FF4D0F90D1DC003BB5A7 /* struct_midi_key_name-members.html */, + 24A2FF4E0F90D1DC003BB5A7 /* struct_midi_key_name.html */, + 24A2FF4F0F90D1DC003BB5A7 /* struct_midi_program_category-members.html */, + 24A2FF500F90D1DC003BB5A7 /* struct_midi_program_category.html */, + 24A2FF510F90D1DC003BB5A7 /* struct_midi_program_name-members.html */, + 24A2FF520F90D1DC003BB5A7 /* struct_midi_program_name.html */, + 24A2FF530F90D1DC003BB5A7 /* struct_vst_audio_file-members.html */, + 24A2FF540F90D1DC003BB5A7 /* struct_vst_audio_file.html */, + 24A2FF550F90D1DC003BB5A7 /* struct_vst_audio_file_marker-members.html */, + 24A2FF560F90D1DC003BB5A7 /* struct_vst_audio_file_marker.html */, + 24A2FF570F90D1DC003BB5A7 /* struct_vst_event-members.html */, + 24A2FF580F90D1DC003BB5A7 /* struct_vst_event.html */, + 24A2FF590F90D1DD003BB5A7 /* struct_vst_events-members.html */, + 24A2FF5A0F90D1DD003BB5A7 /* struct_vst_events.html */, + 24A2FF5B0F90D1DD003BB5A7 /* struct_vst_file_select-members.html */, + 24A2FF5C0F90D1DD003BB5A7 /* struct_vst_file_select.html */, + 24A2FF5D0F90D1DD003BB5A7 /* struct_vst_file_type-members.html */, + 24A2FF5E0F90D1DD003BB5A7 /* struct_vst_file_type.html */, + 24A2FF5F0F90D1DD003BB5A7 /* struct_vst_key_code-members.html */, + 24A2FF600F90D1DD003BB5A7 /* struct_vst_key_code.html */, + 24A2FF610F90D1DD003BB5A7 /* struct_vst_midi_event-members.html */, + 24A2FF620F90D1DD003BB5A7 /* struct_vst_midi_event.html */, + 24A2FF630F90D1DD003BB5A7 /* struct_vst_midi_sysex_event-members.html */, + 24A2FF640F90D1DD003BB5A7 /* struct_vst_midi_sysex_event.html */, + 24A2FF650F90D1DD003BB5A7 /* struct_vst_offline_task-members.html */, + 24A2FF660F90D1DD003BB5A7 /* struct_vst_offline_task.html */, + 24A2FF670F90D1DD003BB5A7 /* struct_vst_parameter_properties-members.html */, + 24A2FF680F90D1DD003BB5A7 /* struct_vst_parameter_properties.html */, + 24A2FF690F90D1DD003BB5A7 /* struct_vst_patch_chunk_info-members.html */, + 24A2FF6A0F90D1DD003BB5A7 /* struct_vst_patch_chunk_info.html */, + 24A2FF6B0F90D1DD003BB5A7 /* struct_vst_pin_properties-members.html */, + 24A2FF6C0F90D1DD003BB5A7 /* struct_vst_pin_properties.html */, + 24A2FF6D0F90D1DD003BB5A7 /* struct_vst_speaker_arrangement-members.html */, + 24A2FF6E0F90D1DD003BB5A7 /* struct_vst_speaker_arrangement.html */, + 24A2FF6F0F90D1DD003BB5A7 /* struct_vst_speaker_properties-members.html */, + 24A2FF700F90D1DD003BB5A7 /* struct_vst_speaker_properties.html */, + 24A2FF710F90D1DD003BB5A7 /* struct_vst_time_info-members.html */, + 24A2FF720F90D1DD003BB5A7 /* struct_vst_time_info.html */, + 24A2FF730F90D1DD003BB5A7 /* struct_vst_variable_io-members.html */, + 24A2FF740F90D1DD003BB5A7 /* struct_vst_variable_io.html */, + 24A2FF750F90D1DD003BB5A7 /* struct_vst_window-members.html */, + 24A2FF760F90D1DD003BB5A7 /* struct_vst_window.html */, + 24A2FF770F90D1DD003BB5A7 /* structfx_bank-members.html */, + 24A2FF780F90D1DD003BB5A7 /* structfx_bank.html */, + 24A2FF790F90D1DD003BB5A7 /* structfx_program-members.html */, + 24A2FF7A0F90D1DD003BB5A7 /* structfx_program.html */, + 24A2FF7B0F90D1DD003BB5A7 /* tab_b.gif */, + 24A2FF7C0F90D1DD003BB5A7 /* tab_l.gif */, + 24A2FF7D0F90D1DD003BB5A7 /* tab_r.gif */, + 24A2FF7E0F90D1DD003BB5A7 /* tabs.css */, + 24A2FF7F0F90D1DD003BB5A7 /* Termination.gif */, + 24A2FF800F90D1DD003BB5A7 /* thanks.html */, + 24A2FF810F90D1DD003BB5A7 /* tree.html */, + 24A2FF820F90D1DD003BB5A7 /* TurnOff.gif */, + 24A2FF830F90D1DD003BB5A7 /* TurnOn.gif */, + 24A2FF840F90D1DD003BB5A7 /* vstfxstore_8h.html */, + 24A2FF850F90D1DD003BB5A7 /* vstoffline.html */, + 24A2FF860F90D1DD003BB5A7 /* vstparamstruct.html */, + 24A2FF870F90D1DD003BB5A7 /* vstpluglogo.jpg */, + 24A2FF880F90D1DD003BB5A7 /* vstplugmain_8cpp.html */, + 24A2FF890F90D1DD003BB5A7 /* whatsnew.html */, + ); + name = html; + path = /vstsdk2.4/doc/html; + sourceTree = ""; + }; + 24A2FF8F0F90D1DD003BB5A7 /* pluginterfaces */ = { + isa = PBXGroup; + children = ( + 24A2FF900F90D1DD003BB5A7 /* vst2.x */, + ); + name = pluginterfaces; + path = /vstsdk2.4/pluginterfaces; + sourceTree = ""; + }; + 24A2FF900F90D1DD003BB5A7 /* vst2.x */ = { + isa = PBXGroup; + children = ( + 24A2FF910F90D1DD003BB5A7 /* aeffect.h */, + 24A2FF920F90D1DD003BB5A7 /* aeffectx.h */, + 24A2FF930F90D1DD003BB5A7 /* vstfxstore.h */, + ); + name = vst2.x; + path = /vstsdk2.4/pluginterfaces/vst2.x; + sourceTree = ""; + }; + 24A2FF940F90D1DD003BB5A7 /* public.sdk */ = { + isa = PBXGroup; + children = ( + 24A2FF950F90D1DD003BB5A7 /* samples */, + 24A2FFD60F90D1DD003BB5A7 /* source */, + ); + name = public.sdk; + path = /vstsdk2.4/public.sdk; + sourceTree = ""; + }; + 24A2FF950F90D1DD003BB5A7 /* samples */ = { + isa = PBXGroup; + children = ( + 24A2FF960F90D1DD003BB5A7 /* vst2.x */, + ); + name = samples; + path = /vstsdk2.4/public.sdk/samples; + sourceTree = ""; + }; + 24A2FF960F90D1DD003BB5A7 /* vst2.x */ = { + isa = PBXGroup; + children = ( + 24A2FF970F90D1DD003BB5A7 /* adelay */, + 24A2FFA80F90D1DD003BB5A7 /* again */, + 24A2FFAE0F90D1DD003BB5A7 /* mac */, + 24A2FFB40F90D1DD003BB5A7 /* minihost */, + 24A2FFBA0F90D1DD003BB5A7 /* vstxsynth */, + 24A2FFC50F90D1DD003BB5A7 /* win */, + 24A2FFC80F90D1DD003BB5A7 /* win.vc2003 */, + 24A2FFCF0F90D1DD003BB5A7 /* win.vc6 */, + ); + name = vst2.x; + path = /vstsdk2.4/public.sdk/samples/vst2.x; + sourceTree = ""; + }; + 24A2FF970F90D1DD003BB5A7 /* adelay */ = { + isa = PBXGroup; + children = ( + 24A2FF980F90D1DD003BB5A7 /* adelay.cpp */, + 24A2FF990F90D1DD003BB5A7 /* adelay.h */, + 24A2FF9A0F90D1DD003BB5A7 /* adelaymain.cpp */, + 24A2FF9B0F90D1DD003BB5A7 /* editor */, + 24A2FFA30F90D1DD003BB5A7 /* surrounddelay.cpp */, + 24A2FFA40F90D1DD003BB5A7 /* surrounddelay.h */, + 24A2FFA50F90D1DD003BB5A7 /* win */, + ); + name = adelay; + path = /vstsdk2.4/public.sdk/samples/vst2.x/adelay; + sourceTree = ""; + }; + 24A2FF9B0F90D1DD003BB5A7 /* editor */ = { + isa = PBXGroup; + children = ( + 24A2FF9C0F90D1DD003BB5A7 /* resources */, + 24A2FFA10F90D1DD003BB5A7 /* sdeditor.cpp */, + 24A2FFA20F90D1DD003BB5A7 /* sdeditor.h */, + ); + name = editor; + path = /vstsdk2.4/public.sdk/samples/vst2.x/adelay/editor; + sourceTree = ""; + }; + 24A2FF9C0F90D1DD003BB5A7 /* resources */ = { + isa = PBXGroup; + children = ( + 24A2FF9D0F90D1DD003BB5A7 /* bmp00128.bmp */, + 24A2FF9E0F90D1DD003BB5A7 /* bmp00129.bmp */, + 24A2FF9F0F90D1DD003BB5A7 /* bmp00130.bmp */, + 24A2FFA00F90D1DD003BB5A7 /* surrounddelay.rc */, + ); + name = resources; + path = /vstsdk2.4/public.sdk/samples/vst2.x/adelay/editor/resources; + sourceTree = ""; + }; + 24A2FFA50F90D1DD003BB5A7 /* win */ = { + isa = PBXGroup; + children = ( + 24A2FFA60F90D1DD003BB5A7 /* adelay.vcproj */, + 24A2FFA70F90D1DD003BB5A7 /* surrounddelay.vcproj */, + ); + name = win; + path = /vstsdk2.4/public.sdk/samples/vst2.x/adelay/win; + sourceTree = ""; + }; + 24A2FFA80F90D1DD003BB5A7 /* again */ = { + isa = PBXGroup; + children = ( + 24A2FFA90F90D1DD003BB5A7 /* source */, + 24A2FFAC0F90D1DD003BB5A7 /* win */, + ); + name = again; + path = /vstsdk2.4/public.sdk/samples/vst2.x/again; + sourceTree = ""; + }; + 24A2FFA90F90D1DD003BB5A7 /* source */ = { + isa = PBXGroup; + children = ( + 24A2FFAA0F90D1DD003BB5A7 /* again.cpp */, + 24A2FFAB0F90D1DD003BB5A7 /* again.h */, + ); + name = source; + path = /vstsdk2.4/public.sdk/samples/vst2.x/again/source; + sourceTree = ""; + }; + 24A2FFAC0F90D1DD003BB5A7 /* win */ = { + isa = PBXGroup; + children = ( + 24A2FFAD0F90D1DD003BB5A7 /* again.vcproj */, + ); + name = win; + path = /vstsdk2.4/public.sdk/samples/vst2.x/again/win; + sourceTree = ""; + }; + 24A2FFAE0F90D1DD003BB5A7 /* mac */ = { + isa = PBXGroup; + children = ( + 24A2FFAF0F90D1DD003BB5A7 /* minihost-Info.plist */, + 24A2FFB00F90D1DD003BB5A7 /* vst 2.4 examples.xcodeproj */, + 24A2FFB30F90D1DD003BB5A7 /* vst2.4Info.plist */, + ); + name = mac; + path = /vstsdk2.4/public.sdk/samples/vst2.x/mac; + sourceTree = ""; + }; + 24A2FFB40F90D1DD003BB5A7 /* minihost */ = { + isa = PBXGroup; + children = ( + 24A2FFB50F90D1DD003BB5A7 /* source */, + 24A2FFB80F90D1DD003BB5A7 /* win */, + ); + name = minihost; + path = /vstsdk2.4/public.sdk/samples/vst2.x/minihost; + sourceTree = ""; + }; + 24A2FFB50F90D1DD003BB5A7 /* source */ = { + isa = PBXGroup; + children = ( + 24A2FFB60F90D1DD003BB5A7 /* minieditor.cpp */, + 24A2FFB70F90D1DD003BB5A7 /* minihost.cpp */, + ); + name = source; + path = /vstsdk2.4/public.sdk/samples/vst2.x/minihost/source; + sourceTree = ""; + }; + 24A2FFB80F90D1DD003BB5A7 /* win */ = { + isa = PBXGroup; + children = ( + 24A2FFB90F90D1DD003BB5A7 /* minihost.vcproj */, + ); + name = win; + path = /vstsdk2.4/public.sdk/samples/vst2.x/minihost/win; + sourceTree = ""; + }; + 24A2FFBA0F90D1DD003BB5A7 /* vstxsynth */ = { + isa = PBXGroup; + children = ( + 24A2FFBB0F90D1DD003BB5A7 /* resource */, + 24A2FFBE0F90D1DD003BB5A7 /* source */, + 24A2FFC30F90D1DD003BB5A7 /* win */, + ); + name = vstxsynth; + path = /vstsdk2.4/public.sdk/samples/vst2.x/vstxsynth; + sourceTree = ""; + }; + 24A2FFBB0F90D1DD003BB5A7 /* resource */ = { + isa = PBXGroup; + children = ( + 24A2FFBC0F90D1DD003BB5A7 /* vstxsynth.rc */, + 24A2FFBD0F90D1DD003BB5A7 /* vstxsynth.vstxml */, + ); + name = resource; + path = /vstsdk2.4/public.sdk/samples/vst2.x/vstxsynth/resource; + sourceTree = ""; + }; + 24A2FFBE0F90D1DD003BB5A7 /* source */ = { + isa = PBXGroup; + children = ( + 24A2FFBF0F90D1DD003BB5A7 /* gmnames.h */, + 24A2FFC00F90D1DD003BB5A7 /* vstxsynth.cpp */, + 24A2FFC10F90D1DD003BB5A7 /* vstxsynth.h */, + 24A2FFC20F90D1DD003BB5A7 /* vstxsynthproc.cpp */, + ); + name = source; + path = /vstsdk2.4/public.sdk/samples/vst2.x/vstxsynth/source; + sourceTree = ""; + }; + 24A2FFC30F90D1DD003BB5A7 /* win */ = { + isa = PBXGroup; + children = ( + 24A2FFC40F90D1DD003BB5A7 /* vstxsynth.vcproj */, + ); + name = win; + path = /vstsdk2.4/public.sdk/samples/vst2.x/vstxsynth/win; + sourceTree = ""; + }; + 24A2FFC50F90D1DD003BB5A7 /* win */ = { + isa = PBXGroup; + children = ( + 24A2FFC60F90D1DD003BB5A7 /* samples.sln */, + 24A2FFC70F90D1DD003BB5A7 /* vstplug.def */, + ); + name = win; + path = /vstsdk2.4/public.sdk/samples/vst2.x/win; + sourceTree = ""; + }; + 24A2FFC80F90D1DD003BB5A7 /* win.vc2003 */ = { + isa = PBXGroup; + children = ( + 24A2FFC90F90D1DD003BB5A7 /* adelay.vcproj */, + 24A2FFCA0F90D1DD003BB5A7 /* again.vcproj */, + 24A2FFCB0F90D1DD003BB5A7 /* minihost.vcproj */, + 24A2FFCC0F90D1DD003BB5A7 /* samples.sln */, + 24A2FFCD0F90D1DD003BB5A7 /* surrounddelay.vcproj */, + 24A2FFCE0F90D1DD003BB5A7 /* vstxsynth.vcproj */, + ); + name = win.vc2003; + path = /vstsdk2.4/public.sdk/samples/vst2.x/win.vc2003; + sourceTree = ""; + }; + 24A2FFCF0F90D1DD003BB5A7 /* win.vc6 */ = { + isa = PBXGroup; + children = ( + 24A2FFD00F90D1DD003BB5A7 /* adelay.dsp */, + 24A2FFD10F90D1DD003BB5A7 /* again.dsp */, + 24A2FFD20F90D1DD003BB5A7 /* minihost.dsp */, + 24A2FFD30F90D1DD003BB5A7 /* samples.dsw */, + 24A2FFD40F90D1DD003BB5A7 /* surrounddelay.dsp */, + 24A2FFD50F90D1DD003BB5A7 /* vstxsynth.dsp */, + ); + name = win.vc6; + path = /vstsdk2.4/public.sdk/samples/vst2.x/win.vc6; + sourceTree = ""; + }; + 24A2FFD60F90D1DD003BB5A7 /* source */ = { + isa = PBXGroup; + children = ( + 24A2FFD70F90D1DD003BB5A7 /* vst2.x */, + ); + name = source; + path = /vstsdk2.4/public.sdk/source; + sourceTree = ""; + }; + 24A2FFD70F90D1DD003BB5A7 /* vst2.x */ = { + isa = PBXGroup; + children = ( + 24A2FFD80F90D1DD003BB5A7 /* aeffeditor.h */, + 24A2FFD90F90D1DD003BB5A7 /* audioeffect.cpp */, + 24A2FFDA0F90D1DD003BB5A7 /* audioeffect.h */, + 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */, + 24A2FFDC0F90D1DD003BB5A7 /* audioeffectx.h */, + 24A2FFDD0F90D1DD003BB5A7 /* vstplugmain.cpp */, + ); + name = vst2.x; + path = /vstsdk2.4/public.sdk/source/vst2.x; + sourceTree = ""; + }; + 24A2FFDE0F90D1DD003BB5A7 /* vstgui.sf */ = { + isa = PBXGroup; + children = ( + 24A2FFDF0F90D1DD003BB5A7 /* drawtest */, + 24A200160F90D1DD003BB5A7 /* vstgui */, + ); + name = vstgui.sf; + path = /vstsdk2.4/vstgui.sf; + sourceTree = ""; + }; + 24A2FFDF0F90D1DD003BB5A7 /* drawtest */ = { + isa = PBXGroup; + children = ( + 24A2FFE00F90D1DD003BB5A7 /* mac */, + 24A2FFEE0F90D1DD003BB5A7 /* resources */, + 24A200030F90D1DD003BB5A7 /* source */, + 24A2000F0F90D1DD003BB5A7 /* win */, + 24A200130F90D1DD003BB5A7 /* win.vc6 */, + ); + name = drawtest; + path = /vstsdk2.4/vstgui.sf/drawtest; + sourceTree = ""; + }; + 24A2FFE00F90D1DD003BB5A7 /* mac */ = { + isa = PBXGroup; + children = ( + 24A2FFE10F90D1DD003BB5A7 /* audiounit.exp */, + 24A2FFE20F90D1DD003BB5A7 /* cw_vst_prefix.pch++ */, + 24A2FFE30F90D1DD003BB5A7 /* drawtest.cw9prj */, + 24A2FFE40F90D1DD003BB5A7 /* drawtest.plc */, + 24A2FFE50F90D1DD003BB5A7 /* drawtest.xcode */, + 24A2FFE80F90D1DD003BB5A7 /* drawtest.xcodeproj */, + 24A2FFEB0F90D1DD003BB5A7 /* Info.plist */, + 24A2FFEC0F90D1DD003BB5A7 /* xcode_au_prefix.h */, + 24A2FFED0F90D1DD003BB5A7 /* xcode_vst_prefix.h */, + ); + name = mac; + path = /vstsdk2.4/vstgui.sf/drawtest/mac; + sourceTree = ""; + }; + 24A2FFEE0F90D1DD003BB5A7 /* resources */ = { + isa = PBXGroup; + children = ( + 24A2FFEF0F90D1DD003BB5A7 /* audiounit.r */, + 24A2FFF00F90D1DD003BB5A7 /* bmp00001.png */, + 24A2FFF10F90D1DD003BB5A7 /* bmp00100.png */, + 24A2FFF20F90D1DD003BB5A7 /* bmp01000.png */, + 24A2FFF30F90D1DD003BB5A7 /* bmp10001.bmp */, + 24A2FFF40F90D1DD003BB5A7 /* bmp10002.bmp */, + 24A2FFF50F90D1DD003BB5A7 /* bmp10003.bmp */, + 24A2FFF60F90D1DD003BB5A7 /* bmp10004.bmp */, + 24A2FFF70F90D1DD003BB5A7 /* bmp10005.bmp */, + 24A2FFF80F90D1DD003BB5A7 /* bmp10006.bmp */, + 24A2FFF90F90D1DD003BB5A7 /* bmp10007.bmp */, + 24A2FFFA0F90D1DD003BB5A7 /* bmp10008.bmp */, + 24A2FFFB0F90D1DD003BB5A7 /* bmp10009.bmp */, + 24A2FFFC0F90D1DD003BB5A7 /* bmp10010.bmp */, + 24A2FFFD0F90D1DD003BB5A7 /* bmp10011.bmp */, + 24A2FFFE0F90D1DD003BB5A7 /* bmp10012.bmp */, + 24A2FFFF0F90D1DD003BB5A7 /* bmp10013.bmp */, + 24A200000F90D1DD003BB5A7 /* bmp10014.bmp */, + 24A200010F90D1DD003BB5A7 /* bmp10015.bmp */, + 24A200020F90D1DD003BB5A7 /* bmp10016.bmp */, + ); + name = resources; + path = /vstsdk2.4/vstgui.sf/drawtest/resources; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 8D01CCC70486CAD60068D4B7 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 245463B90991757100464AD3 /* kWoodRoom.h in Headers */, + 24D8287F09A9164A0093AEF8 /* xcode_vst_prefix.h in Headers */, + 24A202190F90D1DE003BB5A7 /* aeffect.h in Headers */, + 24A2021A0F90D1DE003BB5A7 /* aeffectx.h in Headers */, + 24A2021B0F90D1DE003BB5A7 /* vstfxstore.h in Headers */, + 24A2021D0F90D1DE003BB5A7 /* adelay.h in Headers */, + 24A202240F90D1DE003BB5A7 /* sdeditor.h in Headers */, + 24A202260F90D1DE003BB5A7 /* surrounddelay.h in Headers */, + 24A2022A0F90D1DE003BB5A7 /* again.h in Headers */, + 24A202330F90D1DE003BB5A7 /* gmnames.h in Headers */, + 24A202350F90D1DE003BB5A7 /* vstxsynth.h in Headers */, + 24A202460F90D1DE003BB5A7 /* aeffeditor.h in Headers */, + 24A202480F90D1DE003BB5A7 /* audioeffect.h in Headers */, + 24A2024A0F90D1DE003BB5A7 /* audioeffectx.h in Headers */, + 24A2024D0F90D1DE003BB5A7 /* cw_vst_prefix.pch++ in Headers */, + 24A202510F90D1DE003BB5A7 /* xcode_au_prefix.h in Headers */, + 24A202520F90D1DE003BB5A7 /* xcode_vst_prefix.h in Headers */, + 24A202680F90D1DE003BB5A7 /* controlsgui.h in Headers */, + 24A2026A0F90D1DE003BB5A7 /* pdrawtesteditor.h in Headers */, + 24A2026C0F90D1DE003BB5A7 /* pdrawtesteffect.h in Headers */, + 24A2026F0F90D1DE003BB5A7 /* pdrawtestview.h in Headers */, + 24A202710F90D1DE003BB5A7 /* pprimitivesviews.h in Headers */, + 24A202780F90D1DE003BB5A7 /* aeffguieditor.h in Headers */, + 24A2027A0F90D1DE003BB5A7 /* cfileselector.h in Headers */, + 24A2027D0F90D1DE003BB5A7 /* cscrollview.h in Headers */, + 24A2027F0F90D1DE003BB5A7 /* ctabview.h in Headers */, + 24A203A50F90D1DE003BB5A7 /* plugguieditor.h in Headers */, + 24A203A70F90D1DE003BB5A7 /* vstcontrols.h in Headers */, + 24A203A90F90D1DE003BB5A7 /* vstgui.h in Headers */, + 24A203AA0F90D1DE003BB5A7 /* vstkeycode.h in Headers */, + 24A203AB0F90D1DE003BB5A7 /* vstplugscarbon.h in Headers */, + 24A203AC0F90D1DE003BB5A7 /* vstplugsmac.h in Headers */, + 24A203AD0F90D1DE003BB5A7 /* vstplugsmacho.h in Headers */, + 24A203AE0F90D1DE003BB5A7 /* vstplugsquartz.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 8D01CCC60486CAD60068D4B7 /* kWoodRoom */ = { + isa = PBXNativeTarget; + buildConfigurationList = 24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "kWoodRoom" */; + buildPhases = ( + 8D01CCC70486CAD60068D4B7 /* Headers */, + 8D01CCC90486CAD60068D4B7 /* Resources */, + 8D01CCCB0486CAD60068D4B7 /* Sources */, + 8D01CCCF0486CAD60068D4B7 /* Rez */, + 24CFB70807E7A07C0081BD57 /* Copy PkgInfo */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = kWoodRoom; + productInstallPath = "$(HOME)/Library/Bundles"; + productName = "FM-Chopper"; + productReference = 2407DE920899296600EB68BF /* kWoodRoom.vst */; + productType = "com.apple.product-type.bundle"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 089C1669FE841209C02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 24BEAAF108919AE700E695F9 /* Build configuration list for PBXProject "kWoodRoom" */; + compatibilityVersion = "Xcode 2.4"; + developmentRegion = English; + hasScannedForEncodings = 1; + knownRegions = ( + English, + Japanese, + French, + German, + ); + mainGroup = 089C166AFE841209C02AAC07 /* FM-Chopper */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 24A203E00F90D272003BB5A7 /* Products */; + ProjectRef = 24A2FFE50F90D1DD003BB5A7 /* drawtest.xcode */; + }, + { + ProductGroup = 24A203E80F90D272003BB5A7 /* Products */; + ProjectRef = 24A2FFE80F90D1DD003BB5A7 /* drawtest.xcodeproj */; + }, + { + ProductGroup = 24A203CE0F90D272003BB5A7 /* Products */; + ProjectRef = 24A2FFB00F90D1DD003BB5A7 /* vst 2.4 examples.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 8D01CCC60486CAD60068D4B7 /* kWoodRoom */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 24A203D70F90D272003BB5A7 /* again.vst */ = { + isa = PBXReferenceProxy; + fileType = wrapper.cfbundle; + path = again.vst; + remoteRef = 24A203D60F90D272003BB5A7 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 24A203D90F90D272003BB5A7 /* adelay.vst */ = { + isa = PBXReferenceProxy; + fileType = wrapper.cfbundle; + path = adelay.vst; + remoteRef = 24A203D80F90D272003BB5A7 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 24A203DB0F90D272003BB5A7 /* vstxsynth.vst */ = { + isa = PBXReferenceProxy; + fileType = wrapper.cfbundle; + path = vstxsynth.vst; + remoteRef = 24A203DA0F90D272003BB5A7 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 24A203DD0F90D272003BB5A7 /* surrounddelay.vst */ = { + isa = PBXReferenceProxy; + fileType = wrapper.cfbundle; + path = surrounddelay.vst; + remoteRef = 24A203DC0F90D272003BB5A7 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 24A203DF0F90D272003BB5A7 /* minihost.app */ = { + isa = PBXReferenceProxy; + fileType = wrapper.application; + path = minihost.app; + remoteRef = 24A203DE0F90D272003BB5A7 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 24A203E50F90D272003BB5A7 /* drawtest.component */ = { + isa = PBXReferenceProxy; + fileType = wrapper.cfbundle; + path = drawtest.component; + remoteRef = 24A203E40F90D272003BB5A7 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 24A203E70F90D272003BB5A7 /* drawtest.vst */ = { + isa = PBXReferenceProxy; + fileType = wrapper.cfbundle; + path = drawtest.vst; + remoteRef = 24A203E60F90D272003BB5A7 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 24A203ED0F90D272003BB5A7 /* drawtest.component */ = { + isa = PBXReferenceProxy; + fileType = wrapper.cfbundle; + path = drawtest.component; + remoteRef = 24A203EC0F90D272003BB5A7 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 24A203EF0F90D272003BB5A7 /* drawtest.vst */ = { + isa = PBXReferenceProxy; + fileType = wrapper.cfbundle; + path = drawtest.vst; + remoteRef = 24A203EE0F90D272003BB5A7 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 8D01CCC90486CAD60068D4B7 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 24CFB70407E7A0220081BD57 /* PkgInfo in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXRezBuildPhase section */ + 8D01CCCF0486CAD60068D4B7 /* Rez */ = { + isa = PBXRezBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXRezBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 24CFB70807E7A07C0081BD57 /* Copy PkgInfo */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Copy PkgInfo"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/bash; + shellScript = "cp mac/PkgInfo \"$BUILT_PRODUCTS_DIR/$PRODUCT_NAME.vst/Contents/\""; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 8D01CCCB0486CAD60068D4B7 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 2407DEB9089929BA00EB68BF /* kWoodRoom.cpp in Sources */, + 24D8287009A914000093AEF8 /* kWoodRoomProc.cpp in Sources */, + 24A203CB0F90D251003BB5A7 /* audioeffect.cpp in Sources */, + 24A203CC0F90D251003BB5A7 /* audioeffectx.cpp in Sources */, + 24A203CD0F90D251003BB5A7 /* vstplugmain.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 24BEAAEE08919AE700E695F9 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = NO; + FRAMEWORK_SEARCH_PATHS = ""; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_TRIGRAPHS = NO; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ""; + GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO; + GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO; + GCC_WARN_UNKNOWN_PRAGMAS = NO; + HEADER_SEARCH_PATHS = "/vstsdk2.4/**"; + INFOPLIST_FILE = ./mac/Info.plist; + LIBRARY_SEARCH_PATHS = ""; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ""; + OTHER_REZFLAGS = ""; + PRODUCT_NAME = Gain; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + WRAPPER_EXTENSION = vst; + }; + name = Debug; + }; + 24BEAAEF08919AE700E695F9 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = ( + ppc, + i386, + x86_64, + ); + COPY_PHASE_STRIP = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + FRAMEWORK_SEARCH_PATHS = ""; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + GCC_ENABLE_TRIGRAPHS = NO; + GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + GCC_MODEL_TUNING = G4; + GCC_OPTIMIZATION_LEVEL = s; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ""; + GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO; + GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO; + GCC_WARN_UNKNOWN_PRAGMAS = NO; + HEADER_SEARCH_PATHS = "/vstsdk2.4/**"; + INFOPLIST_FILE = ./mac/Info.plist; + LIBRARY_SEARCH_PATHS = ""; + MACOSX_DEPLOYMENT_TARGET = 10.4; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ""; + OTHER_REZFLAGS = ""; + PRODUCT_NAME = kWoodRoom; + SDKROOT = /Developer/SDKs/MacOSX10.5.sdk; + SECTORDER_FLAGS = ""; + SKIP_INSTALL = NO; + STRIP_INSTALLED_PRODUCT = YES; + STRIP_STYLE = all; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + WRAPPER_EXTENSION = vst; + }; + name = Release; + }; + 24BEAAF208919AE700E695F9 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH)"; + GCC_MODEL_TUNING = G5; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = "DEBUG=1"; + INFOPLIST_FILE = ""; + INFOPLIST_PREPROCESS = NO; + }; + name = Debug; + }; + 24BEAAF308919AE700E695F9 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; + ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc"; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_MODEL_TUNING = G4; + GCC_OPTIMIZATION_LEVEL = s; + INFOPLIST_FILE = ""; + INFOPLIST_PREPROCESS = NO; + SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.6.sdk"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "kWoodRoom" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 24BEAAEE08919AE700E695F9 /* Debug */, + 24BEAAEF08919AE700E695F9 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 24BEAAF108919AE700E695F9 /* Build configuration list for PBXProject "kWoodRoom" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 24BEAAF208919AE700E695F9 /* Debug */, + 24BEAAF308919AE700E695F9 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; +/* End XCConfigurationList section */ + }; + rootObject = 089C1669FE841209C02AAC07 /* Project object */; +} diff --git a/plugins/MacVST/kWoodRoom/kWoodRoom.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/plugins/MacVST/kWoodRoom/kWoodRoom.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100755 index 000000000..a80c03824 --- /dev/null +++ b/plugins/MacVST/kWoodRoom/kWoodRoom.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/plugins/MacVST/kWoodRoom/kWoodRoom.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacVST/kWoodRoom/kWoodRoom.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100755 index 000000000..5c38f9460 Binary files /dev/null and b/plugins/MacVST/kWoodRoom/kWoodRoom.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/plugins/MacVST/kWoodRoom/kWoodRoom.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacVST/kWoodRoom/kWoodRoom.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100755 index 000000000..314de0ff8 Binary files /dev/null and b/plugins/MacVST/kWoodRoom/kWoodRoom.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/plugins/MacVST/kWoodRoom/kWoodRoom.xcodeproj/spiadmin.mode1v3 b/plugins/MacVST/kWoodRoom/kWoodRoom.xcodeproj/spiadmin.mode1v3 new file mode 100755 index 000000000..c5723261d --- /dev/null +++ b/plugins/MacVST/kWoodRoom/kWoodRoom.xcodeproj/spiadmin.mode1v3 @@ -0,0 +1,1372 @@ + + + + + ActivePerspectiveName + Project + AllowedModules + + + BundleLoadPath + + MaxInstances + n + Module + PBXSmartGroupTreeModule + Name + Groups and Files Outline View + + + BundleLoadPath + + MaxInstances + n + Module + PBXNavigatorGroup + Name + Editor + + + BundleLoadPath + + MaxInstances + n + Module + XCTaskListModule + Name + Task List + + + BundleLoadPath + + MaxInstances + n + Module + XCDetailModule + Name + File and Smart Group Detail Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXBuildResultsModule + Name + Detailed Build Results Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXProjectFindModule + Name + Project Batch Find Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCProjectFormatConflictsModule + Name + Project Format Conflicts List + + + BundleLoadPath + + MaxInstances + n + Module + PBXBookmarksModule + Name + Bookmarks Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXClassBrowserModule + Name + Class Browser + + + BundleLoadPath + + MaxInstances + n + Module + PBXCVSModule + Name + Source Code Control Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXDebugBreakpointsModule + Name + Debug Breakpoints Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCDockableInspector + Name + Inspector + + + BundleLoadPath + + MaxInstances + n + Module + PBXOpenQuicklyModule + Name + Open Quickly Tool + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugSessionModule + Name + Debugger + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugCLIModule + Name + Debug Console + + + BundleLoadPath + + MaxInstances + n + Module + XCSnapshotModule + Name + Snapshots Tool + + + BundlePath + /Xcode3/Library/PrivateFrameworks/DevToolsInterface.framework/Resources + Description + DefaultDescriptionKey + DockingSystemVisible + + Extension + mode1v3 + FavBarConfig + + PBXProjectModuleGUID + 91857D9F148EF61800AAA11B + XCBarModuleItemNames + + XCBarModuleItems + + + FirstTimeWindowDisplayed + + Identifier + com.apple.perspectives.project.mode1v3 + MajorVersion + 33 + MinorVersion + 0 + Name + Default + Notifications + + OpenEditors + + PerspectiveWidths + + -1 + -1 + + Perspectives + + + ChosenToolbarItems + + active-combo-popup + action + NSToolbarFlexibleSpaceItem + debugger-enable-breakpoints + build-and-go + com.apple.ide.PBXToolbarStopButton + get-info + NSToolbarFlexibleSpaceItem + com.apple.pbx.toolbar.searchfield + + ControllerClassBaseName + + IconName + WindowOfProjectWithEditor + Identifier + perspective.project + IsVertical + + Layout + + + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 1C37FABC05509CD000000102 + 1C37FABC05539CD112110102 + E2644B35053B69B200211256 + 1C37FABC04509CD000100104 + 1CC0EA4004350EF90044410B + 1CC0EA4004350EF90041110B + + PBXProjectModuleGUID + 1CE0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + yes + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 186 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 089C166AFE841209C02AAC07 + 089C1671FE841209C02AAC07 + 19C28FB4FE9D528D11CA2CBB + 089C167CFE841241C02AAC07 + 08FB77ADFE841716C02AAC07 + 1C37FBAC04509CD000000102 + 1C37FABC05509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 11 + 10 + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {186, 693}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + + XCSharingToken + com.apple.Xcode.GFSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {203, 711}} + GroupTreeTableConfiguration + + MainColumn + 186 + + RubberWindowFrame + 286 197 1261 752 0 0 1680 1028 + + Module + PBXSmartGroupTreeModule + Proportion + 203pt + + + Dock + + + BecomeActive + + ContentConfiguration + + PBXProjectModuleGUID + 1CE0B20306471E060097A5F4 + PBXProjectModuleLabel + Gain.cpp + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CE0B20406471E060097A5F4 + PBXProjectModuleLabel + Gain.cpp + _historyCapacity + 0 + bookmark + 911C2A9D1491A5F600A430AF + history + + 915DCCBB1491A5B8008574E6 + + + SplitCount + 1 + + StatusBarVisibility + + + GeometryConfiguration + + Frame + {{0, 0}, {1053, 508}} + RubberWindowFrame + 286 197 1261 752 0 0 1680 1028 + + Module + PBXNavigatorGroup + Proportion + 508pt + + + ContentConfiguration + + PBXProjectModuleGUID + 1CE0B20506471E060097A5F4 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{0, 513}, {1053, 198}} + RubberWindowFrame + 286 197 1261 752 0 0 1680 1028 + + Module + XCDetailModule + Proportion + 198pt + + + Proportion + 1053pt + + + Name + Project + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + XCModuleDock + PBXNavigatorGroup + XCDetailModule + + TableOfContents + + 911C2A901491A5F600A430AF + 1CE0B1FE06471DED0097A5F4 + 911C2A911491A5F600A430AF + 1CE0B20306471E060097A5F4 + 1CE0B20506471E060097A5F4 + + ToolbarConfigUserDefaultsMinorVersion + 2 + ToolbarConfiguration + xcode.toolbar.config.defaultV3 + + + ControllerClassBaseName + + IconName + WindowOfProject + Identifier + perspective.morph + IsVertical + 0 + Layout + + + BecomeActive + 1 + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 1C08E77C0454961000C914BD + 1C37FABC05509CD000000102 + 1C37FABC05539CD112110102 + E2644B35053B69B200211256 + 1C37FABC04509CD000100104 + 1CC0EA4004350EF90044410B + 1CC0EA4004350EF90041110B + + PBXProjectModuleGUID + 11E0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + yes + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 186 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 29B97314FDCFA39411CA2CEA + 1C37FABC05509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {186, 337}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + 1 + XCSharingToken + com.apple.Xcode.GFSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {203, 355}} + GroupTreeTableConfiguration + + MainColumn + 186 + + RubberWindowFrame + 373 269 690 397 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 100% + + + Name + Morph + PreferredWidth + 300 + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + + TableOfContents + + 11E0B1FE06471DED0097A5F4 + + ToolbarConfiguration + xcode.toolbar.config.default.shortV3 + + + PerspectivesBarVisible + + ShelfIsVisible + + SourceDescription + file at '/Xcode3/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecificationMode1.xcperspec' + StatusbarIsVisible + + TimeStamp + 0.0 + ToolbarConfigUserDefaultsMinorVersion + 2 + ToolbarDisplayMode + 1 + ToolbarIsVisible + + ToolbarSizeMode + 1 + Type + Perspectives + UpdateMessage + The Default Workspace in this version of Xcode now includes support to hide and show the detail view (what has been referred to as the "Metro-Morph" feature). You must discard your current Default Workspace settings and update to the latest Default Workspace in order to gain this feature. Do you wish to update to the latest Workspace defaults for project '%@'? + WindowJustification + 5 + WindowOrderList + + 91857DA0148EF61800AAA11B + /Users/spiadmin/Documents/Gain/Gain.xcodeproj + + WindowString + 286 197 1261 752 0 0 1680 1028 + WindowToolsV3 + + + FirstTimeWindowDisplayed + + Identifier + windowTool.build + IsVertical + + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528F0623707200166675 + PBXProjectModuleLabel + + StatusBarVisibility + + + GeometryConfiguration + + Frame + {{0, 0}, {743, 413}} + RubberWindowFrame + 112 208 743 695 0 0 1680 1028 + + Module + PBXNavigatorGroup + Proportion + 413pt + + + ContentConfiguration + + PBXProjectModuleGUID + XCMainBuildResultsModuleGUID + PBXProjectModuleLabel + Build Results + XCBuildResultsTrigger_Collapse + 1021 + XCBuildResultsTrigger_Open + 1011 + + GeometryConfiguration + + Frame + {{0, 418}, {743, 236}} + RubberWindowFrame + 112 208 743 695 0 0 1680 1028 + + Module + PBXBuildResultsModule + Proportion + 236pt + + + Proportion + 654pt + + + Name + Build Results + ServiceClasses + + PBXBuildResultsModule + + StatusbarIsVisible + + TableOfContents + + 91857DA0148EF61800AAA11B + 911C2A921491A5F600A430AF + 1CD0528F0623707200166675 + XCMainBuildResultsModuleGUID + + ToolbarConfiguration + xcode.toolbar.config.buildV3 + WindowContentMinSize + 486 300 + WindowString + 112 208 743 695 0 0 1680 1028 + WindowToolGUID + 91857DA0148EF61800AAA11B + WindowToolIsVisible + + + + Identifier + windowTool.debugger + Layout + + + Dock + + + ContentConfiguration + + Debugger + + HorizontalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {317, 164}} + {{317, 0}, {377, 164}} + + + VerticalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {694, 164}} + {{0, 164}, {694, 216}} + + + + LauncherConfigVersion + 8 + PBXProjectModuleGUID + 1C162984064C10D400B95A72 + PBXProjectModuleLabel + Debug - GLUTExamples (Underwater) + + GeometryConfiguration + + DebugConsoleDrawerSize + {100, 120} + DebugConsoleVisible + None + DebugConsoleWindowFrame + {{200, 200}, {500, 300}} + DebugSTDIOWindowFrame + {{200, 200}, {500, 300}} + Frame + {{0, 0}, {694, 380}} + RubberWindowFrame + 321 238 694 422 0 0 1440 878 + + Module + PBXDebugSessionModule + Proportion + 100% + + + Proportion + 100% + + + Name + Debugger + ServiceClasses + + PBXDebugSessionModule + + StatusbarIsVisible + 1 + TableOfContents + + 1CD10A99069EF8BA00B06720 + 1C0AD2AB069F1E9B00FABCE6 + 1C162984064C10D400B95A72 + 1C0AD2AC069F1E9B00FABCE6 + + ToolbarConfiguration + xcode.toolbar.config.debugV3 + WindowString + 321 238 694 422 0 0 1440 878 + WindowToolGUID + 1CD10A99069EF8BA00B06720 + WindowToolIsVisible + 0 + + + Identifier + windowTool.find + Layout + + + Dock + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CDD528C0622207200134675 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CD0528D0623707200166675 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {781, 167}} + RubberWindowFrame + 62 385 781 470 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 781pt + + + Proportion + 50% + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528E0623707200166675 + PBXProjectModuleLabel + Project Find + + GeometryConfiguration + + Frame + {{8, 0}, {773, 254}} + RubberWindowFrame + 62 385 781 470 0 0 1440 878 + + Module + PBXProjectFindModule + Proportion + 50% + + + Proportion + 428pt + + + Name + Project Find + ServiceClasses + + PBXProjectFindModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C530D57069F1CE1000CFCEE + 1C530D58069F1CE1000CFCEE + 1C530D59069F1CE1000CFCEE + 1CDD528C0622207200134675 + 1C530D5A069F1CE1000CFCEE + 1CE0B1FE06471DED0097A5F4 + 1CD0528E0623707200166675 + + WindowString + 62 385 781 470 0 0 1440 878 + WindowToolGUID + 1C530D57069F1CE1000CFCEE + WindowToolIsVisible + 0 + + + Identifier + MENUSEPARATOR + + + Identifier + windowTool.debuggerConsole + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAAC065D492600B07095 + PBXProjectModuleLabel + Debugger Console + + GeometryConfiguration + + Frame + {{0, 0}, {650, 250}} + RubberWindowFrame + 516 632 650 250 0 0 1680 1027 + + Module + PBXDebugCLIModule + Proportion + 209pt + + + Proportion + 209pt + + + Name + Debugger Console + ServiceClasses + + PBXDebugCLIModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C78EAAD065D492600B07095 + 1C78EAAE065D492600B07095 + 1C78EAAC065D492600B07095 + + ToolbarConfiguration + xcode.toolbar.config.consoleV3 + WindowString + 650 41 650 250 0 0 1280 1002 + WindowToolGUID + 1C78EAAD065D492600B07095 + WindowToolIsVisible + 0 + + + Identifier + windowTool.snapshots + Layout + + + Dock + + + Module + XCSnapshotModule + Proportion + 100% + + + Proportion + 100% + + + Name + Snapshots + ServiceClasses + + XCSnapshotModule + + StatusbarIsVisible + Yes + ToolbarConfiguration + xcode.toolbar.config.snapshots + WindowString + 315 824 300 550 0 0 1440 878 + WindowToolIsVisible + Yes + + + Identifier + windowTool.scm + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAB2065D492600B07095 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1C78EAB3065D492600B07095 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {452, 0}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + + Module + PBXNavigatorGroup + Proportion + 0pt + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD052920623707200166675 + PBXProjectModuleLabel + SCM + + GeometryConfiguration + + ConsoleFrame + {{0, 259}, {452, 0}} + Frame + {{0, 7}, {452, 259}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + TableConfiguration + + Status + 30 + FileName + 199 + Path + 197.0950012207031 + + TableFrame + {{0, 0}, {452, 250}} + + Module + PBXCVSModule + Proportion + 262pt + + + Proportion + 266pt + + + Name + SCM + ServiceClasses + + PBXCVSModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C78EAB4065D492600B07095 + 1C78EAB5065D492600B07095 + 1C78EAB2065D492600B07095 + 1CD052920623707200166675 + + ToolbarConfiguration + xcode.toolbar.config.scm + WindowString + 743 379 452 308 0 0 1280 1002 + + + Identifier + windowTool.breakpoints + IsVertical + 0 + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C77FABC04509CD000000102 + + PBXProjectModuleGUID + 1CE0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + no + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 168 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 1C77FABC04509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {168, 350}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + 0 + + GeometryConfiguration + + Frame + {{0, 0}, {185, 368}} + GroupTreeTableConfiguration + + MainColumn + 168 + + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 185pt + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA1AED706398EBD00589147 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{190, 0}, {554, 368}} + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + XCDetailModule + Proportion + 554pt + + + Proportion + 368pt + + + MajorVersion + 3 + MinorVersion + 0 + Name + Breakpoints + ServiceClasses + + PBXSmartGroupTreeModule + XCDetailModule + + StatusbarIsVisible + 1 + TableOfContents + + 1CDDB66807F98D9800BB5817 + 1CDDB66907F98D9800BB5817 + 1CE0B1FE06471DED0097A5F4 + 1CA1AED706398EBD00589147 + + ToolbarConfiguration + xcode.toolbar.config.breakpointsV3 + WindowString + 315 424 744 409 0 0 1440 878 + WindowToolGUID + 1CDDB66807F98D9800BB5817 + WindowToolIsVisible + 1 + + + Identifier + windowTool.debugAnimator + Layout + + + Dock + + + Module + PBXNavigatorGroup + Proportion + 100% + + + Proportion + 100% + + + Name + Debug Visualizer + ServiceClasses + + PBXNavigatorGroup + + StatusbarIsVisible + 1 + ToolbarConfiguration + xcode.toolbar.config.debugAnimatorV3 + WindowString + 100 100 700 500 0 0 1280 1002 + + + Identifier + windowTool.bookmarks + Layout + + + Dock + + + Module + PBXBookmarksModule + Proportion + 100% + + + Proportion + 100% + + + Name + Bookmarks + ServiceClasses + + PBXBookmarksModule + + StatusbarIsVisible + 0 + WindowString + 538 42 401 187 0 0 1280 1002 + + + Identifier + windowTool.projectFormatConflicts + Layout + + + Dock + + + Module + XCProjectFormatConflictsModule + Proportion + 100% + + + Proportion + 100% + + + Name + Project Format Conflicts + ServiceClasses + + XCProjectFormatConflictsModule + + StatusbarIsVisible + 0 + WindowContentMinSize + 450 300 + WindowString + 50 850 472 307 0 0 1440 877 + + + Identifier + windowTool.classBrowser + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + OptionsSetName + Hierarchy, all classes + PBXProjectModuleGUID + 1CA6456E063B45B4001379D8 + PBXProjectModuleLabel + Class Browser - NSObject + + GeometryConfiguration + + ClassesFrame + {{0, 0}, {374, 96}} + ClassesTreeTableConfiguration + + PBXClassNameColumnIdentifier + 208 + PBXClassBookColumnIdentifier + 22 + + Frame + {{0, 0}, {630, 331}} + MembersFrame + {{0, 105}, {374, 395}} + MembersTreeTableConfiguration + + PBXMemberTypeIconColumnIdentifier + 22 + PBXMemberNameColumnIdentifier + 216 + PBXMemberTypeColumnIdentifier + 97 + PBXMemberBookColumnIdentifier + 22 + + PBXModuleWindowStatusBarHidden2 + 1 + RubberWindowFrame + 385 179 630 352 0 0 1440 878 + + Module + PBXClassBrowserModule + Proportion + 332pt + + + Proportion + 332pt + + + Name + Class Browser + ServiceClasses + + PBXClassBrowserModule + + StatusbarIsVisible + 0 + TableOfContents + + 1C0AD2AF069F1E9B00FABCE6 + 1C0AD2B0069F1E9B00FABCE6 + 1CA6456E063B45B4001379D8 + + ToolbarConfiguration + xcode.toolbar.config.classbrowser + WindowString + 385 179 630 352 0 0 1440 878 + WindowToolGUID + 1C0AD2AF069F1E9B00FABCE6 + WindowToolIsVisible + 0 + + + Identifier + windowTool.refactoring + IncludeInToolsMenu + 0 + Layout + + + Dock + + + BecomeActive + 1 + GeometryConfiguration + + Frame + {0, 0}, {500, 335} + RubberWindowFrame + {0, 0}, {500, 335} + + Module + XCRefactoringModule + Proportion + 100% + + + Proportion + 100% + + + Name + Refactoring + ServiceClasses + + XCRefactoringModule + + WindowString + 200 200 500 356 0 0 1920 1200 + + + + diff --git a/plugins/MacVST/kWoodRoom/kWoodRoom.xcodeproj/spiadmin.pbxuser b/plugins/MacVST/kWoodRoom/kWoodRoom.xcodeproj/spiadmin.pbxuser new file mode 100755 index 000000000..df947808e --- /dev/null +++ b/plugins/MacVST/kWoodRoom/kWoodRoom.xcodeproj/spiadmin.pbxuser @@ -0,0 +1,143 @@ +// !$*UTF8*$! +{ + 089C1669FE841209C02AAC07 /* Project object */ = { + activeBuildConfigurationName = Release; + activeTarget = 8D01CCC60486CAD60068D4B7 /* Gain */; + codeSenseManager = 91857D95148EF55400AAA11B /* Code sense */; + perUserDictionary = { + PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = { + PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; + PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; + PBXFileTableDataSourceColumnWidthsKey = ( + 20, + 829, + 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, + 789, + 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 = 345089498; + PBXWorkspaceStateSaveDate = 345089498; + }; + perUserProjectItems = { + 911C2A9D1491A5F600A430AF /* PBXTextBookmark */ = 911C2A9D1491A5F600A430AF /* PBXTextBookmark */; + 915DCCBB1491A5B8008574E6 /* PBXTextBookmark */ = 915DCCBB1491A5B8008574E6 /* PBXTextBookmark */; + }; + sourceControlManager = 91857D94148EF55400AAA11B /* Source Control */; + userBuildSettings = { + }; + }; + 2407DEB6089929BA00EB68BF /* Gain.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {992, 1768}}"; + sepNavSelRange = "{247, 0}"; + sepNavVisRange = "{0, 1657}"; + }; + }; + 245463B80991757100464AD3 /* Gain.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {992, 975}}"; + sepNavSelRange = "{1552, 0}"; + sepNavVisRange = "{796, 1857}"; + sepNavWindowFrame = "{{15, 465}, {750, 558}}"; + }; + }; + 24A2FF9A0F90D1DD003BB5A7 /* adelaymain.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {992, 488}}"; + sepNavSelRange = "{0, 0}"; + sepNavVisRange = "{0, 798}"; + }; + }; + 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {859, 19825}}"; + sepNavSelRange = "{10641, 0}"; + sepNavVisRange = "{10076, 1095}"; + }; + }; + 24D8286F09A914000093AEF8 /* GainProc.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {992, 482}}"; + sepNavSelRange = "{239, 0}"; + sepNavVisRange = "{0, 950}"; + }; + }; + 24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {992, 493}}"; + sepNavSelRange = "{249, 0}"; + sepNavVisRange = "{0, 249}"; + }; + }; + 8D01CCC60486CAD60068D4B7 /* Gain */ = { + activeExec = 0; + }; + 911C2A9D1491A5F600A430AF /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2407DEB6089929BA00EB68BF /* Gain.cpp */; + name = "Gain.cpp: 10"; + rLen = 0; + rLoc = 247; + rType = 0; + vrLen = 1657; + vrLoc = 0; + }; + 915DCCBB1491A5B8008574E6 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2407DEB6089929BA00EB68BF /* Gain.cpp */; + name = "Gain.cpp: 10"; + rLen = 0; + rLoc = 247; + rType = 0; + vrLen = 1625; + vrLoc = 0; + }; + 91857D94148EF55400AAA11B /* Source Control */ = { + isa = PBXSourceControlManager; + fallbackIsa = XCSourceControlManager; + isSCMEnabled = 0; + scmConfiguration = { + repositoryNamesForRoots = { + "" = ""; + }; + }; + }; + 91857D95148EF55400AAA11B /* Code sense */ = { + isa = PBXCodeSenseManager; + indexTemplatePath = ""; + }; +} diff --git a/plugins/MacVST/kWoodRoom/kWoodRoom.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme b/plugins/MacVST/kWoodRoom/kWoodRoom.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme new file mode 100755 index 000000000..8ee693f95 --- /dev/null +++ b/plugins/MacVST/kWoodRoom/kWoodRoom.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/MacVST/kWoodRoom/kWoodRoom.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist b/plugins/MacVST/kWoodRoom/kWoodRoom.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100755 index 000000000..5bccbcb4f --- /dev/null +++ b/plugins/MacVST/kWoodRoom/kWoodRoom.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,22 @@ + + + + + SchemeUserState + + Gain.xcscheme + + orderHint + 8 + + + SuppressBuildableAutocreation + + 8D01CCC60486CAD60068D4B7 + + primary + + + + + diff --git a/plugins/MacVST/kWoodRoom/kWoodRoom.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist b/plugins/MacVST/kWoodRoom/kWoodRoom.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100755 index 000000000..a7bdd62d4 --- /dev/null +++ b/plugins/MacVST/kWoodRoom/kWoodRoom.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,22 @@ + + + + + SchemeUserState + + «PROJECTNAME».xcscheme + + orderHint + 0 + + + SuppressBuildableAutocreation + + 8D01CCC60486CAD60068D4B7 + + primary + + + + + diff --git a/plugins/MacVST/kWoodRoom/kWoodRoom.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme b/plugins/MacVST/kWoodRoom/kWoodRoom.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme new file mode 100755 index 000000000..0df2de4a3 --- /dev/null +++ b/plugins/MacVST/kWoodRoom/kWoodRoom.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/MacVST/kWoodRoom/mac/Info.plist b/plugins/MacVST/kWoodRoom/mac/Info.plist new file mode 100755 index 000000000..87fb0ce4f --- /dev/null +++ b/plugins/MacVST/kWoodRoom/mac/Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + kWoodRoom + CFBundleIconFile + + CFBundleIdentifier + com.airwindows.kWoodRoom + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + BNDL + CFBundleSignature + Dthr + CFBundleVersion + 1.0 + CSResourcesFileMapped + + + diff --git a/plugins/MacVST/kWoodRoom/mac/PkgInfo b/plugins/MacVST/kWoodRoom/mac/PkgInfo new file mode 100755 index 000000000..19a9cf67e --- /dev/null +++ b/plugins/MacVST/kWoodRoom/mac/PkgInfo @@ -0,0 +1 @@ +BNDL???? \ No newline at end of file diff --git a/plugins/MacVST/kWoodRoom/mac/xcode_vst_prefix.h b/plugins/MacVST/kWoodRoom/mac/xcode_vst_prefix.h new file mode 100755 index 000000000..eaf4c0b4b --- /dev/null +++ b/plugins/MacVST/kWoodRoom/mac/xcode_vst_prefix.h @@ -0,0 +1,17 @@ +#define MAC 1 +#define MACX 1 + +#define USE_NAMESPACE 0 + +#define TARGET_API_MAC_CARBON 1 +#define USENAVSERVICES 1 + +#define __CF_USE_FRAMEWORK_INCLUDES__ + +#if __MWERKS__ +#define __NOEXTENSIONS__ +#endif + +#define QUARTZ 1 + +#include \ No newline at end of file diff --git a/plugins/MacVST/kWoodRoom/source/kWoodRoom.cpp b/plugins/MacVST/kWoodRoom/source/kWoodRoom.cpp new file mode 100755 index 000000000..07ea37b23 --- /dev/null +++ b/plugins/MacVST/kWoodRoom/source/kWoodRoom.cpp @@ -0,0 +1,227 @@ +/* ======================================== + * kWoodRoom - kWoodRoom.h + * Copyright (c) airwindows, Airwindows uses the MIT license + * ======================================== */ + +#ifndef __kWoodRoom_H +#include "kWoodRoom.h" +#endif + +AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new kWoodRoom(audioMaster);} + +kWoodRoom::kWoodRoom(audioMasterCallback audioMaster) : + AudioEffectX(audioMaster, kNumPrograms, kNumParameters) +{ + A = 0.5; + B = 0.5; + C = 0.25; + D = 0.5; + E = 0.5; + F = 0.5; + + for(int x = 0; x < d3A+2; x++) {a3AL[x] = 0.0; a3AR[x] = 0.0;} + for(int x = 0; x < d3B+2; x++) {a3BL[x] = 0.0; a3BR[x] = 0.0;} + for(int x = 0; x < d3C+2; x++) {a3CL[x] = 0.0; a3CR[x] = 0.0;} + for(int x = 0; x < d3D+2; x++) {a3DL[x] = 0.0; a3DR[x] = 0.0;} + for(int x = 0; x < d3E+2; x++) {a3EL[x] = 0.0; a3ER[x] = 0.0;} + for(int x = 0; x < d3F+2; x++) {a3FL[x] = 0.0; a3FR[x] = 0.0;} + for(int x = 0; x < d3G+2; x++) {a3GL[x] = 0.0; a3GR[x] = 0.0;} + for(int x = 0; x < d3H+2; x++) {a3HL[x] = 0.0; a3HR[x] = 0.0;} + for(int x = 0; x < d3I+2; x++) {a3IL[x] = 0.0; a3IR[x] = 0.0;} + c3AL = c3BL = c3CL = c3DL = c3EL = c3FL = c3GL = c3HL = c3IL = 1; + c3AR = c3BR = c3CR = c3DR = c3ER = c3FR = c3GR = c3HR = c3IR = 1; + + for(int x = 0; x < d6A+2; x++) {a6AL[x] = 0.0; a6AR[x] = 0.0;} + for(int x = 0; x < d6B+2; x++) {a6BL[x] = 0.0; a6BR[x] = 0.0;} + for(int x = 0; x < d6C+2; x++) {a6CL[x] = 0.0; a6CR[x] = 0.0;} + for(int x = 0; x < d6D+2; x++) {a6DL[x] = 0.0; a6DR[x] = 0.0;} + for(int x = 0; x < d6E+2; x++) {a6EL[x] = 0.0; a6ER[x] = 0.0;} + for(int x = 0; x < d6F+2; x++) {a6FL[x] = 0.0; a6FR[x] = 0.0;} + for(int x = 0; x < d6G+2; x++) {a6GL[x] = 0.0; a6GR[x] = 0.0;} + for(int x = 0; x < d6H+2; x++) {a6HL[x] = 0.0; a6HR[x] = 0.0;} + for(int x = 0; x < d6I+2; x++) {a6IL[x] = 0.0; a6IR[x] = 0.0;} + for(int x = 0; x < d6J+2; x++) {a6JL[x] = 0.0; a6JR[x] = 0.0;} + for(int x = 0; x < d6K+2; x++) {a6KL[x] = 0.0; a6KR[x] = 0.0;} + for(int x = 0; x < d6L+2; x++) {a6LL[x] = 0.0; a6LR[x] = 0.0;} + for(int x = 0; x < d6M+2; x++) {a6ML[x] = 0.0; a6MR[x] = 0.0;} + for(int x = 0; x < d6N+2; x++) {a6NL[x] = 0.0; a6NR[x] = 0.0;} + for(int x = 0; x < d6O+2; x++) {a6OL[x] = 0.0; a6OR[x] = 0.0;} + for(int x = 0; x < d6P+2; x++) {a6PL[x] = 0.0; a6PR[x] = 0.0;} + for(int x = 0; x < d6Q+2; x++) {a6QL[x] = 0.0; a6QR[x] = 0.0;} + for(int x = 0; x < d6R+2; x++) {a6RL[x] = 0.0; a6RR[x] = 0.0;} + for(int x = 0; x < d6S+2; x++) {a6SL[x] = 0.0; a6SR[x] = 0.0;} + for(int x = 0; x < d6T+2; x++) {a6TL[x] = 0.0; a6TR[x] = 0.0;} + for(int x = 0; x < d6U+2; x++) {a6UL[x] = 0.0; a6UR[x] = 0.0;} + for(int x = 0; x < d6V+2; x++) {a6VL[x] = 0.0; a6VR[x] = 0.0;} + for(int x = 0; x < d6W+2; x++) {a6WL[x] = 0.0; a6WR[x] = 0.0;} + for(int x = 0; x < d6X+2; x++) {a6XL[x] = 0.0; a6XR[x] = 0.0;} + for(int x = 0; x < d6Y+2; x++) {a6YL[x] = 0.0; a6YR[x] = 0.0;} + for(int x = 0; x < d6ZA+2; x++) {a6ZAL[x] = 0.0; a6ZAR[x] = 0.0;} + for(int x = 0; x < d6ZB+2; x++) {a6ZBL[x] = 0.0; a6ZBR[x] = 0.0;} + for(int x = 0; x < d6ZC+2; x++) {a6ZCL[x] = 0.0; a6ZCR[x] = 0.0;} + for(int x = 0; x < d6ZD+2; x++) {a6ZDL[x] = 0.0; a6ZDR[x] = 0.0;} + for(int x = 0; x < d6ZE+2; x++) {a6ZEL[x] = 0.0; a6ZER[x] = 0.0;} + for(int x = 0; x < d6ZF+2; x++) {a6ZFL[x] = 0.0; a6ZFR[x] = 0.0;} + for(int x = 0; x < d6ZG+2; x++) {a6ZGL[x] = 0.0; a6ZGR[x] = 0.0;} + for(int x = 0; x < d6ZH+2; x++) {a6ZHL[x] = 0.0; a6ZHR[x] = 0.0;} + for(int x = 0; x < d6ZI+2; x++) {a6ZIL[x] = 0.0; a6ZIR[x] = 0.0;} + for(int x = 0; x < d6ZJ+2; x++) {a6ZJL[x] = 0.0; a6ZJR[x] = 0.0;} + for(int x = 0; x < d6ZK+2; x++) {a6ZKL[x] = 0.0; a6ZKR[x] = 0.0;} + c6AL = c6BL = c6CL = c6DL = c6EL = c6FL = c6GL = c6HL = c6IL = 1; + c6JL = c6KL = c6LL = c6ML = c6NL = c6OL = c6PL = c6QL = c6RL = 1; + c6SL = c6TL = c6UL = c6VL = c6WL = c6XL = c6YL = c6ZAL = c6ZBL = 1; + c6ZCL = c6ZDL = c6ZEL = c6ZFL = c6ZGL = c6ZHL = c6ZIL = c6ZJL = c6ZKL = 1; + c6AR = c6BR = c6CR = c6DR = c6ER = c6FR = c6GR = c6HR = c6IR = 1; + c6JR = c6KR = c6LR = c6MR = c6NR = c6OR = c6PR = c6QR = c6RR = 1; + c6SR = c6TR = c6UR = c6VR = c6WR = c6XR = c6YR = c6ZAR = c6ZBR = 1; + c6ZCR = c6ZDR = c6ZER = c6ZFR = c6ZGR = c6ZHR = c6ZIR = c6ZJR = c6ZKR = 1; + f6AL = f6BL = f6CL = f6DL = f6EL = f6FL = 0.0; + f6FR = f6LR = f6RR = f6XR = f6ZER = f6ZKR = 0.0; + avg6L = avg6R = 0.0; + + for (int x = 0; x < bez_total; x++) { + bez[x] = 0.0; + bezF[x] = 0.0; + } + bez[bez_cycle] = 1.0; + bezF[bez_cycle] = 1.0; + + fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX; + fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX; + //this is reset: values being initialized only once. Startup values, whatever they are. + + _canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect. + _canDo.insert("plugAsSend"); // plug-in can be used as a send effect. + _canDo.insert("x2in2out"); + setNumInputs(kNumInputs); + setNumOutputs(kNumOutputs); + setUniqueID(kUniqueId); + canProcessReplacing(); // supports output replacing + canDoubleReplacing(); // supports double precision processing + programsAreChunks(true); + vst_strncpy (_programName, "Default", kVstMaxProgNameLen); // default program name +} + +kWoodRoom::~kWoodRoom() {} +VstInt32 kWoodRoom::getVendorVersion () {return 1000;} +void kWoodRoom::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);} +void kWoodRoom::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 kWoodRoom::getChunk (void** data, bool isPreset) +{ + float *chunkData = (float *)calloc(kNumParameters, sizeof(float)); + chunkData[0] = A; + chunkData[1] = B; + chunkData[2] = C; + chunkData[3] = D; + chunkData[4] = E; + chunkData[5] = F; + /* Note: The way this is set up, it will break if you manage to save settings on an Intel + machine and load them on a PPC Mac. However, it's fine if you stick to the machine you + started with. */ + + *data = chunkData; + return kNumParameters * sizeof(float); +} + +VstInt32 kWoodRoom::setChunk (void* data, VstInt32 byteSize, bool isPreset) +{ + float *chunkData = (float *)data; + A = pinParameter(chunkData[0]); + B = pinParameter(chunkData[1]); + C = pinParameter(chunkData[2]); + D = pinParameter(chunkData[3]); + E = pinParameter(chunkData[4]); + F = pinParameter(chunkData[5]); + /* We're ignoring byteSize as we found it to be a filthy liar */ + + /* calculate any other fields you need here - you could copy in + code from setParameter() here. */ + return 0; +} + +void kWoodRoom::setParameter(VstInt32 index, float value) { + switch (index) { + case kParamA: A = value; break; + case kParamB: B = value; break; + case kParamC: C = value; break; + case kParamD: D = value; break; + case kParamE: E = value; break; + case kParamF: F = value; break; + default: throw; // unknown parameter, shouldn't happen! + } +} + +float kWoodRoom::getParameter(VstInt32 index) { + switch (index) { + case kParamA: return A; break; + case kParamB: return B; break; + case kParamC: return C; break; + case kParamD: return D; break; + case kParamE: return E; break; + case kParamF: return F; break; + default: break; // unknown parameter, shouldn't happen! + } return 0.0; //we only need to update the relevant name, this is simple to manage +} + +void kWoodRoom::getParameterName(VstInt32 index, char *text) { + switch (index) { + case kParamA: vst_strncpy (text, "Regen", kVstMaxParamStrLen); break; + case kParamB: vst_strncpy (text, "Derez", kVstMaxParamStrLen); break; + case kParamC: vst_strncpy (text, "Filter", kVstMaxParamStrLen); break; + case kParamD: vst_strncpy (text, "EarlyRF", kVstMaxParamStrLen); break; + case kParamE: vst_strncpy (text, "Positin", kVstMaxParamStrLen); break; + case kParamF: vst_strncpy (text, "Dry/Wet", kVstMaxParamStrLen); break; + default: break; // unknown parameter, shouldn't happen! + } //this is our labels for displaying in the VST host +} + +void kWoodRoom::getParameterDisplay(VstInt32 index, char *text) { + switch (index) { + case kParamA: float2string (A, text, kVstMaxParamStrLen); break; + case kParamB: float2string (B, text, kVstMaxParamStrLen); break; + case kParamC: float2string (C, text, kVstMaxParamStrLen); break; + case kParamD: float2string (D, text, kVstMaxParamStrLen); break; + case kParamE: float2string (E, text, kVstMaxParamStrLen); break; + case kParamF: float2string (F, text, kVstMaxParamStrLen); break; + default: break; // unknown parameter, shouldn't happen! + } //this displays the values and handles 'popups' where it's discrete choices +} + +void kWoodRoom::getParameterLabel(VstInt32 index, char *text) { + switch (index) { + case kParamA: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamB: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamC: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamD: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamE: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamF: vst_strncpy (text, "", kVstMaxParamStrLen); break; + default: break; // unknown parameter, shouldn't happen! + } +} + +VstInt32 kWoodRoom::canDo(char *text) +{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know + +bool kWoodRoom::getEffectName(char* name) { + vst_strncpy(name, "kWoodRoom", kVstMaxProductStrLen); return true; +} + +VstPlugCategory kWoodRoom::getPlugCategory() {return kPlugCategEffect;} + +bool kWoodRoom::getProductString(char* text) { + vst_strncpy (text, "airwindows kWoodRoom", kVstMaxProductStrLen); return true; +} + +bool kWoodRoom::getVendorString(char* text) { + vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true; +} diff --git a/plugins/MacVST/kWoodRoom/source/kWoodRoom.h b/plugins/MacVST/kWoodRoom/source/kWoodRoom.h new file mode 100755 index 000000000..184ae2e48 --- /dev/null +++ b/plugins/MacVST/kWoodRoom/source/kWoodRoom.h @@ -0,0 +1,209 @@ +/* ======================================== + * kWoodRoom - kWoodRoom.h + * Created 8/12/11 by SPIAdmin + * Copyright (c) Airwindows, Airwindows uses the MIT license + * ======================================== */ + +#ifndef __kWoodRoom_H +#define __kWoodRoom_H + +#ifndef __audioeffect__ +#include "audioeffectx.h" +#endif + +#include +#include +#include + +enum { + kParamA =0, + kParamB =1, + kParamC =2, + kParamD =3, + kParamE =4, + kParamF =5, + kNumParameters = 6 +}; // + +const int d3A = 581; const int d3B = 831; const int d3C = 832; +const int d3D = 574; const int d3E = 598; const int d3F = 685; +const int d3G = 499; const int d3H = 573; const int d3I = 655; +#define THREEBYTHREE true +const int d6A = 154; const int d6B = 832; const int d6C = 109; const int d6D = 685; const int d6E = 33; const int d6F = 12; const int d6G = 27; const int d6H = 30; const int d6I = 339; const int d6J = 499; const int d6K = 296; const int d6L = 169; const int d6M = 169; const int d6N = 831; const int d6O = 15; const int d6P = 411; const int d6Q = 238; const int d6R = 68; const int d6S = 0; const int d6T = 8; const int d6U = 655; const int d6V = 581; const int d6W = 465; const int d6X = 173; const int d6Y = 3; const int d6ZA = 96; const int d6ZB = 573; const int d6ZC = 243; const int d6ZD = 30; const int d6ZE = 188; const int d6ZF = 291; const int d6ZG = 11; const int d6ZH = 372; const int d6ZI = 574; const int d6ZJ = 100; const int d6ZK = 598; //1 to 90 ms, 249 seat club +#define SIXBYSIX true // 249seat154832109x6 on 2025-10-31 kWoodRoom +const int early[] = {0, 3, 8, 11, 12, 15, 27, 30, 30, 33, 68, 96, 100, 109, 154, 169, 169, 173, 188, 238, 243, 291, 296, 339, 372, 411, 465, 499, 573, 574, 581, 598, 655, 685, 831, 832}; + +const int kNumPrograms = 0; +const int kNumInputs = 2; +const int kNumOutputs = 2; +const unsigned long kUniqueId = 'ksta'; //Change this to what the AU identity is! + +class kWoodRoom : + public AudioEffectX +{ +public: + kWoodRoom(audioMasterCallback audioMaster); + ~kWoodRoom(); + virtual bool getEffectName(char* name); // The plug-in name + virtual VstPlugCategory getPlugCategory(); // The general category for the plug-in + virtual bool getProductString(char* text); // This is a unique plug-in string provided by Steinberg + virtual bool getVendorString(char* text); // Vendor info + virtual VstInt32 getVendorVersion(); // Version number + virtual void processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames); + virtual void processDoubleReplacing (double** inputs, double** outputs, VstInt32 sampleFrames); + virtual void getProgramName(char *name); // read the name from the host + virtual void setProgramName(char *name); // changes the name of the preset displayed in the host + virtual VstInt32 getChunk (void** data, bool isPreset); + virtual VstInt32 setChunk (void* data, VstInt32 byteSize, bool isPreset); + virtual float getParameter(VstInt32 index); // get the parameter value at the specified index + virtual void setParameter(VstInt32 index, float value); // set the parameter at index to value + virtual void getParameterLabel(VstInt32 index, char *text); // label for the parameter (eg dB) + virtual void getParameterName(VstInt32 index, char *text); // name of the parameter + virtual void getParameterDisplay(VstInt32 index, char *text); // text description of the current value + virtual VstInt32 canDo(char *text); +private: + char _programName[kVstMaxProgNameLen + 1]; + std::set< std::string > _canDo; + + float A; + float B; + float C; + float D; + float E; + float F; + + double a3AL[d3A+5]; + double a3BL[d3B+5]; + double a3CL[d3C+5]; + double a3DL[d3D+5]; + double a3EL[d3E+5]; + double a3FL[d3F+5]; + double a3GL[d3G+5]; + double a3HL[d3H+5]; + double a3IL[d3I+5]; + double a3AR[d3A+5]; + double a3BR[d3B+5]; + double a3CR[d3C+5]; + double a3DR[d3D+5]; + double a3ER[d3E+5]; + double a3FR[d3F+5]; + double a3GR[d3G+5]; + double a3HR[d3H+5]; + double a3IR[d3I+5]; + int c3AL,c3AR,c3BL,c3BR,c3CL,c3CR,c3DL,c3DR,c3EL,c3ER; + int c3FL,c3FR,c3GL,c3GR,c3HL,c3HR,c3IL,c3IR; + + double a6AL[d6A+5]; + double a6BL[d6B+5]; + double a6CL[d6C+5]; + double a6DL[d6D+5]; + double a6EL[d6E+5]; + double a6FL[d6F+5]; + double a6GL[d6G+5]; + double a6HL[d6H+5]; + double a6IL[d6I+5]; + double a6JL[d6J+5]; + double a6KL[d6K+5]; + double a6LL[d6L+5]; + double a6ML[d6M+5]; + double a6NL[d6N+5]; + double a6OL[d6O+5]; + double a6PL[d6P+5]; + double a6QL[d6Q+5]; + double a6RL[d6R+5]; + double a6SL[d6S+5]; + double a6TL[d6T+5]; + double a6UL[d6U+5]; + double a6VL[d6V+5]; + double a6WL[d6W+5]; + double a6XL[d6X+5]; + double a6YL[d6Y+5]; + double a6ZAL[d6ZA+5]; + double a6ZBL[d6ZB+5]; + double a6ZCL[d6ZC+5]; + double a6ZDL[d6ZD+5]; + double a6ZEL[d6ZE+5]; + double a6ZFL[d6ZF+5]; + double a6ZGL[d6ZG+5]; + double a6ZHL[d6ZH+5]; + double a6ZIL[d6ZI+5]; + double a6ZJL[d6ZJ+5]; + double a6ZKL[d6ZK+5]; + double a6AR[d6A+5]; + double a6BR[d6B+5]; + double a6CR[d6C+5]; + double a6DR[d6D+5]; + double a6ER[d6E+5]; + double a6FR[d6F+5]; + double a6GR[d6G+5]; + double a6HR[d6H+5]; + double a6IR[d6I+5]; + double a6JR[d6J+5]; + double a6KR[d6K+5]; + double a6LR[d6L+5]; + double a6MR[d6M+5]; + double a6NR[d6N+5]; + double a6OR[d6O+5]; + double a6PR[d6P+5]; + double a6QR[d6Q+5]; + double a6RR[d6R+5]; + double a6SR[d6S+5]; + double a6TR[d6T+5]; + double a6UR[d6U+5]; + double a6VR[d6V+5]; + double a6WR[d6W+5]; + double a6XR[d6X+5]; + double a6YR[d6Y+5]; + double a6ZAR[d6ZA+5]; + double a6ZBR[d6ZB+5]; + double a6ZCR[d6ZC+5]; + double a6ZDR[d6ZD+5]; + double a6ZER[d6ZE+5]; + double a6ZFR[d6ZF+5]; + double a6ZGR[d6ZG+5]; + double a6ZHR[d6ZH+5]; + double a6ZIR[d6ZI+5]; + double a6ZJR[d6ZJ+5]; + double a6ZKR[d6ZK+5]; + int c6AL,c6BL,c6CL,c6DL,c6EL,c6FL,c6GL,c6HL,c6IL; + int c6JL,c6KL,c6LL,c6ML,c6NL,c6OL,c6PL,c6QL,c6RL; + int c6SL,c6TL,c6UL,c6VL,c6WL,c6XL,c6YL,c6ZAL,c6ZBL; + int c6ZCL,c6ZDL,c6ZEL,c6ZFL,c6ZGL,c6ZHL,c6ZIL,c6ZJL,c6ZKL; + int c6AR,c6BR,c6CR,c6DR,c6ER,c6FR,c6GR,c6HR,c6IR; + int c6JR,c6KR,c6LR,c6MR,c6NR,c6OR,c6PR,c6QR,c6RR; + int c6SR,c6TR,c6UR,c6VR,c6WR,c6XR,c6YR,c6ZAR,c6ZBR; + int c6ZCR,c6ZDR,c6ZER,c6ZFR,c6ZGR,c6ZHR,c6ZIR,c6ZJR,c6ZKR; + double f6AL,f6BL,f6CL,f6DL,f6EL,f6FL; + double f6FR,f6LR,f6RR,f6XR,f6ZER,f6ZKR; + double avg6L,avg6R; + + enum { + bez_AL, + bez_AR, + bez_BL, + bez_BR, + bez_CL, + bez_CR, + bez_InL, + bez_InR, + bez_UnInL, + bez_UnInR, + bez_SampL, + bez_SampR, + bez_AvgInSampL, + bez_AvgInSampR, + bez_AvgOutSampL, + bez_AvgOutSampR, + bez_cycle, + bez_total + }; //the new undersampling. bez signifies the bezier curve reconstruction + double bez[bez_total]; + + double bezF[bez_total]; + + uint32_t fpdL; + uint32_t fpdR; + //default stuff +}; + +#endif diff --git a/plugins/MacVST/kWoodRoom/source/kWoodRoomProc.cpp b/plugins/MacVST/kWoodRoom/source/kWoodRoomProc.cpp new file mode 100755 index 000000000..0dc8087f4 --- /dev/null +++ b/plugins/MacVST/kWoodRoom/source/kWoodRoomProc.cpp @@ -0,0 +1,1032 @@ +/* ======================================== + * kWoodRoom - kWoodRoom.h + * Copyright (c) airwindows, Airwindows uses the MIT license + * ======================================== */ + +#ifndef __kWoodRoom_H +#include "kWoodRoom.h" +#endif + +void kWoodRoom::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(); + + double fdb6ck = (0.0009765625+0.0009765625+0.001953125)*0.3333333; + double reg6n = (1.0-pow(1.0-A,1.618033988749894))*fdb6ck; + //start this but pad it in the loop by volume of output? + + double derez = B*2.0; + bool stepped = true; // Revised Bezier Undersampling + if (derez > 1.0) { // has full rez at center, stepped + stepped = false; // to left, continuous to right + derez = 1.0-(derez-1.0); + } //if it's set up like that it's the revised algorithm + derez = fmin(fmax(derez/overallscale,0.0005),1.0); + int bezFraction = (int)(1.0/derez); + double bezTrim = (double)bezFraction/(bezFraction+1.0); + if (stepped) { //this hard-locks derez to exact subdivisions of 1.0 + derez = 1.0 / bezFraction; + bezTrim = 1.0-(derez*bezTrim); + } else { //this makes it match the 1.0 case using stepped + derez /= (2.0/pow(overallscale,0.5-((overallscale-1.0)*0.0375))); + bezTrim = 1.0-pow(derez*0.5,1.0/(derez*0.5)); + } //the revision more accurately connects the bezier curves + + double derezFreq = C*2.0; + bool steppedFreq = true; // Revised Bezier Undersampling + if (derezFreq > 1.0) { // has full rez at center, stepped + steppedFreq = false; // to left, continuous to right + derezFreq = 1.0-(derezFreq-1.0); + } //if it's set up like that it's the revised algorithm + derezFreq = fmin(fmax(derezFreq,0.0005),1.0); //note: no overallscale, already inside undersampling + int bezFreqFraction = (int)(1.0/derezFreq); + double bezFreqTrim = (double)bezFreqFraction/(bezFreqFraction+1.0); + if (steppedFreq) { //this hard-locks derez to exact subdivisions of 1.0 + derezFreq = 1.0 / bezFreqFraction; + bezFreqTrim = 1.0-(derezFreq*bezFreqTrim); + } else { //this makes it match the 1.0 case using stepped + bezFreqTrim = 1.0-pow(derezFreq*0.5,1.0/(derezFreq*0.5)); + } //the revision more accurately connects the bezier curves + + double earlyLoudness = D*2.0; + int start = (int)(E * 27.0); + int ld3G = early[start]; + int ld3H = early[start+1]; + int ld3D = early[start+2]; + int ld3A = early[start+3]; + int ld3E = early[start+4]; + int ld3I = early[start+5]; + int ld3F = early[start+6]; + int ld3B = early[start+7]; + int ld3C = early[start+8]; + double wet = F; + + while (--sampleFrames >= 0) + { + double inputSampleL = *in1; + double inputSampleR = *in2; + if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17; + if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17; + double drySampleL = inputSampleL; + double drySampleR = inputSampleR; + + bez[bez_cycle] += derez; + bez[bez_SampL] += ((inputSampleL+bez[bez_InL]) * derez); + bez[bez_SampR] += ((inputSampleR+bez[bez_InR]) * derez); + bez[bez_InL] = inputSampleL; bez[bez_InR] = inputSampleR; + if (bez[bez_cycle] > 1.0) { //hit the end point and we do a reverb sample + if (stepped) bez[bez_cycle] = 0.0; + else bez[bez_cycle] -= 1.0; + + inputSampleL = (bez[bez_SampL]+bez[bez_AvgInSampL])*0.5; + bez[bez_AvgInSampL] = bez[bez_SampL]; + inputSampleR = (bez[bez_SampR]+bez[bez_AvgInSampR])*0.5; + bez[bez_AvgInSampR] = bez[bez_SampR]; + + a3AL[c3AL] = inputSampleL;// + (f3AL * reg3n); + a3BL[c3BL] = inputSampleL;// + (f3BL * reg3n); + a3CL[c3CL] = inputSampleL;// + (f3CL * reg3n); + + a3CR[c3CR] = inputSampleR;// + (f3CR * reg3n); + a3FR[c3FR] = inputSampleR;// + (f3FR * reg3n); + a3IR[c3IR] = inputSampleR;// + (f3IR * reg3n); + + c3AL++; if (c3AL < 0 || c3AL > ld3A) c3AL = 0; + c3BL++; if (c3BL < 0 || c3BL > ld3B) c3BL = 0; + c3CL++; if (c3CL < 0 || c3CL > ld3C) c3CL = 0; + c3CR++; if (c3CR < 0 || c3CR > ld3C) c3CR = 0; + c3FR++; if (c3FR < 0 || c3FR > ld3F) c3FR = 0; + c3IR++; if (c3IR < 0 || c3IR > ld3I) c3IR = 0; + + double o3AL = a3AL[c3AL-((c3AL > ld3A)?c3AL+1:0)]; + double o3BL = a3BL[c3BL-((c3BL > ld3B)?c3BL+1:0)]; + double o3CL = a3CL[c3CL-((c3CL > ld3C)?c3CL+1:0)]; + double o3CR = a3CR[c3CR-((c3CR > ld3C)?c3CR+1:0)]; + double o3FR = a3FR[c3FR-((c3FR > ld3F)?c3FR+1:0)]; + double o3IR = a3IR[c3IR-((c3IR > ld3I)?c3IR+1:0)]; + + a3DL[c3DL] = (((o3BL + o3CL) * -2.0) + o3AL); + a3EL[c3EL] = (((o3AL + o3CL) * -2.0) + o3BL); + a3FL[c3FL] = (((o3AL + o3BL) * -2.0) + o3CL); + a3BR[c3BR] = (((o3FR + o3IR) * -2.0) + o3CR); + a3ER[c3ER] = (((o3CR + o3IR) * -2.0) + o3FR); + a3HR[c3HR] = (((o3CR + o3FR) * -2.0) + o3IR); + + c3DL++; if (c3DL < 0 || c3DL > ld3D) c3DL = 0; + c3EL++; if (c3EL < 0 || c3EL > ld3E) c3EL = 0; + c3FL++; if (c3FL < 0 || c3FL > ld3F) c3FL = 0; + c3BR++; if (c3BR < 0 || c3BR > ld3B) c3BR = 0; + c3ER++; if (c3ER < 0 || c3ER > ld3E) c3ER = 0; + c3HR++; if (c3HR < 0 || c3HR > ld3H) c3HR = 0; + + double o3DL = a3DL[c3DL-((c3DL > ld3D)?c3DL+1:0)]; + double o3EL = a3EL[c3EL-((c3EL > ld3E)?c3EL+1:0)]; + double o3FL = a3FL[c3FL-((c3FL > ld3F)?c3FL+1:0)]; + double o3BR = a3BR[c3BR-((c3BR > ld3B)?c3BR+1:0)]; + double o3ER = a3ER[c3ER-((c3ER > ld3E)?c3ER+1:0)]; + double o3HR = a3HR[c3HR-((c3HR > ld3H)?c3HR+1:0)]; + + a3GL[c3GL] = (((o3EL + o3FL) * -2.0) + o3DL); + a3HL[c3HL] = (((o3DL + o3FL) * -2.0) + o3EL); + a3IL[c3IL] = (((o3DL + o3EL) * -2.0) + o3FL); + a3AR[c3AR] = (((o3ER + o3HR) * -2.0) + o3BR); + a3DR[c3DR] = (((o3BR + o3HR) * -2.0) + o3ER); + a3GR[c3GR] = (((o3BR + o3ER) * -2.0) + o3HR); + + c3GL++; if (c3GL < 0 || c3GL > ld3G) c3GL = 0; + c3HL++; if (c3HL < 0 || c3HL > ld3H) c3HL = 0; + c3IL++; if (c3IL < 0 || c3IL > ld3I) c3IL = 0; + c3AR++; if (c3AR < 0 || c3AR > ld3A) c3AR = 0; + c3DR++; if (c3DR < 0 || c3DR > ld3D) c3DR = 0; + c3GR++; if (c3GR < 0 || c3GR > ld3G) c3GR = 0; + + double o3GL = a3GL[c3GL-((c3GL > ld3G)?c3GL+1:0)]; + double o3HL = a3HL[c3HL-((c3HL > ld3H)?c3HL+1:0)]; + double o3IL = a3IL[c3IL-((c3IL > ld3I)?c3IL+1:0)]; + double o3AR = a3AR[c3AR-((c3AR > ld3A)?c3AR+1:0)]; + double o3DR = a3DR[c3DR-((c3DR > ld3D)?c3DR+1:0)]; + double o3GR = a3GR[c3GR-((c3GR > ld3G)?c3GR+1:0)]; + + double inputSampleL = (o3GL + o3HL + o3IL)*0.03125; + double inputSampleR = (o3AR + o3DR + o3GR)*0.03125; + + bezF[bez_cycle] += derezFreq; + bezF[bez_SampL] += ((inputSampleL+bezF[bez_InL]) * derezFreq); + bezF[bez_SampR] += ((inputSampleL+bezF[bez_InR]) * derezFreq); + bezF[bez_InL] = inputSampleL; bezF[bez_InR] = inputSampleR; + if (bezF[bez_cycle] > 1.0) { //hit the end point and we do a filter sample + if (steppedFreq) bezF[bez_cycle] = 0.0; + else bezF[bez_cycle] -= 1.0; + bezF[bez_CL] = bezF[bez_BL]; + bezF[bez_BL] = bezF[bez_AL]; + bezF[bez_AL] = (bezF[bez_SampL]+bezF[bez_AvgInSampL])*0.5; + bezF[bez_AvgInSampL] = bezF[bez_SampL]; bezF[bez_SampL] = 0.0; + bezF[bez_CR] = bezF[bez_BR]; + bezF[bez_BR] = bezF[bez_AR]; + bezF[bez_AR] = (bezF[bez_SampR]+bezF[bez_AvgInSampR])*0.5; + bezF[bez_AvgInSampR] = bezF[bez_SampR]; bezF[bez_SampR] = 0.0; + } + double X = bezF[bez_cycle]*bezFreqTrim; + double CBLfreq = (bezF[bez_CL]*(1.0-X))+(bezF[bez_BL]*X); + double BALfreq = (bezF[bez_BL]*(1.0-X))+(bezF[bez_AL]*X); + double CBALfreq = (bezF[bez_BL]+(CBLfreq*(1.0-X))+(BALfreq*X))*0.125; + double CBRfreq = (bezF[bez_CR]*(1.0-X))+(bezF[bez_BR]*X); + double BARfreq = (bezF[bez_BR]*(1.0-X))+(bezF[bez_AR]*X); + double CBARfreq = (bezF[bez_BR]+(CBRfreq*(1.0-X))+(BARfreq*X))*0.125; + inputSampleL = CBALfreq+bezF[bez_AvgOutSampL]; + bezF[bez_AvgOutSampL] = CBALfreq; + inputSampleR = CBARfreq+bezF[bez_AvgOutSampR]; + bezF[bez_AvgOutSampR] = CBARfreq; + + double earlyReflectionL = inputSampleL; + double earlyReflectionR = inputSampleR; //kWoodRoom has filtered early reflections + + a6AL[c6AL] = inputSampleL + (f6BL * reg6n); + a6BL[c6BL] = inputSampleL + (f6CL * reg6n); + a6CL[c6CL] = inputSampleL + (f6DL * reg6n); + a6DL[c6DL] = inputSampleL + (f6EL * reg6n); + a6EL[c6EL] = inputSampleL + (f6FL * reg6n); + a6FL[c6FL] = inputSampleL + (f6AL * reg6n); + + c6AL++; if (c6AL < 0 || c6AL > d6A) c6AL = 0; + c6BL++; if (c6BL < 0 || c6BL > d6B) c6BL = 0; + c6CL++; if (c6CL < 0 || c6CL > d6C) c6CL = 0; + c6DL++; if (c6DL < 0 || c6DL > d6D) c6DL = 0; + c6EL++; if (c6EL < 0 || c6EL > d6E) c6EL = 0; + c6FL++; if (c6FL < 0 || c6FL > d6F) c6FL = 0; + + double o6AL = a6AL[c6AL-((c6AL > d6A)?d6A+1:0)]; + double o6BL = a6BL[c6BL-((c6BL > d6B)?d6B+1:0)]; + double o6CL = a6CL[c6CL-((c6CL > d6C)?d6C+1:0)]; + double o6DL = a6DL[c6DL-((c6DL > d6D)?d6D+1:0)]; + double o6EL = a6EL[c6EL-((c6EL > d6E)?d6E+1:0)]; + double o6FL = a6FL[c6FL-((c6FL > d6F)?d6F+1:0)]; + + a6FR[c6FR] = inputSampleR + (f6LR * reg6n); + a6LR[c6LR] = inputSampleR + (f6RR * reg6n); + a6RR[c6RR] = inputSampleR + (f6XR * reg6n); + a6XR[c6XR] = inputSampleR + (f6ZER * reg6n); + a6ZER[c6ZER] = inputSampleR + (f6ZKR * reg6n); + a6ZKR[c6ZKR] = inputSampleR + (f6FR * reg6n); + + c6FR++; if (c6FR < 0 || c6FR > d6F) c6FR = 0; + c6LR++; if (c6LR < 0 || c6LR > d6L) c6LR = 0; + c6RR++; if (c6RR < 0 || c6RR > d6R) c6RR = 0; + c6XR++; if (c6XR < 0 || c6XR > d6X) c6XR = 0; + c6ZER++; if (c6ZER < 0 || c6ZER > d6ZE) c6ZER = 0; + c6ZKR++; if (c6ZKR < 0 || c6ZKR > d6ZK) c6ZKR = 0; + + double o6FR = a6FR[c6FR-((c6FR > d6F)?d6F+1:0)]; + double o6LR = a6LR[c6LR-((c6LR > d6L)?d6L+1:0)]; + double o6RR = a6RR[c6RR-((c6RR > d6R)?d6R+1:0)]; + double o6XR = a6XR[c6XR-((c6XR > d6X)?d6X+1:0)]; + double o6ZER = a6ZER[c6ZER-((c6ZER > d6ZE)?d6ZE+1:0)]; + double o6ZKR = a6ZKR[c6ZKR-((c6ZKR > d6ZK)?d6ZK+1:0)]; + + //-------- one + + a6GL[c6GL] = ((o6AL*2.0) - (o6BL + o6CL + o6DL + o6EL + o6FL)); + a6HL[c6HL] = ((o6BL*2.0) - (o6AL + o6CL + o6DL + o6EL + o6FL)); + a6IL[c6IL] = ((o6CL*2.0) - (o6AL + o6BL + o6DL + o6EL + o6FL)); + a6JL[c6JL] = ((o6DL*2.0) - (o6AL + o6BL + o6CL + o6EL + o6FL)); + a6KL[c6KL] = ((o6EL*2.0) - (o6AL + o6BL + o6CL + o6DL + o6FL)); + a6LL[c6LL] = ((o6FL*2.0) - (o6AL + o6BL + o6CL + o6DL + o6EL)); + + c6GL++; if (c6GL < 0 || c6GL > d6G) c6GL = 0; + c6HL++; if (c6HL < 0 || c6HL > d6H) c6HL = 0; + c6IL++; if (c6IL < 0 || c6IL > d6I) c6IL = 0; + c6JL++; if (c6JL < 0 || c6JL > d6J) c6JL = 0; + c6KL++; if (c6KL < 0 || c6KL > d6K) c6KL = 0; + c6LL++; if (c6LL < 0 || c6LL > d6L) c6LL = 0; + + double o6GL = a6GL[c6GL-((c6GL > d6G)?d6G+1:0)]; + double o6HL = a6HL[c6HL-((c6HL > d6H)?d6H+1:0)]; + double o6IL = a6IL[c6IL-((c6IL > d6I)?d6I+1:0)]; + double o6JL = a6JL[c6JL-((c6JL > d6J)?d6J+1:0)]; + double o6KL = a6KL[c6KL-((c6KL > d6K)?d6K+1:0)]; + double o6LL = a6LL[c6LL-((c6LL > d6L)?d6L+1:0)]; + + a6ER[c6ER] = ((o6FR*2.0) - (o6LR + o6RR + o6XR + o6ZER + o6ZKR)); + a6KR[c6KR] = ((o6LR*2.0) - (o6FR + o6RR + o6XR + o6ZER + o6ZKR)); + a6QR[c6QR] = ((o6RR*2.0) - (o6FR + o6LR + o6XR + o6ZER + o6ZKR)); + a6WR[c6WR] = ((o6XR*2.0) - (o6FR + o6LR + o6RR + o6ZER + o6ZKR)); + a6ZDR[c6ZDR] = ((o6ZER*2.0) - (o6FR + o6LR + o6RR + o6XR + o6ZKR)); + a6ZJR[c6ZJR] = ((o6ZKR*2.0) - (o6FR + o6LR + o6RR + o6XR + o6ZER)); + + c6ER++; if (c6ER < 0 || c6ER > d6E) c6ER = 0; + c6KR++; if (c6KR < 0 || c6KR > d6K) c6KR = 0; + c6QR++; if (c6QR < 0 || c6QR > d6Q) c6QR = 0; + c6WR++; if (c6WR < 0 || c6WR > d6W) c6WR = 0; + c6ZDR++; if (c6ZDR < 0 || c6ZDR > d6ZD) c6ZDR = 0; + c6ZJR++; if (c6ZJR < 0 || c6ZJR > d6ZJ) c6ZJR = 0; + + double o6ER = a6ER[c6ER-((c6ER > d6E)?d6E+1:0)]; + double o6KR = a6KR[c6KR-((c6KR > d6K)?d6K+1:0)]; + double o6QR = a6QR[c6QR-((c6QR > d6Q)?d6Q+1:0)]; + double o6WR = a6WR[c6WR-((c6WR > d6W)?d6W+1:0)]; + double o6ZDR = a6ZDR[c6ZDR-((c6ZDR > d6ZD)?d6ZD+1:0)]; + double o6ZJR = a6ZJR[c6ZJR-((c6ZJR > d6ZJ)?d6ZJ+1:0)]; + + //-------- two + + a6ML[c6ML] = ((o6GL*2.0) - (o6HL + o6IL + o6JL + o6KL + o6LL)); + a6NL[c6NL] = ((o6HL*2.0) - (o6GL + o6IL + o6JL + o6KL + o6LL)); + a6OL[c6OL] = ((o6IL*2.0) - (o6GL + o6HL + o6JL + o6KL + o6LL)); + a6PL[c6PL] = ((o6JL*2.0) - (o6GL + o6HL + o6IL + o6KL + o6LL)); + a6QL[c6QL] = ((o6KL*2.0) - (o6GL + o6HL + o6IL + o6JL + o6LL)); + a6RL[c6RL] = ((o6LL*2.0) - (o6GL + o6HL + o6IL + o6JL + o6KL)); + + c6ML++; if (c6ML < 0 || c6ML > d6M) c6ML = 0; + c6NL++; if (c6NL < 0 || c6NL > d6N) c6NL = 0; + c6OL++; if (c6OL < 0 || c6OL > d6O) c6OL = 0; + c6PL++; if (c6PL < 0 || c6PL > d6P) c6PL = 0; + c6QL++; if (c6QL < 0 || c6QL > d6Q) c6QL = 0; + c6RL++; if (c6RL < 0 || c6RL > d6R) c6RL = 0; + + double o6ML = a6ML[c6ML-((c6ML > d6M)?d6M+1:0)]; + double o6NL = a6NL[c6NL-((c6NL > d6N)?d6N+1:0)]; + double o6OL = a6OL[c6OL-((c6OL > d6O)?d6O+1:0)]; + double o6PL = a6PL[c6PL-((c6PL > d6P)?d6P+1:0)]; + double o6QL = a6QL[c6QL-((c6QL > d6Q)?d6Q+1:0)]; + double o6RL = a6RL[c6RL-((c6RL > d6R)?d6R+1:0)]; + + a6DR[c6DR] = ((o6ER*2.0) - (o6KR + o6QR + o6WR + o6ZDR + o6ZJR)); + a6JR[c6JR] = ((o6KR*2.0) - (o6ER + o6QR + o6WR + o6ZDR + o6ZJR)); + a6PR[c6PR] = ((o6QR*2.0) - (o6ER + o6KR + o6WR + o6ZDR + o6ZJR)); + a6VR[c6VR] = ((o6WR*2.0) - (o6ER + o6KR + o6QR + o6ZDR + o6ZJR)); + a6ZCR[c6ZCR] = ((o6ZDR*2.0) - (o6ER + o6KR + o6QR + o6WR + o6ZJR)); + a6ZIR[c6ZIR] = ((o6ZJR*2.0) - (o6ER + o6KR + o6QR + o6WR + o6ZDR)); + + c6DR++; if (c6DR < 0 || c6DR > d6D) c6DR = 0; + c6JR++; if (c6JR < 0 || c6JR > d6J) c6JR = 0; + c6PR++; if (c6PR < 0 || c6PR > d6P) c6PR = 0; + c6VR++; if (c6VR < 0 || c6VR > d6V) c6VR = 0; + c6ZCR++; if (c6ZCR < 0 || c6ZCR > d6ZC) c6ZCR = 0; + c6ZIR++; if (c6ZIR < 0 || c6ZIR > d6ZI) c6ZIR = 0; + + double o6DR = a6DR[c6DR-((c6DR > d6D)?d6D+1:0)]; + double o6JR = a6JR[c6JR-((c6JR > d6J)?d6J+1:0)]; + double o6PR = a6PR[c6PR-((c6PR > d6P)?d6P+1:0)]; + double o6VR = a6VR[c6VR-((c6VR > d6V)?d6V+1:0)]; + double o6ZCR = a6ZCR[c6ZCR-((c6ZCR > d6ZC)?d6ZC+1:0)]; + double o6ZIR = a6ZIR[c6ZIR-((c6ZIR > d6ZI)?d6ZI+1:0)]; + + //-------- three + + a6SL[c6SL] = ((o6ML*2.0) - (o6NL + o6OL + o6PL + o6QL + o6RL)); + a6TL[c6TL] = ((o6NL*2.0) - (o6ML + o6OL + o6PL + o6QL + o6RL)); + a6UL[c6UL] = ((o6OL*2.0) - (o6ML + o6NL + o6PL + o6QL + o6RL)); + a6VL[c6VL] = ((o6PL*2.0) - (o6ML + o6NL + o6OL + o6QL + o6RL)); + a6WL[c6WL] = ((o6QL*2.0) - (o6ML + o6NL + o6OL + o6PL + o6RL)); + a6XL[c6XL] = ((o6RL*2.0) - (o6ML + o6NL + o6OL + o6PL + o6QL)); + + c6SL++; if (c6SL < 0 || c6SL > d6S) c6SL = 0; + c6TL++; if (c6TL < 0 || c6TL > d6T) c6TL = 0; + c6UL++; if (c6UL < 0 || c6UL > d6U) c6UL = 0; + c6VL++; if (c6VL < 0 || c6VL > d6V) c6VL = 0; + c6WL++; if (c6WL < 0 || c6WL > d6W) c6WL = 0; + c6XL++; if (c6XL < 0 || c6XL > d6X) c6XL = 0; + + double o6SL = a6SL[c6SL-((c6SL > d6S)?d6S+1:0)]; + double o6TL = a6TL[c6TL-((c6TL > d6T)?d6T+1:0)]; + double o6UL = a6UL[c6UL-((c6UL > d6U)?d6U+1:0)]; + double o6VL = a6VL[c6VL-((c6VL > d6V)?d6V+1:0)]; + double o6WL = a6WL[c6WL-((c6WL > d6W)?d6W+1:0)]; + double o6XL = a6XL[c6XL-((c6XL > d6X)?d6X+1:0)]; + + a6CR[c6CR] = ((o6DR*2.0) - (o6JR + o6PR + o6VR + o6ZCR + o6ZIR)); + a6IR[c6IR] = ((o6JR*2.0) - (o6DR + o6PR + o6VR + o6ZCR + o6ZIR)); + a6OR[c6OR] = ((o6PR*2.0) - (o6DR + o6JR + o6VR + o6ZCR + o6ZIR)); + a6UR[c6UR] = ((o6VR*2.0) - (o6DR + o6JR + o6PR + o6ZCR + o6ZIR)); + a6ZBR[c6ZBR] = ((o6ZCR*2.0) - (o6DR + o6JR + o6PR + o6VR + o6ZIR)); + a6ZHR[c6ZHR] = ((o6ZIR*2.0) - (o6DR + o6JR + o6PR + o6VR + o6ZCR)); + + c6CR++; if (c6CR < 0 || c6CR > d6C) c6CR = 0; + c6IR++; if (c6IR < 0 || c6IR > d6I) c6IR = 0; + c6OR++; if (c6OR < 0 || c6OR > d6O) c6OR = 0; + c6UR++; if (c6UR < 0 || c6UR > d6U) c6UR = 0; + c6ZBR++; if (c6ZBR < 0 || c6ZBR > d6ZB) c6ZBR = 0; + c6ZHR++; if (c6ZHR < 0 || c6ZHR > d6ZH) c6ZHR = 0; + + double o6CR = a6CR[c6CR-((c6CR > d6C)?d6C+1:0)]; + double o6IR = a6IR[c6IR-((c6IR > d6I)?d6I+1:0)]; + double o6OR = a6OR[c6OR-((c6OR > d6O)?d6O+1:0)]; + double o6UR = a6UR[c6UR-((c6UR > d6U)?d6U+1:0)]; + double o6ZBR = a6ZBR[c6ZBR-((c6ZBR > d6ZB)?d6ZB+1:0)]; + double o6ZHR = a6ZHR[c6ZHR-((c6ZHR > d6ZH)?d6ZH+1:0)]; + + //-------- four + + a6YL[c6YL] = ((o6SL*2.0) - (o6TL + o6UL + o6VL + o6WL + o6XL)); + a6ZAL[c6ZAL] = ((o6TL*2.0) - (o6SL + o6UL + o6VL + o6WL + o6XL)); + a6ZBL[c6ZBL] = ((o6UL*2.0) - (o6SL + o6TL + o6VL + o6WL + o6XL)); + a6ZCL[c6ZCL] = ((o6VL*2.0) - (o6SL + o6TL + o6UL + o6WL + o6XL)); + a6ZDL[c6ZDL] = ((o6WL*2.0) - (o6SL + o6TL + o6UL + o6VL + o6XL)); + a6ZEL[c6ZEL] = ((o6XL*2.0) - (o6SL + o6TL + o6UL + o6VL + o6WL)); + + c6YL++; if (c6YL < 0 || c6YL > d6Y) c6YL = 0; + c6ZAL++; if (c6ZAL < 0 || c6ZAL > d6ZA) c6ZAL = 0; + c6ZBL++; if (c6ZBL < 0 || c6ZBL > d6ZB) c6ZBL = 0; + c6ZCL++; if (c6ZCL < 0 || c6ZCL > d6ZC) c6ZCL = 0; + c6ZDL++; if (c6ZDL < 0 || c6ZDL > d6ZD) c6ZDL = 0; + c6ZEL++; if (c6ZEL < 0 || c6ZEL > d6ZE) c6ZEL = 0; + + double o6YL = a6YL[c6YL-((c6YL > d6Y)?d6Y+1:0)]; + double o6ZAL = a6ZAL[c6ZAL-((c6ZAL > d6ZA)?d6ZA+1:0)]; + double o6ZBL = a6ZBL[c6ZBL-((c6ZBL > d6ZB)?d6ZB+1:0)]; + double o6ZCL = a6ZCL[c6ZCL-((c6ZCL > d6ZC)?d6ZC+1:0)]; + double o6ZDL = a6ZDL[c6ZDL-((c6ZDL > d6ZD)?d6ZD+1:0)]; + double o6ZEL = a6ZEL[c6ZEL-((c6ZEL > d6ZE)?d6ZE+1:0)]; + + a6BR[c6BR] = ((o6CR*2.0) - (o6IR + o6OR + o6UR + o6ZBR + o6ZHR)); + a6HR[c6HR] = ((o6IR*2.0) - (o6CR + o6OR + o6UR + o6ZBR + o6ZHR)); + a6NR[c6NR] = ((o6OR*2.0) - (o6CR + o6IR + o6UR + o6ZBR + o6ZHR)); + a6TR[c6TR] = ((o6UR*2.0) - (o6CR + o6IR + o6OR + o6ZBR + o6ZHR)); + a6ZAR[c6ZAR] = ((o6ZBR*2.0) - (o6CR + o6IR + o6OR + o6UR + o6ZHR)); + a6ZGR[c6ZGR] = ((o6ZHR*2.0) - (o6CR + o6IR + o6OR + o6UR + o6ZBR)); + + c6BR++; if (c6BR < 0 || c6BR > d6B) c6BR = 0; + c6HR++; if (c6HR < 0 || c6HR > d6H) c6HR = 0; + c6NR++; if (c6NR < 0 || c6NR > d6N) c6NR = 0; + c6TR++; if (c6TR < 0 || c6TR > d6T) c6TR = 0; + c6ZBR++; if (c6ZBR < 0 || c6ZBR > d6ZB) c6ZBR = 0; + c6ZGR++; if (c6ZGR < 0 || c6ZGR > d6ZG) c6ZGR = 0; + + double o6BR = a6BR[c6BR-((c6BR > d6B)?d6B+1:0)]; + double o6HR = a6HR[c6HR-((c6HR > d6H)?d6H+1:0)]; + double o6NR = a6NR[c6NR-((c6NR > d6N)?d6N+1:0)]; + double o6TR = a6TR[c6TR-((c6TR > d6T)?d6T+1:0)]; + double o6ZAR = a6ZAR[c6ZAR-((c6ZAR > d6ZA)?d6ZA+1:0)]; + double o6ZGR = a6ZGR[c6ZGR-((c6ZGR > d6ZG)?d6ZG+1:0)]; + + //-------- five + + a6ZFL[c6ZFL] = ((o6YL*2.0) - (o6ZAL + o6ZBL + o6ZCL + o6ZDL + o6ZEL)); + a6ZGL[c6ZGL] = ((o6ZAL*2.0) - (o6YL + o6ZBL + o6ZCL + o6ZDL + o6ZEL)); + a6ZHL[c6ZHL] = ((o6ZBL*2.0) - (o6YL + o6ZAL + o6ZCL + o6ZDL + o6ZEL)); + a6ZIL[c6ZIL] = ((o6ZCL*2.0) - (o6YL + o6ZAL + o6ZBL + o6ZDL + o6ZEL)); + a6ZJL[c6ZJL] = ((o6ZDL*2.0) - (o6YL + o6ZAL + o6ZBL + o6ZCL + o6ZEL)); + a6ZKL[c6ZKL] = ((o6ZEL*2.0) - (o6YL + o6ZAL + o6ZBL + o6ZCL + o6ZDL)); + + c6ZFL++; if (c6ZFL < 0 || c6ZFL > d6ZF) c6ZFL = 0; + c6ZGL++; if (c6ZGL < 0 || c6ZGL > d6ZG) c6ZGL = 0; + c6ZHL++; if (c6ZHL < 0 || c6ZHL > d6ZH) c6ZHL = 0; + c6ZIL++; if (c6ZIL < 0 || c6ZIL > d6ZI) c6ZIL = 0; + c6ZJL++; if (c6ZJL < 0 || c6ZJL > d6ZJ) c6ZJL = 0; + c6ZKL++; if (c6ZKL < 0 || c6ZKL > d6ZK) c6ZKL = 0; + + double o6ZFL = a6ZFL[c6ZFL-((c6ZFL > d6ZF)?d6ZF+1:0)]; + double o6ZGL = a6ZGL[c6ZGL-((c6ZGL > d6ZG)?d6ZG+1:0)]; + double o6ZHL = a6ZHL[c6ZHL-((c6ZHL > d6ZH)?d6ZH+1:0)]; + double o6ZIL = a6ZIL[c6ZIL-((c6ZIL > d6ZI)?d6ZI+1:0)]; + double o6ZJL = a6ZJL[c6ZJL-((c6ZJL > d6ZJ)?d6ZJ+1:0)]; + double o6ZKL = a6ZKL[c6ZKL-((c6ZKL > d6ZK)?d6ZK+1:0)]; + + a6AR[c6AR] = ((o6BR*2.0) - (o6HR + o6NR + o6TR + o6ZAR + o6ZGR)); + a6GR[c6GR] = ((o6HR*2.0) - (o6BR + o6NR + o6TR + o6ZAR + o6ZGR)); + a6MR[c6MR] = ((o6NR*2.0) - (o6BR + o6HR + o6TR + o6ZAR + o6ZGR)); + a6SR[c6SR] = ((o6TR*2.0) - (o6BR + o6HR + o6NR + o6ZAR + o6ZGR)); + a6YR[c6YR] = ((o6ZAR*2.0) - (o6BR + o6HR + o6NR + o6TR + o6ZGR)); + a6ZFR[c6ZFR] = ((o6ZGR*2.0) - (o6BR + o6HR + o6NR + o6TR + o6ZAR)); + + c6AR++; if (c6AR < 0 || c6AR > d6A) c6AR = 0; + c6GR++; if (c6GR < 0 || c6GR > d6G) c6GR = 0; + c6MR++; if (c6MR < 0 || c6MR > d6M) c6MR = 0; + c6SR++; if (c6SR < 0 || c6SR > d6S) c6SR = 0; + c6YR++; if (c6YR < 0 || c6YR > d6Y) c6YR = 0; + c6ZFR++; if (c6ZFR < 0 || c6ZFR > d6ZF) c6ZFR = 0; + + double o6AR = a6AR[c6AR-((c6AR > d6A)?d6A+1:0)]; + double o6GR = a6GR[c6GR-((c6GR > d6G)?d6G+1:0)]; + double o6MR = a6MR[c6MR-((c6MR > d6M)?d6M+1:0)]; + double o6SR = a6SR[c6SR-((c6SR > d6S)?d6S+1:0)]; + double o6YR = a6YR[c6YR-((c6YR > d6Y)?d6Y+1:0)]; + double o6ZFR = a6ZFR[c6ZFR-((c6ZFR > d6ZF)?d6ZF+1:0)]; + + //-------- six + + f6AL = ((o6AR*2.0) - (o6GR + o6MR + o6SR + o6YR + o6ZFR)); + f6BL = ((o6GR*2.0) - (o6AR + o6MR + o6SR + o6YR + o6ZFR)); + f6CL = ((o6MR*2.0) - (o6AR + o6GR + o6SR + o6YR + o6ZFR)); + f6DL = ((o6SR*2.0) - (o6AR + o6GR + o6MR + o6YR + o6ZFR)); + f6EL = ((o6YR*2.0) - (o6AR + o6GR + o6MR + o6SR + o6ZFR)); + f6FL = ((o6ZFR*2.0) - (o6AR + o6GR + o6MR + o6SR + o6YR)); + + f6FR = ((o6ZFL*2.0) - (o6ZGL + o6ZHL + o6ZIL + o6ZJL + o6ZKL)); + f6LR = ((o6ZGL*2.0) - (o6ZFL + o6ZHL + o6ZIL + o6ZJL + o6ZKL)); + f6RR = ((o6ZHL*2.0) - (o6ZFL + o6ZGL + o6ZIL + o6ZJL + o6ZKL)); + f6XR = ((o6ZIL*2.0) - (o6ZFL + o6ZGL + o6ZHL + o6ZJL + o6ZKL)); + f6ZER = ((o6ZJL*2.0) - (o6ZFL + o6ZGL + o6ZHL + o6ZIL + o6ZKL)); + f6ZKR = ((o6ZKL*2.0) - (o6ZFL + o6ZGL + o6ZHL + o6ZIL + o6ZJL)); + + inputSampleL = (o6ZFL + o6ZGL + o6ZHL + o6ZIL + o6ZJL + o6ZKL)*0.001953125; + inputSampleR = (o6AR + o6GR + o6MR + o6SR + o6YR + o6ZFR)*0.001953125; + + f6AL = (f6AL+avg6L)*0.5; avg6L = f6AL; + f6FR = (f6FR+avg6R)*0.5; avg6R = f6FR; + //manipulating deep reverb tail for realism + + inputSampleL += (earlyReflectionL * earlyLoudness); + inputSampleR += (earlyReflectionR * earlyLoudness); + + bez[bez_CL] = bez[bez_BL]; + bez[bez_BL] = bez[bez_AL]; + bez[bez_AL] = inputSampleL; + bez[bez_SampL] = 0.0; + + bez[bez_CR] = bez[bez_BR]; + bez[bez_BR] = bez[bez_AR]; + bez[bez_AR] = inputSampleR; + bez[bez_SampR] = 0.0; + } + double X = bez[bez_cycle]*bezTrim; + double CBL = (bez[bez_CL]*(1.0-X))+(bez[bez_BL]*X); + double CBR = (bez[bez_CR]*(1.0-X))+(bez[bez_BR]*X); + double BAL = (bez[bez_BL]*(1.0-X))+(bez[bez_AL]*X); + double BAR = (bez[bez_BR]*(1.0-X))+(bez[bez_AR]*X); + double CBAL = (bez[bez_BL]+(CBL*(1.0-X))+(BAL*X))*-0.0625; + double CBAR = (bez[bez_BR]+(CBR*(1.0-X))+(BAR*X))*-0.0625; + inputSampleL = CBAL+bez[bez_AvgOutSampL]; bez[bez_AvgOutSampL] = CBAL; + inputSampleR = CBAR+bez[bez_AvgOutSampR]; bez[bez_AvgOutSampR] = CBAR; + + inputSampleL = (inputSampleL * wet)+(drySampleL * (1.0-wet)); + inputSampleR = (inputSampleR * wet)+(drySampleR * (1.0-wet)); + + //begin 32 bit stereo floating point dither + int expon; frexpf((float)inputSampleL, &expon); + fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5; + inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62)); + frexpf((float)inputSampleR, &expon); + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5; + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62)); + //end 32 bit stereo floating point dither + + *out1 = inputSampleL; + *out2 = inputSampleR; + + in1++; + in2++; + out1++; + out2++; + } +} + +void kWoodRoom::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(); + + double fdb6ck = (0.0009765625+0.0009765625+0.001953125)*0.3333333; + double reg6n = (1.0-pow(1.0-A,1.618033988749894))*fdb6ck; + //start this but pad it in the loop by volume of output? + + double derez = B*2.0; + bool stepped = true; // Revised Bezier Undersampling + if (derez > 1.0) { // has full rez at center, stepped + stepped = false; // to left, continuous to right + derez = 1.0-(derez-1.0); + } //if it's set up like that it's the revised algorithm + derez = fmin(fmax(derez/overallscale,0.0005),1.0); + int bezFraction = (int)(1.0/derez); + double bezTrim = (double)bezFraction/(bezFraction+1.0); + if (stepped) { //this hard-locks derez to exact subdivisions of 1.0 + derez = 1.0 / bezFraction; + bezTrim = 1.0-(derez*bezTrim); + } else { //this makes it match the 1.0 case using stepped + derez /= (2.0/pow(overallscale,0.5-((overallscale-1.0)*0.0375))); + bezTrim = 1.0-pow(derez*0.5,1.0/(derez*0.5)); + } //the revision more accurately connects the bezier curves + + double derezFreq = C*2.0; + bool steppedFreq = true; // Revised Bezier Undersampling + if (derezFreq > 1.0) { // has full rez at center, stepped + steppedFreq = false; // to left, continuous to right + derezFreq = 1.0-(derezFreq-1.0); + } //if it's set up like that it's the revised algorithm + derezFreq = fmin(fmax(derezFreq,0.0005),1.0); //note: no overallscale, already inside undersampling + int bezFreqFraction = (int)(1.0/derezFreq); + double bezFreqTrim = (double)bezFreqFraction/(bezFreqFraction+1.0); + if (steppedFreq) { //this hard-locks derez to exact subdivisions of 1.0 + derezFreq = 1.0 / bezFreqFraction; + bezFreqTrim = 1.0-(derezFreq*bezFreqTrim); + } else { //this makes it match the 1.0 case using stepped + bezFreqTrim = 1.0-pow(derezFreq*0.5,1.0/(derezFreq*0.5)); + } //the revision more accurately connects the bezier curves + + double earlyLoudness = D*2.0; + int start = (int)(E * 27.0); + int ld3G = early[start]; + int ld3H = early[start+1]; + int ld3D = early[start+2]; + int ld3A = early[start+3]; + int ld3E = early[start+4]; + int ld3I = early[start+5]; + int ld3F = early[start+6]; + int ld3B = early[start+7]; + int ld3C = early[start+8]; + double wet = F; + + while (--sampleFrames >= 0) + { + double inputSampleL = *in1; + double inputSampleR = *in2; + if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17; + if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17; + double drySampleL = inputSampleL; + double drySampleR = inputSampleR; + + bez[bez_cycle] += derez; + bez[bez_SampL] += ((inputSampleL+bez[bez_InL]) * derez); + bez[bez_SampR] += ((inputSampleR+bez[bez_InR]) * derez); + bez[bez_InL] = inputSampleL; bez[bez_InR] = inputSampleR; + if (bez[bez_cycle] > 1.0) { //hit the end point and we do a reverb sample + if (stepped) bez[bez_cycle] = 0.0; + else bez[bez_cycle] -= 1.0; + + inputSampleL = (bez[bez_SampL]+bez[bez_AvgInSampL])*0.5; + bez[bez_AvgInSampL] = bez[bez_SampL]; + inputSampleR = (bez[bez_SampR]+bez[bez_AvgInSampR])*0.5; + bez[bez_AvgInSampR] = bez[bez_SampR]; + + a3AL[c3AL] = inputSampleL;// + (f3AL * reg3n); + a3BL[c3BL] = inputSampleL;// + (f3BL * reg3n); + a3CL[c3CL] = inputSampleL;// + (f3CL * reg3n); + + a3CR[c3CR] = inputSampleR;// + (f3CR * reg3n); + a3FR[c3FR] = inputSampleR;// + (f3FR * reg3n); + a3IR[c3IR] = inputSampleR;// + (f3IR * reg3n); + + c3AL++; if (c3AL < 0 || c3AL > ld3A) c3AL = 0; + c3BL++; if (c3BL < 0 || c3BL > ld3B) c3BL = 0; + c3CL++; if (c3CL < 0 || c3CL > ld3C) c3CL = 0; + c3CR++; if (c3CR < 0 || c3CR > ld3C) c3CR = 0; + c3FR++; if (c3FR < 0 || c3FR > ld3F) c3FR = 0; + c3IR++; if (c3IR < 0 || c3IR > ld3I) c3IR = 0; + + double o3AL = a3AL[c3AL-((c3AL > ld3A)?c3AL+1:0)]; + double o3BL = a3BL[c3BL-((c3BL > ld3B)?c3BL+1:0)]; + double o3CL = a3CL[c3CL-((c3CL > ld3C)?c3CL+1:0)]; + double o3CR = a3CR[c3CR-((c3CR > ld3C)?c3CR+1:0)]; + double o3FR = a3FR[c3FR-((c3FR > ld3F)?c3FR+1:0)]; + double o3IR = a3IR[c3IR-((c3IR > ld3I)?c3IR+1:0)]; + + a3DL[c3DL] = (((o3BL + o3CL) * -2.0) + o3AL); + a3EL[c3EL] = (((o3AL + o3CL) * -2.0) + o3BL); + a3FL[c3FL] = (((o3AL + o3BL) * -2.0) + o3CL); + a3BR[c3BR] = (((o3FR + o3IR) * -2.0) + o3CR); + a3ER[c3ER] = (((o3CR + o3IR) * -2.0) + o3FR); + a3HR[c3HR] = (((o3CR + o3FR) * -2.0) + o3IR); + + c3DL++; if (c3DL < 0 || c3DL > ld3D) c3DL = 0; + c3EL++; if (c3EL < 0 || c3EL > ld3E) c3EL = 0; + c3FL++; if (c3FL < 0 || c3FL > ld3F) c3FL = 0; + c3BR++; if (c3BR < 0 || c3BR > ld3B) c3BR = 0; + c3ER++; if (c3ER < 0 || c3ER > ld3E) c3ER = 0; + c3HR++; if (c3HR < 0 || c3HR > ld3H) c3HR = 0; + + double o3DL = a3DL[c3DL-((c3DL > ld3D)?c3DL+1:0)]; + double o3EL = a3EL[c3EL-((c3EL > ld3E)?c3EL+1:0)]; + double o3FL = a3FL[c3FL-((c3FL > ld3F)?c3FL+1:0)]; + double o3BR = a3BR[c3BR-((c3BR > ld3B)?c3BR+1:0)]; + double o3ER = a3ER[c3ER-((c3ER > ld3E)?c3ER+1:0)]; + double o3HR = a3HR[c3HR-((c3HR > ld3H)?c3HR+1:0)]; + + a3GL[c3GL] = (((o3EL + o3FL) * -2.0) + o3DL); + a3HL[c3HL] = (((o3DL + o3FL) * -2.0) + o3EL); + a3IL[c3IL] = (((o3DL + o3EL) * -2.0) + o3FL); + a3AR[c3AR] = (((o3ER + o3HR) * -2.0) + o3BR); + a3DR[c3DR] = (((o3BR + o3HR) * -2.0) + o3ER); + a3GR[c3GR] = (((o3BR + o3ER) * -2.0) + o3HR); + + c3GL++; if (c3GL < 0 || c3GL > ld3G) c3GL = 0; + c3HL++; if (c3HL < 0 || c3HL > ld3H) c3HL = 0; + c3IL++; if (c3IL < 0 || c3IL > ld3I) c3IL = 0; + c3AR++; if (c3AR < 0 || c3AR > ld3A) c3AR = 0; + c3DR++; if (c3DR < 0 || c3DR > ld3D) c3DR = 0; + c3GR++; if (c3GR < 0 || c3GR > ld3G) c3GR = 0; + + double o3GL = a3GL[c3GL-((c3GL > ld3G)?c3GL+1:0)]; + double o3HL = a3HL[c3HL-((c3HL > ld3H)?c3HL+1:0)]; + double o3IL = a3IL[c3IL-((c3IL > ld3I)?c3IL+1:0)]; + double o3AR = a3AR[c3AR-((c3AR > ld3A)?c3AR+1:0)]; + double o3DR = a3DR[c3DR-((c3DR > ld3D)?c3DR+1:0)]; + double o3GR = a3GR[c3GR-((c3GR > ld3G)?c3GR+1:0)]; + + double inputSampleL = (o3GL + o3HL + o3IL)*0.03125; + double inputSampleR = (o3AR + o3DR + o3GR)*0.03125; + + bezF[bez_cycle] += derezFreq; + bezF[bez_SampL] += ((inputSampleL+bezF[bez_InL]) * derezFreq); + bezF[bez_SampR] += ((inputSampleL+bezF[bez_InR]) * derezFreq); + bezF[bez_InL] = inputSampleL; bezF[bez_InR] = inputSampleR; + if (bezF[bez_cycle] > 1.0) { //hit the end point and we do a filter sample + if (steppedFreq) bezF[bez_cycle] = 0.0; + else bezF[bez_cycle] -= 1.0; + bezF[bez_CL] = bezF[bez_BL]; + bezF[bez_BL] = bezF[bez_AL]; + bezF[bez_AL] = (bezF[bez_SampL]+bezF[bez_AvgInSampL])*0.5; + bezF[bez_AvgInSampL] = bezF[bez_SampL]; bezF[bez_SampL] = 0.0; + bezF[bez_CR] = bezF[bez_BR]; + bezF[bez_BR] = bezF[bez_AR]; + bezF[bez_AR] = (bezF[bez_SampR]+bezF[bez_AvgInSampR])*0.5; + bezF[bez_AvgInSampR] = bezF[bez_SampR]; bezF[bez_SampR] = 0.0; + } + double X = bezF[bez_cycle]*bezFreqTrim; + double CBLfreq = (bezF[bez_CL]*(1.0-X))+(bezF[bez_BL]*X); + double BALfreq = (bezF[bez_BL]*(1.0-X))+(bezF[bez_AL]*X); + double CBALfreq = (bezF[bez_BL]+(CBLfreq*(1.0-X))+(BALfreq*X))*0.125; + double CBRfreq = (bezF[bez_CR]*(1.0-X))+(bezF[bez_BR]*X); + double BARfreq = (bezF[bez_BR]*(1.0-X))+(bezF[bez_AR]*X); + double CBARfreq = (bezF[bez_BR]+(CBRfreq*(1.0-X))+(BARfreq*X))*0.125; + inputSampleL = CBALfreq+bezF[bez_AvgOutSampL]; + bezF[bez_AvgOutSampL] = CBALfreq; + inputSampleR = CBARfreq+bezF[bez_AvgOutSampR]; + bezF[bez_AvgOutSampR] = CBARfreq; + + double earlyReflectionL = inputSampleL; + double earlyReflectionR = inputSampleR; //kWoodRoom has filtered early reflections + + a6AL[c6AL] = inputSampleL + (f6BL * reg6n); + a6BL[c6BL] = inputSampleL + (f6CL * reg6n); + a6CL[c6CL] = inputSampleL + (f6DL * reg6n); + a6DL[c6DL] = inputSampleL + (f6EL * reg6n); + a6EL[c6EL] = inputSampleL + (f6FL * reg6n); + a6FL[c6FL] = inputSampleL + (f6AL * reg6n); + + c6AL++; if (c6AL < 0 || c6AL > d6A) c6AL = 0; + c6BL++; if (c6BL < 0 || c6BL > d6B) c6BL = 0; + c6CL++; if (c6CL < 0 || c6CL > d6C) c6CL = 0; + c6DL++; if (c6DL < 0 || c6DL > d6D) c6DL = 0; + c6EL++; if (c6EL < 0 || c6EL > d6E) c6EL = 0; + c6FL++; if (c6FL < 0 || c6FL > d6F) c6FL = 0; + + double o6AL = a6AL[c6AL-((c6AL > d6A)?d6A+1:0)]; + double o6BL = a6BL[c6BL-((c6BL > d6B)?d6B+1:0)]; + double o6CL = a6CL[c6CL-((c6CL > d6C)?d6C+1:0)]; + double o6DL = a6DL[c6DL-((c6DL > d6D)?d6D+1:0)]; + double o6EL = a6EL[c6EL-((c6EL > d6E)?d6E+1:0)]; + double o6FL = a6FL[c6FL-((c6FL > d6F)?d6F+1:0)]; + + a6FR[c6FR] = inputSampleR + (f6LR * reg6n); + a6LR[c6LR] = inputSampleR + (f6RR * reg6n); + a6RR[c6RR] = inputSampleR + (f6XR * reg6n); + a6XR[c6XR] = inputSampleR + (f6ZER * reg6n); + a6ZER[c6ZER] = inputSampleR + (f6ZKR * reg6n); + a6ZKR[c6ZKR] = inputSampleR + (f6FR * reg6n); + + c6FR++; if (c6FR < 0 || c6FR > d6F) c6FR = 0; + c6LR++; if (c6LR < 0 || c6LR > d6L) c6LR = 0; + c6RR++; if (c6RR < 0 || c6RR > d6R) c6RR = 0; + c6XR++; if (c6XR < 0 || c6XR > d6X) c6XR = 0; + c6ZER++; if (c6ZER < 0 || c6ZER > d6ZE) c6ZER = 0; + c6ZKR++; if (c6ZKR < 0 || c6ZKR > d6ZK) c6ZKR = 0; + + double o6FR = a6FR[c6FR-((c6FR > d6F)?d6F+1:0)]; + double o6LR = a6LR[c6LR-((c6LR > d6L)?d6L+1:0)]; + double o6RR = a6RR[c6RR-((c6RR > d6R)?d6R+1:0)]; + double o6XR = a6XR[c6XR-((c6XR > d6X)?d6X+1:0)]; + double o6ZER = a6ZER[c6ZER-((c6ZER > d6ZE)?d6ZE+1:0)]; + double o6ZKR = a6ZKR[c6ZKR-((c6ZKR > d6ZK)?d6ZK+1:0)]; + + //-------- one + + a6GL[c6GL] = ((o6AL*2.0) - (o6BL + o6CL + o6DL + o6EL + o6FL)); + a6HL[c6HL] = ((o6BL*2.0) - (o6AL + o6CL + o6DL + o6EL + o6FL)); + a6IL[c6IL] = ((o6CL*2.0) - (o6AL + o6BL + o6DL + o6EL + o6FL)); + a6JL[c6JL] = ((o6DL*2.0) - (o6AL + o6BL + o6CL + o6EL + o6FL)); + a6KL[c6KL] = ((o6EL*2.0) - (o6AL + o6BL + o6CL + o6DL + o6FL)); + a6LL[c6LL] = ((o6FL*2.0) - (o6AL + o6BL + o6CL + o6DL + o6EL)); + + c6GL++; if (c6GL < 0 || c6GL > d6G) c6GL = 0; + c6HL++; if (c6HL < 0 || c6HL > d6H) c6HL = 0; + c6IL++; if (c6IL < 0 || c6IL > d6I) c6IL = 0; + c6JL++; if (c6JL < 0 || c6JL > d6J) c6JL = 0; + c6KL++; if (c6KL < 0 || c6KL > d6K) c6KL = 0; + c6LL++; if (c6LL < 0 || c6LL > d6L) c6LL = 0; + + double o6GL = a6GL[c6GL-((c6GL > d6G)?d6G+1:0)]; + double o6HL = a6HL[c6HL-((c6HL > d6H)?d6H+1:0)]; + double o6IL = a6IL[c6IL-((c6IL > d6I)?d6I+1:0)]; + double o6JL = a6JL[c6JL-((c6JL > d6J)?d6J+1:0)]; + double o6KL = a6KL[c6KL-((c6KL > d6K)?d6K+1:0)]; + double o6LL = a6LL[c6LL-((c6LL > d6L)?d6L+1:0)]; + + a6ER[c6ER] = ((o6FR*2.0) - (o6LR + o6RR + o6XR + o6ZER + o6ZKR)); + a6KR[c6KR] = ((o6LR*2.0) - (o6FR + o6RR + o6XR + o6ZER + o6ZKR)); + a6QR[c6QR] = ((o6RR*2.0) - (o6FR + o6LR + o6XR + o6ZER + o6ZKR)); + a6WR[c6WR] = ((o6XR*2.0) - (o6FR + o6LR + o6RR + o6ZER + o6ZKR)); + a6ZDR[c6ZDR] = ((o6ZER*2.0) - (o6FR + o6LR + o6RR + o6XR + o6ZKR)); + a6ZJR[c6ZJR] = ((o6ZKR*2.0) - (o6FR + o6LR + o6RR + o6XR + o6ZER)); + + c6ER++; if (c6ER < 0 || c6ER > d6E) c6ER = 0; + c6KR++; if (c6KR < 0 || c6KR > d6K) c6KR = 0; + c6QR++; if (c6QR < 0 || c6QR > d6Q) c6QR = 0; + c6WR++; if (c6WR < 0 || c6WR > d6W) c6WR = 0; + c6ZDR++; if (c6ZDR < 0 || c6ZDR > d6ZD) c6ZDR = 0; + c6ZJR++; if (c6ZJR < 0 || c6ZJR > d6ZJ) c6ZJR = 0; + + double o6ER = a6ER[c6ER-((c6ER > d6E)?d6E+1:0)]; + double o6KR = a6KR[c6KR-((c6KR > d6K)?d6K+1:0)]; + double o6QR = a6QR[c6QR-((c6QR > d6Q)?d6Q+1:0)]; + double o6WR = a6WR[c6WR-((c6WR > d6W)?d6W+1:0)]; + double o6ZDR = a6ZDR[c6ZDR-((c6ZDR > d6ZD)?d6ZD+1:0)]; + double o6ZJR = a6ZJR[c6ZJR-((c6ZJR > d6ZJ)?d6ZJ+1:0)]; + + //-------- two + + a6ML[c6ML] = ((o6GL*2.0) - (o6HL + o6IL + o6JL + o6KL + o6LL)); + a6NL[c6NL] = ((o6HL*2.0) - (o6GL + o6IL + o6JL + o6KL + o6LL)); + a6OL[c6OL] = ((o6IL*2.0) - (o6GL + o6HL + o6JL + o6KL + o6LL)); + a6PL[c6PL] = ((o6JL*2.0) - (o6GL + o6HL + o6IL + o6KL + o6LL)); + a6QL[c6QL] = ((o6KL*2.0) - (o6GL + o6HL + o6IL + o6JL + o6LL)); + a6RL[c6RL] = ((o6LL*2.0) - (o6GL + o6HL + o6IL + o6JL + o6KL)); + + c6ML++; if (c6ML < 0 || c6ML > d6M) c6ML = 0; + c6NL++; if (c6NL < 0 || c6NL > d6N) c6NL = 0; + c6OL++; if (c6OL < 0 || c6OL > d6O) c6OL = 0; + c6PL++; if (c6PL < 0 || c6PL > d6P) c6PL = 0; + c6QL++; if (c6QL < 0 || c6QL > d6Q) c6QL = 0; + c6RL++; if (c6RL < 0 || c6RL > d6R) c6RL = 0; + + double o6ML = a6ML[c6ML-((c6ML > d6M)?d6M+1:0)]; + double o6NL = a6NL[c6NL-((c6NL > d6N)?d6N+1:0)]; + double o6OL = a6OL[c6OL-((c6OL > d6O)?d6O+1:0)]; + double o6PL = a6PL[c6PL-((c6PL > d6P)?d6P+1:0)]; + double o6QL = a6QL[c6QL-((c6QL > d6Q)?d6Q+1:0)]; + double o6RL = a6RL[c6RL-((c6RL > d6R)?d6R+1:0)]; + + a6DR[c6DR] = ((o6ER*2.0) - (o6KR + o6QR + o6WR + o6ZDR + o6ZJR)); + a6JR[c6JR] = ((o6KR*2.0) - (o6ER + o6QR + o6WR + o6ZDR + o6ZJR)); + a6PR[c6PR] = ((o6QR*2.0) - (o6ER + o6KR + o6WR + o6ZDR + o6ZJR)); + a6VR[c6VR] = ((o6WR*2.0) - (o6ER + o6KR + o6QR + o6ZDR + o6ZJR)); + a6ZCR[c6ZCR] = ((o6ZDR*2.0) - (o6ER + o6KR + o6QR + o6WR + o6ZJR)); + a6ZIR[c6ZIR] = ((o6ZJR*2.0) - (o6ER + o6KR + o6QR + o6WR + o6ZDR)); + + c6DR++; if (c6DR < 0 || c6DR > d6D) c6DR = 0; + c6JR++; if (c6JR < 0 || c6JR > d6J) c6JR = 0; + c6PR++; if (c6PR < 0 || c6PR > d6P) c6PR = 0; + c6VR++; if (c6VR < 0 || c6VR > d6V) c6VR = 0; + c6ZCR++; if (c6ZCR < 0 || c6ZCR > d6ZC) c6ZCR = 0; + c6ZIR++; if (c6ZIR < 0 || c6ZIR > d6ZI) c6ZIR = 0; + + double o6DR = a6DR[c6DR-((c6DR > d6D)?d6D+1:0)]; + double o6JR = a6JR[c6JR-((c6JR > d6J)?d6J+1:0)]; + double o6PR = a6PR[c6PR-((c6PR > d6P)?d6P+1:0)]; + double o6VR = a6VR[c6VR-((c6VR > d6V)?d6V+1:0)]; + double o6ZCR = a6ZCR[c6ZCR-((c6ZCR > d6ZC)?d6ZC+1:0)]; + double o6ZIR = a6ZIR[c6ZIR-((c6ZIR > d6ZI)?d6ZI+1:0)]; + + //-------- three + + a6SL[c6SL] = ((o6ML*2.0) - (o6NL + o6OL + o6PL + o6QL + o6RL)); + a6TL[c6TL] = ((o6NL*2.0) - (o6ML + o6OL + o6PL + o6QL + o6RL)); + a6UL[c6UL] = ((o6OL*2.0) - (o6ML + o6NL + o6PL + o6QL + o6RL)); + a6VL[c6VL] = ((o6PL*2.0) - (o6ML + o6NL + o6OL + o6QL + o6RL)); + a6WL[c6WL] = ((o6QL*2.0) - (o6ML + o6NL + o6OL + o6PL + o6RL)); + a6XL[c6XL] = ((o6RL*2.0) - (o6ML + o6NL + o6OL + o6PL + o6QL)); + + c6SL++; if (c6SL < 0 || c6SL > d6S) c6SL = 0; + c6TL++; if (c6TL < 0 || c6TL > d6T) c6TL = 0; + c6UL++; if (c6UL < 0 || c6UL > d6U) c6UL = 0; + c6VL++; if (c6VL < 0 || c6VL > d6V) c6VL = 0; + c6WL++; if (c6WL < 0 || c6WL > d6W) c6WL = 0; + c6XL++; if (c6XL < 0 || c6XL > d6X) c6XL = 0; + + double o6SL = a6SL[c6SL-((c6SL > d6S)?d6S+1:0)]; + double o6TL = a6TL[c6TL-((c6TL > d6T)?d6T+1:0)]; + double o6UL = a6UL[c6UL-((c6UL > d6U)?d6U+1:0)]; + double o6VL = a6VL[c6VL-((c6VL > d6V)?d6V+1:0)]; + double o6WL = a6WL[c6WL-((c6WL > d6W)?d6W+1:0)]; + double o6XL = a6XL[c6XL-((c6XL > d6X)?d6X+1:0)]; + + a6CR[c6CR] = ((o6DR*2.0) - (o6JR + o6PR + o6VR + o6ZCR + o6ZIR)); + a6IR[c6IR] = ((o6JR*2.0) - (o6DR + o6PR + o6VR + o6ZCR + o6ZIR)); + a6OR[c6OR] = ((o6PR*2.0) - (o6DR + o6JR + o6VR + o6ZCR + o6ZIR)); + a6UR[c6UR] = ((o6VR*2.0) - (o6DR + o6JR + o6PR + o6ZCR + o6ZIR)); + a6ZBR[c6ZBR] = ((o6ZCR*2.0) - (o6DR + o6JR + o6PR + o6VR + o6ZIR)); + a6ZHR[c6ZHR] = ((o6ZIR*2.0) - (o6DR + o6JR + o6PR + o6VR + o6ZCR)); + + c6CR++; if (c6CR < 0 || c6CR > d6C) c6CR = 0; + c6IR++; if (c6IR < 0 || c6IR > d6I) c6IR = 0; + c6OR++; if (c6OR < 0 || c6OR > d6O) c6OR = 0; + c6UR++; if (c6UR < 0 || c6UR > d6U) c6UR = 0; + c6ZBR++; if (c6ZBR < 0 || c6ZBR > d6ZB) c6ZBR = 0; + c6ZHR++; if (c6ZHR < 0 || c6ZHR > d6ZH) c6ZHR = 0; + + double o6CR = a6CR[c6CR-((c6CR > d6C)?d6C+1:0)]; + double o6IR = a6IR[c6IR-((c6IR > d6I)?d6I+1:0)]; + double o6OR = a6OR[c6OR-((c6OR > d6O)?d6O+1:0)]; + double o6UR = a6UR[c6UR-((c6UR > d6U)?d6U+1:0)]; + double o6ZBR = a6ZBR[c6ZBR-((c6ZBR > d6ZB)?d6ZB+1:0)]; + double o6ZHR = a6ZHR[c6ZHR-((c6ZHR > d6ZH)?d6ZH+1:0)]; + + //-------- four + + a6YL[c6YL] = ((o6SL*2.0) - (o6TL + o6UL + o6VL + o6WL + o6XL)); + a6ZAL[c6ZAL] = ((o6TL*2.0) - (o6SL + o6UL + o6VL + o6WL + o6XL)); + a6ZBL[c6ZBL] = ((o6UL*2.0) - (o6SL + o6TL + o6VL + o6WL + o6XL)); + a6ZCL[c6ZCL] = ((o6VL*2.0) - (o6SL + o6TL + o6UL + o6WL + o6XL)); + a6ZDL[c6ZDL] = ((o6WL*2.0) - (o6SL + o6TL + o6UL + o6VL + o6XL)); + a6ZEL[c6ZEL] = ((o6XL*2.0) - (o6SL + o6TL + o6UL + o6VL + o6WL)); + + c6YL++; if (c6YL < 0 || c6YL > d6Y) c6YL = 0; + c6ZAL++; if (c6ZAL < 0 || c6ZAL > d6ZA) c6ZAL = 0; + c6ZBL++; if (c6ZBL < 0 || c6ZBL > d6ZB) c6ZBL = 0; + c6ZCL++; if (c6ZCL < 0 || c6ZCL > d6ZC) c6ZCL = 0; + c6ZDL++; if (c6ZDL < 0 || c6ZDL > d6ZD) c6ZDL = 0; + c6ZEL++; if (c6ZEL < 0 || c6ZEL > d6ZE) c6ZEL = 0; + + double o6YL = a6YL[c6YL-((c6YL > d6Y)?d6Y+1:0)]; + double o6ZAL = a6ZAL[c6ZAL-((c6ZAL > d6ZA)?d6ZA+1:0)]; + double o6ZBL = a6ZBL[c6ZBL-((c6ZBL > d6ZB)?d6ZB+1:0)]; + double o6ZCL = a6ZCL[c6ZCL-((c6ZCL > d6ZC)?d6ZC+1:0)]; + double o6ZDL = a6ZDL[c6ZDL-((c6ZDL > d6ZD)?d6ZD+1:0)]; + double o6ZEL = a6ZEL[c6ZEL-((c6ZEL > d6ZE)?d6ZE+1:0)]; + + a6BR[c6BR] = ((o6CR*2.0) - (o6IR + o6OR + o6UR + o6ZBR + o6ZHR)); + a6HR[c6HR] = ((o6IR*2.0) - (o6CR + o6OR + o6UR + o6ZBR + o6ZHR)); + a6NR[c6NR] = ((o6OR*2.0) - (o6CR + o6IR + o6UR + o6ZBR + o6ZHR)); + a6TR[c6TR] = ((o6UR*2.0) - (o6CR + o6IR + o6OR + o6ZBR + o6ZHR)); + a6ZAR[c6ZAR] = ((o6ZBR*2.0) - (o6CR + o6IR + o6OR + o6UR + o6ZHR)); + a6ZGR[c6ZGR] = ((o6ZHR*2.0) - (o6CR + o6IR + o6OR + o6UR + o6ZBR)); + + c6BR++; if (c6BR < 0 || c6BR > d6B) c6BR = 0; + c6HR++; if (c6HR < 0 || c6HR > d6H) c6HR = 0; + c6NR++; if (c6NR < 0 || c6NR > d6N) c6NR = 0; + c6TR++; if (c6TR < 0 || c6TR > d6T) c6TR = 0; + c6ZBR++; if (c6ZBR < 0 || c6ZBR > d6ZB) c6ZBR = 0; + c6ZGR++; if (c6ZGR < 0 || c6ZGR > d6ZG) c6ZGR = 0; + + double o6BR = a6BR[c6BR-((c6BR > d6B)?d6B+1:0)]; + double o6HR = a6HR[c6HR-((c6HR > d6H)?d6H+1:0)]; + double o6NR = a6NR[c6NR-((c6NR > d6N)?d6N+1:0)]; + double o6TR = a6TR[c6TR-((c6TR > d6T)?d6T+1:0)]; + double o6ZAR = a6ZAR[c6ZAR-((c6ZAR > d6ZA)?d6ZA+1:0)]; + double o6ZGR = a6ZGR[c6ZGR-((c6ZGR > d6ZG)?d6ZG+1:0)]; + + //-------- five + + a6ZFL[c6ZFL] = ((o6YL*2.0) - (o6ZAL + o6ZBL + o6ZCL + o6ZDL + o6ZEL)); + a6ZGL[c6ZGL] = ((o6ZAL*2.0) - (o6YL + o6ZBL + o6ZCL + o6ZDL + o6ZEL)); + a6ZHL[c6ZHL] = ((o6ZBL*2.0) - (o6YL + o6ZAL + o6ZCL + o6ZDL + o6ZEL)); + a6ZIL[c6ZIL] = ((o6ZCL*2.0) - (o6YL + o6ZAL + o6ZBL + o6ZDL + o6ZEL)); + a6ZJL[c6ZJL] = ((o6ZDL*2.0) - (o6YL + o6ZAL + o6ZBL + o6ZCL + o6ZEL)); + a6ZKL[c6ZKL] = ((o6ZEL*2.0) - (o6YL + o6ZAL + o6ZBL + o6ZCL + o6ZDL)); + + c6ZFL++; if (c6ZFL < 0 || c6ZFL > d6ZF) c6ZFL = 0; + c6ZGL++; if (c6ZGL < 0 || c6ZGL > d6ZG) c6ZGL = 0; + c6ZHL++; if (c6ZHL < 0 || c6ZHL > d6ZH) c6ZHL = 0; + c6ZIL++; if (c6ZIL < 0 || c6ZIL > d6ZI) c6ZIL = 0; + c6ZJL++; if (c6ZJL < 0 || c6ZJL > d6ZJ) c6ZJL = 0; + c6ZKL++; if (c6ZKL < 0 || c6ZKL > d6ZK) c6ZKL = 0; + + double o6ZFL = a6ZFL[c6ZFL-((c6ZFL > d6ZF)?d6ZF+1:0)]; + double o6ZGL = a6ZGL[c6ZGL-((c6ZGL > d6ZG)?d6ZG+1:0)]; + double o6ZHL = a6ZHL[c6ZHL-((c6ZHL > d6ZH)?d6ZH+1:0)]; + double o6ZIL = a6ZIL[c6ZIL-((c6ZIL > d6ZI)?d6ZI+1:0)]; + double o6ZJL = a6ZJL[c6ZJL-((c6ZJL > d6ZJ)?d6ZJ+1:0)]; + double o6ZKL = a6ZKL[c6ZKL-((c6ZKL > d6ZK)?d6ZK+1:0)]; + + a6AR[c6AR] = ((o6BR*2.0) - (o6HR + o6NR + o6TR + o6ZAR + o6ZGR)); + a6GR[c6GR] = ((o6HR*2.0) - (o6BR + o6NR + o6TR + o6ZAR + o6ZGR)); + a6MR[c6MR] = ((o6NR*2.0) - (o6BR + o6HR + o6TR + o6ZAR + o6ZGR)); + a6SR[c6SR] = ((o6TR*2.0) - (o6BR + o6HR + o6NR + o6ZAR + o6ZGR)); + a6YR[c6YR] = ((o6ZAR*2.0) - (o6BR + o6HR + o6NR + o6TR + o6ZGR)); + a6ZFR[c6ZFR] = ((o6ZGR*2.0) - (o6BR + o6HR + o6NR + o6TR + o6ZAR)); + + c6AR++; if (c6AR < 0 || c6AR > d6A) c6AR = 0; + c6GR++; if (c6GR < 0 || c6GR > d6G) c6GR = 0; + c6MR++; if (c6MR < 0 || c6MR > d6M) c6MR = 0; + c6SR++; if (c6SR < 0 || c6SR > d6S) c6SR = 0; + c6YR++; if (c6YR < 0 || c6YR > d6Y) c6YR = 0; + c6ZFR++; if (c6ZFR < 0 || c6ZFR > d6ZF) c6ZFR = 0; + + double o6AR = a6AR[c6AR-((c6AR > d6A)?d6A+1:0)]; + double o6GR = a6GR[c6GR-((c6GR > d6G)?d6G+1:0)]; + double o6MR = a6MR[c6MR-((c6MR > d6M)?d6M+1:0)]; + double o6SR = a6SR[c6SR-((c6SR > d6S)?d6S+1:0)]; + double o6YR = a6YR[c6YR-((c6YR > d6Y)?d6Y+1:0)]; + double o6ZFR = a6ZFR[c6ZFR-((c6ZFR > d6ZF)?d6ZF+1:0)]; + + //-------- six + + f6AL = ((o6AR*2.0) - (o6GR + o6MR + o6SR + o6YR + o6ZFR)); + f6BL = ((o6GR*2.0) - (o6AR + o6MR + o6SR + o6YR + o6ZFR)); + f6CL = ((o6MR*2.0) - (o6AR + o6GR + o6SR + o6YR + o6ZFR)); + f6DL = ((o6SR*2.0) - (o6AR + o6GR + o6MR + o6YR + o6ZFR)); + f6EL = ((o6YR*2.0) - (o6AR + o6GR + o6MR + o6SR + o6ZFR)); + f6FL = ((o6ZFR*2.0) - (o6AR + o6GR + o6MR + o6SR + o6YR)); + + f6FR = ((o6ZFL*2.0) - (o6ZGL + o6ZHL + o6ZIL + o6ZJL + o6ZKL)); + f6LR = ((o6ZGL*2.0) - (o6ZFL + o6ZHL + o6ZIL + o6ZJL + o6ZKL)); + f6RR = ((o6ZHL*2.0) - (o6ZFL + o6ZGL + o6ZIL + o6ZJL + o6ZKL)); + f6XR = ((o6ZIL*2.0) - (o6ZFL + o6ZGL + o6ZHL + o6ZJL + o6ZKL)); + f6ZER = ((o6ZJL*2.0) - (o6ZFL + o6ZGL + o6ZHL + o6ZIL + o6ZKL)); + f6ZKR = ((o6ZKL*2.0) - (o6ZFL + o6ZGL + o6ZHL + o6ZIL + o6ZJL)); + + inputSampleL = (o6ZFL + o6ZGL + o6ZHL + o6ZIL + o6ZJL + o6ZKL)*0.001953125; + inputSampleR = (o6AR + o6GR + o6MR + o6SR + o6YR + o6ZFR)*0.001953125; + + f6AL = (f6AL+avg6L)*0.5; avg6L = f6AL; + f6FR = (f6FR+avg6R)*0.5; avg6R = f6FR; + //manipulating deep reverb tail for realism + + inputSampleL += (earlyReflectionL * earlyLoudness); + inputSampleR += (earlyReflectionR * earlyLoudness); + + bez[bez_CL] = bez[bez_BL]; + bez[bez_BL] = bez[bez_AL]; + bez[bez_AL] = inputSampleL; + bez[bez_SampL] = 0.0; + + bez[bez_CR] = bez[bez_BR]; + bez[bez_BR] = bez[bez_AR]; + bez[bez_AR] = inputSampleR; + bez[bez_SampR] = 0.0; + } + double X = bez[bez_cycle]*bezTrim; + double CBL = (bez[bez_CL]*(1.0-X))+(bez[bez_BL]*X); + double CBR = (bez[bez_CR]*(1.0-X))+(bez[bez_BR]*X); + double BAL = (bez[bez_BL]*(1.0-X))+(bez[bez_AL]*X); + double BAR = (bez[bez_BR]*(1.0-X))+(bez[bez_AR]*X); + double CBAL = (bez[bez_BL]+(CBL*(1.0-X))+(BAL*X))*-0.0625; + double CBAR = (bez[bez_BR]+(CBR*(1.0-X))+(BAR*X))*-0.0625; + inputSampleL = CBAL+bez[bez_AvgOutSampL]; bez[bez_AvgOutSampL] = CBAL; + inputSampleR = CBAR+bez[bez_AvgOutSampR]; bez[bez_AvgOutSampR] = CBAR; + + inputSampleL = (inputSampleL * wet)+(drySampleL * (1.0-wet)); + inputSampleR = (inputSampleR * wet)+(drySampleR * (1.0-wet)); + + //begin 64 bit stereo floating point dither + //int expon; frexp((double)inputSampleL, &expon); + fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5; + //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); + //frexp((double)inputSampleR, &expon); + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5; + //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); + //end 64 bit stereo floating point dither + + *out1 = inputSampleL; + *out2 = inputSampleR; + + in1++; + in2++; + out1++; + out2++; + } +} diff --git a/plugins/WinVST/ConsoleX2Buss/ConsoleX2Buss.cpp b/plugins/WinVST/ConsoleX2Buss/ConsoleX2Buss.cpp index 2d91e6d4e..d27cd2cec 100755 --- a/plugins/WinVST/ConsoleX2Buss/ConsoleX2Buss.cpp +++ b/plugins/WinVST/ConsoleX2Buss/ConsoleX2Buss.cpp @@ -23,12 +23,6 @@ ConsoleX2Buss::ConsoleX2Buss(audioMasterCallback audioMaster) : I = 1.0; J = 0.5; K = 0.5; - L = 0.0; - M = 1.0; - N = 0.0; - O = 0.0; - P = 0.5; - Q = 0.5; for (int x = 0; x < biq_total; x++) { highA[x] = 0.0; @@ -51,38 +45,19 @@ ConsoleX2Buss::ConsoleX2Buss(audioMasterCallback audioMaster) : 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; + bezCompS[bez_cycle] = 1.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 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 - 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 - - lFreqA = 1.0; lFreqB = 1.0; - hFreqA = 0.0; hFreqB = 0.0; panA = 0.5; panB = 0.5; inTrimA = 0.5; inTrimB = 0.5; @@ -130,12 +105,6 @@ VstInt32 ConsoleX2Buss::getChunk (void** data, bool isPreset) chunkData[8] = I; chunkData[9] = J; chunkData[10] = K; - chunkData[11] = L; - chunkData[12] = M; - chunkData[13] = N; - chunkData[14] = O; - chunkData[15] = P; - chunkData[16] = Q; /* 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. */ @@ -158,12 +127,6 @@ VstInt32 ConsoleX2Buss::setChunk (void* data, VstInt32 byteSize, bool isPreset) I = pinParameter(chunkData[8]); J = pinParameter(chunkData[9]); K = pinParameter(chunkData[10]); - L = pinParameter(chunkData[11]); - M = pinParameter(chunkData[12]); - N = pinParameter(chunkData[13]); - O = pinParameter(chunkData[14]); - P = pinParameter(chunkData[15]); - Q = pinParameter(chunkData[16]); /* We're ignoring byteSize as we found it to be a filthy liar */ /* calculate any other fields you need here - you could copy in @@ -184,12 +147,6 @@ void ConsoleX2Buss::setParameter(VstInt32 index, float value) { case kParamI: I = value; break; case kParamJ: J = value; break; case kParamK: K = value; break; - case kParamL: L = value; break; - case kParamM: M = value; break; - case kParamN: N = value; break; - case kParamO: O = value; break; - case kParamP: P = value; break; - case kParamQ: Q = value; break; default: throw; // unknown parameter, shouldn't happen! } } @@ -207,12 +164,6 @@ float ConsoleX2Buss::getParameter(VstInt32 index) { case kParamI: return I; break; case kParamJ: return J; break; case kParamK: return K; break; - case kParamL: return L; break; - case kParamM: return M; break; - case kParamN: return N; break; - case kParamO: return O; break; - case kParamP: return P; break; - case kParamQ: return Q; break; default: break; // unknown parameter, shouldn't happen! } return 0.0; //we only need to update the relevant name, this is simple to manage } @@ -228,14 +179,8 @@ void ConsoleX2Buss::getParameterName(VstInt32 index, char *text) { case kParamG: vst_strncpy (text, "LMidF", kVstMaxParamStrLen); break; case kParamH: vst_strncpy (text, "BassF", kVstMaxParamStrLen); break; case kParamI: vst_strncpy (text, "Thresh", kVstMaxParamStrLen); break; - case kParamJ: vst_strncpy (text, "Attack", kVstMaxParamStrLen); break; - case kParamK: vst_strncpy (text, "Release", kVstMaxParamStrLen); break; - case kParamL: vst_strncpy (text, "Gate", kVstMaxParamStrLen); break; - case kParamM: vst_strncpy (text, "Lowpass", kVstMaxParamStrLen); break; - case kParamN: vst_strncpy (text, "Hipass", kVstMaxParamStrLen); break; - case kParamO: vst_strncpy (text, "More", kVstMaxParamStrLen); break; - case kParamP: vst_strncpy (text, "Pan", kVstMaxParamStrLen); break; - case kParamQ: vst_strncpy (text, "Fader", kVstMaxParamStrLen); break; + case kParamJ: vst_strncpy (text, "Pan", kVstMaxParamStrLen); break; + case kParamK: vst_strncpy (text, "Fader", kVstMaxParamStrLen); break; default: break; // unknown parameter, shouldn't happen! } //this is our labels for displaying in the VST host } @@ -253,12 +198,6 @@ void ConsoleX2Buss::getParameterDisplay(VstInt32 index, char *text) { case kParamI: float2string (I, text, kVstMaxParamStrLen); break; case kParamJ: float2string (J, text, kVstMaxParamStrLen); break; case kParamK: float2string (K, text, kVstMaxParamStrLen); break; - case kParamL: float2string (L, text, kVstMaxParamStrLen); break; - case kParamM: float2string (M, text, kVstMaxParamStrLen); break; - case kParamN: float2string (N, text, kVstMaxParamStrLen); break; - case kParamO: float2string (O, text, kVstMaxParamStrLen); break; - case kParamP: float2string (P, text, kVstMaxParamStrLen); break; - case kParamQ: float2string (Q, text, kVstMaxParamStrLen); break; default: break; // unknown parameter, shouldn't happen! } //this displays the values and handles 'popups' where it's discrete choices } @@ -276,12 +215,6 @@ void ConsoleX2Buss::getParameterLabel(VstInt32 index, char *text) { case kParamI: vst_strncpy (text, "dyn", kVstMaxParamStrLen); break; case kParamJ: vst_strncpy (text, "", kVstMaxParamStrLen); break; case kParamK: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamL: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamM: vst_strncpy (text, "fltr", kVstMaxParamStrLen); break; - case kParamN: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamO: vst_strncpy (text, "+", kVstMaxParamStrLen); break; - case kParamP: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamQ: vst_strncpy (text, "", kVstMaxParamStrLen); break; default: break; // unknown parameter, shouldn't happen! } } diff --git a/plugins/WinVST/ConsoleX2Buss/ConsoleX2Buss.h b/plugins/WinVST/ConsoleX2Buss/ConsoleX2Buss.h index f63ec0053..f13fa39c5 100755 --- a/plugins/WinVST/ConsoleX2Buss/ConsoleX2Buss.h +++ b/plugins/WinVST/ConsoleX2Buss/ConsoleX2Buss.h @@ -27,15 +27,8 @@ enum { kParamI =8, kParamJ =9, kParamK =10, - kParamL =11, - kParamM =12, - kParamN =13, - kParamO =14, - kParamP =15, - kParamQ =16, - kNumParameters = 17 + kNumParameters = 11 }; // -const int dscBuf = 256; const int kNumPrograms = 0; const int kNumInputs = 2; @@ -80,12 +73,6 @@ private: float I; float J; float K; - float L; - float M; - float N; - float O; - float P; - float Q; enum { biq_freq, @@ -139,33 +126,25 @@ private: 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; diff --git a/plugins/WinVST/ConsoleX2Buss/ConsoleX2BussProc.cpp b/plugins/WinVST/ConsoleX2Buss/ConsoleX2BussProc.cpp index 158b71aa1..ccc0d1399 100755 --- a/plugins/WinVST/ConsoleX2Buss/ConsoleX2BussProc.cpp +++ b/plugins/WinVST/ConsoleX2Buss/ConsoleX2BussProc.cpp @@ -18,6 +18,8 @@ void ConsoleX2Buss::processReplacing(float **inputs, float **outputs, VstInt32 s 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 = (A-0.5)*2.0; trebleGain = 1.0+(trebleGain*fabs(trebleGain)*fabs(trebleGain)); @@ -44,8 +46,8 @@ void ConsoleX2Buss::processReplacing(float **inputs, float **outputs, VstInt32 s highC[biq_freq] = highB[biq_freq] = highA[biq_freq] = fmax(fmin(highA[biq_freq],0.4999),0.00025); double highFreq = pow(highF,3)*20000.0; double omega = 2.0*M_PI*(highFreq/getSampleRate()); - double K = 2.0-cos(omega); - double highCoef = -sqrt((K*K)-1.0)+K; + double biqK = 2.0-cos(omega); + double highCoef = -sqrt((biqK*biqK)-1.0)+biqK; highA[biq_reso] = 2.24697960 * highQ; highB[biq_reso] = 0.80193774 * highQ; highC[biq_reso] = 0.55495813 * highQ; @@ -54,8 +56,8 @@ void ConsoleX2Buss::processReplacing(float **inputs, float **outputs, VstInt32 s midC[biq_freq] = midB[biq_freq] = midA[biq_freq] = fmax(fmin(midA[biq_freq],0.4999),0.00025); double midFreq = pow(midF,3)*20000.0; omega = 2.0*M_PI*(midFreq/getSampleRate()); - K = 2.0-cos(omega); - double midCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double midCoef = -sqrt((biqK*biqK)-1.0)+biqK; midA[biq_reso] = 2.24697960 * midQ; midB[biq_reso] = 0.80193774 * midQ; midC[biq_reso] = 0.55495813 * midQ; @@ -64,97 +66,88 @@ void ConsoleX2Buss::processReplacing(float **inputs, float **outputs, VstInt32 s lowC[biq_freq] = lowB[biq_freq] = lowA[biq_freq] = fmax(fmin(lowA[biq_freq],0.4999),0.00025); double lowFreq = pow(bassF,3)*20000.0; omega = 2.0*M_PI*(lowFreq/getSampleRate()); - K = 2.0-cos(omega); - double lowCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double lowCoef = -sqrt((biqK*biqK)-1.0)+biqK; lowA[biq_reso] = 2.24697960 * lowQ; lowB[biq_reso] = 0.80193774 * lowQ; lowC[biq_reso] = 0.55495813 * lowQ; - K = tan(M_PI * highA[biq_freq]); - double norm = 1.0 / (1.0 + K / highA[biq_reso] + K * K); - highA[biq_a0] = K * K * norm; + biqK = tan(M_PI * highA[biq_freq]); + double norm = 1.0 / (1.0 + biqK / highA[biq_reso] + biqK * biqK); + highA[biq_a0] = biqK * biqK * norm; highA[biq_a1] = 2.0 * highA[biq_a0]; highA[biq_a2] = highA[biq_a0]; - highA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highA[biq_b2] = (1.0 - K / highA[biq_reso] + K * K) * norm; - K = tan(M_PI * highB[biq_freq]); - norm = 1.0 / (1.0 + K / highB[biq_reso] + K * K); - highB[biq_a0] = K * K * norm; + highA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highA[biq_b2] = (1.0 - biqK / highA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highB[biq_freq]); + norm = 1.0 / (1.0 + biqK / highB[biq_reso] + biqK * biqK); + highB[biq_a0] = biqK * biqK * norm; highB[biq_a1] = 2.0 * highB[biq_a0]; highB[biq_a2] = highB[biq_a0]; - highB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highB[biq_b2] = (1.0 - K / highB[biq_reso] + K * K) * norm; - K = tan(M_PI * highC[biq_freq]); - norm = 1.0 / (1.0 + K / highC[biq_reso] + K * K); - highC[biq_a0] = K * K * norm; + highB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highB[biq_b2] = (1.0 - biqK / highB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highC[biq_freq]); + norm = 1.0 / (1.0 + biqK / highC[biq_reso] + biqK * biqK); + highC[biq_a0] = biqK * biqK * norm; highC[biq_a1] = 2.0 * highC[biq_a0]; highC[biq_a2] = highC[biq_a0]; - highC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highC[biq_b2] = (1.0 - K / highC[biq_reso] + K * K) * norm; + highC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highC[biq_b2] = (1.0 - biqK / highC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * midA[biq_freq]); - norm = 1.0 / (1.0 + K / midA[biq_reso] + K * K); - midA[biq_a0] = K * K * norm; + biqK = tan(M_PI * midA[biq_freq]); + norm = 1.0 / (1.0 + biqK / midA[biq_reso] + biqK * biqK); + midA[biq_a0] = biqK * biqK * norm; midA[biq_a1] = 2.0 * midA[biq_a0]; midA[biq_a2] = midA[biq_a0]; - midA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midA[biq_b2] = (1.0 - K / midA[biq_reso] + K * K) * norm; - K = tan(M_PI * midB[biq_freq]); - norm = 1.0 / (1.0 + K / midB[biq_reso] + K * K); - midB[biq_a0] = K * K * norm; + midA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midA[biq_b2] = (1.0 - biqK / midA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midB[biq_freq]); + norm = 1.0 / (1.0 + biqK / midB[biq_reso] + biqK * biqK); + midB[biq_a0] = biqK * biqK * norm; midB[biq_a1] = 2.0 * midB[biq_a0]; midB[biq_a2] = midB[biq_a0]; - midB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midB[biq_b2] = (1.0 - K / midB[biq_reso] + K * K) * norm; - K = tan(M_PI * midC[biq_freq]); - norm = 1.0 / (1.0 + K / midC[biq_reso] + K * K); - midC[biq_a0] = K * K * norm; + midB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midB[biq_b2] = (1.0 - biqK / midB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midC[biq_freq]); + norm = 1.0 / (1.0 + biqK / midC[biq_reso] + biqK * biqK); + midC[biq_a0] = biqK * biqK * norm; midC[biq_a1] = 2.0 * midC[biq_a0]; midC[biq_a2] = midC[biq_a0]; - midC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midC[biq_b2] = (1.0 - K / midC[biq_reso] + K * K) * norm; + midC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midC[biq_b2] = (1.0 - biqK / midC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * lowA[biq_freq]); - norm = 1.0 / (1.0 + K / lowA[biq_reso] + K * K); - lowA[biq_a0] = K * K * norm; + biqK = tan(M_PI * lowA[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowA[biq_reso] + biqK * biqK); + lowA[biq_a0] = biqK * biqK * norm; lowA[biq_a1] = 2.0 * lowA[biq_a0]; lowA[biq_a2] = lowA[biq_a0]; - lowA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowA[biq_b2] = (1.0 - K / lowA[biq_reso] + K * K) * norm; - K = tan(M_PI * lowB[biq_freq]); - norm = 1.0 / (1.0 + K / lowB[biq_reso] + K * K); - lowB[biq_a0] = K * K * norm; + lowA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowA[biq_b2] = (1.0 - biqK / lowA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowB[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowB[biq_reso] + biqK * biqK); + lowB[biq_a0] = biqK * biqK * norm; lowB[biq_a1] = 2.0 * lowB[biq_a0]; lowB[biq_a2] = lowB[biq_a0]; - lowB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowB[biq_b2] = (1.0 - K / lowB[biq_reso] + K * K) * norm; - K = tan(M_PI * lowC[biq_freq]); - norm = 1.0 / (1.0 + K / lowC[biq_reso] + K * K); - lowC[biq_a0] = K * K * norm; + lowB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowB[biq_b2] = (1.0 - biqK / lowB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowC[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowC[biq_reso] + biqK * biqK); + lowC[biq_a0] = biqK * biqK * norm; lowC[biq_a1] = 2.0 * lowC[biq_a0]; lowC[biq_a2] = lowC[biq_a0]; - lowC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowC[biq_b2] = (1.0 - K / lowC[biq_reso] + K * K) * norm; + lowC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowC[biq_b2] = (1.0 - biqK / lowC[biq_reso] + biqK * biqK) * norm; //SmoothEQ2 double bezCThresh = pow(1.0-I, 6.0) * 8.0; - double bezRez = pow(1.0-J, 8.0) / overallscale; - double sloRez = pow(1.0-K,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(L,4.0),sqrt(bezCThresh+1.0)); + double bezRez = pow(1.0-I, 12.360679774997898) / overallscale; + double sloRez = pow(1.0-I,10.0) / overallscale; + sloRez = fmin(fmax(sloRez,0.00001),1.0); + bezRez = fmin(fmax(bezRez,0.00001),1.0); //Dynamics2 - lFreqA = lFreqB; lFreqB = pow(fmax(M,0.002),overallscale); //the lowpass - hFreqA = hFreqB; hFreqB = pow(N,overallscale+2.0); //the highpass - //Cabs2 - - double moreDiscontinuity = fmax(pow(O*0.42,3.0)*overallscale,0.00001); - double moreTapeHack = (O*1.4152481)+1.2; - //Discontapeity - - panA = panB; panB = P*1.57079633; - inTrimA = inTrimB; inTrimB = Q*2.0; + panA = panB; panB = J*1.57079633; + inTrimA = inTrimB; inTrimB = K*2.0; //Console while (--sampleFrames >= 0) @@ -310,9 +303,6 @@ void ConsoleX2Buss::processReplacing(float **inputs, float **outputs, VstInt32 s //fourth stage of three crossovers is the exponential filters //SmoothEQ2 - if (fmax(fabs(inputSampleL),fabs(inputSampleR)) > gate+(sloRez*bezGate)) bezGate = ((bezGate*overallscale*3.0)+3.0)*(0.25/overallscale); - else bezGate = fmax(0.0, bezGate-(sloRez*sloRez)); - if (bezCThresh > 0.0) { inputSampleL *= ((bezCThresh*0.5)+1.0); inputSampleR *= ((bezCThresh*0.5)+1.0); @@ -325,21 +315,14 @@ void ConsoleX2Buss::processReplacing(float **inputs, float **outputs, VstInt32 s if (bezCompF[bez_cycle] > 1.0) { bezCompF[bez_cycle] -= 1.0; - - if (bezMaxF < gate) bezCompF[bez_SampL] = bezMaxF/gate; //note: SampL is a control voltage, - if (bezCompF[bez_SampL] 1.0) { bezCompS[bez_cycle] -= 1.0; - - if (bezCompS[bez_SampL] 0.0) CBAMax = 1.0/CBAMax; CBAFade = ((CBASR*-CBAMax)+(CBAFR*CBAMax)+1.0)*0.5; if (bezCThresh > 0.0) inputSampleR *= 1.0-(fmin(((CBASR*(1.0-CBAFade))+(CBAFR*CBAFade))*bezCThresh,1.0)); - - if (bezGate < 1.0 && gate > 0.0) {inputSampleL *= bezGate; inputSampleR *= bezGate;} //Dynamics2 const double temp = (double)sampleFrames/inFramesToProcess; - const double hFreq = (hFreqA*temp)+(hFreqB*(1.0-temp)); - if (hFreq > 0.0) { - double lowSampleL = inputSampleL; - double lowSampleR = inputSampleR; - for(int count = 0; count < 21; count++) { - iirHAngleL[count] = (iirHAngleL[count]*(1.0-hFreq))+((lowSampleL-iirHPositionL[count])*hFreq); - lowSampleL = ((iirHPositionL[count]+(iirHAngleL[count]*hFreq))*(1.0-hFreq))+(lowSampleL*hFreq); - iirHPositionL[count] = ((iirHPositionL[count]+(iirHAngleL[count]*hFreq))*(1.0-hFreq))+(lowSampleL*hFreq); - inputSampleL -= (lowSampleL * (1.0/21.0));//left - iirHAngleR[count] = (iirHAngleR[count]*(1.0-hFreq))+((lowSampleR-iirHPositionR[count])*hFreq); - lowSampleR = ((iirHPositionR[count]+(iirHAngleR[count]*hFreq))*(1.0-hFreq))+(lowSampleR*hFreq); - iirHPositionR[count] = ((iirHPositionR[count]+(iirHAngleR[count]*hFreq))*(1.0-hFreq))+(lowSampleR*hFreq); - inputSampleR -= (lowSampleR * (1.0/21.0));//right - } //the highpass - hBypass = false; - } else { - if (!hBypass) { - hBypass = true; - for(int count = 0; count < 22; count++) { - iirHPositionL[count] = 0.0; - iirHAngleL[count] = 0.0; - iirHPositionR[count] = 0.0; - iirHAngleR[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++) { - iirLAngleL[count] = (iirLAngleL[count]*(1.0-lFreq))+((inputSampleL-iirLPositionL[count])*lFreq); - inputSampleL = ((iirLPositionL[count]+(iirLAngleL[count]*lFreq))*(1.0-lFreq))+(inputSampleL*lFreq); - iirLPositionL[count] = ((iirLPositionL[count]+(iirLAngleL[count]*lFreq))*(1.0-lFreq))+(inputSampleL*lFreq);//left - iirLAngleR[count] = (iirLAngleR[count]*(1.0-lFreq))+((inputSampleR-iirLPositionR[count])*lFreq); - inputSampleR = ((iirLPositionR[count]+(iirLAngleR[count]*lFreq))*(1.0-lFreq))+(inputSampleR*lFreq); - iirLPositionR[count] = ((iirLPositionR[count]+(iirLAngleR[count]*lFreq))*(1.0-lFreq))+(inputSampleR*lFreq);//right - } //the lowpass - lBypass = false; - } else { - if (!lBypass) { - lBypass = true; - for(int count = 0; count < 14; count++) { - iirLPositionL[count] = 0.0; - iirLAngleL[count] = 0.0; - iirLPositionR[count] = 0.0; - iirLAngleR[count] = 0.0; - } - } //blank out lowpass if just switched off - } - //Cabs2 + 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; - //begin Discontinuity section - inputSampleL *= moreDiscontinuity; - dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5); - dBaPosL = fmin(dBaPosL,1.0); - int dBdly = floor(dBaPosL*dscBuf); - double dBi = (dBaPosL*dscBuf)-dBdly; - inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi; - dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0; - inputSampleL /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleL = fmax(fmin(inputSampleL*moreTapeHack,2.305929007734908),-2.305929007734908); + 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); @@ -458,21 +425,11 @@ void ConsoleX2Buss::processReplacing(float **inputs, float **outputs, VstInt32 s empower *= addtwo; //eleventh inputSampleL -= (empower / 9979200.0f); //this is a degenerate form of a Taylor Series to approximate sin() - inputSampleL *= 0.9239; + inputSampleL *= 0.92; //end TapeHack section - //begin Discontinuity section - inputSampleR *= moreDiscontinuity; - dBaR[dBaXR] = inputSampleR; dBaPosR *= 0.5; dBaPosR += fabs((inputSampleR*((inputSampleR*0.25)-0.5))*0.5); - dBaPosR = fmin(dBaPosR,1.0); - dBdly = floor(dBaPosR*dscBuf); - dBi = (dBaPosR*dscBuf)-dBdly; - inputSampleR = dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleR += dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*dBi; - dBaXR++; if (dBaXR < 0 || dBaXR >= dscBuf) dBaXR = 0; - inputSampleR /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleR = fmax(fmin(inputSampleR*moreTapeHack,2.305929007734908),-2.305929007734908); + //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); @@ -485,22 +442,8 @@ void ConsoleX2Buss::processReplacing(float **inputs, float **outputs, VstInt32 s empower *= addtwo; //eleventh inputSampleR -= (empower / 9979200.0f); //this is a degenerate form of a Taylor Series to approximate sin() - inputSampleR *= 0.9239; + inputSampleR *= 0.92; //end TapeHack section - //Discontapeity - - 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 //begin 32 bit stereo floating point dither int expon; frexpf((float)inputSampleL, &expon); @@ -532,6 +475,8 @@ void ConsoleX2Buss::processDoubleReplacing(double **inputs, double **outputs, Vs 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 = (A-0.5)*2.0; trebleGain = 1.0+(trebleGain*fabs(trebleGain)*fabs(trebleGain)); @@ -558,8 +503,8 @@ void ConsoleX2Buss::processDoubleReplacing(double **inputs, double **outputs, Vs highC[biq_freq] = highB[biq_freq] = highA[biq_freq] = fmax(fmin(highA[biq_freq],0.4999),0.00025); double highFreq = pow(highF,3)*20000.0; double omega = 2.0*M_PI*(highFreq/getSampleRate()); - double K = 2.0-cos(omega); - double highCoef = -sqrt((K*K)-1.0)+K; + double biqK = 2.0-cos(omega); + double highCoef = -sqrt((biqK*biqK)-1.0)+biqK; highA[biq_reso] = 2.24697960 * highQ; highB[biq_reso] = 0.80193774 * highQ; highC[biq_reso] = 0.55495813 * highQ; @@ -568,8 +513,8 @@ void ConsoleX2Buss::processDoubleReplacing(double **inputs, double **outputs, Vs midC[biq_freq] = midB[biq_freq] = midA[biq_freq] = fmax(fmin(midA[biq_freq],0.4999),0.00025); double midFreq = pow(midF,3)*20000.0; omega = 2.0*M_PI*(midFreq/getSampleRate()); - K = 2.0-cos(omega); - double midCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double midCoef = -sqrt((biqK*biqK)-1.0)+biqK; midA[biq_reso] = 2.24697960 * midQ; midB[biq_reso] = 0.80193774 * midQ; midC[biq_reso] = 0.55495813 * midQ; @@ -578,97 +523,88 @@ void ConsoleX2Buss::processDoubleReplacing(double **inputs, double **outputs, Vs lowC[biq_freq] = lowB[biq_freq] = lowA[biq_freq] = fmax(fmin(lowA[biq_freq],0.4999),0.00025); double lowFreq = pow(bassF,3)*20000.0; omega = 2.0*M_PI*(lowFreq/getSampleRate()); - K = 2.0-cos(omega); - double lowCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double lowCoef = -sqrt((biqK*biqK)-1.0)+biqK; lowA[biq_reso] = 2.24697960 * lowQ; lowB[biq_reso] = 0.80193774 * lowQ; lowC[biq_reso] = 0.55495813 * lowQ; - K = tan(M_PI * highA[biq_freq]); - double norm = 1.0 / (1.0 + K / highA[biq_reso] + K * K); - highA[biq_a0] = K * K * norm; + biqK = tan(M_PI * highA[biq_freq]); + double norm = 1.0 / (1.0 + biqK / highA[biq_reso] + biqK * biqK); + highA[biq_a0] = biqK * biqK * norm; highA[biq_a1] = 2.0 * highA[biq_a0]; highA[biq_a2] = highA[biq_a0]; - highA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highA[biq_b2] = (1.0 - K / highA[biq_reso] + K * K) * norm; - K = tan(M_PI * highB[biq_freq]); - norm = 1.0 / (1.0 + K / highB[biq_reso] + K * K); - highB[biq_a0] = K * K * norm; + highA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highA[biq_b2] = (1.0 - biqK / highA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highB[biq_freq]); + norm = 1.0 / (1.0 + biqK / highB[biq_reso] + biqK * biqK); + highB[biq_a0] = biqK * biqK * norm; highB[biq_a1] = 2.0 * highB[biq_a0]; highB[biq_a2] = highB[biq_a0]; - highB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highB[biq_b2] = (1.0 - K / highB[biq_reso] + K * K) * norm; - K = tan(M_PI * highC[biq_freq]); - norm = 1.0 / (1.0 + K / highC[biq_reso] + K * K); - highC[biq_a0] = K * K * norm; + highB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highB[biq_b2] = (1.0 - biqK / highB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highC[biq_freq]); + norm = 1.0 / (1.0 + biqK / highC[biq_reso] + biqK * biqK); + highC[biq_a0] = biqK * biqK * norm; highC[biq_a1] = 2.0 * highC[biq_a0]; highC[biq_a2] = highC[biq_a0]; - highC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highC[biq_b2] = (1.0 - K / highC[biq_reso] + K * K) * norm; + highC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highC[biq_b2] = (1.0 - biqK / highC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * midA[biq_freq]); - norm = 1.0 / (1.0 + K / midA[biq_reso] + K * K); - midA[biq_a0] = K * K * norm; + biqK = tan(M_PI * midA[biq_freq]); + norm = 1.0 / (1.0 + biqK / midA[biq_reso] + biqK * biqK); + midA[biq_a0] = biqK * biqK * norm; midA[biq_a1] = 2.0 * midA[biq_a0]; midA[biq_a2] = midA[biq_a0]; - midA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midA[biq_b2] = (1.0 - K / midA[biq_reso] + K * K) * norm; - K = tan(M_PI * midB[biq_freq]); - norm = 1.0 / (1.0 + K / midB[biq_reso] + K * K); - midB[biq_a0] = K * K * norm; + midA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midA[biq_b2] = (1.0 - biqK / midA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midB[biq_freq]); + norm = 1.0 / (1.0 + biqK / midB[biq_reso] + biqK * biqK); + midB[biq_a0] = biqK * biqK * norm; midB[biq_a1] = 2.0 * midB[biq_a0]; midB[biq_a2] = midB[biq_a0]; - midB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midB[biq_b2] = (1.0 - K / midB[biq_reso] + K * K) * norm; - K = tan(M_PI * midC[biq_freq]); - norm = 1.0 / (1.0 + K / midC[biq_reso] + K * K); - midC[biq_a0] = K * K * norm; + midB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midB[biq_b2] = (1.0 - biqK / midB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midC[biq_freq]); + norm = 1.0 / (1.0 + biqK / midC[biq_reso] + biqK * biqK); + midC[biq_a0] = biqK * biqK * norm; midC[biq_a1] = 2.0 * midC[biq_a0]; midC[biq_a2] = midC[biq_a0]; - midC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midC[biq_b2] = (1.0 - K / midC[biq_reso] + K * K) * norm; + midC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midC[biq_b2] = (1.0 - biqK / midC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * lowA[biq_freq]); - norm = 1.0 / (1.0 + K / lowA[biq_reso] + K * K); - lowA[biq_a0] = K * K * norm; + biqK = tan(M_PI * lowA[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowA[biq_reso] + biqK * biqK); + lowA[biq_a0] = biqK * biqK * norm; lowA[biq_a1] = 2.0 * lowA[biq_a0]; lowA[biq_a2] = lowA[biq_a0]; - lowA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowA[biq_b2] = (1.0 - K / lowA[biq_reso] + K * K) * norm; - K = tan(M_PI * lowB[biq_freq]); - norm = 1.0 / (1.0 + K / lowB[biq_reso] + K * K); - lowB[biq_a0] = K * K * norm; + lowA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowA[biq_b2] = (1.0 - biqK / lowA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowB[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowB[biq_reso] + biqK * biqK); + lowB[biq_a0] = biqK * biqK * norm; lowB[biq_a1] = 2.0 * lowB[biq_a0]; lowB[biq_a2] = lowB[biq_a0]; - lowB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowB[biq_b2] = (1.0 - K / lowB[biq_reso] + K * K) * norm; - K = tan(M_PI * lowC[biq_freq]); - norm = 1.0 / (1.0 + K / lowC[biq_reso] + K * K); - lowC[biq_a0] = K * K * norm; + lowB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowB[biq_b2] = (1.0 - biqK / lowB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowC[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowC[biq_reso] + biqK * biqK); + lowC[biq_a0] = biqK * biqK * norm; lowC[biq_a1] = 2.0 * lowC[biq_a0]; lowC[biq_a2] = lowC[biq_a0]; - lowC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowC[biq_b2] = (1.0 - K / lowC[biq_reso] + K * K) * norm; + lowC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowC[biq_b2] = (1.0 - biqK / lowC[biq_reso] + biqK * biqK) * norm; //SmoothEQ2 double bezCThresh = pow(1.0-I, 6.0) * 8.0; - double bezRez = pow(1.0-J, 8.0) / overallscale; - double sloRez = pow(1.0-K,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(L,4.0),sqrt(bezCThresh+1.0)); + double bezRez = pow(1.0-I, 12.360679774997898) / overallscale; + double sloRez = pow(1.0-I,10.0) / overallscale; + sloRez = fmin(fmax(sloRez,0.00001),1.0); + bezRez = fmin(fmax(bezRez,0.00001),1.0); //Dynamics2 - lFreqA = lFreqB; lFreqB = pow(fmax(M,0.002),overallscale); //the lowpass - hFreqA = hFreqB; hFreqB = pow(N,overallscale+2.0); //the highpass - //Cabs2 - - double moreDiscontinuity = fmax(pow(O*0.42,3.0)*overallscale,0.00001); - double moreTapeHack = (O*1.4152481)+1.2; - //Discontapeity - - panA = panB; panB = P*1.57079633; - inTrimA = inTrimB; inTrimB = Q*2.0; + panA = panB; panB = J*1.57079633; + inTrimA = inTrimB; inTrimB = K*2.0; //Console while (--sampleFrames >= 0) @@ -824,9 +760,6 @@ void ConsoleX2Buss::processDoubleReplacing(double **inputs, double **outputs, Vs //fourth stage of three crossovers is the exponential filters //SmoothEQ2 - if (fmax(fabs(inputSampleL),fabs(inputSampleR)) > gate+(sloRez*bezGate)) bezGate = ((bezGate*overallscale*3.0)+3.0)*(0.25/overallscale); - else bezGate = fmax(0.0, bezGate-(sloRez*sloRez)); - if (bezCThresh > 0.0) { inputSampleL *= ((bezCThresh*0.5)+1.0); inputSampleR *= ((bezCThresh*0.5)+1.0); @@ -839,21 +772,14 @@ void ConsoleX2Buss::processDoubleReplacing(double **inputs, double **outputs, Vs if (bezCompF[bez_cycle] > 1.0) { bezCompF[bez_cycle] -= 1.0; - - if (bezMaxF < gate) bezCompF[bez_SampL] = bezMaxF/gate; //note: SampL is a control voltage, - if (bezCompF[bez_SampL] 1.0) { bezCompS[bez_cycle] -= 1.0; - - if (bezCompS[bez_SampL] 0.0) CBAMax = 1.0/CBAMax; CBAFade = ((CBASR*-CBAMax)+(CBAFR*CBAMax)+1.0)*0.5; if (bezCThresh > 0.0) inputSampleR *= 1.0-(fmin(((CBASR*(1.0-CBAFade))+(CBAFR*CBAFade))*bezCThresh,1.0)); - - if (bezGate < 1.0 && gate > 0.0) {inputSampleL *= bezGate; inputSampleR *= bezGate;} //Dynamics2 const double temp = (double)sampleFrames/inFramesToProcess; - const double hFreq = (hFreqA*temp)+(hFreqB*(1.0-temp)); - if (hFreq > 0.0) { - double lowSampleL = inputSampleL; - double lowSampleR = inputSampleR; - for(int count = 0; count < 21; count++) { - iirHAngleL[count] = (iirHAngleL[count]*(1.0-hFreq))+((lowSampleL-iirHPositionL[count])*hFreq); - lowSampleL = ((iirHPositionL[count]+(iirHAngleL[count]*hFreq))*(1.0-hFreq))+(lowSampleL*hFreq); - iirHPositionL[count] = ((iirHPositionL[count]+(iirHAngleL[count]*hFreq))*(1.0-hFreq))+(lowSampleL*hFreq); - inputSampleL -= (lowSampleL * (1.0/21.0));//left - iirHAngleR[count] = (iirHAngleR[count]*(1.0-hFreq))+((lowSampleR-iirHPositionR[count])*hFreq); - lowSampleR = ((iirHPositionR[count]+(iirHAngleR[count]*hFreq))*(1.0-hFreq))+(lowSampleR*hFreq); - iirHPositionR[count] = ((iirHPositionR[count]+(iirHAngleR[count]*hFreq))*(1.0-hFreq))+(lowSampleR*hFreq); - inputSampleR -= (lowSampleR * (1.0/21.0));//right - } //the highpass - hBypass = false; - } else { - if (!hBypass) { - hBypass = true; - for(int count = 0; count < 22; count++) { - iirHPositionL[count] = 0.0; - iirHAngleL[count] = 0.0; - iirHPositionR[count] = 0.0; - iirHAngleR[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++) { - iirLAngleL[count] = (iirLAngleL[count]*(1.0-lFreq))+((inputSampleL-iirLPositionL[count])*lFreq); - inputSampleL = ((iirLPositionL[count]+(iirLAngleL[count]*lFreq))*(1.0-lFreq))+(inputSampleL*lFreq); - iirLPositionL[count] = ((iirLPositionL[count]+(iirLAngleL[count]*lFreq))*(1.0-lFreq))+(inputSampleL*lFreq);//left - iirLAngleR[count] = (iirLAngleR[count]*(1.0-lFreq))+((inputSampleR-iirLPositionR[count])*lFreq); - inputSampleR = ((iirLPositionR[count]+(iirLAngleR[count]*lFreq))*(1.0-lFreq))+(inputSampleR*lFreq); - iirLPositionR[count] = ((iirLPositionR[count]+(iirLAngleR[count]*lFreq))*(1.0-lFreq))+(inputSampleR*lFreq);//right - } //the lowpass - lBypass = false; - } else { - if (!lBypass) { - lBypass = true; - for(int count = 0; count < 14; count++) { - iirLPositionL[count] = 0.0; - iirLAngleL[count] = 0.0; - iirLPositionR[count] = 0.0; - iirLAngleR[count] = 0.0; - } - } //blank out lowpass if just switched off - } - //Cabs2 + 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; - //begin Discontinuity section - inputSampleL *= moreDiscontinuity; - dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5); - dBaPosL = fmin(dBaPosL,1.0); - int dBdly = floor(dBaPosL*dscBuf); - double dBi = (dBaPosL*dscBuf)-dBdly; - inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi; - dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0; - inputSampleL /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleL = fmax(fmin(inputSampleL*moreTapeHack,2.305929007734908),-2.305929007734908); + 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); @@ -972,21 +882,11 @@ void ConsoleX2Buss::processDoubleReplacing(double **inputs, double **outputs, Vs empower *= addtwo; //eleventh inputSampleL -= (empower / 9979200.0f); //this is a degenerate form of a Taylor Series to approximate sin() - inputSampleL *= 0.9239; + inputSampleL *= 0.92; //end TapeHack section - //begin Discontinuity section - inputSampleR *= moreDiscontinuity; - dBaR[dBaXR] = inputSampleR; dBaPosR *= 0.5; dBaPosR += fabs((inputSampleR*((inputSampleR*0.25)-0.5))*0.5); - dBaPosR = fmin(dBaPosR,1.0); - dBdly = floor(dBaPosR*dscBuf); - dBi = (dBaPosR*dscBuf)-dBdly; - inputSampleR = dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleR += dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*dBi; - dBaXR++; if (dBaXR < 0 || dBaXR >= dscBuf) dBaXR = 0; - inputSampleR /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleR = fmax(fmin(inputSampleR*moreTapeHack,2.305929007734908),-2.305929007734908); + //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); @@ -999,23 +899,10 @@ void ConsoleX2Buss::processDoubleReplacing(double **inputs, double **outputs, Vs empower *= addtwo; //eleventh inputSampleR -= (empower / 9979200.0f); //this is a degenerate form of a Taylor Series to approximate sin() - inputSampleR *= 0.9239; + inputSampleR *= 0.92; //end TapeHack section //Discontapeity - 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 - //begin 64 bit stereo floating point dither //int expon; frexp((double)inputSampleL, &expon); fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5; diff --git a/plugins/WinVST/ConsoleX2Channel/ConsoleX2Channel.cpp b/plugins/WinVST/ConsoleX2Channel/ConsoleX2Channel.cpp index 3f8c92558..1d253c15a 100755 --- a/plugins/WinVST/ConsoleX2Channel/ConsoleX2Channel.cpp +++ b/plugins/WinVST/ConsoleX2Channel/ConsoleX2Channel.cpp @@ -12,23 +12,24 @@ AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new C ConsoleX2Channel::ConsoleX2Channel(audioMasterCallback audioMaster) : AudioEffectX(audioMaster, kNumPrograms, kNumParameters) { - A = 0.5; - B = 0.5; + A = 0.25; + B = 0.0; C = 0.5; D = 0.5; E = 0.5; F = 0.5; G = 0.5; H = 0.5; - I = 1.0; + I = 0.5; J = 0.5; - K = 0.5; - L = 0.0; - M = 1.0; + K = 1.0; + L = 0.5; + M = 0.5; N = 0.0; - O = 0.0; - P = 0.5; + O = 1.0; + P = 0.0; Q = 0.5; + R = 0.5; for (int x = 0; x < biq_total; x++) { highA[x] = 0.0; @@ -81,6 +82,16 @@ ConsoleX2Channel::ConsoleX2Channel(audioMasterCallback audioMaster) : 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; @@ -136,6 +147,7 @@ VstInt32 ConsoleX2Channel::getChunk (void** data, bool isPreset) chunkData[14] = O; chunkData[15] = P; chunkData[16] = Q; + chunkData[17] = R; /* 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. */ @@ -164,6 +176,7 @@ VstInt32 ConsoleX2Channel::setChunk (void* data, VstInt32 byteSize, bool isPrese O = pinParameter(chunkData[14]); P = pinParameter(chunkData[15]); Q = pinParameter(chunkData[16]); + R = pinParameter(chunkData[17]); /* We're ignoring byteSize as we found it to be a filthy liar */ /* calculate any other fields you need here - you could copy in @@ -190,6 +203,7 @@ void ConsoleX2Channel::setParameter(VstInt32 index, float value) { case kParamO: O = value; break; case kParamP: P = value; break; case kParamQ: Q = value; break; + case kParamR: R = value; break; default: throw; // unknown parameter, shouldn't happen! } } @@ -213,36 +227,38 @@ float ConsoleX2Channel::getParameter(VstInt32 index) { case kParamO: return O; break; case kParamP: return P; break; case kParamQ: return Q; break; + case kParamR: return R; 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 ConsoleX2Channel::getParameterName(VstInt32 index, char *text) { switch (index) { - case kParamA: vst_strncpy (text, "High", kVstMaxParamStrLen); break; - case kParamB: vst_strncpy (text, "HMid", kVstMaxParamStrLen); break; - case kParamC: vst_strncpy (text, "LMid", kVstMaxParamStrLen); break; - case kParamD: vst_strncpy (text, "Bass", kVstMaxParamStrLen); break; - case kParamE: vst_strncpy (text, "HighF", kVstMaxParamStrLen); break; - case kParamF: vst_strncpy (text, "HMidF", kVstMaxParamStrLen); break; - case kParamG: vst_strncpy (text, "LMidF", kVstMaxParamStrLen); break; - case kParamH: vst_strncpy (text, "BassF", kVstMaxParamStrLen); break; - case kParamI: vst_strncpy (text, "Thresh", kVstMaxParamStrLen); break; - case kParamJ: vst_strncpy (text, "Attack", kVstMaxParamStrLen); break; - case kParamK: vst_strncpy (text, "Release", kVstMaxParamStrLen); break; - case kParamL: vst_strncpy (text, "Gate", kVstMaxParamStrLen); break; - case kParamM: vst_strncpy (text, "Lowpass", kVstMaxParamStrLen); break; - case kParamN: vst_strncpy (text, "Hipass", kVstMaxParamStrLen); break; - case kParamO: vst_strncpy (text, "More", kVstMaxParamStrLen); break; - case kParamP: vst_strncpy (text, "Pan", kVstMaxParamStrLen); break; - case kParamQ: vst_strncpy (text, "Fader", kVstMaxParamStrLen); break; + case kParamA: vst_strncpy (text, "Trim", kVstMaxParamStrLen); break; + case kParamB: vst_strncpy (text, "More", kVstMaxParamStrLen); break; + case kParamC: vst_strncpy (text, "High", kVstMaxParamStrLen); break; + case kParamD: vst_strncpy (text, "HMid", kVstMaxParamStrLen); break; + case kParamE: vst_strncpy (text, "LMid", kVstMaxParamStrLen); break; + case kParamF: vst_strncpy (text, "Bass", kVstMaxParamStrLen); break; + case kParamG: vst_strncpy (text, "HighF", kVstMaxParamStrLen); break; + case kParamH: vst_strncpy (text, "HMidF", kVstMaxParamStrLen); break; + case kParamI: vst_strncpy (text, "LMidF", kVstMaxParamStrLen); break; + case kParamJ: vst_strncpy (text, "BassF", kVstMaxParamStrLen); break; + case kParamK: vst_strncpy (text, "Thresh", kVstMaxParamStrLen); break; + case kParamL: vst_strncpy (text, "Attack", kVstMaxParamStrLen); break; + case kParamM: vst_strncpy (text, "Release", kVstMaxParamStrLen); break; + case kParamN: vst_strncpy (text, "Gate", kVstMaxParamStrLen); break; + case kParamO: vst_strncpy (text, "Lowpass", kVstMaxParamStrLen); break; + case kParamP: vst_strncpy (text, "Hipass", kVstMaxParamStrLen); break; + case kParamQ: vst_strncpy (text, "Pan", kVstMaxParamStrLen); break; + case kParamR: vst_strncpy (text, "Fader", kVstMaxParamStrLen); break; default: break; // unknown parameter, shouldn't happen! } //this is our labels for displaying in the VST host } void ConsoleX2Channel::getParameterDisplay(VstInt32 index, char *text) { switch (index) { - case kParamA: float2string (A, text, kVstMaxParamStrLen); break; + case kParamA: int2string ((int)(A*4.0), text, kVstMaxParamStrLen); break; case kParamB: float2string (B, text, kVstMaxParamStrLen); break; case kParamC: float2string (C, text, kVstMaxParamStrLen); break; case kParamD: float2string (D, text, kVstMaxParamStrLen); break; @@ -259,29 +275,31 @@ void ConsoleX2Channel::getParameterDisplay(VstInt32 index, char *text) { case kParamO: float2string (O, text, kVstMaxParamStrLen); break; case kParamP: float2string (P, text, kVstMaxParamStrLen); break; case kParamQ: float2string (Q, text, kVstMaxParamStrLen); break; + case kParamR: float2string (R, text, kVstMaxParamStrLen); break; default: break; // unknown parameter, shouldn't happen! } //this displays the values and handles 'popups' where it's discrete choices } void ConsoleX2Channel::getParameterLabel(VstInt32 index, char *text) { switch (index) { - case kParamA: vst_strncpy (text, "eq", kVstMaxParamStrLen); break; + case kParamA: vst_strncpy (text, "", kVstMaxParamStrLen); break; case kParamB: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamC: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamC: vst_strncpy (text, "eq", kVstMaxParamStrLen); break; case kParamD: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamE: vst_strncpy (text, "freq", kVstMaxParamStrLen); break; + case kParamE: vst_strncpy (text, "", kVstMaxParamStrLen); break; case kParamF: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamG: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamG: vst_strncpy (text, "freq", kVstMaxParamStrLen); break; case kParamH: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamI: vst_strncpy (text, "dyn", kVstMaxParamStrLen); break; + case kParamI: vst_strncpy (text, "", kVstMaxParamStrLen); break; case kParamJ: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamK: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamK: vst_strncpy (text, "dyn", kVstMaxParamStrLen); break; case kParamL: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamM: vst_strncpy (text, "fltr", kVstMaxParamStrLen); break; + case kParamM: vst_strncpy (text, "", kVstMaxParamStrLen); break; case kParamN: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamO: vst_strncpy (text, "+", kVstMaxParamStrLen); break; + case kParamO: vst_strncpy (text, "fltr", kVstMaxParamStrLen); break; case kParamP: vst_strncpy (text, "", kVstMaxParamStrLen); break; case kParamQ: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamR: vst_strncpy (text, "", kVstMaxParamStrLen); break; default: break; // unknown parameter, shouldn't happen! } } diff --git a/plugins/WinVST/ConsoleX2Channel/ConsoleX2Channel.h b/plugins/WinVST/ConsoleX2Channel/ConsoleX2Channel.h index aac04efbb..7862eafbc 100755 --- a/plugins/WinVST/ConsoleX2Channel/ConsoleX2Channel.h +++ b/plugins/WinVST/ConsoleX2Channel/ConsoleX2Channel.h @@ -33,7 +33,8 @@ enum { kParamO =14, kParamP =15, kParamQ =16, - kNumParameters = 17 + kParamR =17, + kNumParameters = 18 }; // const int dscBuf = 256; @@ -86,6 +87,7 @@ private: float O; float P; float Q; + float R; enum { biq_freq, @@ -166,6 +168,23 @@ private: 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; diff --git a/plugins/WinVST/ConsoleX2Channel/ConsoleX2ChannelProc.cpp b/plugins/WinVST/ConsoleX2Channel/ConsoleX2ChannelProc.cpp index 69a9b1b55..906bc23a4 100755 --- a/plugins/WinVST/ConsoleX2Channel/ConsoleX2ChannelProc.cpp +++ b/plugins/WinVST/ConsoleX2Channel/ConsoleX2ChannelProc.cpp @@ -18,20 +18,33 @@ void ConsoleX2Channel::processReplacing(float **inputs, float **outputs, VstInt3 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 = (A-0.5)*2.0; + double moreTapeHack = (B*2.0)+1.0; + switch ((int)(A*4.0)){ + 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(B*0.42,3.0)*overallscale,0.00001); + //Discontapeity + + double trebleGain = (C-0.5)*2.0; trebleGain = 1.0+(trebleGain*fabs(trebleGain)*fabs(trebleGain)); - double highmidGain = (B-0.5)*2.0; + double highmidGain = (D-0.5)*2.0; highmidGain = 1.0+(highmidGain*fabs(highmidGain)*fabs(highmidGain)); - double lowmidGain = (C-0.5)*2.0; + double lowmidGain = (E-0.5)*2.0; lowmidGain = 1.0+(lowmidGain*fabs(lowmidGain)*fabs(lowmidGain)); - double bassGain = (D-0.5)*2.0; + double bassGain = (F-0.5)*2.0; bassGain = 1.0+(bassGain*fabs(bassGain)*fabs(bassGain)); - double trebleRef = E-0.5; - double highmidRef = F-0.5; - double lowmidRef = G-0.5; - double bassRef = H-0.5; + double trebleRef = G-0.5; + double highmidRef = H-0.5; + double lowmidRef = I-0.5; + double bassRef = J-0.5; double highF = 0.75 + ((trebleRef+trebleRef+trebleRef+highmidRef)*0.125); double bassF = 0.25 + ((lowmidRef+bassRef+bassRef+bassRef)*0.125); double midF = (highF*0.5) + (bassF*0.5) + ((highmidRef+lowmidRef)*0.125); @@ -44,8 +57,8 @@ void ConsoleX2Channel::processReplacing(float **inputs, float **outputs, VstInt3 highC[biq_freq] = highB[biq_freq] = highA[biq_freq] = fmax(fmin(highA[biq_freq],0.4999),0.00025); double highFreq = pow(highF,3)*20000.0; double omega = 2.0*M_PI*(highFreq/getSampleRate()); - double K = 2.0-cos(omega); - double highCoef = -sqrt((K*K)-1.0)+K; + double biqK = 2.0-cos(omega); + double highCoef = -sqrt((biqK*biqK)-1.0)+biqK; highA[biq_reso] = 2.24697960 * highQ; highB[biq_reso] = 0.80193774 * highQ; highC[biq_reso] = 0.55495813 * highQ; @@ -54,8 +67,8 @@ void ConsoleX2Channel::processReplacing(float **inputs, float **outputs, VstInt3 midC[biq_freq] = midB[biq_freq] = midA[biq_freq] = fmax(fmin(midA[biq_freq],0.4999),0.00025); double midFreq = pow(midF,3)*20000.0; omega = 2.0*M_PI*(midFreq/getSampleRate()); - K = 2.0-cos(omega); - double midCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double midCoef = -sqrt((biqK*biqK)-1.0)+biqK; midA[biq_reso] = 2.24697960 * midQ; midB[biq_reso] = 0.80193774 * midQ; midC[biq_reso] = 0.55495813 * midQ; @@ -64,97 +77,93 @@ void ConsoleX2Channel::processReplacing(float **inputs, float **outputs, VstInt3 lowC[biq_freq] = lowB[biq_freq] = lowA[biq_freq] = fmax(fmin(lowA[biq_freq],0.4999),0.00025); double lowFreq = pow(bassF,3)*20000.0; omega = 2.0*M_PI*(lowFreq/getSampleRate()); - K = 2.0-cos(omega); - double lowCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double lowCoef = -sqrt((biqK*biqK)-1.0)+biqK; lowA[biq_reso] = 2.24697960 * lowQ; lowB[biq_reso] = 0.80193774 * lowQ; lowC[biq_reso] = 0.55495813 * lowQ; - K = tan(M_PI * highA[biq_freq]); - double norm = 1.0 / (1.0 + K / highA[biq_reso] + K * K); - highA[biq_a0] = K * K * norm; + biqK = tan(M_PI * highA[biq_freq]); + double norm = 1.0 / (1.0 + biqK / highA[biq_reso] + biqK * biqK); + highA[biq_a0] = biqK * biqK * norm; highA[biq_a1] = 2.0 * highA[biq_a0]; highA[biq_a2] = highA[biq_a0]; - highA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highA[biq_b2] = (1.0 - K / highA[biq_reso] + K * K) * norm; - K = tan(M_PI * highB[biq_freq]); - norm = 1.0 / (1.0 + K / highB[biq_reso] + K * K); - highB[biq_a0] = K * K * norm; + highA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highA[biq_b2] = (1.0 - biqK / highA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highB[biq_freq]); + norm = 1.0 / (1.0 + biqK / highB[biq_reso] + biqK * biqK); + highB[biq_a0] = biqK * biqK * norm; highB[biq_a1] = 2.0 * highB[biq_a0]; highB[biq_a2] = highB[biq_a0]; - highB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highB[biq_b2] = (1.0 - K / highB[biq_reso] + K * K) * norm; - K = tan(M_PI * highC[biq_freq]); - norm = 1.0 / (1.0 + K / highC[biq_reso] + K * K); - highC[biq_a0] = K * K * norm; + highB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highB[biq_b2] = (1.0 - biqK / highB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highC[biq_freq]); + norm = 1.0 / (1.0 + biqK / highC[biq_reso] + biqK * biqK); + highC[biq_a0] = biqK * biqK * norm; highC[biq_a1] = 2.0 * highC[biq_a0]; highC[biq_a2] = highC[biq_a0]; - highC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highC[biq_b2] = (1.0 - K / highC[biq_reso] + K * K) * norm; + highC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highC[biq_b2] = (1.0 - biqK / highC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * midA[biq_freq]); - norm = 1.0 / (1.0 + K / midA[biq_reso] + K * K); - midA[biq_a0] = K * K * norm; + biqK = tan(M_PI * midA[biq_freq]); + norm = 1.0 / (1.0 + biqK / midA[biq_reso] + biqK * biqK); + midA[biq_a0] = biqK * biqK * norm; midA[biq_a1] = 2.0 * midA[biq_a0]; midA[biq_a2] = midA[biq_a0]; - midA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midA[biq_b2] = (1.0 - K / midA[biq_reso] + K * K) * norm; - K = tan(M_PI * midB[biq_freq]); - norm = 1.0 / (1.0 + K / midB[biq_reso] + K * K); - midB[biq_a0] = K * K * norm; + midA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midA[biq_b2] = (1.0 - biqK / midA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midB[biq_freq]); + norm = 1.0 / (1.0 + biqK / midB[biq_reso] + biqK * biqK); + midB[biq_a0] = biqK * biqK * norm; midB[biq_a1] = 2.0 * midB[biq_a0]; midB[biq_a2] = midB[biq_a0]; - midB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midB[biq_b2] = (1.0 - K / midB[biq_reso] + K * K) * norm; - K = tan(M_PI * midC[biq_freq]); - norm = 1.0 / (1.0 + K / midC[biq_reso] + K * K); - midC[biq_a0] = K * K * norm; + midB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midB[biq_b2] = (1.0 - biqK / midB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midC[biq_freq]); + norm = 1.0 / (1.0 + biqK / midC[biq_reso] + biqK * biqK); + midC[biq_a0] = biqK * biqK * norm; midC[biq_a1] = 2.0 * midC[biq_a0]; midC[biq_a2] = midC[biq_a0]; - midC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midC[biq_b2] = (1.0 - K / midC[biq_reso] + K * K) * norm; + midC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midC[biq_b2] = (1.0 - biqK / midC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * lowA[biq_freq]); - norm = 1.0 / (1.0 + K / lowA[biq_reso] + K * K); - lowA[biq_a0] = K * K * norm; + biqK = tan(M_PI * lowA[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowA[biq_reso] + biqK * biqK); + lowA[biq_a0] = biqK * biqK * norm; lowA[biq_a1] = 2.0 * lowA[biq_a0]; lowA[biq_a2] = lowA[biq_a0]; - lowA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowA[biq_b2] = (1.0 - K / lowA[biq_reso] + K * K) * norm; - K = tan(M_PI * lowB[biq_freq]); - norm = 1.0 / (1.0 + K / lowB[biq_reso] + K * K); - lowB[biq_a0] = K * K * norm; + lowA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowA[biq_b2] = (1.0 - biqK / lowA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowB[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowB[biq_reso] + biqK * biqK); + lowB[biq_a0] = biqK * biqK * norm; lowB[biq_a1] = 2.0 * lowB[biq_a0]; lowB[biq_a2] = lowB[biq_a0]; - lowB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowB[biq_b2] = (1.0 - K / lowB[biq_reso] + K * K) * norm; - K = tan(M_PI * lowC[biq_freq]); - norm = 1.0 / (1.0 + K / lowC[biq_reso] + K * K); - lowC[biq_a0] = K * K * norm; + lowB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowB[biq_b2] = (1.0 - biqK / lowB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowC[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowC[biq_reso] + biqK * biqK); + lowC[biq_a0] = biqK * biqK * norm; lowC[biq_a1] = 2.0 * lowC[biq_a0]; lowC[biq_a2] = lowC[biq_a0]; - lowC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowC[biq_b2] = (1.0 - K / lowC[biq_reso] + K * K) * norm; + lowC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowC[biq_b2] = (1.0 - biqK / lowC[biq_reso] + biqK * biqK) * norm; //SmoothEQ2 - double bezCThresh = pow(1.0-I, 6.0) * 8.0; - double bezRez = pow(1.0-J, 8.0) / overallscale; - double sloRez = pow(1.0-K,12.0) / overallscale; + double bezCThresh = pow(1.0-K, 6.0) * 8.0; + double bezRez = pow(1.0-L, 8.0) / overallscale; + double sloRez = pow(1.0-M,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(L,4.0),sqrt(bezCThresh+1.0)); + double gate = pow(pow(N,4.0),sqrt(bezCThresh+1.0)); //Dynamics2 - lFreqA = lFreqB; lFreqB = pow(fmax(M,0.002),overallscale); //the lowpass - hFreqA = hFreqB; hFreqB = pow(N,overallscale+2.0); //the highpass + lFreqA = lFreqB; lFreqB = pow(fmax(O,0.002),overallscale); //the lowpass + hFreqA = hFreqB; hFreqB = pow(P,overallscale+2.0); //the highpass //Cabs2 - double moreDiscontinuity = fmax(pow(O*0.42,3.0)*overallscale,0.00001); - double moreTapeHack = (O*1.4152481)+1.2; - //Discontapeity - - panA = panB; panB = P*1.57079633; - inTrimA = inTrimB; inTrimB = Q*2.0; + panA = panB; panB = Q*1.57079633; + inTrimA = inTrimB; inTrimB = R*2.0; //Console while (--sampleFrames >= 0) @@ -164,6 +173,99 @@ void ConsoleX2Channel::processReplacing(float **inputs, float **outputs, VstInt3 if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17; if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17; + double darkSampleL = inputSampleL; + double darkSampleR = inputSampleR; + if (avgPos > 31) avgPos = 0; + if (spacing > 31) { + avg32L[avgPos] = darkSampleL; avg32R[avgPos] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 32; x++) {darkSampleL += avg32L[x]; darkSampleR += avg32R[x];} + darkSampleL /= 32.0; darkSampleR /= 32.0; + } if (spacing > 15) { + avg16L[avgPos%16] = darkSampleL; avg16R[avgPos%16] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 16; x++) {darkSampleL += avg16L[x]; darkSampleR += avg16R[x];} + darkSampleL /= 16.0; darkSampleR /= 16.0; + } if (spacing > 7) { + avg8L[avgPos%8] = darkSampleL; avg8R[avgPos%8] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 8; x++) {darkSampleL += avg8L[x]; darkSampleR += avg8R[x];} + darkSampleL /= 8.0; darkSampleR /= 8.0; + } if (spacing > 3) { + avg4L[avgPos%4] = darkSampleL; avg4R[avgPos%4] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 4; x++) {darkSampleL += avg4L[x]; darkSampleR += avg4R[x];} + darkSampleL /= 4.0; darkSampleR /= 4.0; + } if (spacing > 1) { + avg2L[avgPos%2] = darkSampleL; avg2R[avgPos%2] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 2; x++) {darkSampleL += avg2L[x]; darkSampleR += avg2R[x];} + darkSampleL /= 2.0; darkSampleR /= 2.0; + } avgPos++; + lastSlewL += fabs(lastSlewpleL-inputSampleL); lastSlewpleL = inputSampleL; + double avgSlewL = fmin(lastSlewL,1.0); + lastSlewL = fmax(lastSlewL*0.78,2.39996322972865332223); + lastSlewR += fabs(lastSlewpleR-inputSampleR); lastSlewpleR = inputSampleR; + double avgSlewR = fmin(lastSlewR,1.0); + lastSlewR = fmax(lastSlewR*0.78,2.39996322972865332223); //look up Golden Angle, it's cool + inputSampleL = (inputSampleL*(1.0-avgSlewL)) + (darkSampleL*avgSlewL); + inputSampleR = (inputSampleR*(1.0-avgSlewR)) + (darkSampleR*avgSlewR); + + //begin Discontinuity section + inputSampleL *= moreTapeHack; + inputSampleL *= moreDiscontinuity; + dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5); + dBaPosL = fmin(dBaPosL,1.0); + int dBdly = floor(dBaPosL*dscBuf); + double dBi = (dBaPosL*dscBuf)-dBdly; + inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi); + dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi; + dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0; + inputSampleL /= moreDiscontinuity; + //end Discontinuity section, begin TapeHack section + inputSampleL = fmax(fmin(inputSampleL,2.305929007734908),-2.305929007734908); + double addtwo = inputSampleL * inputSampleL; + double empower = inputSampleL * addtwo; // inputSampleL to the third power + inputSampleL -= (empower / 6.0); + empower *= addtwo; // to the fifth power + inputSampleL += (empower / 69.0); + empower *= addtwo; //seventh + inputSampleL -= (empower / 2530.08); + empower *= addtwo; //ninth + inputSampleL += (empower / 224985.6); + empower *= addtwo; //eleventh + inputSampleL -= (empower / 9979200.0f); + //this is a degenerate form of a Taylor Series to approximate sin() + //end TapeHack section + + //begin Discontinuity section + inputSampleR *= moreTapeHack; + inputSampleR *= moreDiscontinuity; + dBaR[dBaXR] = inputSampleR; dBaPosR *= 0.5; dBaPosR += fabs((inputSampleR*((inputSampleR*0.25)-0.5))*0.5); + dBaPosR = fmin(dBaPosR,1.0); + dBdly = floor(dBaPosR*dscBuf); + dBi = (dBaPosR*dscBuf)-dBdly; + inputSampleR = dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*(1.0-dBi); + dBdly++; inputSampleR += dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*dBi; + dBaXR++; if (dBaXR < 0 || dBaXR >= dscBuf) dBaXR = 0; + inputSampleR /= moreDiscontinuity; + //end Discontinuity section, begin TapeHack section + inputSampleR = fmax(fmin(inputSampleR,2.305929007734908),-2.305929007734908); + addtwo = inputSampleR * inputSampleR; + empower = inputSampleR * addtwo; // inputSampleR to the third power + inputSampleR -= (empower / 6.0); + empower *= addtwo; // to the fifth power + inputSampleR += (empower / 69.0); + empower *= addtwo; //seventh + inputSampleR -= (empower / 2530.08); + empower *= addtwo; //ninth + inputSampleR += (empower / 224985.6); + empower *= addtwo; //eleventh + inputSampleR -= (empower / 9979200.0f); + //this is a degenerate form of a Taylor Series to approximate sin() + //end TapeHack section + //Discontapeity + double trebleL = inputSampleL; double outSample = (trebleL * highA[biq_a0]) + highA[biq_sL1]; highA[biq_sL1] = (trebleL * highA[biq_a1]) - (outSample * highA[biq_b1]) + highA[biq_sL2]; @@ -423,62 +525,7 @@ void ConsoleX2Channel::processReplacing(float **inputs, float **outputs, VstInt3 } //blank out lowpass if just switched off } //Cabs2 - - //begin Discontinuity section - inputSampleL *= moreDiscontinuity; - dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5); - dBaPosL = fmin(dBaPosL,1.0); - int dBdly = floor(dBaPosL*dscBuf); - double dBi = (dBaPosL*dscBuf)-dBdly; - inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi; - dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0; - inputSampleL /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleL = fmax(fmin(inputSampleL*moreTapeHack,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.9239; - //end TapeHack section - - //begin Discontinuity section - inputSampleR *= moreDiscontinuity; - dBaR[dBaXR] = inputSampleR; dBaPosR *= 0.5; dBaPosR += fabs((inputSampleR*((inputSampleR*0.25)-0.5))*0.5); - dBaPosR = fmin(dBaPosR,1.0); - dBdly = floor(dBaPosR*dscBuf); - dBi = (dBaPosR*dscBuf)-dBdly; - inputSampleR = dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleR += dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*dBi; - dBaXR++; if (dBaXR < 0 || dBaXR >= dscBuf) dBaXR = 0; - inputSampleR /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleR = fmax(fmin(inputSampleR*moreTapeHack,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.9239; - //end TapeHack section - //Discontapeity - + double gainR = (panA*temp)+(panB*(1.0-temp)); double gainL = 1.57079633-gainR; gainR = sin(gainR); gainL = sin(gainL); @@ -486,19 +533,16 @@ void ConsoleX2Channel::processReplacing(float **inputs, float **outputs, VstInt3 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 *= 0.763932022500211; inputSampleL = inputSampleL * gainL * gain; inputSampleR = inputSampleR * gainR * gain; //applies pan section, and smoothed fader gain - inputSampleL *= 0.618033988749895; if (inputSampleL > 1.0) inputSampleL = 1.0; else if (inputSampleL > 0.0) inputSampleL = -expm1((log1p(-inputSampleL) * 1.618033988749895)); if (inputSampleL < -1.0) inputSampleL = -1.0; else if (inputSampleL < 0.0) inputSampleL = expm1((log1p(inputSampleL) * 1.618033988749895)); - inputSampleR *= 0.618033988749895; if (inputSampleR > 1.0) inputSampleR = 1.0; else if (inputSampleR > 0.0) inputSampleR = -expm1((log1p(-inputSampleR) * 1.618033988749895)); if (inputSampleR < -1.0) inputSampleR = -1.0; @@ -534,20 +578,33 @@ void ConsoleX2Channel::processDoubleReplacing(double **inputs, double **outputs, 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 = (A-0.5)*2.0; + double moreTapeHack = (B*2.0)+1.0; + switch ((int)(A*4.0)){ + 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(B*0.42,3.0)*overallscale,0.00001); + //Discontapeity + + double trebleGain = (C-0.5)*2.0; trebleGain = 1.0+(trebleGain*fabs(trebleGain)*fabs(trebleGain)); - double highmidGain = (B-0.5)*2.0; + double highmidGain = (D-0.5)*2.0; highmidGain = 1.0+(highmidGain*fabs(highmidGain)*fabs(highmidGain)); - double lowmidGain = (C-0.5)*2.0; + double lowmidGain = (E-0.5)*2.0; lowmidGain = 1.0+(lowmidGain*fabs(lowmidGain)*fabs(lowmidGain)); - double bassGain = (D-0.5)*2.0; + double bassGain = (F-0.5)*2.0; bassGain = 1.0+(bassGain*fabs(bassGain)*fabs(bassGain)); - double trebleRef = E-0.5; - double highmidRef = F-0.5; - double lowmidRef = G-0.5; - double bassRef = H-0.5; + double trebleRef = G-0.5; + double highmidRef = H-0.5; + double lowmidRef = I-0.5; + double bassRef = J-0.5; double highF = 0.75 + ((trebleRef+trebleRef+trebleRef+highmidRef)*0.125); double bassF = 0.25 + ((lowmidRef+bassRef+bassRef+bassRef)*0.125); double midF = (highF*0.5) + (bassF*0.5) + ((highmidRef+lowmidRef)*0.125); @@ -560,8 +617,8 @@ void ConsoleX2Channel::processDoubleReplacing(double **inputs, double **outputs, highC[biq_freq] = highB[biq_freq] = highA[biq_freq] = fmax(fmin(highA[biq_freq],0.4999),0.00025); double highFreq = pow(highF,3)*20000.0; double omega = 2.0*M_PI*(highFreq/getSampleRate()); - double K = 2.0-cos(omega); - double highCoef = -sqrt((K*K)-1.0)+K; + double biqK = 2.0-cos(omega); + double highCoef = -sqrt((biqK*biqK)-1.0)+biqK; highA[biq_reso] = 2.24697960 * highQ; highB[biq_reso] = 0.80193774 * highQ; highC[biq_reso] = 0.55495813 * highQ; @@ -570,8 +627,8 @@ void ConsoleX2Channel::processDoubleReplacing(double **inputs, double **outputs, midC[biq_freq] = midB[biq_freq] = midA[biq_freq] = fmax(fmin(midA[biq_freq],0.4999),0.00025); double midFreq = pow(midF,3)*20000.0; omega = 2.0*M_PI*(midFreq/getSampleRate()); - K = 2.0-cos(omega); - double midCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double midCoef = -sqrt((biqK*biqK)-1.0)+biqK; midA[biq_reso] = 2.24697960 * midQ; midB[biq_reso] = 0.80193774 * midQ; midC[biq_reso] = 0.55495813 * midQ; @@ -580,97 +637,93 @@ void ConsoleX2Channel::processDoubleReplacing(double **inputs, double **outputs, lowC[biq_freq] = lowB[biq_freq] = lowA[biq_freq] = fmax(fmin(lowA[biq_freq],0.4999),0.00025); double lowFreq = pow(bassF,3)*20000.0; omega = 2.0*M_PI*(lowFreq/getSampleRate()); - K = 2.0-cos(omega); - double lowCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double lowCoef = -sqrt((biqK*biqK)-1.0)+biqK; lowA[biq_reso] = 2.24697960 * lowQ; lowB[biq_reso] = 0.80193774 * lowQ; lowC[biq_reso] = 0.55495813 * lowQ; - K = tan(M_PI * highA[biq_freq]); - double norm = 1.0 / (1.0 + K / highA[biq_reso] + K * K); - highA[biq_a0] = K * K * norm; + biqK = tan(M_PI * highA[biq_freq]); + double norm = 1.0 / (1.0 + biqK / highA[biq_reso] + biqK * biqK); + highA[biq_a0] = biqK * biqK * norm; highA[biq_a1] = 2.0 * highA[biq_a0]; highA[biq_a2] = highA[biq_a0]; - highA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highA[biq_b2] = (1.0 - K / highA[biq_reso] + K * K) * norm; - K = tan(M_PI * highB[biq_freq]); - norm = 1.0 / (1.0 + K / highB[biq_reso] + K * K); - highB[biq_a0] = K * K * norm; + highA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highA[biq_b2] = (1.0 - biqK / highA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highB[biq_freq]); + norm = 1.0 / (1.0 + biqK / highB[biq_reso] + biqK * biqK); + highB[biq_a0] = biqK * biqK * norm; highB[biq_a1] = 2.0 * highB[biq_a0]; highB[biq_a2] = highB[biq_a0]; - highB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highB[biq_b2] = (1.0 - K / highB[biq_reso] + K * K) * norm; - K = tan(M_PI * highC[biq_freq]); - norm = 1.0 / (1.0 + K / highC[biq_reso] + K * K); - highC[biq_a0] = K * K * norm; + highB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highB[biq_b2] = (1.0 - biqK / highB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highC[biq_freq]); + norm = 1.0 / (1.0 + biqK / highC[biq_reso] + biqK * biqK); + highC[biq_a0] = biqK * biqK * norm; highC[biq_a1] = 2.0 * highC[biq_a0]; highC[biq_a2] = highC[biq_a0]; - highC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highC[biq_b2] = (1.0 - K / highC[biq_reso] + K * K) * norm; + highC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highC[biq_b2] = (1.0 - biqK / highC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * midA[biq_freq]); - norm = 1.0 / (1.0 + K / midA[biq_reso] + K * K); - midA[biq_a0] = K * K * norm; + biqK = tan(M_PI * midA[biq_freq]); + norm = 1.0 / (1.0 + biqK / midA[biq_reso] + biqK * biqK); + midA[biq_a0] = biqK * biqK * norm; midA[biq_a1] = 2.0 * midA[biq_a0]; midA[biq_a2] = midA[biq_a0]; - midA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midA[biq_b2] = (1.0 - K / midA[biq_reso] + K * K) * norm; - K = tan(M_PI * midB[biq_freq]); - norm = 1.0 / (1.0 + K / midB[biq_reso] + K * K); - midB[biq_a0] = K * K * norm; + midA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midA[biq_b2] = (1.0 - biqK / midA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midB[biq_freq]); + norm = 1.0 / (1.0 + biqK / midB[biq_reso] + biqK * biqK); + midB[biq_a0] = biqK * biqK * norm; midB[biq_a1] = 2.0 * midB[biq_a0]; midB[biq_a2] = midB[biq_a0]; - midB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midB[biq_b2] = (1.0 - K / midB[biq_reso] + K * K) * norm; - K = tan(M_PI * midC[biq_freq]); - norm = 1.0 / (1.0 + K / midC[biq_reso] + K * K); - midC[biq_a0] = K * K * norm; + midB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midB[biq_b2] = (1.0 - biqK / midB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midC[biq_freq]); + norm = 1.0 / (1.0 + biqK / midC[biq_reso] + biqK * biqK); + midC[biq_a0] = biqK * biqK * norm; midC[biq_a1] = 2.0 * midC[biq_a0]; midC[biq_a2] = midC[biq_a0]; - midC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midC[biq_b2] = (1.0 - K / midC[biq_reso] + K * K) * norm; + midC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midC[biq_b2] = (1.0 - biqK / midC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * lowA[biq_freq]); - norm = 1.0 / (1.0 + K / lowA[biq_reso] + K * K); - lowA[biq_a0] = K * K * norm; + biqK = tan(M_PI * lowA[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowA[biq_reso] + biqK * biqK); + lowA[biq_a0] = biqK * biqK * norm; lowA[biq_a1] = 2.0 * lowA[biq_a0]; lowA[biq_a2] = lowA[biq_a0]; - lowA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowA[biq_b2] = (1.0 - K / lowA[biq_reso] + K * K) * norm; - K = tan(M_PI * lowB[biq_freq]); - norm = 1.0 / (1.0 + K / lowB[biq_reso] + K * K); - lowB[biq_a0] = K * K * norm; + lowA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowA[biq_b2] = (1.0 - biqK / lowA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowB[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowB[biq_reso] + biqK * biqK); + lowB[biq_a0] = biqK * biqK * norm; lowB[biq_a1] = 2.0 * lowB[biq_a0]; lowB[biq_a2] = lowB[biq_a0]; - lowB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowB[biq_b2] = (1.0 - K / lowB[biq_reso] + K * K) * norm; - K = tan(M_PI * lowC[biq_freq]); - norm = 1.0 / (1.0 + K / lowC[biq_reso] + K * K); - lowC[biq_a0] = K * K * norm; + lowB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowB[biq_b2] = (1.0 - biqK / lowB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowC[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowC[biq_reso] + biqK * biqK); + lowC[biq_a0] = biqK * biqK * norm; lowC[biq_a1] = 2.0 * lowC[biq_a0]; lowC[biq_a2] = lowC[biq_a0]; - lowC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowC[biq_b2] = (1.0 - K / lowC[biq_reso] + K * K) * norm; + lowC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowC[biq_b2] = (1.0 - biqK / lowC[biq_reso] + biqK * biqK) * norm; //SmoothEQ2 - double bezCThresh = pow(1.0-I, 6.0) * 8.0; - double bezRez = pow(1.0-J, 8.0) / overallscale; - double sloRez = pow(1.0-K,12.0) / overallscale; + double bezCThresh = pow(1.0-K, 6.0) * 8.0; + double bezRez = pow(1.0-L, 8.0) / overallscale; + double sloRez = pow(1.0-M,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(L,4.0),sqrt(bezCThresh+1.0)); + double gate = pow(pow(N,4.0),sqrt(bezCThresh+1.0)); //Dynamics2 - lFreqA = lFreqB; lFreqB = pow(fmax(M,0.002),overallscale); //the lowpass - hFreqA = hFreqB; hFreqB = pow(N,overallscale+2.0); //the highpass + lFreqA = lFreqB; lFreqB = pow(fmax(O,0.002),overallscale); //the lowpass + hFreqA = hFreqB; hFreqB = pow(P,overallscale+2.0); //the highpass //Cabs2 - double moreDiscontinuity = fmax(pow(O*0.42,3.0)*overallscale,0.00001); - double moreTapeHack = (O*1.4152481)+1.2; - //Discontapeity - - panA = panB; panB = P*1.57079633; - inTrimA = inTrimB; inTrimB = Q*2.0; + panA = panB; panB = Q*1.57079633; + inTrimA = inTrimB; inTrimB = R*2.0; //Console while (--sampleFrames >= 0) @@ -680,6 +733,99 @@ void ConsoleX2Channel::processDoubleReplacing(double **inputs, double **outputs, if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17; if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17; + double darkSampleL = inputSampleL; + double darkSampleR = inputSampleR; + if (avgPos > 31) avgPos = 0; + if (spacing > 31) { + avg32L[avgPos] = darkSampleL; avg32R[avgPos] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 32; x++) {darkSampleL += avg32L[x]; darkSampleR += avg32R[x];} + darkSampleL /= 32.0; darkSampleR /= 32.0; + } if (spacing > 15) { + avg16L[avgPos%16] = darkSampleL; avg16R[avgPos%16] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 16; x++) {darkSampleL += avg16L[x]; darkSampleR += avg16R[x];} + darkSampleL /= 16.0; darkSampleR /= 16.0; + } if (spacing > 7) { + avg8L[avgPos%8] = darkSampleL; avg8R[avgPos%8] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 8; x++) {darkSampleL += avg8L[x]; darkSampleR += avg8R[x];} + darkSampleL /= 8.0; darkSampleR /= 8.0; + } if (spacing > 3) { + avg4L[avgPos%4] = darkSampleL; avg4R[avgPos%4] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 4; x++) {darkSampleL += avg4L[x]; darkSampleR += avg4R[x];} + darkSampleL /= 4.0; darkSampleR /= 4.0; + } if (spacing > 1) { + avg2L[avgPos%2] = darkSampleL; avg2R[avgPos%2] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 2; x++) {darkSampleL += avg2L[x]; darkSampleR += avg2R[x];} + darkSampleL /= 2.0; darkSampleR /= 2.0; + } avgPos++; + lastSlewL += fabs(lastSlewpleL-inputSampleL); lastSlewpleL = inputSampleL; + double avgSlewL = fmin(lastSlewL,1.0); + lastSlewL = fmax(lastSlewL*0.78,2.39996322972865332223); + lastSlewR += fabs(lastSlewpleR-inputSampleR); lastSlewpleR = inputSampleR; + double avgSlewR = fmin(lastSlewR,1.0); + lastSlewR = fmax(lastSlewR*0.78,2.39996322972865332223); //look up Golden Angle, it's cool + inputSampleL = (inputSampleL*(1.0-avgSlewL)) + (darkSampleL*avgSlewL); + inputSampleR = (inputSampleR*(1.0-avgSlewR)) + (darkSampleR*avgSlewR); + + //begin Discontinuity section + inputSampleL *= moreTapeHack; + inputSampleL *= moreDiscontinuity; + dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5); + dBaPosL = fmin(dBaPosL,1.0); + int dBdly = floor(dBaPosL*dscBuf); + double dBi = (dBaPosL*dscBuf)-dBdly; + inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi); + dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi; + dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0; + inputSampleL /= moreDiscontinuity; + //end Discontinuity section, begin TapeHack section + inputSampleL = fmax(fmin(inputSampleL,2.305929007734908),-2.305929007734908); + double addtwo = inputSampleL * inputSampleL; + double empower = inputSampleL * addtwo; // inputSampleL to the third power + inputSampleL -= (empower / 6.0); + empower *= addtwo; // to the fifth power + inputSampleL += (empower / 69.0); + empower *= addtwo; //seventh + inputSampleL -= (empower / 2530.08); + empower *= addtwo; //ninth + inputSampleL += (empower / 224985.6); + empower *= addtwo; //eleventh + inputSampleL -= (empower / 9979200.0f); + //this is a degenerate form of a Taylor Series to approximate sin() + //end TapeHack section + + //begin Discontinuity section + inputSampleR *= moreTapeHack; + inputSampleR *= moreDiscontinuity; + dBaR[dBaXR] = inputSampleR; dBaPosR *= 0.5; dBaPosR += fabs((inputSampleR*((inputSampleR*0.25)-0.5))*0.5); + dBaPosR = fmin(dBaPosR,1.0); + dBdly = floor(dBaPosR*dscBuf); + dBi = (dBaPosR*dscBuf)-dBdly; + inputSampleR = dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*(1.0-dBi); + dBdly++; inputSampleR += dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*dBi; + dBaXR++; if (dBaXR < 0 || dBaXR >= dscBuf) dBaXR = 0; + inputSampleR /= moreDiscontinuity; + //end Discontinuity section, begin TapeHack section + inputSampleR = fmax(fmin(inputSampleR,2.305929007734908),-2.305929007734908); + addtwo = inputSampleR * inputSampleR; + empower = inputSampleR * addtwo; // inputSampleR to the third power + inputSampleR -= (empower / 6.0); + empower *= addtwo; // to the fifth power + inputSampleR += (empower / 69.0); + empower *= addtwo; //seventh + inputSampleR -= (empower / 2530.08); + empower *= addtwo; //ninth + inputSampleR += (empower / 224985.6); + empower *= addtwo; //eleventh + inputSampleR -= (empower / 9979200.0f); + //this is a degenerate form of a Taylor Series to approximate sin() + //end TapeHack section + //Discontapeity + double trebleL = inputSampleL; double outSample = (trebleL * highA[biq_a0]) + highA[biq_sL1]; highA[biq_sL1] = (trebleL * highA[biq_a1]) - (outSample * highA[biq_b1]) + highA[biq_sL2]; @@ -940,61 +1086,6 @@ void ConsoleX2Channel::processDoubleReplacing(double **inputs, double **outputs, } //Cabs2 - //begin Discontinuity section - inputSampleL *= moreDiscontinuity; - dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5); - dBaPosL = fmin(dBaPosL,1.0); - int dBdly = floor(dBaPosL*dscBuf); - double dBi = (dBaPosL*dscBuf)-dBdly; - inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi; - dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0; - inputSampleL /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleL = fmax(fmin(inputSampleL*moreTapeHack,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.9239; - //end TapeHack section - - //begin Discontinuity section - inputSampleR *= moreDiscontinuity; - dBaR[dBaXR] = inputSampleR; dBaPosR *= 0.5; dBaPosR += fabs((inputSampleR*((inputSampleR*0.25)-0.5))*0.5); - dBaPosR = fmin(dBaPosR,1.0); - dBdly = floor(dBaPosR*dscBuf); - dBi = (dBaPosR*dscBuf)-dBdly; - inputSampleR = dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleR += dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*dBi; - dBaXR++; if (dBaXR < 0 || dBaXR >= dscBuf) dBaXR = 0; - inputSampleR /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleR = fmax(fmin(inputSampleR*moreTapeHack,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.9239; - //end TapeHack section - //Discontapeity - double gainR = (panA*temp)+(panB*(1.0-temp)); double gainL = 1.57079633-gainR; gainR = sin(gainR); gainL = sin(gainL); @@ -1002,19 +1093,16 @@ void ConsoleX2Channel::processDoubleReplacing(double **inputs, double **outputs, 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 *= 0.763932022500211; inputSampleL = inputSampleL * gainL * gain; inputSampleR = inputSampleR * gainR * gain; //applies pan section, and smoothed fader gain - inputSampleL *= 0.618033988749895; if (inputSampleL > 1.0) inputSampleL = 1.0; else if (inputSampleL > 0.0) inputSampleL = -expm1((log1p(-inputSampleL) * 1.618033988749895)); if (inputSampleL < -1.0) inputSampleL = -1.0; else if (inputSampleL < 0.0) inputSampleL = expm1((log1p(inputSampleL) * 1.618033988749895)); - inputSampleR *= 0.618033988749895; if (inputSampleR > 1.0) inputSampleR = 1.0; else if (inputSampleR > 0.0) inputSampleR = -expm1((log1p(-inputSampleR) * 1.618033988749895)); if (inputSampleR < -1.0) inputSampleR = -1.0; diff --git a/plugins/WinVST/ConsoleX2Pre/ConsoleX2Pre.cpp b/plugins/WinVST/ConsoleX2Pre/ConsoleX2Pre.cpp index 7f5bee3dc..1d6244eab 100755 --- a/plugins/WinVST/ConsoleX2Pre/ConsoleX2Pre.cpp +++ b/plugins/WinVST/ConsoleX2Pre/ConsoleX2Pre.cpp @@ -12,22 +12,22 @@ AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new C ConsoleX2Pre::ConsoleX2Pre(audioMasterCallback audioMaster) : AudioEffectX(audioMaster, kNumPrograms, kNumParameters) { - A = 0.5; - B = 0.5; + A = 0.25; + B = 0.0; C = 0.5; D = 0.5; E = 0.5; F = 0.5; G = 0.5; H = 0.5; - I = 1.0; + I = 0.5; J = 0.5; - K = 0.5; - L = 0.0; - M = 1.0; + K = 1.0; + L = 0.5; + M = 0.5; N = 0.0; - O = 0.0; - P = 0.5; + O = 1.0; + P = 0.0; Q = 0.5; for (int x = 0; x < biq_total; x++) { @@ -81,9 +81,18 @@ ConsoleX2Pre::ConsoleX2Pre(audioMasterCallback audioMaster) : 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; @@ -219,22 +228,22 @@ float ConsoleX2Pre::getParameter(VstInt32 index) { void ConsoleX2Pre::getParameterName(VstInt32 index, char *text) { switch (index) { - case kParamA: vst_strncpy (text, "High", kVstMaxParamStrLen); break; - case kParamB: vst_strncpy (text, "HMid", kVstMaxParamStrLen); break; - case kParamC: vst_strncpy (text, "LMid", kVstMaxParamStrLen); break; - case kParamD: vst_strncpy (text, "Bass", kVstMaxParamStrLen); break; - case kParamE: vst_strncpy (text, "HighF", kVstMaxParamStrLen); break; - case kParamF: vst_strncpy (text, "HMidF", kVstMaxParamStrLen); break; - case kParamG: vst_strncpy (text, "LMidF", kVstMaxParamStrLen); break; - case kParamH: vst_strncpy (text, "BassF", kVstMaxParamStrLen); break; - case kParamI: vst_strncpy (text, "Thresh", kVstMaxParamStrLen); break; - case kParamJ: vst_strncpy (text, "Attack", kVstMaxParamStrLen); break; - case kParamK: vst_strncpy (text, "Release", kVstMaxParamStrLen); break; - case kParamL: vst_strncpy (text, "Gate", kVstMaxParamStrLen); break; - case kParamM: vst_strncpy (text, "Lowpass", kVstMaxParamStrLen); break; - case kParamN: vst_strncpy (text, "Hipass", kVstMaxParamStrLen); break; - case kParamO: vst_strncpy (text, "More", kVstMaxParamStrLen); break; - case kParamP: vst_strncpy (text, "Pan", kVstMaxParamStrLen); break; + case kParamA: vst_strncpy (text, "Trim", kVstMaxParamStrLen); break; + case kParamB: vst_strncpy (text, "More", kVstMaxParamStrLen); break; + case kParamC: vst_strncpy (text, "High", kVstMaxParamStrLen); break; + case kParamD: vst_strncpy (text, "HMid", kVstMaxParamStrLen); break; + case kParamE: vst_strncpy (text, "LMid", kVstMaxParamStrLen); break; + case kParamF: vst_strncpy (text, "Bass", kVstMaxParamStrLen); break; + case kParamG: vst_strncpy (text, "HighF", kVstMaxParamStrLen); break; + case kParamH: vst_strncpy (text, "HMidF", kVstMaxParamStrLen); break; + case kParamI: vst_strncpy (text, "LMidF", kVstMaxParamStrLen); break; + case kParamJ: vst_strncpy (text, "BassF", kVstMaxParamStrLen); break; + case kParamK: vst_strncpy (text, "Thresh", kVstMaxParamStrLen); break; + case kParamL: vst_strncpy (text, "Attack", kVstMaxParamStrLen); break; + case kParamM: vst_strncpy (text, "Release", kVstMaxParamStrLen); break; + case kParamN: vst_strncpy (text, "Gate", kVstMaxParamStrLen); break; + case kParamO: vst_strncpy (text, "Lowpass", kVstMaxParamStrLen); break; + case kParamP: vst_strncpy (text, "Hipass", kVstMaxParamStrLen); break; case kParamQ: vst_strncpy (text, "Fader", kVstMaxParamStrLen); break; default: break; // unknown parameter, shouldn't happen! } //this is our labels for displaying in the VST host @@ -242,7 +251,7 @@ void ConsoleX2Pre::getParameterName(VstInt32 index, char *text) { void ConsoleX2Pre::getParameterDisplay(VstInt32 index, char *text) { switch (index) { - case kParamA: float2string (A, text, kVstMaxParamStrLen); break; + case kParamA: int2string ((int)(A*4.0), text, kVstMaxParamStrLen); break; case kParamB: float2string (B, text, kVstMaxParamStrLen); break; case kParamC: float2string (C, text, kVstMaxParamStrLen); break; case kParamD: float2string (D, text, kVstMaxParamStrLen); break; @@ -265,21 +274,21 @@ void ConsoleX2Pre::getParameterDisplay(VstInt32 index, char *text) { void ConsoleX2Pre::getParameterLabel(VstInt32 index, char *text) { switch (index) { - case kParamA: vst_strncpy (text, "eq", kVstMaxParamStrLen); break; + case kParamA: vst_strncpy (text, "", kVstMaxParamStrLen); break; case kParamB: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamC: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamC: vst_strncpy (text, "eq", kVstMaxParamStrLen); break; case kParamD: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamE: vst_strncpy (text, "freq", kVstMaxParamStrLen); break; + case kParamE: vst_strncpy (text, "", kVstMaxParamStrLen); break; case kParamF: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamG: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamG: vst_strncpy (text, "freq", kVstMaxParamStrLen); break; case kParamH: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamI: vst_strncpy (text, "dyn", kVstMaxParamStrLen); break; + case kParamI: vst_strncpy (text, "", kVstMaxParamStrLen); break; case kParamJ: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamK: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamK: vst_strncpy (text, "dyn", kVstMaxParamStrLen); break; case kParamL: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamM: vst_strncpy (text, "fltr", kVstMaxParamStrLen); break; + case kParamM: vst_strncpy (text, "", kVstMaxParamStrLen); break; case kParamN: vst_strncpy (text, "", kVstMaxParamStrLen); break; - case kParamO: vst_strncpy (text, "+", kVstMaxParamStrLen); break; + case kParamO: vst_strncpy (text, "fltr", kVstMaxParamStrLen); break; case kParamP: vst_strncpy (text, "", kVstMaxParamStrLen); break; case kParamQ: vst_strncpy (text, "", kVstMaxParamStrLen); break; default: break; // unknown parameter, shouldn't happen! diff --git a/plugins/WinVST/ConsoleX2Pre/ConsoleX2Pre.h b/plugins/WinVST/ConsoleX2Pre/ConsoleX2Pre.h index 2162a3d0c..3fa48a8f8 100755 --- a/plugins/WinVST/ConsoleX2Pre/ConsoleX2Pre.h +++ b/plugins/WinVST/ConsoleX2Pre/ConsoleX2Pre.h @@ -166,8 +166,23 @@ private: int dBaXR; //Discontapeity - double panA; - double panB; + 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; diff --git a/plugins/WinVST/ConsoleX2Pre/ConsoleX2PreProc.cpp b/plugins/WinVST/ConsoleX2Pre/ConsoleX2PreProc.cpp index 377839b00..4c8abed86 100755 --- a/plugins/WinVST/ConsoleX2Pre/ConsoleX2PreProc.cpp +++ b/plugins/WinVST/ConsoleX2Pre/ConsoleX2PreProc.cpp @@ -18,20 +18,33 @@ void ConsoleX2Pre::processReplacing(float **inputs, float **outputs, VstInt32 sa 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 = (A-0.5)*2.0; + double moreTapeHack = (B*2.0)+1.0; + switch ((int)(A*4.0)){ + 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(B*0.42,3.0)*overallscale,0.00001); + //Discontapeity + + double trebleGain = (C-0.5)*2.0; trebleGain = 1.0+(trebleGain*fabs(trebleGain)*fabs(trebleGain)); - double highmidGain = (B-0.5)*2.0; + double highmidGain = (D-0.5)*2.0; highmidGain = 1.0+(highmidGain*fabs(highmidGain)*fabs(highmidGain)); - double lowmidGain = (C-0.5)*2.0; + double lowmidGain = (E-0.5)*2.0; lowmidGain = 1.0+(lowmidGain*fabs(lowmidGain)*fabs(lowmidGain)); - double bassGain = (D-0.5)*2.0; + double bassGain = (F-0.5)*2.0; bassGain = 1.0+(bassGain*fabs(bassGain)*fabs(bassGain)); - double trebleRef = E-0.5; - double highmidRef = F-0.5; - double lowmidRef = G-0.5; - double bassRef = H-0.5; + double trebleRef = G-0.5; + double highmidRef = H-0.5; + double lowmidRef = I-0.5; + double bassRef = J-0.5; double highF = 0.75 + ((trebleRef+trebleRef+trebleRef+highmidRef)*0.125); double bassF = 0.25 + ((lowmidRef+bassRef+bassRef+bassRef)*0.125); double midF = (highF*0.5) + (bassF*0.5) + ((highmidRef+lowmidRef)*0.125); @@ -44,8 +57,8 @@ void ConsoleX2Pre::processReplacing(float **inputs, float **outputs, VstInt32 sa highC[biq_freq] = highB[biq_freq] = highA[biq_freq] = fmax(fmin(highA[biq_freq],0.4999),0.00025); double highFreq = pow(highF,3)*20000.0; double omega = 2.0*M_PI*(highFreq/getSampleRate()); - double K = 2.0-cos(omega); - double highCoef = -sqrt((K*K)-1.0)+K; + double biqK = 2.0-cos(omega); + double highCoef = -sqrt((biqK*biqK)-1.0)+biqK; highA[biq_reso] = 2.24697960 * highQ; highB[biq_reso] = 0.80193774 * highQ; highC[biq_reso] = 0.55495813 * highQ; @@ -54,8 +67,8 @@ void ConsoleX2Pre::processReplacing(float **inputs, float **outputs, VstInt32 sa midC[biq_freq] = midB[biq_freq] = midA[biq_freq] = fmax(fmin(midA[biq_freq],0.4999),0.00025); double midFreq = pow(midF,3)*20000.0; omega = 2.0*M_PI*(midFreq/getSampleRate()); - K = 2.0-cos(omega); - double midCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double midCoef = -sqrt((biqK*biqK)-1.0)+biqK; midA[biq_reso] = 2.24697960 * midQ; midB[biq_reso] = 0.80193774 * midQ; midC[biq_reso] = 0.55495813 * midQ; @@ -64,96 +77,91 @@ void ConsoleX2Pre::processReplacing(float **inputs, float **outputs, VstInt32 sa lowC[biq_freq] = lowB[biq_freq] = lowA[biq_freq] = fmax(fmin(lowA[biq_freq],0.4999),0.00025); double lowFreq = pow(bassF,3)*20000.0; omega = 2.0*M_PI*(lowFreq/getSampleRate()); - K = 2.0-cos(omega); - double lowCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double lowCoef = -sqrt((biqK*biqK)-1.0)+biqK; lowA[biq_reso] = 2.24697960 * lowQ; lowB[biq_reso] = 0.80193774 * lowQ; lowC[biq_reso] = 0.55495813 * lowQ; - K = tan(M_PI * highA[biq_freq]); - double norm = 1.0 / (1.0 + K / highA[biq_reso] + K * K); - highA[biq_a0] = K * K * norm; + biqK = tan(M_PI * highA[biq_freq]); + double norm = 1.0 / (1.0 + biqK / highA[biq_reso] + biqK * biqK); + highA[biq_a0] = biqK * biqK * norm; highA[biq_a1] = 2.0 * highA[biq_a0]; highA[biq_a2] = highA[biq_a0]; - highA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highA[biq_b2] = (1.0 - K / highA[biq_reso] + K * K) * norm; - K = tan(M_PI * highB[biq_freq]); - norm = 1.0 / (1.0 + K / highB[biq_reso] + K * K); - highB[biq_a0] = K * K * norm; + highA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highA[biq_b2] = (1.0 - biqK / highA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highB[biq_freq]); + norm = 1.0 / (1.0 + biqK / highB[biq_reso] + biqK * biqK); + highB[biq_a0] = biqK * biqK * norm; highB[biq_a1] = 2.0 * highB[biq_a0]; highB[biq_a2] = highB[biq_a0]; - highB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highB[biq_b2] = (1.0 - K / highB[biq_reso] + K * K) * norm; - K = tan(M_PI * highC[biq_freq]); - norm = 1.0 / (1.0 + K / highC[biq_reso] + K * K); - highC[biq_a0] = K * K * norm; + highB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highB[biq_b2] = (1.0 - biqK / highB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highC[biq_freq]); + norm = 1.0 / (1.0 + biqK / highC[biq_reso] + biqK * biqK); + highC[biq_a0] = biqK * biqK * norm; highC[biq_a1] = 2.0 * highC[biq_a0]; highC[biq_a2] = highC[biq_a0]; - highC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highC[biq_b2] = (1.0 - K / highC[biq_reso] + K * K) * norm; + highC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highC[biq_b2] = (1.0 - biqK / highC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * midA[biq_freq]); - norm = 1.0 / (1.0 + K / midA[biq_reso] + K * K); - midA[biq_a0] = K * K * norm; + biqK = tan(M_PI * midA[biq_freq]); + norm = 1.0 / (1.0 + biqK / midA[biq_reso] + biqK * biqK); + midA[biq_a0] = biqK * biqK * norm; midA[biq_a1] = 2.0 * midA[biq_a0]; midA[biq_a2] = midA[biq_a0]; - midA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midA[biq_b2] = (1.0 - K / midA[biq_reso] + K * K) * norm; - K = tan(M_PI * midB[biq_freq]); - norm = 1.0 / (1.0 + K / midB[biq_reso] + K * K); - midB[biq_a0] = K * K * norm; + midA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midA[biq_b2] = (1.0 - biqK / midA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midB[biq_freq]); + norm = 1.0 / (1.0 + biqK / midB[biq_reso] + biqK * biqK); + midB[biq_a0] = biqK * biqK * norm; midB[biq_a1] = 2.0 * midB[biq_a0]; midB[biq_a2] = midB[biq_a0]; - midB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midB[biq_b2] = (1.0 - K / midB[biq_reso] + K * K) * norm; - K = tan(M_PI * midC[biq_freq]); - norm = 1.0 / (1.0 + K / midC[biq_reso] + K * K); - midC[biq_a0] = K * K * norm; + midB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midB[biq_b2] = (1.0 - biqK / midB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midC[biq_freq]); + norm = 1.0 / (1.0 + biqK / midC[biq_reso] + biqK * biqK); + midC[biq_a0] = biqK * biqK * norm; midC[biq_a1] = 2.0 * midC[biq_a0]; midC[biq_a2] = midC[biq_a0]; - midC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midC[biq_b2] = (1.0 - K / midC[biq_reso] + K * K) * norm; + midC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midC[biq_b2] = (1.0 - biqK / midC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * lowA[biq_freq]); - norm = 1.0 / (1.0 + K / lowA[biq_reso] + K * K); - lowA[biq_a0] = K * K * norm; + biqK = tan(M_PI * lowA[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowA[biq_reso] + biqK * biqK); + lowA[biq_a0] = biqK * biqK * norm; lowA[biq_a1] = 2.0 * lowA[biq_a0]; lowA[biq_a2] = lowA[biq_a0]; - lowA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowA[biq_b2] = (1.0 - K / lowA[biq_reso] + K * K) * norm; - K = tan(M_PI * lowB[biq_freq]); - norm = 1.0 / (1.0 + K / lowB[biq_reso] + K * K); - lowB[biq_a0] = K * K * norm; + lowA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowA[biq_b2] = (1.0 - biqK / lowA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowB[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowB[biq_reso] + biqK * biqK); + lowB[biq_a0] = biqK * biqK * norm; lowB[biq_a1] = 2.0 * lowB[biq_a0]; lowB[biq_a2] = lowB[biq_a0]; - lowB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowB[biq_b2] = (1.0 - K / lowB[biq_reso] + K * K) * norm; - K = tan(M_PI * lowC[biq_freq]); - norm = 1.0 / (1.0 + K / lowC[biq_reso] + K * K); - lowC[biq_a0] = K * K * norm; + lowB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowB[biq_b2] = (1.0 - biqK / lowB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowC[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowC[biq_reso] + biqK * biqK); + lowC[biq_a0] = biqK * biqK * norm; lowC[biq_a1] = 2.0 * lowC[biq_a0]; lowC[biq_a2] = lowC[biq_a0]; - lowC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowC[biq_b2] = (1.0 - K / lowC[biq_reso] + K * K) * norm; + lowC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowC[biq_b2] = (1.0 - biqK / lowC[biq_reso] + biqK * biqK) * norm; //SmoothEQ2 - double bezCThresh = pow(1.0-I, 6.0) * 8.0; - double bezRez = pow(1.0-J, 8.0) / overallscale; - double sloRez = pow(1.0-K,12.0) / overallscale; + double bezCThresh = pow(1.0-K, 6.0) * 8.0; + double bezRez = pow(1.0-L, 8.0) / overallscale; + double sloRez = pow(1.0-M,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(L,4.0),sqrt(bezCThresh+1.0)); + double gate = pow(pow(N,4.0),sqrt(bezCThresh+1.0)); //Dynamics2 - lFreqA = lFreqB; lFreqB = pow(fmax(M,0.002),overallscale); //the lowpass - hFreqA = hFreqB; hFreqB = pow(N,overallscale+2.0); //the highpass + lFreqA = lFreqB; lFreqB = pow(fmax(O,0.002),overallscale); //the lowpass + hFreqA = hFreqB; hFreqB = pow(P,overallscale+2.0); //the highpass //Cabs2 - - double moreDiscontinuity = fmax(pow(O*0.42,3.0)*overallscale,0.00001); - double moreTapeHack = (O*1.4152481)+1.2; - //Discontapeity - - panA = panB; panB = P*1.57079633; + inTrimA = inTrimB; inTrimB = Q*2.0; //Console @@ -164,6 +172,101 @@ void ConsoleX2Pre::processReplacing(float **inputs, float **outputs, VstInt32 sa if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17; if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17; + double darkSampleL = inputSampleL; + double darkSampleR = inputSampleR; + if (avgPos > 31) avgPos = 0; + if (spacing > 31) { + avg32L[avgPos] = darkSampleL; avg32R[avgPos] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 32; x++) {darkSampleL += avg32L[x]; darkSampleR += avg32R[x];} + darkSampleL /= 32.0; darkSampleR /= 32.0; + } if (spacing > 15) { + avg16L[avgPos%16] = darkSampleL; avg16R[avgPos%16] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 16; x++) {darkSampleL += avg16L[x]; darkSampleR += avg16R[x];} + darkSampleL /= 16.0; darkSampleR /= 16.0; + } if (spacing > 7) { + avg8L[avgPos%8] = darkSampleL; avg8R[avgPos%8] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 8; x++) {darkSampleL += avg8L[x]; darkSampleR += avg8R[x];} + darkSampleL /= 8.0; darkSampleR /= 8.0; + } if (spacing > 3) { + avg4L[avgPos%4] = darkSampleL; avg4R[avgPos%4] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 4; x++) {darkSampleL += avg4L[x]; darkSampleR += avg4R[x];} + darkSampleL /= 4.0; darkSampleR /= 4.0; + } if (spacing > 1) { + avg2L[avgPos%2] = darkSampleL; avg2R[avgPos%2] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 2; x++) {darkSampleL += avg2L[x]; darkSampleR += avg2R[x];} + darkSampleL /= 2.0; darkSampleR /= 2.0; + } avgPos++; + lastSlewL += fabs(lastSlewpleL-inputSampleL); lastSlewpleL = inputSampleL; + double avgSlewL = fmin(lastSlewL,1.0); + lastSlewL = fmax(lastSlewL*0.78,2.39996322972865332223); + lastSlewR += fabs(lastSlewpleR-inputSampleR); lastSlewpleR = inputSampleR; + double avgSlewR = fmin(lastSlewR,1.0); + lastSlewR = fmax(lastSlewR*0.78,2.39996322972865332223); //look up Golden Angle, it's cool + inputSampleL = (inputSampleL*(1.0-avgSlewL)) + (darkSampleL*avgSlewL); + inputSampleR = (inputSampleR*(1.0-avgSlewR)) + (darkSampleR*avgSlewR); + + //begin Discontinuity section + inputSampleL *= moreTapeHack; + inputSampleL *= moreDiscontinuity; + dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5); + dBaPosL = fmin(dBaPosL,1.0); + int dBdly = floor(dBaPosL*dscBuf); + double dBi = (dBaPosL*dscBuf)-dBdly; + inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi); + dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi; + dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0; + inputSampleL /= moreDiscontinuity; + //end Discontinuity section, begin TapeHack section + inputSampleL = fmax(fmin(inputSampleL*moreTapeHack,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.9239; + //end TapeHack section + + //begin Discontinuity section + inputSampleR *= moreTapeHack; + inputSampleR *= moreDiscontinuity; + dBaR[dBaXR] = inputSampleR; dBaPosR *= 0.5; dBaPosR += fabs((inputSampleR*((inputSampleR*0.25)-0.5))*0.5); + dBaPosR = fmin(dBaPosR,1.0); + dBdly = floor(dBaPosR*dscBuf); + dBi = (dBaPosR*dscBuf)-dBdly; + inputSampleR = dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*(1.0-dBi); + dBdly++; inputSampleR += dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*dBi; + dBaXR++; if (dBaXR < 0 || dBaXR >= dscBuf) dBaXR = 0; + inputSampleR /= moreDiscontinuity; + //end Discontinuity section, begin TapeHack section + inputSampleR = fmax(fmin(inputSampleR*moreTapeHack,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.9239; + //end TapeHack section + //Discontapeity + double trebleL = inputSampleL; double outSample = (trebleL * highA[biq_a0]) + highA[biq_sL1]; highA[biq_sL1] = (trebleL * highA[biq_a1]) - (outSample * highA[biq_b1]) + highA[biq_sL2]; @@ -423,72 +526,13 @@ void ConsoleX2Pre::processReplacing(float **inputs, float **outputs, VstInt32 sa } //blank out lowpass if just switched off } //Cabs2 - - //begin Discontinuity section - inputSampleL *= moreDiscontinuity; - dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5); - dBaPosL = fmin(dBaPosL,1.0); - int dBdly = floor(dBaPosL*dscBuf); - double dBi = (dBaPosL*dscBuf)-dBdly; - inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi; - dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0; - inputSampleL /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleL = fmax(fmin(inputSampleL*moreTapeHack,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.9239; - //end TapeHack section - - //begin Discontinuity section - inputSampleR *= moreDiscontinuity; - dBaR[dBaXR] = inputSampleR; dBaPosR *= 0.5; dBaPosR += fabs((inputSampleR*((inputSampleR*0.25)-0.5))*0.5); - dBaPosR = fmin(dBaPosR,1.0); - dBdly = floor(dBaPosR*dscBuf); - dBi = (dBaPosR*dscBuf)-dBdly; - inputSampleR = dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleR += dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*dBi; - dBaXR++; if (dBaXR < 0 || dBaXR >= dscBuf) dBaXR = 0; - inputSampleR /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleR = fmax(fmin(inputSampleR*moreTapeHack,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.9239; - //end TapeHack section - //Discontapeity - - 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); - inputSampleL = inputSampleL * gainL * gain; - inputSampleR = inputSampleR * gainR * gain; + inputSampleL = inputSampleL * gain; + inputSampleR = inputSampleR * gain; //applies pan section, and smoothed fader gain //begin 32 bit stereo floating point dither @@ -521,20 +565,33 @@ void ConsoleX2Pre::processDoubleReplacing(double **inputs, double **outputs, Vst 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 = (B*2.0)+1.0; + switch ((int)(A*4.0)){ + 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(B*0.42,3.0)*overallscale,0.00001); + //Discontapeity - double trebleGain = (A-0.5)*2.0; + double trebleGain = (C-0.5)*2.0; trebleGain = 1.0+(trebleGain*fabs(trebleGain)*fabs(trebleGain)); - double highmidGain = (B-0.5)*2.0; + double highmidGain = (D-0.5)*2.0; highmidGain = 1.0+(highmidGain*fabs(highmidGain)*fabs(highmidGain)); - double lowmidGain = (C-0.5)*2.0; + double lowmidGain = (E-0.5)*2.0; lowmidGain = 1.0+(lowmidGain*fabs(lowmidGain)*fabs(lowmidGain)); - double bassGain = (D-0.5)*2.0; + double bassGain = (F-0.5)*2.0; bassGain = 1.0+(bassGain*fabs(bassGain)*fabs(bassGain)); - double trebleRef = E-0.5; - double highmidRef = F-0.5; - double lowmidRef = G-0.5; - double bassRef = H-0.5; + double trebleRef = G-0.5; + double highmidRef = H-0.5; + double lowmidRef = I-0.5; + double bassRef = J-0.5; double highF = 0.75 + ((trebleRef+trebleRef+trebleRef+highmidRef)*0.125); double bassF = 0.25 + ((lowmidRef+bassRef+bassRef+bassRef)*0.125); double midF = (highF*0.5) + (bassF*0.5) + ((highmidRef+lowmidRef)*0.125); @@ -547,8 +604,8 @@ void ConsoleX2Pre::processDoubleReplacing(double **inputs, double **outputs, Vst highC[biq_freq] = highB[biq_freq] = highA[biq_freq] = fmax(fmin(highA[biq_freq],0.4999),0.00025); double highFreq = pow(highF,3)*20000.0; double omega = 2.0*M_PI*(highFreq/getSampleRate()); - double K = 2.0-cos(omega); - double highCoef = -sqrt((K*K)-1.0)+K; + double biqK = 2.0-cos(omega); + double highCoef = -sqrt((biqK*biqK)-1.0)+biqK; highA[biq_reso] = 2.24697960 * highQ; highB[biq_reso] = 0.80193774 * highQ; highC[biq_reso] = 0.55495813 * highQ; @@ -557,8 +614,8 @@ void ConsoleX2Pre::processDoubleReplacing(double **inputs, double **outputs, Vst midC[biq_freq] = midB[biq_freq] = midA[biq_freq] = fmax(fmin(midA[biq_freq],0.4999),0.00025); double midFreq = pow(midF,3)*20000.0; omega = 2.0*M_PI*(midFreq/getSampleRate()); - K = 2.0-cos(omega); - double midCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double midCoef = -sqrt((biqK*biqK)-1.0)+biqK; midA[biq_reso] = 2.24697960 * midQ; midB[biq_reso] = 0.80193774 * midQ; midC[biq_reso] = 0.55495813 * midQ; @@ -567,96 +624,91 @@ void ConsoleX2Pre::processDoubleReplacing(double **inputs, double **outputs, Vst lowC[biq_freq] = lowB[biq_freq] = lowA[biq_freq] = fmax(fmin(lowA[biq_freq],0.4999),0.00025); double lowFreq = pow(bassF,3)*20000.0; omega = 2.0*M_PI*(lowFreq/getSampleRate()); - K = 2.0-cos(omega); - double lowCoef = -sqrt((K*K)-1.0)+K; + biqK = 2.0-cos(omega); + double lowCoef = -sqrt((biqK*biqK)-1.0)+biqK; lowA[biq_reso] = 2.24697960 * lowQ; lowB[biq_reso] = 0.80193774 * lowQ; lowC[biq_reso] = 0.55495813 * lowQ; - K = tan(M_PI * highA[biq_freq]); - double norm = 1.0 / (1.0 + K / highA[biq_reso] + K * K); - highA[biq_a0] = K * K * norm; + biqK = tan(M_PI * highA[biq_freq]); + double norm = 1.0 / (1.0 + biqK / highA[biq_reso] + biqK * biqK); + highA[biq_a0] = biqK * biqK * norm; highA[biq_a1] = 2.0 * highA[biq_a0]; highA[biq_a2] = highA[biq_a0]; - highA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highA[biq_b2] = (1.0 - K / highA[biq_reso] + K * K) * norm; - K = tan(M_PI * highB[biq_freq]); - norm = 1.0 / (1.0 + K / highB[biq_reso] + K * K); - highB[biq_a0] = K * K * norm; + highA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highA[biq_b2] = (1.0 - biqK / highA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highB[biq_freq]); + norm = 1.0 / (1.0 + biqK / highB[biq_reso] + biqK * biqK); + highB[biq_a0] = biqK * biqK * norm; highB[biq_a1] = 2.0 * highB[biq_a0]; highB[biq_a2] = highB[biq_a0]; - highB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highB[biq_b2] = (1.0 - K / highB[biq_reso] + K * K) * norm; - K = tan(M_PI * highC[biq_freq]); - norm = 1.0 / (1.0 + K / highC[biq_reso] + K * K); - highC[biq_a0] = K * K * norm; + highB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highB[biq_b2] = (1.0 - biqK / highB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highC[biq_freq]); + norm = 1.0 / (1.0 + biqK / highC[biq_reso] + biqK * biqK); + highC[biq_a0] = biqK * biqK * norm; highC[biq_a1] = 2.0 * highC[biq_a0]; highC[biq_a2] = highC[biq_a0]; - highC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - highC[biq_b2] = (1.0 - K / highC[biq_reso] + K * K) * norm; + highC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highC[biq_b2] = (1.0 - biqK / highC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * midA[biq_freq]); - norm = 1.0 / (1.0 + K / midA[biq_reso] + K * K); - midA[biq_a0] = K * K * norm; + biqK = tan(M_PI * midA[biq_freq]); + norm = 1.0 / (1.0 + biqK / midA[biq_reso] + biqK * biqK); + midA[biq_a0] = biqK * biqK * norm; midA[biq_a1] = 2.0 * midA[biq_a0]; midA[biq_a2] = midA[biq_a0]; - midA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midA[biq_b2] = (1.0 - K / midA[biq_reso] + K * K) * norm; - K = tan(M_PI * midB[biq_freq]); - norm = 1.0 / (1.0 + K / midB[biq_reso] + K * K); - midB[biq_a0] = K * K * norm; + midA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midA[biq_b2] = (1.0 - biqK / midA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midB[biq_freq]); + norm = 1.0 / (1.0 + biqK / midB[biq_reso] + biqK * biqK); + midB[biq_a0] = biqK * biqK * norm; midB[biq_a1] = 2.0 * midB[biq_a0]; midB[biq_a2] = midB[biq_a0]; - midB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midB[biq_b2] = (1.0 - K / midB[biq_reso] + K * K) * norm; - K = tan(M_PI * midC[biq_freq]); - norm = 1.0 / (1.0 + K / midC[biq_reso] + K * K); - midC[biq_a0] = K * K * norm; + midB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midB[biq_b2] = (1.0 - biqK / midB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midC[biq_freq]); + norm = 1.0 / (1.0 + biqK / midC[biq_reso] + biqK * biqK); + midC[biq_a0] = biqK * biqK * norm; midC[biq_a1] = 2.0 * midC[biq_a0]; midC[biq_a2] = midC[biq_a0]; - midC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - midC[biq_b2] = (1.0 - K / midC[biq_reso] + K * K) * norm; + midC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midC[biq_b2] = (1.0 - biqK / midC[biq_reso] + biqK * biqK) * norm; - K = tan(M_PI * lowA[biq_freq]); - norm = 1.0 / (1.0 + K / lowA[biq_reso] + K * K); - lowA[biq_a0] = K * K * norm; + biqK = tan(M_PI * lowA[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowA[biq_reso] + biqK * biqK); + lowA[biq_a0] = biqK * biqK * norm; lowA[biq_a1] = 2.0 * lowA[biq_a0]; lowA[biq_a2] = lowA[biq_a0]; - lowA[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowA[biq_b2] = (1.0 - K / lowA[biq_reso] + K * K) * norm; - K = tan(M_PI * lowB[biq_freq]); - norm = 1.0 / (1.0 + K / lowB[biq_reso] + K * K); - lowB[biq_a0] = K * K * norm; + lowA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowA[biq_b2] = (1.0 - biqK / lowA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowB[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowB[biq_reso] + biqK * biqK); + lowB[biq_a0] = biqK * biqK * norm; lowB[biq_a1] = 2.0 * lowB[biq_a0]; lowB[biq_a2] = lowB[biq_a0]; - lowB[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowB[biq_b2] = (1.0 - K / lowB[biq_reso] + K * K) * norm; - K = tan(M_PI * lowC[biq_freq]); - norm = 1.0 / (1.0 + K / lowC[biq_reso] + K * K); - lowC[biq_a0] = K * K * norm; + lowB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowB[biq_b2] = (1.0 - biqK / lowB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowC[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowC[biq_reso] + biqK * biqK); + lowC[biq_a0] = biqK * biqK * norm; lowC[biq_a1] = 2.0 * lowC[biq_a0]; lowC[biq_a2] = lowC[biq_a0]; - lowC[biq_b1] = 2.0 * (K * K - 1.0) * norm; - lowC[biq_b2] = (1.0 - K / lowC[biq_reso] + K * K) * norm; + lowC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowC[biq_b2] = (1.0 - biqK / lowC[biq_reso] + biqK * biqK) * norm; //SmoothEQ2 - double bezCThresh = pow(1.0-I, 6.0) * 8.0; - double bezRez = pow(1.0-J, 8.0) / overallscale; - double sloRez = pow(1.0-K,12.0) / overallscale; + double bezCThresh = pow(1.0-K, 6.0) * 8.0; + double bezRez = pow(1.0-L, 8.0) / overallscale; + double sloRez = pow(1.0-M,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(L,4.0),sqrt(bezCThresh+1.0)); + double gate = pow(pow(N,4.0),sqrt(bezCThresh+1.0)); //Dynamics2 - lFreqA = lFreqB; lFreqB = pow(fmax(M,0.002),overallscale); //the lowpass - hFreqA = hFreqB; hFreqB = pow(N,overallscale+2.0); //the highpass + lFreqA = lFreqB; lFreqB = pow(fmax(O,0.002),overallscale); //the lowpass + hFreqA = hFreqB; hFreqB = pow(P,overallscale+2.0); //the highpass //Cabs2 - double moreDiscontinuity = fmax(pow(O*0.42,3.0)*overallscale,0.00001); - double moreTapeHack = (O*1.4152481)+1.2; - //Discontapeity - - panA = panB; panB = P*1.57079633; inTrimA = inTrimB; inTrimB = Q*2.0; //Console @@ -666,6 +718,101 @@ void ConsoleX2Pre::processDoubleReplacing(double **inputs, double **outputs, Vst double inputSampleR = *in2; if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17; if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17; + + double darkSampleL = inputSampleL; + double darkSampleR = inputSampleR; + if (avgPos > 31) avgPos = 0; + if (spacing > 31) { + avg32L[avgPos] = darkSampleL; avg32R[avgPos] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 32; x++) {darkSampleL += avg32L[x]; darkSampleR += avg32R[x];} + darkSampleL /= 32.0; darkSampleR /= 32.0; + } if (spacing > 15) { + avg16L[avgPos%16] = darkSampleL; avg16R[avgPos%16] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 16; x++) {darkSampleL += avg16L[x]; darkSampleR += avg16R[x];} + darkSampleL /= 16.0; darkSampleR /= 16.0; + } if (spacing > 7) { + avg8L[avgPos%8] = darkSampleL; avg8R[avgPos%8] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 8; x++) {darkSampleL += avg8L[x]; darkSampleR += avg8R[x];} + darkSampleL /= 8.0; darkSampleR /= 8.0; + } if (spacing > 3) { + avg4L[avgPos%4] = darkSampleL; avg4R[avgPos%4] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 4; x++) {darkSampleL += avg4L[x]; darkSampleR += avg4R[x];} + darkSampleL /= 4.0; darkSampleR /= 4.0; + } if (spacing > 1) { + avg2L[avgPos%2] = darkSampleL; avg2R[avgPos%2] = darkSampleR; + darkSampleL = 0.0; darkSampleR = 0.0; + for (int x = 0; x < 2; x++) {darkSampleL += avg2L[x]; darkSampleR += avg2R[x];} + darkSampleL /= 2.0; darkSampleR /= 2.0; + } avgPos++; + lastSlewL += fabs(lastSlewpleL-inputSampleL); lastSlewpleL = inputSampleL; + double avgSlewL = fmin(lastSlewL,1.0); + lastSlewL = fmax(lastSlewL*0.78,2.39996322972865332223); + lastSlewR += fabs(lastSlewpleR-inputSampleR); lastSlewpleR = inputSampleR; + double avgSlewR = fmin(lastSlewR,1.0); + lastSlewR = fmax(lastSlewR*0.78,2.39996322972865332223); //look up Golden Angle, it's cool + inputSampleL = (inputSampleL*(1.0-avgSlewL)) + (darkSampleL*avgSlewL); + inputSampleR = (inputSampleR*(1.0-avgSlewR)) + (darkSampleR*avgSlewR); + + //begin Discontinuity section + inputSampleL *= moreTapeHack; + inputSampleL *= moreDiscontinuity; + dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5); + dBaPosL = fmin(dBaPosL,1.0); + int dBdly = floor(dBaPosL*dscBuf); + double dBi = (dBaPosL*dscBuf)-dBdly; + inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi); + dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi; + dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0; + inputSampleL /= moreDiscontinuity; + //end Discontinuity section, begin TapeHack section + inputSampleL = fmax(fmin(inputSampleL*moreTapeHack,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.9239; + //end TapeHack section + + //begin Discontinuity section + inputSampleR *= moreTapeHack; + inputSampleR *= moreDiscontinuity; + dBaR[dBaXR] = inputSampleR; dBaPosR *= 0.5; dBaPosR += fabs((inputSampleR*((inputSampleR*0.25)-0.5))*0.5); + dBaPosR = fmin(dBaPosR,1.0); + dBdly = floor(dBaPosR*dscBuf); + dBi = (dBaPosR*dscBuf)-dBdly; + inputSampleR = dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*(1.0-dBi); + dBdly++; inputSampleR += dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*dBi; + dBaXR++; if (dBaXR < 0 || dBaXR >= dscBuf) dBaXR = 0; + inputSampleR /= moreDiscontinuity; + //end Discontinuity section, begin TapeHack section + inputSampleR = fmax(fmin(inputSampleR*moreTapeHack,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.9239; + //end TapeHack section + //Discontapeity double trebleL = inputSampleL; double outSample = (trebleL * highA[biq_a0]) + highA[biq_sL1]; @@ -927,73 +1074,14 @@ void ConsoleX2Pre::processDoubleReplacing(double **inputs, double **outputs, Vst } //Cabs2 - //begin Discontinuity section - inputSampleL *= moreDiscontinuity; - dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5); - dBaPosL = fmin(dBaPosL,1.0); - int dBdly = floor(dBaPosL*dscBuf); - double dBi = (dBaPosL*dscBuf)-dBdly; - inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi; - dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0; - inputSampleL /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleL = fmax(fmin(inputSampleL*moreTapeHack,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.9239; - //end TapeHack section - - //begin Discontinuity section - inputSampleR *= moreDiscontinuity; - dBaR[dBaXR] = inputSampleR; dBaPosR *= 0.5; dBaPosR += fabs((inputSampleR*((inputSampleR*0.25)-0.5))*0.5); - dBaPosR = fmin(dBaPosR,1.0); - dBdly = floor(dBaPosR*dscBuf); - dBi = (dBaPosR*dscBuf)-dBdly; - inputSampleR = dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*(1.0-dBi); - dBdly++; inputSampleR += dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*dBi; - dBaXR++; if (dBaXR < 0 || dBaXR >= dscBuf) dBaXR = 0; - inputSampleR /= moreDiscontinuity; - //end Discontinuity section, begin TapeHack section - inputSampleR = fmax(fmin(inputSampleR*moreTapeHack,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.9239; - //end TapeHack section - //Discontapeity - - 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); - inputSampleL = inputSampleL * gainL * gain; - inputSampleR = inputSampleR * gainR * gain; + inputSampleL = inputSampleL * gain; + inputSampleR = inputSampleR * gain; //applies pan section, and smoothed fader gain - + //begin 64 bit stereo floating point dither //int expon; frexp((double)inputSampleL, &expon); fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5; diff --git a/plugins/WinVST/X2Buss/.vs/Console4Channel64/v14/.suo b/plugins/WinVST/X2Buss/.vs/Console4Channel64/v14/.suo new file mode 100755 index 000000000..777b84637 Binary files /dev/null and b/plugins/WinVST/X2Buss/.vs/Console4Channel64/v14/.suo differ diff --git a/plugins/WinVST/X2Buss/.vs/VSTProject/v14/.suo b/plugins/WinVST/X2Buss/.vs/VSTProject/v14/.suo new file mode 100755 index 000000000..97edd3870 Binary files /dev/null and b/plugins/WinVST/X2Buss/.vs/VSTProject/v14/.suo differ diff --git a/plugins/WinVST/X2Buss/VSTProject.sln b/plugins/WinVST/X2Buss/VSTProject.sln new file mode 100755 index 000000000..694b42443 --- /dev/null +++ b/plugins/WinVST/X2Buss/VSTProject.sln @@ -0,0 +1,28 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.25420.1 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "VSTProject", "VSTProject.vcxproj", "{16F7AB3C-1AE0-4574-B60C-7B4DED82938C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {16F7AB3C-1AE0-4574-B60C-7B4DED82938C}.Debug|x64.ActiveCfg = Debug|x64 + {16F7AB3C-1AE0-4574-B60C-7B4DED82938C}.Debug|x64.Build.0 = Debug|x64 + {16F7AB3C-1AE0-4574-B60C-7B4DED82938C}.Debug|x86.ActiveCfg = Debug|Win32 + {16F7AB3C-1AE0-4574-B60C-7B4DED82938C}.Debug|x86.Build.0 = Debug|Win32 + {16F7AB3C-1AE0-4574-B60C-7B4DED82938C}.Release|x64.ActiveCfg = Release|x64 + {16F7AB3C-1AE0-4574-B60C-7B4DED82938C}.Release|x64.Build.0 = Release|x64 + {16F7AB3C-1AE0-4574-B60C-7B4DED82938C}.Release|x86.ActiveCfg = Release|Win32 + {16F7AB3C-1AE0-4574-B60C-7B4DED82938C}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/plugins/WinVST/X2Buss/VSTProject.vcxproj b/plugins/WinVST/X2Buss/VSTProject.vcxproj new file mode 100755 index 000000000..f4fc28f18 --- /dev/null +++ b/plugins/WinVST/X2Buss/VSTProject.vcxproj @@ -0,0 +1,183 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + + + + + + + + + + + + + + {16F7AB3C-1AE0-4574-B60C-7B4DED82938C} + VSTProject + 8.1 + X2Buss64 + + + + DynamicLibrary + true + v140 + NotSet + + + DynamicLibrary + false + v140 + false + NotSet + + + DynamicLibrary + true + v140 + NotSet + + + DynamicLibrary + false + v140 + false + NotSet + + + + + + + + + + + + + + + + + + + + + .dll + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + $(VC_ExecutablePath_x64);$(WindowsSDK_ExecutablePath);$(VS_ExecutablePath);$(MSBuild_ExecutablePath);$(SystemRoot)\SysWow64;$(FxCopDir);$(PATH) + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + $(VC_ExecutablePath_x64);$(WindowsSDK_ExecutablePath);$(VS_ExecutablePath);$(MSBuild_ExecutablePath);$(SystemRoot)\SysWow64;$(FxCopDir);$(PATH) + + + + Level3 + MaxSpeed + true + C:\Users\christopherjohnson\Documents\Visual Studio 2015\Projects\VSTProject\vst2.x;C:\Users\christopherjohnson\Documents\vstsdk2.4;%(AdditionalIncludeDirectories) + WINDOWS;_WINDOWS;WIN32;_USRDLL;_USE_MATH_DEFINES;_CRT_SECURE_NO_DEPRECATE;VST_FORCE_DEPRECATED;%(PreprocessorDefinitions) + MultiThreadedDebug + Speed + false + Default + false + None + + + vstplug.def + libcmt.dll;libcmtd.dll;msvcrt.lib;%(IgnoreSpecificDefaultLibraries) + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + C:\Users\christopherjohnson\Documents\Visual Studio 2015\Projects\VSTProject\vst2.x;C:\Users\christopherjohnson\Documents\vstsdk2.4;%(AdditionalIncludeDirectories) + Speed + WINDOWS;_WINDOWS;WIN32;_USRDLL;_USE_MATH_DEFINES;_CRT_SECURE_NO_DEPRECATE;VST_FORCE_DEPRECATED;%(PreprocessorDefinitions) + false + MultiThreadedDebug + Default + false + None + + + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + libcmt.dll;libcmtd.dll;msvcrt.lib;%(IgnoreSpecificDefaultLibraries) + vstplug.def + + + + + Level3 + MaxSpeed + false + false + true + MultiThreaded + C:\Users\christopherjohnson\Documents\Visual Studio 2015\Projects\VSTProject\vst2.x;C:\Users\christopherjohnson\Documents\vstsdk2.4;%(AdditionalIncludeDirectories) + None + Speed + WINDOWS;_WINDOWS;WIN32;_USRDLL;_USE_MATH_DEFINES;_CRT_SECURE_NO_DEPRECATE;VST_FORCE_DEPRECATED;%(PreprocessorDefinitions) + + + true + true + libcmt.dll;libcmtd.dll;msvcrt.lib;libc.lib;libcd.lib;libcmt.lib;msvcrtd.lib;%(IgnoreSpecificDefaultLibraries) + libcmt.lib;uuid.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + vstplug.def + + + + + Level3 + MaxSpeed + false + false + true + C:\Users\christopherjohnson\Documents\Visual Studio 2015\Projects\VSTProject\vst2.x;C:\Users\christopherjohnson\Documents\vstsdk2.4;%(AdditionalIncludeDirectories) + None + Speed + WINDOWS;_WINDOWS;WIN32;_USRDLL;_USE_MATH_DEFINES;_CRT_SECURE_NO_DEPRECATE;VST_FORCE_DEPRECATED;%(PreprocessorDefinitions) + MultiThreaded + + + true + true + libcmt.dll;libcmtd.dll;msvcrt.lib;libc.lib;libcd.lib;libcmt.lib;msvcrtd.lib;%(IgnoreSpecificDefaultLibraries) + libcmt.lib;uuid.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + vstplug.def + + + + + + \ No newline at end of file diff --git a/plugins/WinVST/X2Buss/VSTProject.vcxproj.filters b/plugins/WinVST/X2Buss/VSTProject.vcxproj.filters new file mode 100755 index 000000000..0d7f4247f --- /dev/null +++ b/plugins/WinVST/X2Buss/VSTProject.vcxproj.filters @@ -0,0 +1,48 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + \ No newline at end of file diff --git a/plugins/WinVST/X2Buss/VSTProject.vcxproj.user b/plugins/WinVST/X2Buss/VSTProject.vcxproj.user new file mode 100755 index 000000000..221626789 --- /dev/null +++ b/plugins/WinVST/X2Buss/VSTProject.vcxproj.user @@ -0,0 +1,19 @@ + + + + {ADEFF70D-84BF-47A1-91C3-FF6B0FC71218} + WindowsLocalDebugger + + + {ADEFF70D-84BF-47A1-91C3-FF6B0FC71218} + WindowsLocalDebugger + + + {ADEFF70D-84BF-47A1-91C3-FF6B0FC71218} + WindowsLocalDebugger + + + {ADEFF70D-84BF-47A1-91C3-FF6B0FC71218} + WindowsLocalDebugger + + \ No newline at end of file diff --git a/plugins/WinVST/X2Buss/X2Buss.cpp b/plugins/WinVST/X2Buss/X2Buss.cpp new file mode 100755 index 000000000..59b50e4ab --- /dev/null +++ b/plugins/WinVST/X2Buss/X2Buss.cpp @@ -0,0 +1,228 @@ +/* ======================================== + * X2Buss - X2Buss.h + * Copyright (c) airwindows, Airwindows uses the MIT license + * ======================================== */ + +#ifndef __X2Buss_H +#include "X2Buss.h" +#endif + +AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new X2Buss(audioMaster);} + +X2Buss::X2Buss(audioMasterCallback audioMaster) : + AudioEffectX(audioMaster, kNumPrograms, kNumParameters) +{ + A = 0.5; + B = 0.5; + C = 0.5; + D = 0.5; + E = 0.5; + F = 0.5; + G = 0.5; + H = 0.5; + I = 1.0; + J = 0.5; + + for (int x = 0; x < biq_total; x++) { + highA[x] = 0.0; + highB[x] = 0.0; + highC[x] = 0.0; + midA[x] = 0.0; + midB[x] = 0.0; + midC[x] = 0.0; + lowA[x] = 0.0; + lowB[x] = 0.0; + lowC[x] = 0.0; + } + highLIIR = 0.0; + highRIIR = 0.0; + midLIIR = 0.0; + midRIIR = 0.0; + lowLIIR = 0.0; + lowRIIR = 0.0; + //SmoothEQ2 + + for (int x = 0; x < bez_total; x++) {bezCompF[x] = 0.0;bezCompS[x] = 0.0;} + bezCompF[bez_cycle] = 1.0; bezMaxF = 0.0; + bezCompS[bez_cycle] = 1.0; + //Dynamics2 + + 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 + + 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 +} + +X2Buss::~X2Buss() {} +VstInt32 X2Buss::getVendorVersion () {return 1000;} +void X2Buss::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);} +void X2Buss::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 X2Buss::getChunk (void** data, bool isPreset) +{ + float *chunkData = (float *)calloc(kNumParameters, sizeof(float)); + chunkData[0] = A; + chunkData[1] = B; + chunkData[2] = C; + chunkData[3] = D; + chunkData[4] = E; + chunkData[5] = F; + chunkData[6] = G; + chunkData[7] = H; + chunkData[8] = I; + chunkData[9] = J; + /* 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 X2Buss::setChunk (void* data, VstInt32 byteSize, bool isPreset) +{ + float *chunkData = (float *)data; + A = pinParameter(chunkData[0]); + B = pinParameter(chunkData[1]); + C = pinParameter(chunkData[2]); + D = pinParameter(chunkData[3]); + E = pinParameter(chunkData[4]); + F = pinParameter(chunkData[5]); + G = pinParameter(chunkData[6]); + H = pinParameter(chunkData[7]); + I = pinParameter(chunkData[8]); + J = pinParameter(chunkData[9]); + /* 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 X2Buss::setParameter(VstInt32 index, float value) { + switch (index) { + case kParamA: A = value; break; + case kParamB: B = value; break; + case kParamC: C = value; break; + case kParamD: D = value; break; + case kParamE: E = value; break; + case kParamF: F = value; break; + case kParamG: G = value; break; + case kParamH: H = value; break; + case kParamI: I = value; break; + case kParamJ: J = value; break; + default: throw; // unknown parameter, shouldn't happen! + } +} + +float X2Buss::getParameter(VstInt32 index) { + switch (index) { + case kParamA: return A; break; + case kParamB: return B; break; + case kParamC: return C; break; + case kParamD: return D; break; + case kParamE: return E; break; + case kParamF: return F; break; + case kParamG: return G; break; + case kParamH: return H; break; + case kParamI: return I; break; + case kParamJ: return J; 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 X2Buss::getParameterName(VstInt32 index, char *text) { + switch (index) { + case kParamA: vst_strncpy (text, "High", kVstMaxParamStrLen); break; + case kParamB: vst_strncpy (text, "HMid", kVstMaxParamStrLen); break; + case kParamC: vst_strncpy (text, "LMid", kVstMaxParamStrLen); break; + case kParamD: vst_strncpy (text, "Bass", kVstMaxParamStrLen); break; + case kParamE: vst_strncpy (text, "HighF", kVstMaxParamStrLen); break; + case kParamF: vst_strncpy (text, "HMidF", kVstMaxParamStrLen); break; + case kParamG: vst_strncpy (text, "LMidF", kVstMaxParamStrLen); break; + case kParamH: vst_strncpy (text, "BassF", kVstMaxParamStrLen); break; + case kParamI: vst_strncpy (text, "Thresh", kVstMaxParamStrLen); break; + case kParamJ: vst_strncpy (text, "Fader", kVstMaxParamStrLen); break; + default: break; // unknown parameter, shouldn't happen! + } //this is our labels for displaying in the VST host +} + +void X2Buss::getParameterDisplay(VstInt32 index, char *text) { + switch (index) { + case kParamA: float2string (A, text, kVstMaxParamStrLen); break; + case kParamB: float2string (B, text, kVstMaxParamStrLen); break; + case kParamC: float2string (C, text, kVstMaxParamStrLen); break; + case kParamD: float2string (D, text, kVstMaxParamStrLen); break; + case kParamE: float2string (E, text, kVstMaxParamStrLen); break; + case kParamF: float2string (F, text, kVstMaxParamStrLen); break; + case kParamG: float2string (G, text, kVstMaxParamStrLen); break; + case kParamH: float2string (H, text, kVstMaxParamStrLen); break; + case kParamI: float2string (I, text, kVstMaxParamStrLen); break; + case kParamJ: float2string (J, text, kVstMaxParamStrLen); break; + default: break; // unknown parameter, shouldn't happen! + } //this displays the values and handles 'popups' where it's discrete choices +} + +void X2Buss::getParameterLabel(VstInt32 index, char *text) { + switch (index) { + case kParamA: vst_strncpy (text, "eq", kVstMaxParamStrLen); break; + case kParamB: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamC: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamD: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamE: vst_strncpy (text, "freq", kVstMaxParamStrLen); break; + case kParamF: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamG: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamH: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamI: vst_strncpy (text, "dyn", kVstMaxParamStrLen); break; + case kParamJ: vst_strncpy (text, "", kVstMaxParamStrLen); break; + default: break; // unknown parameter, shouldn't happen! + } +} + +VstInt32 X2Buss::canDo(char *text) +{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know + +bool X2Buss::getEffectName(char* name) { + vst_strncpy(name, "X2Buss", kVstMaxProductStrLen); return true; +} + +VstPlugCategory X2Buss::getPlugCategory() {return kPlugCategEffect;} + +bool X2Buss::getProductString(char* text) { + vst_strncpy (text, "airwindows X2Buss", kVstMaxProductStrLen); return true; +} + +bool X2Buss::getVendorString(char* text) { + vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true; +} diff --git a/plugins/WinVST/X2Buss/X2Buss.h b/plugins/WinVST/X2Buss/X2Buss.h new file mode 100755 index 000000000..2a192358b --- /dev/null +++ b/plugins/WinVST/X2Buss/X2Buss.h @@ -0,0 +1,154 @@ +/* ======================================== + * X2Buss - X2Buss.h + * Created 8/12/11 by SPIAdmin + * Copyright (c) Airwindows, Airwindows uses the MIT license + * ======================================== */ + +#ifndef __X2Buss_H +#define __X2Buss_H + +#ifndef __audioeffect__ +#include "audioeffectx.h" +#endif + +#include +#include +#include + +enum { + kParamA =0, + kParamB =1, + kParamC =2, + kParamD =3, + kParamE =4, + kParamF =5, + kParamG =6, + kParamH =7, + kParamI =8, + kParamJ =9, + kNumParameters = 10 +}; // + +const int kNumPrograms = 0; +const int kNumInputs = 2; +const int kNumOutputs = 2; +const unsigned long kUniqueId = 'x2bs'; //Change this to what the AU identity is! + +class X2Buss : + public AudioEffectX +{ +public: + X2Buss(audioMasterCallback audioMaster); + ~X2Buss(); + virtual bool getEffectName(char* name); // The plug-in name + virtual VstPlugCategory getPlugCategory(); // The general category for the plug-in + virtual bool getProductString(char* text); // This is a unique plug-in string provided by Steinberg + virtual bool getVendorString(char* text); // Vendor info + virtual VstInt32 getVendorVersion(); // Version number + virtual void processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames); + virtual void processDoubleReplacing (double** inputs, double** outputs, VstInt32 sampleFrames); + virtual void getProgramName(char *name); // read the name from the host + virtual void setProgramName(char *name); // changes the name of the preset displayed in the host + virtual VstInt32 getChunk (void** data, bool isPreset); + virtual VstInt32 setChunk (void* data, VstInt32 byteSize, bool isPreset); + virtual float getParameter(VstInt32 index); // get the parameter value at the specified index + virtual void setParameter(VstInt32 index, float value); // set the parameter at index to value + virtual void getParameterLabel(VstInt32 index, char *text); // label for the parameter (eg dB) + virtual void getParameterName(VstInt32 index, char *text); // name of the parameter + virtual void getParameterDisplay(VstInt32 index, char *text); // text description of the current value + virtual VstInt32 canDo(char *text); +private: + char _programName[kVstMaxProgNameLen + 1]; + std::set< std::string > _canDo; + + float A; + float B; + float C; + float D; + float E; + float F; + float G; + float H; + float I; + float J; + + 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 highA[biq_total]; + double highB[biq_total]; + double highC[biq_total]; + double highLIIR; + double highRIIR; + + double midA[biq_total]; + double midB[biq_total]; + double midC[biq_total]; + double midLIIR; + double midRIIR; + + double lowA[biq_total]; + double lowB[biq_total]; + double lowC[biq_total]; + double lowLIIR; + double lowRIIR; + //SmoothEQ2 + + enum { + bez_AL, + bez_BL, + bez_CL, + bez_InL, + bez_UnInL, + bez_SampL, + bez_AR, + bez_BR, + bez_CR, + bez_InR, + bez_UnInR, + bez_SampR, + bez_cycle, + bez_total + }; //the new undersampling. bez signifies the bezier curve reconstruction + double bezCompF[bez_total]; + double bezMaxF; + double bezCompS[bez_total]; + //Dynamics2 + + 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 diff --git a/plugins/WinVST/X2Buss/X2BussProc.cpp b/plugins/WinVST/X2Buss/X2BussProc.cpp new file mode 100755 index 000000000..d203aadb5 --- /dev/null +++ b/plugins/WinVST/X2Buss/X2BussProc.cpp @@ -0,0 +1,915 @@ +/* ======================================== + * X2Buss - X2Buss.h + * Copyright (c) airwindows, Airwindows uses the MIT license + * ======================================== */ + +#ifndef __X2Buss_H +#include "X2Buss.h" +#endif + +void X2Buss::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 = (A-0.5)*2.0; + trebleGain = 1.0+(trebleGain*fabs(trebleGain)*fabs(trebleGain)); + double highmidGain = (B-0.5)*2.0; + highmidGain = 1.0+(highmidGain*fabs(highmidGain)*fabs(highmidGain)); + double lowmidGain = (C-0.5)*2.0; + lowmidGain = 1.0+(lowmidGain*fabs(lowmidGain)*fabs(lowmidGain)); + double bassGain = (D-0.5)*2.0; + bassGain = 1.0+(bassGain*fabs(bassGain)*fabs(bassGain)); + + double trebleRef = E-0.5; + double highmidRef = F-0.5; + double lowmidRef = G-0.5; + double bassRef = H-0.5; + double highF = 0.75 + ((trebleRef+trebleRef+trebleRef+highmidRef)*0.125); + double bassF = 0.25 + ((lowmidRef+bassRef+bassRef+bassRef)*0.125); + double midF = (highF*0.5) + (bassF*0.5) + ((highmidRef+lowmidRef)*0.125); + + double highQ = fmax(fmin(1.0+(highmidRef-trebleRef),4.0),0.125); + double midQ = fmax(fmin(1.0+(lowmidRef-highmidRef),4.0),0.125); + double lowQ = fmax(fmin(1.0+(bassRef-lowmidRef),4.0),0.125); + + highA[biq_freq] = ((pow(highF,3)*20000.0)/getSampleRate()); + highC[biq_freq] = highB[biq_freq] = highA[biq_freq] = fmax(fmin(highA[biq_freq],0.4999),0.00025); + double highFreq = pow(highF,3)*20000.0; + double omega = 2.0*M_PI*(highFreq/getSampleRate()); + double biqK = 2.0-cos(omega); + double highCoef = -sqrt((biqK*biqK)-1.0)+biqK; + highA[biq_reso] = 2.24697960 * highQ; + highB[biq_reso] = 0.80193774 * highQ; + highC[biq_reso] = 0.55495813 * highQ; + + midA[biq_freq] = ((pow(midF,3)*20000.0)/getSampleRate()); + midC[biq_freq] = midB[biq_freq] = midA[biq_freq] = fmax(fmin(midA[biq_freq],0.4999),0.00025); + double midFreq = pow(midF,3)*20000.0; + omega = 2.0*M_PI*(midFreq/getSampleRate()); + biqK = 2.0-cos(omega); + double midCoef = -sqrt((biqK*biqK)-1.0)+biqK; + midA[biq_reso] = 2.24697960 * midQ; + midB[biq_reso] = 0.80193774 * midQ; + midC[biq_reso] = 0.55495813 * midQ; + + lowA[biq_freq] = ((pow(bassF,3)*20000.0)/getSampleRate()); + lowC[biq_freq] = lowB[biq_freq] = lowA[biq_freq] = fmax(fmin(lowA[biq_freq],0.4999),0.00025); + double lowFreq = pow(bassF,3)*20000.0; + omega = 2.0*M_PI*(lowFreq/getSampleRate()); + biqK = 2.0-cos(omega); + double lowCoef = -sqrt((biqK*biqK)-1.0)+biqK; + lowA[biq_reso] = 2.24697960 * lowQ; + lowB[biq_reso] = 0.80193774 * lowQ; + lowC[biq_reso] = 0.55495813 * lowQ; + + biqK = tan(M_PI * highA[biq_freq]); + double norm = 1.0 / (1.0 + biqK / highA[biq_reso] + biqK * biqK); + highA[biq_a0] = biqK * biqK * norm; + highA[biq_a1] = 2.0 * highA[biq_a0]; + highA[biq_a2] = highA[biq_a0]; + highA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highA[biq_b2] = (1.0 - biqK / highA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highB[biq_freq]); + norm = 1.0 / (1.0 + biqK / highB[biq_reso] + biqK * biqK); + highB[biq_a0] = biqK * biqK * norm; + highB[biq_a1] = 2.0 * highB[biq_a0]; + highB[biq_a2] = highB[biq_a0]; + highB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highB[biq_b2] = (1.0 - biqK / highB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highC[biq_freq]); + norm = 1.0 / (1.0 + biqK / highC[biq_reso] + biqK * biqK); + highC[biq_a0] = biqK * biqK * norm; + highC[biq_a1] = 2.0 * highC[biq_a0]; + highC[biq_a2] = highC[biq_a0]; + highC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highC[biq_b2] = (1.0 - biqK / highC[biq_reso] + biqK * biqK) * norm; + + biqK = tan(M_PI * midA[biq_freq]); + norm = 1.0 / (1.0 + biqK / midA[biq_reso] + biqK * biqK); + midA[biq_a0] = biqK * biqK * norm; + midA[biq_a1] = 2.0 * midA[biq_a0]; + midA[biq_a2] = midA[biq_a0]; + midA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midA[biq_b2] = (1.0 - biqK / midA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midB[biq_freq]); + norm = 1.0 / (1.0 + biqK / midB[biq_reso] + biqK * biqK); + midB[biq_a0] = biqK * biqK * norm; + midB[biq_a1] = 2.0 * midB[biq_a0]; + midB[biq_a2] = midB[biq_a0]; + midB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midB[biq_b2] = (1.0 - biqK / midB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midC[biq_freq]); + norm = 1.0 / (1.0 + biqK / midC[biq_reso] + biqK * biqK); + midC[biq_a0] = biqK * biqK * norm; + midC[biq_a1] = 2.0 * midC[biq_a0]; + midC[biq_a2] = midC[biq_a0]; + midC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midC[biq_b2] = (1.0 - biqK / midC[biq_reso] + biqK * biqK) * norm; + + biqK = tan(M_PI * lowA[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowA[biq_reso] + biqK * biqK); + lowA[biq_a0] = biqK * biqK * norm; + lowA[biq_a1] = 2.0 * lowA[biq_a0]; + lowA[biq_a2] = lowA[biq_a0]; + lowA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowA[biq_b2] = (1.0 - biqK / lowA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowB[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowB[biq_reso] + biqK * biqK); + lowB[biq_a0] = biqK * biqK * norm; + lowB[biq_a1] = 2.0 * lowB[biq_a0]; + lowB[biq_a2] = lowB[biq_a0]; + lowB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowB[biq_b2] = (1.0 - biqK / lowB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowC[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowC[biq_reso] + biqK * biqK); + lowC[biq_a0] = biqK * biqK * norm; + lowC[biq_a1] = 2.0 * lowC[biq_a0]; + lowC[biq_a2] = lowC[biq_a0]; + lowC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowC[biq_b2] = (1.0 - biqK / lowC[biq_reso] + biqK * biqK) * norm; + //SmoothEQ2 + + double bezCThresh = pow(1.0-I, 6.0) * 8.0; + double bezRez = pow(1.0-I, 12.360679774997898) / overallscale; + double sloRez = pow(1.0-I,10.0) / overallscale; + sloRez = fmin(fmax(sloRez,0.00001),1.0); + bezRez = fmin(fmax(bezRez,0.00001),1.0); + //Dynamics2 + + inTrimA = inTrimB; inTrimB = J*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; + + 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)); + + double trebleL = inputSampleL; + double outSample = (trebleL * highA[biq_a0]) + highA[biq_sL1]; + highA[biq_sL1] = (trebleL * highA[biq_a1]) - (outSample * highA[biq_b1]) + highA[biq_sL2]; + highA[biq_sL2] = (trebleL * highA[biq_a2]) - (outSample * highA[biq_b2]); + double highmidL = outSample; trebleL -= highmidL; + + outSample = (highmidL * midA[biq_a0]) + midA[biq_sL1]; + midA[biq_sL1] = (highmidL * midA[biq_a1]) - (outSample * midA[biq_b1]) + midA[biq_sL2]; + midA[biq_sL2] = (highmidL * midA[biq_a2]) - (outSample * midA[biq_b2]); + double lowmidL = outSample; highmidL -= lowmidL; + + outSample = (lowmidL * lowA[biq_a0]) + lowA[biq_sL1]; + lowA[biq_sL1] = (lowmidL * lowA[biq_a1]) - (outSample * lowA[biq_b1]) + lowA[biq_sL2]; + lowA[biq_sL2] = (lowmidL * lowA[biq_a2]) - (outSample * lowA[biq_b2]); + double bassL = outSample; lowmidL -= bassL; + + trebleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain); + //first stage of three crossovers + + outSample = (trebleL * highB[biq_a0]) + highB[biq_sL1]; + highB[biq_sL1] = (trebleL * highB[biq_a1]) - (outSample * highB[biq_b1]) + highB[biq_sL2]; + highB[biq_sL2] = (trebleL * highB[biq_a2]) - (outSample * highB[biq_b2]); + highmidL = outSample; trebleL -= highmidL; + + outSample = (highmidL * midB[biq_a0]) + midB[biq_sL1]; + midB[biq_sL1] = (highmidL * midB[biq_a1]) - (outSample * midB[biq_b1]) + midB[biq_sL2]; + midB[biq_sL2] = (highmidL * midB[biq_a2]) - (outSample * midB[biq_b2]); + lowmidL = outSample; highmidL -= lowmidL; + + outSample = (lowmidL * lowB[biq_a0]) + lowB[biq_sL1]; + lowB[biq_sL1] = (lowmidL * lowB[biq_a1]) - (outSample * lowB[biq_b1]) + lowB[biq_sL2]; + lowB[biq_sL2] = (lowmidL * lowB[biq_a2]) - (outSample * lowB[biq_b2]); + bassL = outSample; lowmidL -= bassL; + + trebleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain); + //second stage of three crossovers + + outSample = (trebleL * highC[biq_a0]) + highC[biq_sL1]; + highC[biq_sL1] = (trebleL * highC[biq_a1]) - (outSample * highC[biq_b1]) + highC[biq_sL2]; + highC[biq_sL2] = (trebleL * highC[biq_a2]) - (outSample * highC[biq_b2]); + highmidL = outSample; trebleL -= highmidL; + + outSample = (highmidL * midC[biq_a0]) + midC[biq_sL1]; + midC[biq_sL1] = (highmidL * midC[biq_a1]) - (outSample * midC[biq_b1]) + midC[biq_sL2]; + midC[biq_sL2] = (highmidL * midC[biq_a2]) - (outSample * midC[biq_b2]); + lowmidL = outSample; highmidL -= lowmidL; + + outSample = (lowmidL * lowC[biq_a0]) + lowC[biq_sL1]; + lowC[biq_sL1] = (lowmidL * lowC[biq_a1]) - (outSample * lowC[biq_b1]) + lowC[biq_sL2]; + lowC[biq_sL2] = (lowmidL * lowC[biq_a2]) - (outSample * lowC[biq_b2]); + bassL = outSample; lowmidL -= bassL; + + trebleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain); + //third stage of three crossovers + + highLIIR = (highLIIR*highCoef) + (trebleL*(1.0-highCoef)); + highmidL = highLIIR; trebleL -= highmidL; + + midLIIR = (midLIIR*midCoef) + (highmidL*(1.0-midCoef)); + lowmidL = midLIIR; highmidL -= lowmidL; + + lowLIIR = (lowLIIR*lowCoef) + (lowmidL*(1.0-lowCoef)); + bassL = lowLIIR; lowmidL -= bassL; + + inputSampleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain); + //fourth stage of three crossovers is the exponential filters + + + double trebleR = inputSampleR; + outSample = (trebleR * highA[biq_a0]) + highA[biq_sR1]; + highA[biq_sR1] = (trebleR * highA[biq_a1]) - (outSample * highA[biq_b1]) + highA[biq_sR2]; + highA[biq_sR2] = (trebleR * highA[biq_a2]) - (outSample * highA[biq_b2]); + double highmidR = outSample; trebleR -= highmidR; + + outSample = (highmidR * midA[biq_a0]) + midA[biq_sR1]; + midA[biq_sR1] = (highmidR * midA[biq_a1]) - (outSample * midA[biq_b1]) + midA[biq_sR2]; + midA[biq_sR2] = (highmidR * midA[biq_a2]) - (outSample * midA[biq_b2]); + double lowmidR = outSample; highmidR -= lowmidR; + + outSample = (lowmidR * lowA[biq_a0]) + lowA[biq_sR1]; + lowA[biq_sR1] = (lowmidR * lowA[biq_a1]) - (outSample * lowA[biq_b1]) + lowA[biq_sR2]; + lowA[biq_sR2] = (lowmidR * lowA[biq_a2]) - (outSample * lowA[biq_b2]); + double bassR = outSample; lowmidR -= bassR; + + trebleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain); + //first stage of three crossovers + + outSample = (trebleR * highB[biq_a0]) + highB[biq_sR1]; + highB[biq_sR1] = (trebleR * highB[biq_a1]) - (outSample * highB[biq_b1]) + highB[biq_sR2]; + highB[biq_sR2] = (trebleR * highB[biq_a2]) - (outSample * highB[biq_b2]); + highmidR = outSample; trebleR -= highmidR; + + outSample = (highmidR * midB[biq_a0]) + midB[biq_sR1]; + midB[biq_sR1] = (highmidR * midB[biq_a1]) - (outSample * midB[biq_b1]) + midB[biq_sR2]; + midB[biq_sR2] = (highmidR * midB[biq_a2]) - (outSample * midB[biq_b2]); + lowmidR = outSample; highmidR -= lowmidR; + + outSample = (lowmidR * lowB[biq_a0]) + lowB[biq_sR1]; + lowB[biq_sR1] = (lowmidR * lowB[biq_a1]) - (outSample * lowB[biq_b1]) + lowB[biq_sR2]; + lowB[biq_sR2] = (lowmidR * lowB[biq_a2]) - (outSample * lowB[biq_b2]); + bassR = outSample; lowmidR -= bassR; + + trebleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain); + //second stage of three crossovers + + outSample = (trebleR * highC[biq_a0]) + highC[biq_sR1]; + highC[biq_sR1] = (trebleR * highC[biq_a1]) - (outSample * highC[biq_b1]) + highC[biq_sR2]; + highC[biq_sR2] = (trebleR * highC[biq_a2]) - (outSample * highC[biq_b2]); + highmidR = outSample; trebleR -= highmidR; + + outSample = (highmidR * midC[biq_a0]) + midC[biq_sR1]; + midC[biq_sR1] = (highmidR * midC[biq_a1]) - (outSample * midC[biq_b1]) + midC[biq_sR2]; + midC[biq_sR2] = (highmidR * midC[biq_a2]) - (outSample * midC[biq_b2]); + lowmidR = outSample; highmidR -= lowmidR; + + outSample = (lowmidR * lowC[biq_a0]) + lowC[biq_sR1]; + lowC[biq_sR1] = (lowmidR * lowC[biq_a1]) - (outSample * lowC[biq_b1]) + lowC[biq_sR2]; + lowC[biq_sR2] = (lowmidR * lowC[biq_a2]) - (outSample * lowC[biq_b2]); + bassR = outSample; lowmidR -= bassR; + + trebleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain); + //third stage of three crossovers + + highRIIR = (highRIIR*highCoef) + (trebleR*(1.0-highCoef)); + highmidR = highRIIR; trebleR -= highmidR; + + midRIIR = (midRIIR*midCoef) + (highmidR*(1.0-midCoef)); + lowmidR = midRIIR; highmidR -= lowmidR; + + lowRIIR = (lowRIIR*lowCoef) + (lowmidR*(1.0-lowCoef)); + bassR = lowRIIR; lowmidR -= bassR; + + inputSampleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain); + //fourth stage of three crossovers is the exponential filters + //SmoothEQ2 + + if (bezCThresh > 0.0) { + inputSampleL *= ((bezCThresh*0.5)+1.0); + inputSampleR *= ((bezCThresh*0.5)+1.0); + } + + bezCompF[bez_cycle] += bezRez; + bezCompF[bez_SampL] += (fabs(inputSampleL) * bezRez); + bezCompF[bez_SampR] += (fabs(inputSampleR) * bezRez); + bezMaxF = fmax(bezMaxF,fmax(fabs(inputSampleL),fabs(inputSampleR))); + + if (bezCompF[bez_cycle] > 1.0) { + bezCompF[bez_cycle] -= 1.0; + bezCompF[bez_CL] = bezCompF[bez_BL]; + bezCompF[bez_BL] = bezCompF[bez_AL]; + bezCompF[bez_AL] = bezCompF[bez_SampL]; + bezCompF[bez_SampL] = 0.0; + bezCompF[bez_CR] = bezCompF[bez_BR]; + bezCompF[bez_BR] = bezCompF[bez_AR]; + bezCompF[bez_AR] = bezCompF[bez_SampR]; + bezCompF[bez_SampR] = 0.0; + bezMaxF = 0.0; + } + bezCompS[bez_cycle] += sloRez; + bezCompS[bez_SampL] += (fabs(inputSampleL) * sloRez); //note: SampL is a control voltage + bezCompS[bez_SampR] += (fabs(inputSampleR) * sloRez); //note: SampR is a control voltage + if (bezCompS[bez_cycle] > 1.0) { + bezCompS[bez_cycle] -= 1.0; + bezCompS[bez_CL] = bezCompS[bez_BL]; + bezCompS[bez_BL] = bezCompS[bez_AL]; + bezCompS[bez_AL] = bezCompS[bez_SampL]; + bezCompS[bez_SampL] = 0.0; + bezCompS[bez_CR] = bezCompS[bez_BR]; + bezCompS[bez_BR] = bezCompS[bez_AR]; + bezCompS[bez_AR] = bezCompS[bez_SampR]; + bezCompS[bez_SampR] = 0.0; + } + double CBFL = (bezCompF[bez_CL]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_BL]*bezCompF[bez_cycle]); + double BAFL = (bezCompF[bez_BL]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_AL]*bezCompF[bez_cycle]); + double CBAFL = (bezCompF[bez_BL]+(CBFL*(1.0-bezCompF[bez_cycle]))+(BAFL*bezCompF[bez_cycle]))*0.5; + double CBSL = (bezCompS[bez_CL]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_BL]*bezCompS[bez_cycle]); + double BASL = (bezCompS[bez_BL]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_AL]*bezCompS[bez_cycle]); + double CBASL = (bezCompS[bez_BL]+(CBSL*(1.0-bezCompS[bez_cycle]))+(BASL*bezCompS[bez_cycle]))*0.5; + double CBAMax = fmax(CBASL,CBAFL); if (CBAMax > 0.0) CBAMax = 1.0/CBAMax; + double CBAFade = ((CBASL*-CBAMax)+(CBAFL*CBAMax)+1.0)*0.5; + if (bezCThresh > 0.0) inputSampleL *= 1.0-(fmin(((CBASL*(1.0-CBAFade))+(CBAFL*CBAFade))*bezCThresh,1.0)); + + double CBFR = (bezCompF[bez_CR]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_BR]*bezCompF[bez_cycle]); + double BAFR = (bezCompF[bez_BR]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_AR]*bezCompF[bez_cycle]); + double CBAFR = (bezCompF[bez_BR]+(CBFR*(1.0-bezCompF[bez_cycle]))+(BAFR*bezCompF[bez_cycle]))*0.5; + double CBSR = (bezCompS[bez_CR]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_BR]*bezCompS[bez_cycle]); + double BASR = (bezCompS[bez_BR]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_AR]*bezCompS[bez_cycle]); + double CBASR = (bezCompS[bez_BR]+(CBSR*(1.0-bezCompS[bez_cycle]))+(BASR*bezCompS[bez_cycle]))*0.5; + CBAMax = fmax(CBASR,CBAFR); if (CBAMax > 0.0) CBAMax = 1.0/CBAMax; + CBAFade = ((CBASR*-CBAMax)+(CBAFR*CBAMax)+1.0)*0.5; + if (bezCThresh > 0.0) inputSampleR *= 1.0-(fmin(((CBASR*(1.0-CBAFade))+(CBAFR*CBAFade))*bezCThresh,1.0)); + //Dynamics2 + + const double temp = (double)sampleFrames/inFramesToProcess; + 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 * gain; + inputSampleR = inputSampleR * 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 X2Buss::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 = (A-0.5)*2.0; + trebleGain = 1.0+(trebleGain*fabs(trebleGain)*fabs(trebleGain)); + double highmidGain = (B-0.5)*2.0; + highmidGain = 1.0+(highmidGain*fabs(highmidGain)*fabs(highmidGain)); + double lowmidGain = (C-0.5)*2.0; + lowmidGain = 1.0+(lowmidGain*fabs(lowmidGain)*fabs(lowmidGain)); + double bassGain = (D-0.5)*2.0; + bassGain = 1.0+(bassGain*fabs(bassGain)*fabs(bassGain)); + + double trebleRef = E-0.5; + double highmidRef = F-0.5; + double lowmidRef = G-0.5; + double bassRef = H-0.5; + double highF = 0.75 + ((trebleRef+trebleRef+trebleRef+highmidRef)*0.125); + double bassF = 0.25 + ((lowmidRef+bassRef+bassRef+bassRef)*0.125); + double midF = (highF*0.5) + (bassF*0.5) + ((highmidRef+lowmidRef)*0.125); + + double highQ = fmax(fmin(1.0+(highmidRef-trebleRef),4.0),0.125); + double midQ = fmax(fmin(1.0+(lowmidRef-highmidRef),4.0),0.125); + double lowQ = fmax(fmin(1.0+(bassRef-lowmidRef),4.0),0.125); + + highA[biq_freq] = ((pow(highF,3)*20000.0)/getSampleRate()); + highC[biq_freq] = highB[biq_freq] = highA[biq_freq] = fmax(fmin(highA[biq_freq],0.4999),0.00025); + double highFreq = pow(highF,3)*20000.0; + double omega = 2.0*M_PI*(highFreq/getSampleRate()); + double biqK = 2.0-cos(omega); + double highCoef = -sqrt((biqK*biqK)-1.0)+biqK; + highA[biq_reso] = 2.24697960 * highQ; + highB[biq_reso] = 0.80193774 * highQ; + highC[biq_reso] = 0.55495813 * highQ; + + midA[biq_freq] = ((pow(midF,3)*20000.0)/getSampleRate()); + midC[biq_freq] = midB[biq_freq] = midA[biq_freq] = fmax(fmin(midA[biq_freq],0.4999),0.00025); + double midFreq = pow(midF,3)*20000.0; + omega = 2.0*M_PI*(midFreq/getSampleRate()); + biqK = 2.0-cos(omega); + double midCoef = -sqrt((biqK*biqK)-1.0)+biqK; + midA[biq_reso] = 2.24697960 * midQ; + midB[biq_reso] = 0.80193774 * midQ; + midC[biq_reso] = 0.55495813 * midQ; + + lowA[biq_freq] = ((pow(bassF,3)*20000.0)/getSampleRate()); + lowC[biq_freq] = lowB[biq_freq] = lowA[biq_freq] = fmax(fmin(lowA[biq_freq],0.4999),0.00025); + double lowFreq = pow(bassF,3)*20000.0; + omega = 2.0*M_PI*(lowFreq/getSampleRate()); + biqK = 2.0-cos(omega); + double lowCoef = -sqrt((biqK*biqK)-1.0)+biqK; + lowA[biq_reso] = 2.24697960 * lowQ; + lowB[biq_reso] = 0.80193774 * lowQ; + lowC[biq_reso] = 0.55495813 * lowQ; + + biqK = tan(M_PI * highA[biq_freq]); + double norm = 1.0 / (1.0 + biqK / highA[biq_reso] + biqK * biqK); + highA[biq_a0] = biqK * biqK * norm; + highA[biq_a1] = 2.0 * highA[biq_a0]; + highA[biq_a2] = highA[biq_a0]; + highA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highA[biq_b2] = (1.0 - biqK / highA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highB[biq_freq]); + norm = 1.0 / (1.0 + biqK / highB[biq_reso] + biqK * biqK); + highB[biq_a0] = biqK * biqK * norm; + highB[biq_a1] = 2.0 * highB[biq_a0]; + highB[biq_a2] = highB[biq_a0]; + highB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highB[biq_b2] = (1.0 - biqK / highB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * highC[biq_freq]); + norm = 1.0 / (1.0 + biqK / highC[biq_reso] + biqK * biqK); + highC[biq_a0] = biqK * biqK * norm; + highC[biq_a1] = 2.0 * highC[biq_a0]; + highC[biq_a2] = highC[biq_a0]; + highC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + highC[biq_b2] = (1.0 - biqK / highC[biq_reso] + biqK * biqK) * norm; + + biqK = tan(M_PI * midA[biq_freq]); + norm = 1.0 / (1.0 + biqK / midA[biq_reso] + biqK * biqK); + midA[biq_a0] = biqK * biqK * norm; + midA[biq_a1] = 2.0 * midA[biq_a0]; + midA[biq_a2] = midA[biq_a0]; + midA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midA[biq_b2] = (1.0 - biqK / midA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midB[biq_freq]); + norm = 1.0 / (1.0 + biqK / midB[biq_reso] + biqK * biqK); + midB[biq_a0] = biqK * biqK * norm; + midB[biq_a1] = 2.0 * midB[biq_a0]; + midB[biq_a2] = midB[biq_a0]; + midB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midB[biq_b2] = (1.0 - biqK / midB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * midC[biq_freq]); + norm = 1.0 / (1.0 + biqK / midC[biq_reso] + biqK * biqK); + midC[biq_a0] = biqK * biqK * norm; + midC[biq_a1] = 2.0 * midC[biq_a0]; + midC[biq_a2] = midC[biq_a0]; + midC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + midC[biq_b2] = (1.0 - biqK / midC[biq_reso] + biqK * biqK) * norm; + + biqK = tan(M_PI * lowA[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowA[biq_reso] + biqK * biqK); + lowA[biq_a0] = biqK * biqK * norm; + lowA[biq_a1] = 2.0 * lowA[biq_a0]; + lowA[biq_a2] = lowA[biq_a0]; + lowA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowA[biq_b2] = (1.0 - biqK / lowA[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowB[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowB[biq_reso] + biqK * biqK); + lowB[biq_a0] = biqK * biqK * norm; + lowB[biq_a1] = 2.0 * lowB[biq_a0]; + lowB[biq_a2] = lowB[biq_a0]; + lowB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowB[biq_b2] = (1.0 - biqK / lowB[biq_reso] + biqK * biqK) * norm; + biqK = tan(M_PI * lowC[biq_freq]); + norm = 1.0 / (1.0 + biqK / lowC[biq_reso] + biqK * biqK); + lowC[biq_a0] = biqK * biqK * norm; + lowC[biq_a1] = 2.0 * lowC[biq_a0]; + lowC[biq_a2] = lowC[biq_a0]; + lowC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm; + lowC[biq_b2] = (1.0 - biqK / lowC[biq_reso] + biqK * biqK) * norm; + //SmoothEQ2 + + double bezCThresh = pow(1.0-I, 6.0) * 8.0; + double bezRez = pow(1.0-I, 12.360679774997898) / overallscale; + double sloRez = pow(1.0-I,10.0) / overallscale; + sloRez = fmin(fmax(sloRez,0.00001),1.0); + bezRez = fmin(fmax(bezRez,0.00001),1.0); + //Dynamics2 + + inTrimA = inTrimB; inTrimB = J*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; + + 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)); + + double trebleL = inputSampleL; + double outSample = (trebleL * highA[biq_a0]) + highA[biq_sL1]; + highA[biq_sL1] = (trebleL * highA[biq_a1]) - (outSample * highA[biq_b1]) + highA[biq_sL2]; + highA[biq_sL2] = (trebleL * highA[biq_a2]) - (outSample * highA[biq_b2]); + double highmidL = outSample; trebleL -= highmidL; + + outSample = (highmidL * midA[biq_a0]) + midA[biq_sL1]; + midA[biq_sL1] = (highmidL * midA[biq_a1]) - (outSample * midA[biq_b1]) + midA[biq_sL2]; + midA[biq_sL2] = (highmidL * midA[biq_a2]) - (outSample * midA[biq_b2]); + double lowmidL = outSample; highmidL -= lowmidL; + + outSample = (lowmidL * lowA[biq_a0]) + lowA[biq_sL1]; + lowA[biq_sL1] = (lowmidL * lowA[biq_a1]) - (outSample * lowA[biq_b1]) + lowA[biq_sL2]; + lowA[biq_sL2] = (lowmidL * lowA[biq_a2]) - (outSample * lowA[biq_b2]); + double bassL = outSample; lowmidL -= bassL; + + trebleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain); + //first stage of three crossovers + + outSample = (trebleL * highB[biq_a0]) + highB[biq_sL1]; + highB[biq_sL1] = (trebleL * highB[biq_a1]) - (outSample * highB[biq_b1]) + highB[biq_sL2]; + highB[biq_sL2] = (trebleL * highB[biq_a2]) - (outSample * highB[biq_b2]); + highmidL = outSample; trebleL -= highmidL; + + outSample = (highmidL * midB[biq_a0]) + midB[biq_sL1]; + midB[biq_sL1] = (highmidL * midB[biq_a1]) - (outSample * midB[biq_b1]) + midB[biq_sL2]; + midB[biq_sL2] = (highmidL * midB[biq_a2]) - (outSample * midB[biq_b2]); + lowmidL = outSample; highmidL -= lowmidL; + + outSample = (lowmidL * lowB[biq_a0]) + lowB[biq_sL1]; + lowB[biq_sL1] = (lowmidL * lowB[biq_a1]) - (outSample * lowB[biq_b1]) + lowB[biq_sL2]; + lowB[biq_sL2] = (lowmidL * lowB[biq_a2]) - (outSample * lowB[biq_b2]); + bassL = outSample; lowmidL -= bassL; + + trebleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain); + //second stage of three crossovers + + outSample = (trebleL * highC[biq_a0]) + highC[biq_sL1]; + highC[biq_sL1] = (trebleL * highC[biq_a1]) - (outSample * highC[biq_b1]) + highC[biq_sL2]; + highC[biq_sL2] = (trebleL * highC[biq_a2]) - (outSample * highC[biq_b2]); + highmidL = outSample; trebleL -= highmidL; + + outSample = (highmidL * midC[biq_a0]) + midC[biq_sL1]; + midC[biq_sL1] = (highmidL * midC[biq_a1]) - (outSample * midC[biq_b1]) + midC[biq_sL2]; + midC[biq_sL2] = (highmidL * midC[biq_a2]) - (outSample * midC[biq_b2]); + lowmidL = outSample; highmidL -= lowmidL; + + outSample = (lowmidL * lowC[biq_a0]) + lowC[biq_sL1]; + lowC[biq_sL1] = (lowmidL * lowC[biq_a1]) - (outSample * lowC[biq_b1]) + lowC[biq_sL2]; + lowC[biq_sL2] = (lowmidL * lowC[biq_a2]) - (outSample * lowC[biq_b2]); + bassL = outSample; lowmidL -= bassL; + + trebleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain); + //third stage of three crossovers + + highLIIR = (highLIIR*highCoef) + (trebleL*(1.0-highCoef)); + highmidL = highLIIR; trebleL -= highmidL; + + midLIIR = (midLIIR*midCoef) + (highmidL*(1.0-midCoef)); + lowmidL = midLIIR; highmidL -= lowmidL; + + lowLIIR = (lowLIIR*lowCoef) + (lowmidL*(1.0-lowCoef)); + bassL = lowLIIR; lowmidL -= bassL; + + inputSampleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain); + //fourth stage of three crossovers is the exponential filters + + + double trebleR = inputSampleR; + outSample = (trebleR * highA[biq_a0]) + highA[biq_sR1]; + highA[biq_sR1] = (trebleR * highA[biq_a1]) - (outSample * highA[biq_b1]) + highA[biq_sR2]; + highA[biq_sR2] = (trebleR * highA[biq_a2]) - (outSample * highA[biq_b2]); + double highmidR = outSample; trebleR -= highmidR; + + outSample = (highmidR * midA[biq_a0]) + midA[biq_sR1]; + midA[biq_sR1] = (highmidR * midA[biq_a1]) - (outSample * midA[biq_b1]) + midA[biq_sR2]; + midA[biq_sR2] = (highmidR * midA[biq_a2]) - (outSample * midA[biq_b2]); + double lowmidR = outSample; highmidR -= lowmidR; + + outSample = (lowmidR * lowA[biq_a0]) + lowA[biq_sR1]; + lowA[biq_sR1] = (lowmidR * lowA[biq_a1]) - (outSample * lowA[biq_b1]) + lowA[biq_sR2]; + lowA[biq_sR2] = (lowmidR * lowA[biq_a2]) - (outSample * lowA[biq_b2]); + double bassR = outSample; lowmidR -= bassR; + + trebleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain); + //first stage of three crossovers + + outSample = (trebleR * highB[biq_a0]) + highB[biq_sR1]; + highB[biq_sR1] = (trebleR * highB[biq_a1]) - (outSample * highB[biq_b1]) + highB[biq_sR2]; + highB[biq_sR2] = (trebleR * highB[biq_a2]) - (outSample * highB[biq_b2]); + highmidR = outSample; trebleR -= highmidR; + + outSample = (highmidR * midB[biq_a0]) + midB[biq_sR1]; + midB[biq_sR1] = (highmidR * midB[biq_a1]) - (outSample * midB[biq_b1]) + midB[biq_sR2]; + midB[biq_sR2] = (highmidR * midB[biq_a2]) - (outSample * midB[biq_b2]); + lowmidR = outSample; highmidR -= lowmidR; + + outSample = (lowmidR * lowB[biq_a0]) + lowB[biq_sR1]; + lowB[biq_sR1] = (lowmidR * lowB[biq_a1]) - (outSample * lowB[biq_b1]) + lowB[biq_sR2]; + lowB[biq_sR2] = (lowmidR * lowB[biq_a2]) - (outSample * lowB[biq_b2]); + bassR = outSample; lowmidR -= bassR; + + trebleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain); + //second stage of three crossovers + + outSample = (trebleR * highC[biq_a0]) + highC[biq_sR1]; + highC[biq_sR1] = (trebleR * highC[biq_a1]) - (outSample * highC[biq_b1]) + highC[biq_sR2]; + highC[biq_sR2] = (trebleR * highC[biq_a2]) - (outSample * highC[biq_b2]); + highmidR = outSample; trebleR -= highmidR; + + outSample = (highmidR * midC[biq_a0]) + midC[biq_sR1]; + midC[biq_sR1] = (highmidR * midC[biq_a1]) - (outSample * midC[biq_b1]) + midC[biq_sR2]; + midC[biq_sR2] = (highmidR * midC[biq_a2]) - (outSample * midC[biq_b2]); + lowmidR = outSample; highmidR -= lowmidR; + + outSample = (lowmidR * lowC[biq_a0]) + lowC[biq_sR1]; + lowC[biq_sR1] = (lowmidR * lowC[biq_a1]) - (outSample * lowC[biq_b1]) + lowC[biq_sR2]; + lowC[biq_sR2] = (lowmidR * lowC[biq_a2]) - (outSample * lowC[biq_b2]); + bassR = outSample; lowmidR -= bassR; + + trebleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain); + //third stage of three crossovers + + highRIIR = (highRIIR*highCoef) + (trebleR*(1.0-highCoef)); + highmidR = highRIIR; trebleR -= highmidR; + + midRIIR = (midRIIR*midCoef) + (highmidR*(1.0-midCoef)); + lowmidR = midRIIR; highmidR -= lowmidR; + + lowRIIR = (lowRIIR*lowCoef) + (lowmidR*(1.0-lowCoef)); + bassR = lowRIIR; lowmidR -= bassR; + + inputSampleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain); + //fourth stage of three crossovers is the exponential filters + //SmoothEQ2 + + if (bezCThresh > 0.0) { + inputSampleL *= ((bezCThresh*0.5)+1.0); + inputSampleR *= ((bezCThresh*0.5)+1.0); + } + + bezCompF[bez_cycle] += bezRez; + bezCompF[bez_SampL] += (fabs(inputSampleL) * bezRez); + bezCompF[bez_SampR] += (fabs(inputSampleR) * bezRez); + bezMaxF = fmax(bezMaxF,fmax(fabs(inputSampleL),fabs(inputSampleR))); + + if (bezCompF[bez_cycle] > 1.0) { + bezCompF[bez_cycle] -= 1.0; + bezCompF[bez_CL] = bezCompF[bez_BL]; + bezCompF[bez_BL] = bezCompF[bez_AL]; + bezCompF[bez_AL] = bezCompF[bez_SampL]; + bezCompF[bez_SampL] = 0.0; + bezCompF[bez_CR] = bezCompF[bez_BR]; + bezCompF[bez_BR] = bezCompF[bez_AR]; + bezCompF[bez_AR] = bezCompF[bez_SampR]; + bezCompF[bez_SampR] = 0.0; + bezMaxF = 0.0; + } + bezCompS[bez_cycle] += sloRez; + bezCompS[bez_SampL] += (fabs(inputSampleL) * sloRez); //note: SampL is a control voltage + bezCompS[bez_SampR] += (fabs(inputSampleR) * sloRez); //note: SampR is a control voltage + if (bezCompS[bez_cycle] > 1.0) { + bezCompS[bez_cycle] -= 1.0; + bezCompS[bez_CL] = bezCompS[bez_BL]; + bezCompS[bez_BL] = bezCompS[bez_AL]; + bezCompS[bez_AL] = bezCompS[bez_SampL]; + bezCompS[bez_SampL] = 0.0; + bezCompS[bez_CR] = bezCompS[bez_BR]; + bezCompS[bez_BR] = bezCompS[bez_AR]; + bezCompS[bez_AR] = bezCompS[bez_SampR]; + bezCompS[bez_SampR] = 0.0; + } + double CBFL = (bezCompF[bez_CL]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_BL]*bezCompF[bez_cycle]); + double BAFL = (bezCompF[bez_BL]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_AL]*bezCompF[bez_cycle]); + double CBAFL = (bezCompF[bez_BL]+(CBFL*(1.0-bezCompF[bez_cycle]))+(BAFL*bezCompF[bez_cycle]))*0.5; + double CBSL = (bezCompS[bez_CL]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_BL]*bezCompS[bez_cycle]); + double BASL = (bezCompS[bez_BL]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_AL]*bezCompS[bez_cycle]); + double CBASL = (bezCompS[bez_BL]+(CBSL*(1.0-bezCompS[bez_cycle]))+(BASL*bezCompS[bez_cycle]))*0.5; + double CBAMax = fmax(CBASL,CBAFL); if (CBAMax > 0.0) CBAMax = 1.0/CBAMax; + double CBAFade = ((CBASL*-CBAMax)+(CBAFL*CBAMax)+1.0)*0.5; + if (bezCThresh > 0.0) inputSampleL *= 1.0-(fmin(((CBASL*(1.0-CBAFade))+(CBAFL*CBAFade))*bezCThresh,1.0)); + + double CBFR = (bezCompF[bez_CR]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_BR]*bezCompF[bez_cycle]); + double BAFR = (bezCompF[bez_BR]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_AR]*bezCompF[bez_cycle]); + double CBAFR = (bezCompF[bez_BR]+(CBFR*(1.0-bezCompF[bez_cycle]))+(BAFR*bezCompF[bez_cycle]))*0.5; + double CBSR = (bezCompS[bez_CR]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_BR]*bezCompS[bez_cycle]); + double BASR = (bezCompS[bez_BR]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_AR]*bezCompS[bez_cycle]); + double CBASR = (bezCompS[bez_BR]+(CBSR*(1.0-bezCompS[bez_cycle]))+(BASR*bezCompS[bez_cycle]))*0.5; + CBAMax = fmax(CBASR,CBAFR); if (CBAMax > 0.0) CBAMax = 1.0/CBAMax; + CBAFade = ((CBASR*-CBAMax)+(CBAFR*CBAMax)+1.0)*0.5; + if (bezCThresh > 0.0) inputSampleR *= 1.0-(fmin(((CBASR*(1.0-CBAFade))+(CBAFR*CBAFade))*bezCThresh,1.0)); + //Dynamics2 + + const double temp = (double)sampleFrames/inFramesToProcess; + 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 * gain; + inputSampleR = inputSampleR * 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 + //Discontapeity + + //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++; + } +} diff --git a/plugins/WinVST/X2Buss/vstplug.def b/plugins/WinVST/X2Buss/vstplug.def new file mode 100755 index 000000000..5bf499aa2 --- /dev/null +++ b/plugins/WinVST/X2Buss/vstplug.def @@ -0,0 +1,3 @@ +EXPORTS + VSTPluginMain + main=VSTPluginMain \ No newline at end of file diff --git a/plugins/WinVST/kWoodRoom/.vs/Console4Channel64/v14/.suo b/plugins/WinVST/kWoodRoom/.vs/Console4Channel64/v14/.suo new file mode 100755 index 000000000..777b84637 Binary files /dev/null and b/plugins/WinVST/kWoodRoom/.vs/Console4Channel64/v14/.suo differ diff --git a/plugins/WinVST/kWoodRoom/.vs/VSTProject/v14/.suo b/plugins/WinVST/kWoodRoom/.vs/VSTProject/v14/.suo new file mode 100755 index 000000000..f567de075 Binary files /dev/null and b/plugins/WinVST/kWoodRoom/.vs/VSTProject/v14/.suo differ diff --git a/plugins/WinVST/kWoodRoom/VSTProject.sln b/plugins/WinVST/kWoodRoom/VSTProject.sln new file mode 100755 index 000000000..694b42443 --- /dev/null +++ b/plugins/WinVST/kWoodRoom/VSTProject.sln @@ -0,0 +1,28 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.25420.1 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "VSTProject", "VSTProject.vcxproj", "{16F7AB3C-1AE0-4574-B60C-7B4DED82938C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {16F7AB3C-1AE0-4574-B60C-7B4DED82938C}.Debug|x64.ActiveCfg = Debug|x64 + {16F7AB3C-1AE0-4574-B60C-7B4DED82938C}.Debug|x64.Build.0 = Debug|x64 + {16F7AB3C-1AE0-4574-B60C-7B4DED82938C}.Debug|x86.ActiveCfg = Debug|Win32 + {16F7AB3C-1AE0-4574-B60C-7B4DED82938C}.Debug|x86.Build.0 = Debug|Win32 + {16F7AB3C-1AE0-4574-B60C-7B4DED82938C}.Release|x64.ActiveCfg = Release|x64 + {16F7AB3C-1AE0-4574-B60C-7B4DED82938C}.Release|x64.Build.0 = Release|x64 + {16F7AB3C-1AE0-4574-B60C-7B4DED82938C}.Release|x86.ActiveCfg = Release|Win32 + {16F7AB3C-1AE0-4574-B60C-7B4DED82938C}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/plugins/WinVST/kWoodRoom/VSTProject.vcxproj b/plugins/WinVST/kWoodRoom/VSTProject.vcxproj new file mode 100755 index 000000000..5114d9499 --- /dev/null +++ b/plugins/WinVST/kWoodRoom/VSTProject.vcxproj @@ -0,0 +1,183 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + + + + + + + + + + + + + + {16F7AB3C-1AE0-4574-B60C-7B4DED82938C} + VSTProject + 8.1 + kWoodRoom64 + + + + DynamicLibrary + true + v140 + NotSet + + + DynamicLibrary + false + v140 + false + NotSet + + + DynamicLibrary + true + v140 + NotSet + + + DynamicLibrary + false + v140 + false + NotSet + + + + + + + + + + + + + + + + + + + + + .dll + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + $(VC_ExecutablePath_x64);$(WindowsSDK_ExecutablePath);$(VS_ExecutablePath);$(MSBuild_ExecutablePath);$(SystemRoot)\SysWow64;$(FxCopDir);$(PATH) + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + $(VC_ExecutablePath_x64);$(WindowsSDK_ExecutablePath);$(VS_ExecutablePath);$(MSBuild_ExecutablePath);$(SystemRoot)\SysWow64;$(FxCopDir);$(PATH) + + + + Level3 + MaxSpeed + true + C:\Users\christopherjohnson\Documents\Visual Studio 2015\Projects\VSTProject\vst2.x;C:\Users\christopherjohnson\Documents\vstsdk2.4;%(AdditionalIncludeDirectories) + WINDOWS;_WINDOWS;WIN32;_USRDLL;_USE_MATH_DEFINES;_CRT_SECURE_NO_DEPRECATE;VST_FORCE_DEPRECATED;%(PreprocessorDefinitions) + MultiThreadedDebug + Speed + false + Default + false + None + + + vstplug.def + libcmt.dll;libcmtd.dll;msvcrt.lib;%(IgnoreSpecificDefaultLibraries) + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + C:\Users\christopherjohnson\Documents\Visual Studio 2015\Projects\VSTProject\vst2.x;C:\Users\christopherjohnson\Documents\vstsdk2.4;%(AdditionalIncludeDirectories) + Speed + WINDOWS;_WINDOWS;WIN32;_USRDLL;_USE_MATH_DEFINES;_CRT_SECURE_NO_DEPRECATE;VST_FORCE_DEPRECATED;%(PreprocessorDefinitions) + false + MultiThreadedDebug + Default + false + None + + + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + libcmt.dll;libcmtd.dll;msvcrt.lib;%(IgnoreSpecificDefaultLibraries) + vstplug.def + + + + + Level3 + MaxSpeed + false + false + true + MultiThreaded + C:\Users\christopherjohnson\Documents\Visual Studio 2015\Projects\VSTProject\vst2.x;C:\Users\christopherjohnson\Documents\vstsdk2.4;%(AdditionalIncludeDirectories) + None + Speed + WINDOWS;_WINDOWS;WIN32;_USRDLL;_USE_MATH_DEFINES;_CRT_SECURE_NO_DEPRECATE;VST_FORCE_DEPRECATED;%(PreprocessorDefinitions) + + + true + true + libcmt.dll;libcmtd.dll;msvcrt.lib;libc.lib;libcd.lib;libcmt.lib;msvcrtd.lib;%(IgnoreSpecificDefaultLibraries) + libcmt.lib;uuid.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + vstplug.def + + + + + Level3 + MaxSpeed + false + false + true + C:\Users\christopherjohnson\Documents\Visual Studio 2015\Projects\VSTProject\vst2.x;C:\Users\christopherjohnson\Documents\vstsdk2.4;%(AdditionalIncludeDirectories) + None + Speed + WINDOWS;_WINDOWS;WIN32;_USRDLL;_USE_MATH_DEFINES;_CRT_SECURE_NO_DEPRECATE;VST_FORCE_DEPRECATED;%(PreprocessorDefinitions) + MultiThreaded + + + true + true + libcmt.dll;libcmtd.dll;msvcrt.lib;libc.lib;libcd.lib;libcmt.lib;msvcrtd.lib;%(IgnoreSpecificDefaultLibraries) + libcmt.lib;uuid.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + vstplug.def + + + + + + \ No newline at end of file diff --git a/plugins/WinVST/kWoodRoom/VSTProject.vcxproj.filters b/plugins/WinVST/kWoodRoom/VSTProject.vcxproj.filters new file mode 100755 index 000000000..8aeb641f3 --- /dev/null +++ b/plugins/WinVST/kWoodRoom/VSTProject.vcxproj.filters @@ -0,0 +1,48 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + \ No newline at end of file diff --git a/plugins/WinVST/kWoodRoom/VSTProject.vcxproj.user b/plugins/WinVST/kWoodRoom/VSTProject.vcxproj.user new file mode 100755 index 000000000..221626789 --- /dev/null +++ b/plugins/WinVST/kWoodRoom/VSTProject.vcxproj.user @@ -0,0 +1,19 @@ + + + + {ADEFF70D-84BF-47A1-91C3-FF6B0FC71218} + WindowsLocalDebugger + + + {ADEFF70D-84BF-47A1-91C3-FF6B0FC71218} + WindowsLocalDebugger + + + {ADEFF70D-84BF-47A1-91C3-FF6B0FC71218} + WindowsLocalDebugger + + + {ADEFF70D-84BF-47A1-91C3-FF6B0FC71218} + WindowsLocalDebugger + + \ No newline at end of file diff --git a/plugins/WinVST/kWoodRoom/kWoodRoom.cpp b/plugins/WinVST/kWoodRoom/kWoodRoom.cpp new file mode 100755 index 000000000..07ea37b23 --- /dev/null +++ b/plugins/WinVST/kWoodRoom/kWoodRoom.cpp @@ -0,0 +1,227 @@ +/* ======================================== + * kWoodRoom - kWoodRoom.h + * Copyright (c) airwindows, Airwindows uses the MIT license + * ======================================== */ + +#ifndef __kWoodRoom_H +#include "kWoodRoom.h" +#endif + +AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new kWoodRoom(audioMaster);} + +kWoodRoom::kWoodRoom(audioMasterCallback audioMaster) : + AudioEffectX(audioMaster, kNumPrograms, kNumParameters) +{ + A = 0.5; + B = 0.5; + C = 0.25; + D = 0.5; + E = 0.5; + F = 0.5; + + for(int x = 0; x < d3A+2; x++) {a3AL[x] = 0.0; a3AR[x] = 0.0;} + for(int x = 0; x < d3B+2; x++) {a3BL[x] = 0.0; a3BR[x] = 0.0;} + for(int x = 0; x < d3C+2; x++) {a3CL[x] = 0.0; a3CR[x] = 0.0;} + for(int x = 0; x < d3D+2; x++) {a3DL[x] = 0.0; a3DR[x] = 0.0;} + for(int x = 0; x < d3E+2; x++) {a3EL[x] = 0.0; a3ER[x] = 0.0;} + for(int x = 0; x < d3F+2; x++) {a3FL[x] = 0.0; a3FR[x] = 0.0;} + for(int x = 0; x < d3G+2; x++) {a3GL[x] = 0.0; a3GR[x] = 0.0;} + for(int x = 0; x < d3H+2; x++) {a3HL[x] = 0.0; a3HR[x] = 0.0;} + for(int x = 0; x < d3I+2; x++) {a3IL[x] = 0.0; a3IR[x] = 0.0;} + c3AL = c3BL = c3CL = c3DL = c3EL = c3FL = c3GL = c3HL = c3IL = 1; + c3AR = c3BR = c3CR = c3DR = c3ER = c3FR = c3GR = c3HR = c3IR = 1; + + for(int x = 0; x < d6A+2; x++) {a6AL[x] = 0.0; a6AR[x] = 0.0;} + for(int x = 0; x < d6B+2; x++) {a6BL[x] = 0.0; a6BR[x] = 0.0;} + for(int x = 0; x < d6C+2; x++) {a6CL[x] = 0.0; a6CR[x] = 0.0;} + for(int x = 0; x < d6D+2; x++) {a6DL[x] = 0.0; a6DR[x] = 0.0;} + for(int x = 0; x < d6E+2; x++) {a6EL[x] = 0.0; a6ER[x] = 0.0;} + for(int x = 0; x < d6F+2; x++) {a6FL[x] = 0.0; a6FR[x] = 0.0;} + for(int x = 0; x < d6G+2; x++) {a6GL[x] = 0.0; a6GR[x] = 0.0;} + for(int x = 0; x < d6H+2; x++) {a6HL[x] = 0.0; a6HR[x] = 0.0;} + for(int x = 0; x < d6I+2; x++) {a6IL[x] = 0.0; a6IR[x] = 0.0;} + for(int x = 0; x < d6J+2; x++) {a6JL[x] = 0.0; a6JR[x] = 0.0;} + for(int x = 0; x < d6K+2; x++) {a6KL[x] = 0.0; a6KR[x] = 0.0;} + for(int x = 0; x < d6L+2; x++) {a6LL[x] = 0.0; a6LR[x] = 0.0;} + for(int x = 0; x < d6M+2; x++) {a6ML[x] = 0.0; a6MR[x] = 0.0;} + for(int x = 0; x < d6N+2; x++) {a6NL[x] = 0.0; a6NR[x] = 0.0;} + for(int x = 0; x < d6O+2; x++) {a6OL[x] = 0.0; a6OR[x] = 0.0;} + for(int x = 0; x < d6P+2; x++) {a6PL[x] = 0.0; a6PR[x] = 0.0;} + for(int x = 0; x < d6Q+2; x++) {a6QL[x] = 0.0; a6QR[x] = 0.0;} + for(int x = 0; x < d6R+2; x++) {a6RL[x] = 0.0; a6RR[x] = 0.0;} + for(int x = 0; x < d6S+2; x++) {a6SL[x] = 0.0; a6SR[x] = 0.0;} + for(int x = 0; x < d6T+2; x++) {a6TL[x] = 0.0; a6TR[x] = 0.0;} + for(int x = 0; x < d6U+2; x++) {a6UL[x] = 0.0; a6UR[x] = 0.0;} + for(int x = 0; x < d6V+2; x++) {a6VL[x] = 0.0; a6VR[x] = 0.0;} + for(int x = 0; x < d6W+2; x++) {a6WL[x] = 0.0; a6WR[x] = 0.0;} + for(int x = 0; x < d6X+2; x++) {a6XL[x] = 0.0; a6XR[x] = 0.0;} + for(int x = 0; x < d6Y+2; x++) {a6YL[x] = 0.0; a6YR[x] = 0.0;} + for(int x = 0; x < d6ZA+2; x++) {a6ZAL[x] = 0.0; a6ZAR[x] = 0.0;} + for(int x = 0; x < d6ZB+2; x++) {a6ZBL[x] = 0.0; a6ZBR[x] = 0.0;} + for(int x = 0; x < d6ZC+2; x++) {a6ZCL[x] = 0.0; a6ZCR[x] = 0.0;} + for(int x = 0; x < d6ZD+2; x++) {a6ZDL[x] = 0.0; a6ZDR[x] = 0.0;} + for(int x = 0; x < d6ZE+2; x++) {a6ZEL[x] = 0.0; a6ZER[x] = 0.0;} + for(int x = 0; x < d6ZF+2; x++) {a6ZFL[x] = 0.0; a6ZFR[x] = 0.0;} + for(int x = 0; x < d6ZG+2; x++) {a6ZGL[x] = 0.0; a6ZGR[x] = 0.0;} + for(int x = 0; x < d6ZH+2; x++) {a6ZHL[x] = 0.0; a6ZHR[x] = 0.0;} + for(int x = 0; x < d6ZI+2; x++) {a6ZIL[x] = 0.0; a6ZIR[x] = 0.0;} + for(int x = 0; x < d6ZJ+2; x++) {a6ZJL[x] = 0.0; a6ZJR[x] = 0.0;} + for(int x = 0; x < d6ZK+2; x++) {a6ZKL[x] = 0.0; a6ZKR[x] = 0.0;} + c6AL = c6BL = c6CL = c6DL = c6EL = c6FL = c6GL = c6HL = c6IL = 1; + c6JL = c6KL = c6LL = c6ML = c6NL = c6OL = c6PL = c6QL = c6RL = 1; + c6SL = c6TL = c6UL = c6VL = c6WL = c6XL = c6YL = c6ZAL = c6ZBL = 1; + c6ZCL = c6ZDL = c6ZEL = c6ZFL = c6ZGL = c6ZHL = c6ZIL = c6ZJL = c6ZKL = 1; + c6AR = c6BR = c6CR = c6DR = c6ER = c6FR = c6GR = c6HR = c6IR = 1; + c6JR = c6KR = c6LR = c6MR = c6NR = c6OR = c6PR = c6QR = c6RR = 1; + c6SR = c6TR = c6UR = c6VR = c6WR = c6XR = c6YR = c6ZAR = c6ZBR = 1; + c6ZCR = c6ZDR = c6ZER = c6ZFR = c6ZGR = c6ZHR = c6ZIR = c6ZJR = c6ZKR = 1; + f6AL = f6BL = f6CL = f6DL = f6EL = f6FL = 0.0; + f6FR = f6LR = f6RR = f6XR = f6ZER = f6ZKR = 0.0; + avg6L = avg6R = 0.0; + + for (int x = 0; x < bez_total; x++) { + bez[x] = 0.0; + bezF[x] = 0.0; + } + bez[bez_cycle] = 1.0; + bezF[bez_cycle] = 1.0; + + fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX; + fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX; + //this is reset: values being initialized only once. Startup values, whatever they are. + + _canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect. + _canDo.insert("plugAsSend"); // plug-in can be used as a send effect. + _canDo.insert("x2in2out"); + setNumInputs(kNumInputs); + setNumOutputs(kNumOutputs); + setUniqueID(kUniqueId); + canProcessReplacing(); // supports output replacing + canDoubleReplacing(); // supports double precision processing + programsAreChunks(true); + vst_strncpy (_programName, "Default", kVstMaxProgNameLen); // default program name +} + +kWoodRoom::~kWoodRoom() {} +VstInt32 kWoodRoom::getVendorVersion () {return 1000;} +void kWoodRoom::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);} +void kWoodRoom::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 kWoodRoom::getChunk (void** data, bool isPreset) +{ + float *chunkData = (float *)calloc(kNumParameters, sizeof(float)); + chunkData[0] = A; + chunkData[1] = B; + chunkData[2] = C; + chunkData[3] = D; + chunkData[4] = E; + chunkData[5] = F; + /* Note: The way this is set up, it will break if you manage to save settings on an Intel + machine and load them on a PPC Mac. However, it's fine if you stick to the machine you + started with. */ + + *data = chunkData; + return kNumParameters * sizeof(float); +} + +VstInt32 kWoodRoom::setChunk (void* data, VstInt32 byteSize, bool isPreset) +{ + float *chunkData = (float *)data; + A = pinParameter(chunkData[0]); + B = pinParameter(chunkData[1]); + C = pinParameter(chunkData[2]); + D = pinParameter(chunkData[3]); + E = pinParameter(chunkData[4]); + F = pinParameter(chunkData[5]); + /* We're ignoring byteSize as we found it to be a filthy liar */ + + /* calculate any other fields you need here - you could copy in + code from setParameter() here. */ + return 0; +} + +void kWoodRoom::setParameter(VstInt32 index, float value) { + switch (index) { + case kParamA: A = value; break; + case kParamB: B = value; break; + case kParamC: C = value; break; + case kParamD: D = value; break; + case kParamE: E = value; break; + case kParamF: F = value; break; + default: throw; // unknown parameter, shouldn't happen! + } +} + +float kWoodRoom::getParameter(VstInt32 index) { + switch (index) { + case kParamA: return A; break; + case kParamB: return B; break; + case kParamC: return C; break; + case kParamD: return D; break; + case kParamE: return E; break; + case kParamF: return F; break; + default: break; // unknown parameter, shouldn't happen! + } return 0.0; //we only need to update the relevant name, this is simple to manage +} + +void kWoodRoom::getParameterName(VstInt32 index, char *text) { + switch (index) { + case kParamA: vst_strncpy (text, "Regen", kVstMaxParamStrLen); break; + case kParamB: vst_strncpy (text, "Derez", kVstMaxParamStrLen); break; + case kParamC: vst_strncpy (text, "Filter", kVstMaxParamStrLen); break; + case kParamD: vst_strncpy (text, "EarlyRF", kVstMaxParamStrLen); break; + case kParamE: vst_strncpy (text, "Positin", kVstMaxParamStrLen); break; + case kParamF: vst_strncpy (text, "Dry/Wet", kVstMaxParamStrLen); break; + default: break; // unknown parameter, shouldn't happen! + } //this is our labels for displaying in the VST host +} + +void kWoodRoom::getParameterDisplay(VstInt32 index, char *text) { + switch (index) { + case kParamA: float2string (A, text, kVstMaxParamStrLen); break; + case kParamB: float2string (B, text, kVstMaxParamStrLen); break; + case kParamC: float2string (C, text, kVstMaxParamStrLen); break; + case kParamD: float2string (D, text, kVstMaxParamStrLen); break; + case kParamE: float2string (E, text, kVstMaxParamStrLen); break; + case kParamF: float2string (F, text, kVstMaxParamStrLen); break; + default: break; // unknown parameter, shouldn't happen! + } //this displays the values and handles 'popups' where it's discrete choices +} + +void kWoodRoom::getParameterLabel(VstInt32 index, char *text) { + switch (index) { + case kParamA: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamB: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamC: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamD: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamE: vst_strncpy (text, "", kVstMaxParamStrLen); break; + case kParamF: vst_strncpy (text, "", kVstMaxParamStrLen); break; + default: break; // unknown parameter, shouldn't happen! + } +} + +VstInt32 kWoodRoom::canDo(char *text) +{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know + +bool kWoodRoom::getEffectName(char* name) { + vst_strncpy(name, "kWoodRoom", kVstMaxProductStrLen); return true; +} + +VstPlugCategory kWoodRoom::getPlugCategory() {return kPlugCategEffect;} + +bool kWoodRoom::getProductString(char* text) { + vst_strncpy (text, "airwindows kWoodRoom", kVstMaxProductStrLen); return true; +} + +bool kWoodRoom::getVendorString(char* text) { + vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true; +} diff --git a/plugins/WinVST/kWoodRoom/kWoodRoom.h b/plugins/WinVST/kWoodRoom/kWoodRoom.h new file mode 100755 index 000000000..184ae2e48 --- /dev/null +++ b/plugins/WinVST/kWoodRoom/kWoodRoom.h @@ -0,0 +1,209 @@ +/* ======================================== + * kWoodRoom - kWoodRoom.h + * Created 8/12/11 by SPIAdmin + * Copyright (c) Airwindows, Airwindows uses the MIT license + * ======================================== */ + +#ifndef __kWoodRoom_H +#define __kWoodRoom_H + +#ifndef __audioeffect__ +#include "audioeffectx.h" +#endif + +#include +#include +#include + +enum { + kParamA =0, + kParamB =1, + kParamC =2, + kParamD =3, + kParamE =4, + kParamF =5, + kNumParameters = 6 +}; // + +const int d3A = 581; const int d3B = 831; const int d3C = 832; +const int d3D = 574; const int d3E = 598; const int d3F = 685; +const int d3G = 499; const int d3H = 573; const int d3I = 655; +#define THREEBYTHREE true +const int d6A = 154; const int d6B = 832; const int d6C = 109; const int d6D = 685; const int d6E = 33; const int d6F = 12; const int d6G = 27; const int d6H = 30; const int d6I = 339; const int d6J = 499; const int d6K = 296; const int d6L = 169; const int d6M = 169; const int d6N = 831; const int d6O = 15; const int d6P = 411; const int d6Q = 238; const int d6R = 68; const int d6S = 0; const int d6T = 8; const int d6U = 655; const int d6V = 581; const int d6W = 465; const int d6X = 173; const int d6Y = 3; const int d6ZA = 96; const int d6ZB = 573; const int d6ZC = 243; const int d6ZD = 30; const int d6ZE = 188; const int d6ZF = 291; const int d6ZG = 11; const int d6ZH = 372; const int d6ZI = 574; const int d6ZJ = 100; const int d6ZK = 598; //1 to 90 ms, 249 seat club +#define SIXBYSIX true // 249seat154832109x6 on 2025-10-31 kWoodRoom +const int early[] = {0, 3, 8, 11, 12, 15, 27, 30, 30, 33, 68, 96, 100, 109, 154, 169, 169, 173, 188, 238, 243, 291, 296, 339, 372, 411, 465, 499, 573, 574, 581, 598, 655, 685, 831, 832}; + +const int kNumPrograms = 0; +const int kNumInputs = 2; +const int kNumOutputs = 2; +const unsigned long kUniqueId = 'ksta'; //Change this to what the AU identity is! + +class kWoodRoom : + public AudioEffectX +{ +public: + kWoodRoom(audioMasterCallback audioMaster); + ~kWoodRoom(); + virtual bool getEffectName(char* name); // The plug-in name + virtual VstPlugCategory getPlugCategory(); // The general category for the plug-in + virtual bool getProductString(char* text); // This is a unique plug-in string provided by Steinberg + virtual bool getVendorString(char* text); // Vendor info + virtual VstInt32 getVendorVersion(); // Version number + virtual void processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames); + virtual void processDoubleReplacing (double** inputs, double** outputs, VstInt32 sampleFrames); + virtual void getProgramName(char *name); // read the name from the host + virtual void setProgramName(char *name); // changes the name of the preset displayed in the host + virtual VstInt32 getChunk (void** data, bool isPreset); + virtual VstInt32 setChunk (void* data, VstInt32 byteSize, bool isPreset); + virtual float getParameter(VstInt32 index); // get the parameter value at the specified index + virtual void setParameter(VstInt32 index, float value); // set the parameter at index to value + virtual void getParameterLabel(VstInt32 index, char *text); // label for the parameter (eg dB) + virtual void getParameterName(VstInt32 index, char *text); // name of the parameter + virtual void getParameterDisplay(VstInt32 index, char *text); // text description of the current value + virtual VstInt32 canDo(char *text); +private: + char _programName[kVstMaxProgNameLen + 1]; + std::set< std::string > _canDo; + + float A; + float B; + float C; + float D; + float E; + float F; + + double a3AL[d3A+5]; + double a3BL[d3B+5]; + double a3CL[d3C+5]; + double a3DL[d3D+5]; + double a3EL[d3E+5]; + double a3FL[d3F+5]; + double a3GL[d3G+5]; + double a3HL[d3H+5]; + double a3IL[d3I+5]; + double a3AR[d3A+5]; + double a3BR[d3B+5]; + double a3CR[d3C+5]; + double a3DR[d3D+5]; + double a3ER[d3E+5]; + double a3FR[d3F+5]; + double a3GR[d3G+5]; + double a3HR[d3H+5]; + double a3IR[d3I+5]; + int c3AL,c3AR,c3BL,c3BR,c3CL,c3CR,c3DL,c3DR,c3EL,c3ER; + int c3FL,c3FR,c3GL,c3GR,c3HL,c3HR,c3IL,c3IR; + + double a6AL[d6A+5]; + double a6BL[d6B+5]; + double a6CL[d6C+5]; + double a6DL[d6D+5]; + double a6EL[d6E+5]; + double a6FL[d6F+5]; + double a6GL[d6G+5]; + double a6HL[d6H+5]; + double a6IL[d6I+5]; + double a6JL[d6J+5]; + double a6KL[d6K+5]; + double a6LL[d6L+5]; + double a6ML[d6M+5]; + double a6NL[d6N+5]; + double a6OL[d6O+5]; + double a6PL[d6P+5]; + double a6QL[d6Q+5]; + double a6RL[d6R+5]; + double a6SL[d6S+5]; + double a6TL[d6T+5]; + double a6UL[d6U+5]; + double a6VL[d6V+5]; + double a6WL[d6W+5]; + double a6XL[d6X+5]; + double a6YL[d6Y+5]; + double a6ZAL[d6ZA+5]; + double a6ZBL[d6ZB+5]; + double a6ZCL[d6ZC+5]; + double a6ZDL[d6ZD+5]; + double a6ZEL[d6ZE+5]; + double a6ZFL[d6ZF+5]; + double a6ZGL[d6ZG+5]; + double a6ZHL[d6ZH+5]; + double a6ZIL[d6ZI+5]; + double a6ZJL[d6ZJ+5]; + double a6ZKL[d6ZK+5]; + double a6AR[d6A+5]; + double a6BR[d6B+5]; + double a6CR[d6C+5]; + double a6DR[d6D+5]; + double a6ER[d6E+5]; + double a6FR[d6F+5]; + double a6GR[d6G+5]; + double a6HR[d6H+5]; + double a6IR[d6I+5]; + double a6JR[d6J+5]; + double a6KR[d6K+5]; + double a6LR[d6L+5]; + double a6MR[d6M+5]; + double a6NR[d6N+5]; + double a6OR[d6O+5]; + double a6PR[d6P+5]; + double a6QR[d6Q+5]; + double a6RR[d6R+5]; + double a6SR[d6S+5]; + double a6TR[d6T+5]; + double a6UR[d6U+5]; + double a6VR[d6V+5]; + double a6WR[d6W+5]; + double a6XR[d6X+5]; + double a6YR[d6Y+5]; + double a6ZAR[d6ZA+5]; + double a6ZBR[d6ZB+5]; + double a6ZCR[d6ZC+5]; + double a6ZDR[d6ZD+5]; + double a6ZER[d6ZE+5]; + double a6ZFR[d6ZF+5]; + double a6ZGR[d6ZG+5]; + double a6ZHR[d6ZH+5]; + double a6ZIR[d6ZI+5]; + double a6ZJR[d6ZJ+5]; + double a6ZKR[d6ZK+5]; + int c6AL,c6BL,c6CL,c6DL,c6EL,c6FL,c6GL,c6HL,c6IL; + int c6JL,c6KL,c6LL,c6ML,c6NL,c6OL,c6PL,c6QL,c6RL; + int c6SL,c6TL,c6UL,c6VL,c6WL,c6XL,c6YL,c6ZAL,c6ZBL; + int c6ZCL,c6ZDL,c6ZEL,c6ZFL,c6ZGL,c6ZHL,c6ZIL,c6ZJL,c6ZKL; + int c6AR,c6BR,c6CR,c6DR,c6ER,c6FR,c6GR,c6HR,c6IR; + int c6JR,c6KR,c6LR,c6MR,c6NR,c6OR,c6PR,c6QR,c6RR; + int c6SR,c6TR,c6UR,c6VR,c6WR,c6XR,c6YR,c6ZAR,c6ZBR; + int c6ZCR,c6ZDR,c6ZER,c6ZFR,c6ZGR,c6ZHR,c6ZIR,c6ZJR,c6ZKR; + double f6AL,f6BL,f6CL,f6DL,f6EL,f6FL; + double f6FR,f6LR,f6RR,f6XR,f6ZER,f6ZKR; + double avg6L,avg6R; + + enum { + bez_AL, + bez_AR, + bez_BL, + bez_BR, + bez_CL, + bez_CR, + bez_InL, + bez_InR, + bez_UnInL, + bez_UnInR, + bez_SampL, + bez_SampR, + bez_AvgInSampL, + bez_AvgInSampR, + bez_AvgOutSampL, + bez_AvgOutSampR, + bez_cycle, + bez_total + }; //the new undersampling. bez signifies the bezier curve reconstruction + double bez[bez_total]; + + double bezF[bez_total]; + + uint32_t fpdL; + uint32_t fpdR; + //default stuff +}; + +#endif diff --git a/plugins/WinVST/kWoodRoom/kWoodRoomProc.cpp b/plugins/WinVST/kWoodRoom/kWoodRoomProc.cpp new file mode 100755 index 000000000..0dc8087f4 --- /dev/null +++ b/plugins/WinVST/kWoodRoom/kWoodRoomProc.cpp @@ -0,0 +1,1032 @@ +/* ======================================== + * kWoodRoom - kWoodRoom.h + * Copyright (c) airwindows, Airwindows uses the MIT license + * ======================================== */ + +#ifndef __kWoodRoom_H +#include "kWoodRoom.h" +#endif + +void kWoodRoom::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(); + + double fdb6ck = (0.0009765625+0.0009765625+0.001953125)*0.3333333; + double reg6n = (1.0-pow(1.0-A,1.618033988749894))*fdb6ck; + //start this but pad it in the loop by volume of output? + + double derez = B*2.0; + bool stepped = true; // Revised Bezier Undersampling + if (derez > 1.0) { // has full rez at center, stepped + stepped = false; // to left, continuous to right + derez = 1.0-(derez-1.0); + } //if it's set up like that it's the revised algorithm + derez = fmin(fmax(derez/overallscale,0.0005),1.0); + int bezFraction = (int)(1.0/derez); + double bezTrim = (double)bezFraction/(bezFraction+1.0); + if (stepped) { //this hard-locks derez to exact subdivisions of 1.0 + derez = 1.0 / bezFraction; + bezTrim = 1.0-(derez*bezTrim); + } else { //this makes it match the 1.0 case using stepped + derez /= (2.0/pow(overallscale,0.5-((overallscale-1.0)*0.0375))); + bezTrim = 1.0-pow(derez*0.5,1.0/(derez*0.5)); + } //the revision more accurately connects the bezier curves + + double derezFreq = C*2.0; + bool steppedFreq = true; // Revised Bezier Undersampling + if (derezFreq > 1.0) { // has full rez at center, stepped + steppedFreq = false; // to left, continuous to right + derezFreq = 1.0-(derezFreq-1.0); + } //if it's set up like that it's the revised algorithm + derezFreq = fmin(fmax(derezFreq,0.0005),1.0); //note: no overallscale, already inside undersampling + int bezFreqFraction = (int)(1.0/derezFreq); + double bezFreqTrim = (double)bezFreqFraction/(bezFreqFraction+1.0); + if (steppedFreq) { //this hard-locks derez to exact subdivisions of 1.0 + derezFreq = 1.0 / bezFreqFraction; + bezFreqTrim = 1.0-(derezFreq*bezFreqTrim); + } else { //this makes it match the 1.0 case using stepped + bezFreqTrim = 1.0-pow(derezFreq*0.5,1.0/(derezFreq*0.5)); + } //the revision more accurately connects the bezier curves + + double earlyLoudness = D*2.0; + int start = (int)(E * 27.0); + int ld3G = early[start]; + int ld3H = early[start+1]; + int ld3D = early[start+2]; + int ld3A = early[start+3]; + int ld3E = early[start+4]; + int ld3I = early[start+5]; + int ld3F = early[start+6]; + int ld3B = early[start+7]; + int ld3C = early[start+8]; + double wet = F; + + while (--sampleFrames >= 0) + { + double inputSampleL = *in1; + double inputSampleR = *in2; + if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17; + if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17; + double drySampleL = inputSampleL; + double drySampleR = inputSampleR; + + bez[bez_cycle] += derez; + bez[bez_SampL] += ((inputSampleL+bez[bez_InL]) * derez); + bez[bez_SampR] += ((inputSampleR+bez[bez_InR]) * derez); + bez[bez_InL] = inputSampleL; bez[bez_InR] = inputSampleR; + if (bez[bez_cycle] > 1.0) { //hit the end point and we do a reverb sample + if (stepped) bez[bez_cycle] = 0.0; + else bez[bez_cycle] -= 1.0; + + inputSampleL = (bez[bez_SampL]+bez[bez_AvgInSampL])*0.5; + bez[bez_AvgInSampL] = bez[bez_SampL]; + inputSampleR = (bez[bez_SampR]+bez[bez_AvgInSampR])*0.5; + bez[bez_AvgInSampR] = bez[bez_SampR]; + + a3AL[c3AL] = inputSampleL;// + (f3AL * reg3n); + a3BL[c3BL] = inputSampleL;// + (f3BL * reg3n); + a3CL[c3CL] = inputSampleL;// + (f3CL * reg3n); + + a3CR[c3CR] = inputSampleR;// + (f3CR * reg3n); + a3FR[c3FR] = inputSampleR;// + (f3FR * reg3n); + a3IR[c3IR] = inputSampleR;// + (f3IR * reg3n); + + c3AL++; if (c3AL < 0 || c3AL > ld3A) c3AL = 0; + c3BL++; if (c3BL < 0 || c3BL > ld3B) c3BL = 0; + c3CL++; if (c3CL < 0 || c3CL > ld3C) c3CL = 0; + c3CR++; if (c3CR < 0 || c3CR > ld3C) c3CR = 0; + c3FR++; if (c3FR < 0 || c3FR > ld3F) c3FR = 0; + c3IR++; if (c3IR < 0 || c3IR > ld3I) c3IR = 0; + + double o3AL = a3AL[c3AL-((c3AL > ld3A)?c3AL+1:0)]; + double o3BL = a3BL[c3BL-((c3BL > ld3B)?c3BL+1:0)]; + double o3CL = a3CL[c3CL-((c3CL > ld3C)?c3CL+1:0)]; + double o3CR = a3CR[c3CR-((c3CR > ld3C)?c3CR+1:0)]; + double o3FR = a3FR[c3FR-((c3FR > ld3F)?c3FR+1:0)]; + double o3IR = a3IR[c3IR-((c3IR > ld3I)?c3IR+1:0)]; + + a3DL[c3DL] = (((o3BL + o3CL) * -2.0) + o3AL); + a3EL[c3EL] = (((o3AL + o3CL) * -2.0) + o3BL); + a3FL[c3FL] = (((o3AL + o3BL) * -2.0) + o3CL); + a3BR[c3BR] = (((o3FR + o3IR) * -2.0) + o3CR); + a3ER[c3ER] = (((o3CR + o3IR) * -2.0) + o3FR); + a3HR[c3HR] = (((o3CR + o3FR) * -2.0) + o3IR); + + c3DL++; if (c3DL < 0 || c3DL > ld3D) c3DL = 0; + c3EL++; if (c3EL < 0 || c3EL > ld3E) c3EL = 0; + c3FL++; if (c3FL < 0 || c3FL > ld3F) c3FL = 0; + c3BR++; if (c3BR < 0 || c3BR > ld3B) c3BR = 0; + c3ER++; if (c3ER < 0 || c3ER > ld3E) c3ER = 0; + c3HR++; if (c3HR < 0 || c3HR > ld3H) c3HR = 0; + + double o3DL = a3DL[c3DL-((c3DL > ld3D)?c3DL+1:0)]; + double o3EL = a3EL[c3EL-((c3EL > ld3E)?c3EL+1:0)]; + double o3FL = a3FL[c3FL-((c3FL > ld3F)?c3FL+1:0)]; + double o3BR = a3BR[c3BR-((c3BR > ld3B)?c3BR+1:0)]; + double o3ER = a3ER[c3ER-((c3ER > ld3E)?c3ER+1:0)]; + double o3HR = a3HR[c3HR-((c3HR > ld3H)?c3HR+1:0)]; + + a3GL[c3GL] = (((o3EL + o3FL) * -2.0) + o3DL); + a3HL[c3HL] = (((o3DL + o3FL) * -2.0) + o3EL); + a3IL[c3IL] = (((o3DL + o3EL) * -2.0) + o3FL); + a3AR[c3AR] = (((o3ER + o3HR) * -2.0) + o3BR); + a3DR[c3DR] = (((o3BR + o3HR) * -2.0) + o3ER); + a3GR[c3GR] = (((o3BR + o3ER) * -2.0) + o3HR); + + c3GL++; if (c3GL < 0 || c3GL > ld3G) c3GL = 0; + c3HL++; if (c3HL < 0 || c3HL > ld3H) c3HL = 0; + c3IL++; if (c3IL < 0 || c3IL > ld3I) c3IL = 0; + c3AR++; if (c3AR < 0 || c3AR > ld3A) c3AR = 0; + c3DR++; if (c3DR < 0 || c3DR > ld3D) c3DR = 0; + c3GR++; if (c3GR < 0 || c3GR > ld3G) c3GR = 0; + + double o3GL = a3GL[c3GL-((c3GL > ld3G)?c3GL+1:0)]; + double o3HL = a3HL[c3HL-((c3HL > ld3H)?c3HL+1:0)]; + double o3IL = a3IL[c3IL-((c3IL > ld3I)?c3IL+1:0)]; + double o3AR = a3AR[c3AR-((c3AR > ld3A)?c3AR+1:0)]; + double o3DR = a3DR[c3DR-((c3DR > ld3D)?c3DR+1:0)]; + double o3GR = a3GR[c3GR-((c3GR > ld3G)?c3GR+1:0)]; + + double inputSampleL = (o3GL + o3HL + o3IL)*0.03125; + double inputSampleR = (o3AR + o3DR + o3GR)*0.03125; + + bezF[bez_cycle] += derezFreq; + bezF[bez_SampL] += ((inputSampleL+bezF[bez_InL]) * derezFreq); + bezF[bez_SampR] += ((inputSampleL+bezF[bez_InR]) * derezFreq); + bezF[bez_InL] = inputSampleL; bezF[bez_InR] = inputSampleR; + if (bezF[bez_cycle] > 1.0) { //hit the end point and we do a filter sample + if (steppedFreq) bezF[bez_cycle] = 0.0; + else bezF[bez_cycle] -= 1.0; + bezF[bez_CL] = bezF[bez_BL]; + bezF[bez_BL] = bezF[bez_AL]; + bezF[bez_AL] = (bezF[bez_SampL]+bezF[bez_AvgInSampL])*0.5; + bezF[bez_AvgInSampL] = bezF[bez_SampL]; bezF[bez_SampL] = 0.0; + bezF[bez_CR] = bezF[bez_BR]; + bezF[bez_BR] = bezF[bez_AR]; + bezF[bez_AR] = (bezF[bez_SampR]+bezF[bez_AvgInSampR])*0.5; + bezF[bez_AvgInSampR] = bezF[bez_SampR]; bezF[bez_SampR] = 0.0; + } + double X = bezF[bez_cycle]*bezFreqTrim; + double CBLfreq = (bezF[bez_CL]*(1.0-X))+(bezF[bez_BL]*X); + double BALfreq = (bezF[bez_BL]*(1.0-X))+(bezF[bez_AL]*X); + double CBALfreq = (bezF[bez_BL]+(CBLfreq*(1.0-X))+(BALfreq*X))*0.125; + double CBRfreq = (bezF[bez_CR]*(1.0-X))+(bezF[bez_BR]*X); + double BARfreq = (bezF[bez_BR]*(1.0-X))+(bezF[bez_AR]*X); + double CBARfreq = (bezF[bez_BR]+(CBRfreq*(1.0-X))+(BARfreq*X))*0.125; + inputSampleL = CBALfreq+bezF[bez_AvgOutSampL]; + bezF[bez_AvgOutSampL] = CBALfreq; + inputSampleR = CBARfreq+bezF[bez_AvgOutSampR]; + bezF[bez_AvgOutSampR] = CBARfreq; + + double earlyReflectionL = inputSampleL; + double earlyReflectionR = inputSampleR; //kWoodRoom has filtered early reflections + + a6AL[c6AL] = inputSampleL + (f6BL * reg6n); + a6BL[c6BL] = inputSampleL + (f6CL * reg6n); + a6CL[c6CL] = inputSampleL + (f6DL * reg6n); + a6DL[c6DL] = inputSampleL + (f6EL * reg6n); + a6EL[c6EL] = inputSampleL + (f6FL * reg6n); + a6FL[c6FL] = inputSampleL + (f6AL * reg6n); + + c6AL++; if (c6AL < 0 || c6AL > d6A) c6AL = 0; + c6BL++; if (c6BL < 0 || c6BL > d6B) c6BL = 0; + c6CL++; if (c6CL < 0 || c6CL > d6C) c6CL = 0; + c6DL++; if (c6DL < 0 || c6DL > d6D) c6DL = 0; + c6EL++; if (c6EL < 0 || c6EL > d6E) c6EL = 0; + c6FL++; if (c6FL < 0 || c6FL > d6F) c6FL = 0; + + double o6AL = a6AL[c6AL-((c6AL > d6A)?d6A+1:0)]; + double o6BL = a6BL[c6BL-((c6BL > d6B)?d6B+1:0)]; + double o6CL = a6CL[c6CL-((c6CL > d6C)?d6C+1:0)]; + double o6DL = a6DL[c6DL-((c6DL > d6D)?d6D+1:0)]; + double o6EL = a6EL[c6EL-((c6EL > d6E)?d6E+1:0)]; + double o6FL = a6FL[c6FL-((c6FL > d6F)?d6F+1:0)]; + + a6FR[c6FR] = inputSampleR + (f6LR * reg6n); + a6LR[c6LR] = inputSampleR + (f6RR * reg6n); + a6RR[c6RR] = inputSampleR + (f6XR * reg6n); + a6XR[c6XR] = inputSampleR + (f6ZER * reg6n); + a6ZER[c6ZER] = inputSampleR + (f6ZKR * reg6n); + a6ZKR[c6ZKR] = inputSampleR + (f6FR * reg6n); + + c6FR++; if (c6FR < 0 || c6FR > d6F) c6FR = 0; + c6LR++; if (c6LR < 0 || c6LR > d6L) c6LR = 0; + c6RR++; if (c6RR < 0 || c6RR > d6R) c6RR = 0; + c6XR++; if (c6XR < 0 || c6XR > d6X) c6XR = 0; + c6ZER++; if (c6ZER < 0 || c6ZER > d6ZE) c6ZER = 0; + c6ZKR++; if (c6ZKR < 0 || c6ZKR > d6ZK) c6ZKR = 0; + + double o6FR = a6FR[c6FR-((c6FR > d6F)?d6F+1:0)]; + double o6LR = a6LR[c6LR-((c6LR > d6L)?d6L+1:0)]; + double o6RR = a6RR[c6RR-((c6RR > d6R)?d6R+1:0)]; + double o6XR = a6XR[c6XR-((c6XR > d6X)?d6X+1:0)]; + double o6ZER = a6ZER[c6ZER-((c6ZER > d6ZE)?d6ZE+1:0)]; + double o6ZKR = a6ZKR[c6ZKR-((c6ZKR > d6ZK)?d6ZK+1:0)]; + + //-------- one + + a6GL[c6GL] = ((o6AL*2.0) - (o6BL + o6CL + o6DL + o6EL + o6FL)); + a6HL[c6HL] = ((o6BL*2.0) - (o6AL + o6CL + o6DL + o6EL + o6FL)); + a6IL[c6IL] = ((o6CL*2.0) - (o6AL + o6BL + o6DL + o6EL + o6FL)); + a6JL[c6JL] = ((o6DL*2.0) - (o6AL + o6BL + o6CL + o6EL + o6FL)); + a6KL[c6KL] = ((o6EL*2.0) - (o6AL + o6BL + o6CL + o6DL + o6FL)); + a6LL[c6LL] = ((o6FL*2.0) - (o6AL + o6BL + o6CL + o6DL + o6EL)); + + c6GL++; if (c6GL < 0 || c6GL > d6G) c6GL = 0; + c6HL++; if (c6HL < 0 || c6HL > d6H) c6HL = 0; + c6IL++; if (c6IL < 0 || c6IL > d6I) c6IL = 0; + c6JL++; if (c6JL < 0 || c6JL > d6J) c6JL = 0; + c6KL++; if (c6KL < 0 || c6KL > d6K) c6KL = 0; + c6LL++; if (c6LL < 0 || c6LL > d6L) c6LL = 0; + + double o6GL = a6GL[c6GL-((c6GL > d6G)?d6G+1:0)]; + double o6HL = a6HL[c6HL-((c6HL > d6H)?d6H+1:0)]; + double o6IL = a6IL[c6IL-((c6IL > d6I)?d6I+1:0)]; + double o6JL = a6JL[c6JL-((c6JL > d6J)?d6J+1:0)]; + double o6KL = a6KL[c6KL-((c6KL > d6K)?d6K+1:0)]; + double o6LL = a6LL[c6LL-((c6LL > d6L)?d6L+1:0)]; + + a6ER[c6ER] = ((o6FR*2.0) - (o6LR + o6RR + o6XR + o6ZER + o6ZKR)); + a6KR[c6KR] = ((o6LR*2.0) - (o6FR + o6RR + o6XR + o6ZER + o6ZKR)); + a6QR[c6QR] = ((o6RR*2.0) - (o6FR + o6LR + o6XR + o6ZER + o6ZKR)); + a6WR[c6WR] = ((o6XR*2.0) - (o6FR + o6LR + o6RR + o6ZER + o6ZKR)); + a6ZDR[c6ZDR] = ((o6ZER*2.0) - (o6FR + o6LR + o6RR + o6XR + o6ZKR)); + a6ZJR[c6ZJR] = ((o6ZKR*2.0) - (o6FR + o6LR + o6RR + o6XR + o6ZER)); + + c6ER++; if (c6ER < 0 || c6ER > d6E) c6ER = 0; + c6KR++; if (c6KR < 0 || c6KR > d6K) c6KR = 0; + c6QR++; if (c6QR < 0 || c6QR > d6Q) c6QR = 0; + c6WR++; if (c6WR < 0 || c6WR > d6W) c6WR = 0; + c6ZDR++; if (c6ZDR < 0 || c6ZDR > d6ZD) c6ZDR = 0; + c6ZJR++; if (c6ZJR < 0 || c6ZJR > d6ZJ) c6ZJR = 0; + + double o6ER = a6ER[c6ER-((c6ER > d6E)?d6E+1:0)]; + double o6KR = a6KR[c6KR-((c6KR > d6K)?d6K+1:0)]; + double o6QR = a6QR[c6QR-((c6QR > d6Q)?d6Q+1:0)]; + double o6WR = a6WR[c6WR-((c6WR > d6W)?d6W+1:0)]; + double o6ZDR = a6ZDR[c6ZDR-((c6ZDR > d6ZD)?d6ZD+1:0)]; + double o6ZJR = a6ZJR[c6ZJR-((c6ZJR > d6ZJ)?d6ZJ+1:0)]; + + //-------- two + + a6ML[c6ML] = ((o6GL*2.0) - (o6HL + o6IL + o6JL + o6KL + o6LL)); + a6NL[c6NL] = ((o6HL*2.0) - (o6GL + o6IL + o6JL + o6KL + o6LL)); + a6OL[c6OL] = ((o6IL*2.0) - (o6GL + o6HL + o6JL + o6KL + o6LL)); + a6PL[c6PL] = ((o6JL*2.0) - (o6GL + o6HL + o6IL + o6KL + o6LL)); + a6QL[c6QL] = ((o6KL*2.0) - (o6GL + o6HL + o6IL + o6JL + o6LL)); + a6RL[c6RL] = ((o6LL*2.0) - (o6GL + o6HL + o6IL + o6JL + o6KL)); + + c6ML++; if (c6ML < 0 || c6ML > d6M) c6ML = 0; + c6NL++; if (c6NL < 0 || c6NL > d6N) c6NL = 0; + c6OL++; if (c6OL < 0 || c6OL > d6O) c6OL = 0; + c6PL++; if (c6PL < 0 || c6PL > d6P) c6PL = 0; + c6QL++; if (c6QL < 0 || c6QL > d6Q) c6QL = 0; + c6RL++; if (c6RL < 0 || c6RL > d6R) c6RL = 0; + + double o6ML = a6ML[c6ML-((c6ML > d6M)?d6M+1:0)]; + double o6NL = a6NL[c6NL-((c6NL > d6N)?d6N+1:0)]; + double o6OL = a6OL[c6OL-((c6OL > d6O)?d6O+1:0)]; + double o6PL = a6PL[c6PL-((c6PL > d6P)?d6P+1:0)]; + double o6QL = a6QL[c6QL-((c6QL > d6Q)?d6Q+1:0)]; + double o6RL = a6RL[c6RL-((c6RL > d6R)?d6R+1:0)]; + + a6DR[c6DR] = ((o6ER*2.0) - (o6KR + o6QR + o6WR + o6ZDR + o6ZJR)); + a6JR[c6JR] = ((o6KR*2.0) - (o6ER + o6QR + o6WR + o6ZDR + o6ZJR)); + a6PR[c6PR] = ((o6QR*2.0) - (o6ER + o6KR + o6WR + o6ZDR + o6ZJR)); + a6VR[c6VR] = ((o6WR*2.0) - (o6ER + o6KR + o6QR + o6ZDR + o6ZJR)); + a6ZCR[c6ZCR] = ((o6ZDR*2.0) - (o6ER + o6KR + o6QR + o6WR + o6ZJR)); + a6ZIR[c6ZIR] = ((o6ZJR*2.0) - (o6ER + o6KR + o6QR + o6WR + o6ZDR)); + + c6DR++; if (c6DR < 0 || c6DR > d6D) c6DR = 0; + c6JR++; if (c6JR < 0 || c6JR > d6J) c6JR = 0; + c6PR++; if (c6PR < 0 || c6PR > d6P) c6PR = 0; + c6VR++; if (c6VR < 0 || c6VR > d6V) c6VR = 0; + c6ZCR++; if (c6ZCR < 0 || c6ZCR > d6ZC) c6ZCR = 0; + c6ZIR++; if (c6ZIR < 0 || c6ZIR > d6ZI) c6ZIR = 0; + + double o6DR = a6DR[c6DR-((c6DR > d6D)?d6D+1:0)]; + double o6JR = a6JR[c6JR-((c6JR > d6J)?d6J+1:0)]; + double o6PR = a6PR[c6PR-((c6PR > d6P)?d6P+1:0)]; + double o6VR = a6VR[c6VR-((c6VR > d6V)?d6V+1:0)]; + double o6ZCR = a6ZCR[c6ZCR-((c6ZCR > d6ZC)?d6ZC+1:0)]; + double o6ZIR = a6ZIR[c6ZIR-((c6ZIR > d6ZI)?d6ZI+1:0)]; + + //-------- three + + a6SL[c6SL] = ((o6ML*2.0) - (o6NL + o6OL + o6PL + o6QL + o6RL)); + a6TL[c6TL] = ((o6NL*2.0) - (o6ML + o6OL + o6PL + o6QL + o6RL)); + a6UL[c6UL] = ((o6OL*2.0) - (o6ML + o6NL + o6PL + o6QL + o6RL)); + a6VL[c6VL] = ((o6PL*2.0) - (o6ML + o6NL + o6OL + o6QL + o6RL)); + a6WL[c6WL] = ((o6QL*2.0) - (o6ML + o6NL + o6OL + o6PL + o6RL)); + a6XL[c6XL] = ((o6RL*2.0) - (o6ML + o6NL + o6OL + o6PL + o6QL)); + + c6SL++; if (c6SL < 0 || c6SL > d6S) c6SL = 0; + c6TL++; if (c6TL < 0 || c6TL > d6T) c6TL = 0; + c6UL++; if (c6UL < 0 || c6UL > d6U) c6UL = 0; + c6VL++; if (c6VL < 0 || c6VL > d6V) c6VL = 0; + c6WL++; if (c6WL < 0 || c6WL > d6W) c6WL = 0; + c6XL++; if (c6XL < 0 || c6XL > d6X) c6XL = 0; + + double o6SL = a6SL[c6SL-((c6SL > d6S)?d6S+1:0)]; + double o6TL = a6TL[c6TL-((c6TL > d6T)?d6T+1:0)]; + double o6UL = a6UL[c6UL-((c6UL > d6U)?d6U+1:0)]; + double o6VL = a6VL[c6VL-((c6VL > d6V)?d6V+1:0)]; + double o6WL = a6WL[c6WL-((c6WL > d6W)?d6W+1:0)]; + double o6XL = a6XL[c6XL-((c6XL > d6X)?d6X+1:0)]; + + a6CR[c6CR] = ((o6DR*2.0) - (o6JR + o6PR + o6VR + o6ZCR + o6ZIR)); + a6IR[c6IR] = ((o6JR*2.0) - (o6DR + o6PR + o6VR + o6ZCR + o6ZIR)); + a6OR[c6OR] = ((o6PR*2.0) - (o6DR + o6JR + o6VR + o6ZCR + o6ZIR)); + a6UR[c6UR] = ((o6VR*2.0) - (o6DR + o6JR + o6PR + o6ZCR + o6ZIR)); + a6ZBR[c6ZBR] = ((o6ZCR*2.0) - (o6DR + o6JR + o6PR + o6VR + o6ZIR)); + a6ZHR[c6ZHR] = ((o6ZIR*2.0) - (o6DR + o6JR + o6PR + o6VR + o6ZCR)); + + c6CR++; if (c6CR < 0 || c6CR > d6C) c6CR = 0; + c6IR++; if (c6IR < 0 || c6IR > d6I) c6IR = 0; + c6OR++; if (c6OR < 0 || c6OR > d6O) c6OR = 0; + c6UR++; if (c6UR < 0 || c6UR > d6U) c6UR = 0; + c6ZBR++; if (c6ZBR < 0 || c6ZBR > d6ZB) c6ZBR = 0; + c6ZHR++; if (c6ZHR < 0 || c6ZHR > d6ZH) c6ZHR = 0; + + double o6CR = a6CR[c6CR-((c6CR > d6C)?d6C+1:0)]; + double o6IR = a6IR[c6IR-((c6IR > d6I)?d6I+1:0)]; + double o6OR = a6OR[c6OR-((c6OR > d6O)?d6O+1:0)]; + double o6UR = a6UR[c6UR-((c6UR > d6U)?d6U+1:0)]; + double o6ZBR = a6ZBR[c6ZBR-((c6ZBR > d6ZB)?d6ZB+1:0)]; + double o6ZHR = a6ZHR[c6ZHR-((c6ZHR > d6ZH)?d6ZH+1:0)]; + + //-------- four + + a6YL[c6YL] = ((o6SL*2.0) - (o6TL + o6UL + o6VL + o6WL + o6XL)); + a6ZAL[c6ZAL] = ((o6TL*2.0) - (o6SL + o6UL + o6VL + o6WL + o6XL)); + a6ZBL[c6ZBL] = ((o6UL*2.0) - (o6SL + o6TL + o6VL + o6WL + o6XL)); + a6ZCL[c6ZCL] = ((o6VL*2.0) - (o6SL + o6TL + o6UL + o6WL + o6XL)); + a6ZDL[c6ZDL] = ((o6WL*2.0) - (o6SL + o6TL + o6UL + o6VL + o6XL)); + a6ZEL[c6ZEL] = ((o6XL*2.0) - (o6SL + o6TL + o6UL + o6VL + o6WL)); + + c6YL++; if (c6YL < 0 || c6YL > d6Y) c6YL = 0; + c6ZAL++; if (c6ZAL < 0 || c6ZAL > d6ZA) c6ZAL = 0; + c6ZBL++; if (c6ZBL < 0 || c6ZBL > d6ZB) c6ZBL = 0; + c6ZCL++; if (c6ZCL < 0 || c6ZCL > d6ZC) c6ZCL = 0; + c6ZDL++; if (c6ZDL < 0 || c6ZDL > d6ZD) c6ZDL = 0; + c6ZEL++; if (c6ZEL < 0 || c6ZEL > d6ZE) c6ZEL = 0; + + double o6YL = a6YL[c6YL-((c6YL > d6Y)?d6Y+1:0)]; + double o6ZAL = a6ZAL[c6ZAL-((c6ZAL > d6ZA)?d6ZA+1:0)]; + double o6ZBL = a6ZBL[c6ZBL-((c6ZBL > d6ZB)?d6ZB+1:0)]; + double o6ZCL = a6ZCL[c6ZCL-((c6ZCL > d6ZC)?d6ZC+1:0)]; + double o6ZDL = a6ZDL[c6ZDL-((c6ZDL > d6ZD)?d6ZD+1:0)]; + double o6ZEL = a6ZEL[c6ZEL-((c6ZEL > d6ZE)?d6ZE+1:0)]; + + a6BR[c6BR] = ((o6CR*2.0) - (o6IR + o6OR + o6UR + o6ZBR + o6ZHR)); + a6HR[c6HR] = ((o6IR*2.0) - (o6CR + o6OR + o6UR + o6ZBR + o6ZHR)); + a6NR[c6NR] = ((o6OR*2.0) - (o6CR + o6IR + o6UR + o6ZBR + o6ZHR)); + a6TR[c6TR] = ((o6UR*2.0) - (o6CR + o6IR + o6OR + o6ZBR + o6ZHR)); + a6ZAR[c6ZAR] = ((o6ZBR*2.0) - (o6CR + o6IR + o6OR + o6UR + o6ZHR)); + a6ZGR[c6ZGR] = ((o6ZHR*2.0) - (o6CR + o6IR + o6OR + o6UR + o6ZBR)); + + c6BR++; if (c6BR < 0 || c6BR > d6B) c6BR = 0; + c6HR++; if (c6HR < 0 || c6HR > d6H) c6HR = 0; + c6NR++; if (c6NR < 0 || c6NR > d6N) c6NR = 0; + c6TR++; if (c6TR < 0 || c6TR > d6T) c6TR = 0; + c6ZBR++; if (c6ZBR < 0 || c6ZBR > d6ZB) c6ZBR = 0; + c6ZGR++; if (c6ZGR < 0 || c6ZGR > d6ZG) c6ZGR = 0; + + double o6BR = a6BR[c6BR-((c6BR > d6B)?d6B+1:0)]; + double o6HR = a6HR[c6HR-((c6HR > d6H)?d6H+1:0)]; + double o6NR = a6NR[c6NR-((c6NR > d6N)?d6N+1:0)]; + double o6TR = a6TR[c6TR-((c6TR > d6T)?d6T+1:0)]; + double o6ZAR = a6ZAR[c6ZAR-((c6ZAR > d6ZA)?d6ZA+1:0)]; + double o6ZGR = a6ZGR[c6ZGR-((c6ZGR > d6ZG)?d6ZG+1:0)]; + + //-------- five + + a6ZFL[c6ZFL] = ((o6YL*2.0) - (o6ZAL + o6ZBL + o6ZCL + o6ZDL + o6ZEL)); + a6ZGL[c6ZGL] = ((o6ZAL*2.0) - (o6YL + o6ZBL + o6ZCL + o6ZDL + o6ZEL)); + a6ZHL[c6ZHL] = ((o6ZBL*2.0) - (o6YL + o6ZAL + o6ZCL + o6ZDL + o6ZEL)); + a6ZIL[c6ZIL] = ((o6ZCL*2.0) - (o6YL + o6ZAL + o6ZBL + o6ZDL + o6ZEL)); + a6ZJL[c6ZJL] = ((o6ZDL*2.0) - (o6YL + o6ZAL + o6ZBL + o6ZCL + o6ZEL)); + a6ZKL[c6ZKL] = ((o6ZEL*2.0) - (o6YL + o6ZAL + o6ZBL + o6ZCL + o6ZDL)); + + c6ZFL++; if (c6ZFL < 0 || c6ZFL > d6ZF) c6ZFL = 0; + c6ZGL++; if (c6ZGL < 0 || c6ZGL > d6ZG) c6ZGL = 0; + c6ZHL++; if (c6ZHL < 0 || c6ZHL > d6ZH) c6ZHL = 0; + c6ZIL++; if (c6ZIL < 0 || c6ZIL > d6ZI) c6ZIL = 0; + c6ZJL++; if (c6ZJL < 0 || c6ZJL > d6ZJ) c6ZJL = 0; + c6ZKL++; if (c6ZKL < 0 || c6ZKL > d6ZK) c6ZKL = 0; + + double o6ZFL = a6ZFL[c6ZFL-((c6ZFL > d6ZF)?d6ZF+1:0)]; + double o6ZGL = a6ZGL[c6ZGL-((c6ZGL > d6ZG)?d6ZG+1:0)]; + double o6ZHL = a6ZHL[c6ZHL-((c6ZHL > d6ZH)?d6ZH+1:0)]; + double o6ZIL = a6ZIL[c6ZIL-((c6ZIL > d6ZI)?d6ZI+1:0)]; + double o6ZJL = a6ZJL[c6ZJL-((c6ZJL > d6ZJ)?d6ZJ+1:0)]; + double o6ZKL = a6ZKL[c6ZKL-((c6ZKL > d6ZK)?d6ZK+1:0)]; + + a6AR[c6AR] = ((o6BR*2.0) - (o6HR + o6NR + o6TR + o6ZAR + o6ZGR)); + a6GR[c6GR] = ((o6HR*2.0) - (o6BR + o6NR + o6TR + o6ZAR + o6ZGR)); + a6MR[c6MR] = ((o6NR*2.0) - (o6BR + o6HR + o6TR + o6ZAR + o6ZGR)); + a6SR[c6SR] = ((o6TR*2.0) - (o6BR + o6HR + o6NR + o6ZAR + o6ZGR)); + a6YR[c6YR] = ((o6ZAR*2.0) - (o6BR + o6HR + o6NR + o6TR + o6ZGR)); + a6ZFR[c6ZFR] = ((o6ZGR*2.0) - (o6BR + o6HR + o6NR + o6TR + o6ZAR)); + + c6AR++; if (c6AR < 0 || c6AR > d6A) c6AR = 0; + c6GR++; if (c6GR < 0 || c6GR > d6G) c6GR = 0; + c6MR++; if (c6MR < 0 || c6MR > d6M) c6MR = 0; + c6SR++; if (c6SR < 0 || c6SR > d6S) c6SR = 0; + c6YR++; if (c6YR < 0 || c6YR > d6Y) c6YR = 0; + c6ZFR++; if (c6ZFR < 0 || c6ZFR > d6ZF) c6ZFR = 0; + + double o6AR = a6AR[c6AR-((c6AR > d6A)?d6A+1:0)]; + double o6GR = a6GR[c6GR-((c6GR > d6G)?d6G+1:0)]; + double o6MR = a6MR[c6MR-((c6MR > d6M)?d6M+1:0)]; + double o6SR = a6SR[c6SR-((c6SR > d6S)?d6S+1:0)]; + double o6YR = a6YR[c6YR-((c6YR > d6Y)?d6Y+1:0)]; + double o6ZFR = a6ZFR[c6ZFR-((c6ZFR > d6ZF)?d6ZF+1:0)]; + + //-------- six + + f6AL = ((o6AR*2.0) - (o6GR + o6MR + o6SR + o6YR + o6ZFR)); + f6BL = ((o6GR*2.0) - (o6AR + o6MR + o6SR + o6YR + o6ZFR)); + f6CL = ((o6MR*2.0) - (o6AR + o6GR + o6SR + o6YR + o6ZFR)); + f6DL = ((o6SR*2.0) - (o6AR + o6GR + o6MR + o6YR + o6ZFR)); + f6EL = ((o6YR*2.0) - (o6AR + o6GR + o6MR + o6SR + o6ZFR)); + f6FL = ((o6ZFR*2.0) - (o6AR + o6GR + o6MR + o6SR + o6YR)); + + f6FR = ((o6ZFL*2.0) - (o6ZGL + o6ZHL + o6ZIL + o6ZJL + o6ZKL)); + f6LR = ((o6ZGL*2.0) - (o6ZFL + o6ZHL + o6ZIL + o6ZJL + o6ZKL)); + f6RR = ((o6ZHL*2.0) - (o6ZFL + o6ZGL + o6ZIL + o6ZJL + o6ZKL)); + f6XR = ((o6ZIL*2.0) - (o6ZFL + o6ZGL + o6ZHL + o6ZJL + o6ZKL)); + f6ZER = ((o6ZJL*2.0) - (o6ZFL + o6ZGL + o6ZHL + o6ZIL + o6ZKL)); + f6ZKR = ((o6ZKL*2.0) - (o6ZFL + o6ZGL + o6ZHL + o6ZIL + o6ZJL)); + + inputSampleL = (o6ZFL + o6ZGL + o6ZHL + o6ZIL + o6ZJL + o6ZKL)*0.001953125; + inputSampleR = (o6AR + o6GR + o6MR + o6SR + o6YR + o6ZFR)*0.001953125; + + f6AL = (f6AL+avg6L)*0.5; avg6L = f6AL; + f6FR = (f6FR+avg6R)*0.5; avg6R = f6FR; + //manipulating deep reverb tail for realism + + inputSampleL += (earlyReflectionL * earlyLoudness); + inputSampleR += (earlyReflectionR * earlyLoudness); + + bez[bez_CL] = bez[bez_BL]; + bez[bez_BL] = bez[bez_AL]; + bez[bez_AL] = inputSampleL; + bez[bez_SampL] = 0.0; + + bez[bez_CR] = bez[bez_BR]; + bez[bez_BR] = bez[bez_AR]; + bez[bez_AR] = inputSampleR; + bez[bez_SampR] = 0.0; + } + double X = bez[bez_cycle]*bezTrim; + double CBL = (bez[bez_CL]*(1.0-X))+(bez[bez_BL]*X); + double CBR = (bez[bez_CR]*(1.0-X))+(bez[bez_BR]*X); + double BAL = (bez[bez_BL]*(1.0-X))+(bez[bez_AL]*X); + double BAR = (bez[bez_BR]*(1.0-X))+(bez[bez_AR]*X); + double CBAL = (bez[bez_BL]+(CBL*(1.0-X))+(BAL*X))*-0.0625; + double CBAR = (bez[bez_BR]+(CBR*(1.0-X))+(BAR*X))*-0.0625; + inputSampleL = CBAL+bez[bez_AvgOutSampL]; bez[bez_AvgOutSampL] = CBAL; + inputSampleR = CBAR+bez[bez_AvgOutSampR]; bez[bez_AvgOutSampR] = CBAR; + + inputSampleL = (inputSampleL * wet)+(drySampleL * (1.0-wet)); + inputSampleR = (inputSampleR * wet)+(drySampleR * (1.0-wet)); + + //begin 32 bit stereo floating point dither + int expon; frexpf((float)inputSampleL, &expon); + fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5; + inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62)); + frexpf((float)inputSampleR, &expon); + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5; + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62)); + //end 32 bit stereo floating point dither + + *out1 = inputSampleL; + *out2 = inputSampleR; + + in1++; + in2++; + out1++; + out2++; + } +} + +void kWoodRoom::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(); + + double fdb6ck = (0.0009765625+0.0009765625+0.001953125)*0.3333333; + double reg6n = (1.0-pow(1.0-A,1.618033988749894))*fdb6ck; + //start this but pad it in the loop by volume of output? + + double derez = B*2.0; + bool stepped = true; // Revised Bezier Undersampling + if (derez > 1.0) { // has full rez at center, stepped + stepped = false; // to left, continuous to right + derez = 1.0-(derez-1.0); + } //if it's set up like that it's the revised algorithm + derez = fmin(fmax(derez/overallscale,0.0005),1.0); + int bezFraction = (int)(1.0/derez); + double bezTrim = (double)bezFraction/(bezFraction+1.0); + if (stepped) { //this hard-locks derez to exact subdivisions of 1.0 + derez = 1.0 / bezFraction; + bezTrim = 1.0-(derez*bezTrim); + } else { //this makes it match the 1.0 case using stepped + derez /= (2.0/pow(overallscale,0.5-((overallscale-1.0)*0.0375))); + bezTrim = 1.0-pow(derez*0.5,1.0/(derez*0.5)); + } //the revision more accurately connects the bezier curves + + double derezFreq = C*2.0; + bool steppedFreq = true; // Revised Bezier Undersampling + if (derezFreq > 1.0) { // has full rez at center, stepped + steppedFreq = false; // to left, continuous to right + derezFreq = 1.0-(derezFreq-1.0); + } //if it's set up like that it's the revised algorithm + derezFreq = fmin(fmax(derezFreq,0.0005),1.0); //note: no overallscale, already inside undersampling + int bezFreqFraction = (int)(1.0/derezFreq); + double bezFreqTrim = (double)bezFreqFraction/(bezFreqFraction+1.0); + if (steppedFreq) { //this hard-locks derez to exact subdivisions of 1.0 + derezFreq = 1.0 / bezFreqFraction; + bezFreqTrim = 1.0-(derezFreq*bezFreqTrim); + } else { //this makes it match the 1.0 case using stepped + bezFreqTrim = 1.0-pow(derezFreq*0.5,1.0/(derezFreq*0.5)); + } //the revision more accurately connects the bezier curves + + double earlyLoudness = D*2.0; + int start = (int)(E * 27.0); + int ld3G = early[start]; + int ld3H = early[start+1]; + int ld3D = early[start+2]; + int ld3A = early[start+3]; + int ld3E = early[start+4]; + int ld3I = early[start+5]; + int ld3F = early[start+6]; + int ld3B = early[start+7]; + int ld3C = early[start+8]; + double wet = F; + + while (--sampleFrames >= 0) + { + double inputSampleL = *in1; + double inputSampleR = *in2; + if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17; + if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17; + double drySampleL = inputSampleL; + double drySampleR = inputSampleR; + + bez[bez_cycle] += derez; + bez[bez_SampL] += ((inputSampleL+bez[bez_InL]) * derez); + bez[bez_SampR] += ((inputSampleR+bez[bez_InR]) * derez); + bez[bez_InL] = inputSampleL; bez[bez_InR] = inputSampleR; + if (bez[bez_cycle] > 1.0) { //hit the end point and we do a reverb sample + if (stepped) bez[bez_cycle] = 0.0; + else bez[bez_cycle] -= 1.0; + + inputSampleL = (bez[bez_SampL]+bez[bez_AvgInSampL])*0.5; + bez[bez_AvgInSampL] = bez[bez_SampL]; + inputSampleR = (bez[bez_SampR]+bez[bez_AvgInSampR])*0.5; + bez[bez_AvgInSampR] = bez[bez_SampR]; + + a3AL[c3AL] = inputSampleL;// + (f3AL * reg3n); + a3BL[c3BL] = inputSampleL;// + (f3BL * reg3n); + a3CL[c3CL] = inputSampleL;// + (f3CL * reg3n); + + a3CR[c3CR] = inputSampleR;// + (f3CR * reg3n); + a3FR[c3FR] = inputSampleR;// + (f3FR * reg3n); + a3IR[c3IR] = inputSampleR;// + (f3IR * reg3n); + + c3AL++; if (c3AL < 0 || c3AL > ld3A) c3AL = 0; + c3BL++; if (c3BL < 0 || c3BL > ld3B) c3BL = 0; + c3CL++; if (c3CL < 0 || c3CL > ld3C) c3CL = 0; + c3CR++; if (c3CR < 0 || c3CR > ld3C) c3CR = 0; + c3FR++; if (c3FR < 0 || c3FR > ld3F) c3FR = 0; + c3IR++; if (c3IR < 0 || c3IR > ld3I) c3IR = 0; + + double o3AL = a3AL[c3AL-((c3AL > ld3A)?c3AL+1:0)]; + double o3BL = a3BL[c3BL-((c3BL > ld3B)?c3BL+1:0)]; + double o3CL = a3CL[c3CL-((c3CL > ld3C)?c3CL+1:0)]; + double o3CR = a3CR[c3CR-((c3CR > ld3C)?c3CR+1:0)]; + double o3FR = a3FR[c3FR-((c3FR > ld3F)?c3FR+1:0)]; + double o3IR = a3IR[c3IR-((c3IR > ld3I)?c3IR+1:0)]; + + a3DL[c3DL] = (((o3BL + o3CL) * -2.0) + o3AL); + a3EL[c3EL] = (((o3AL + o3CL) * -2.0) + o3BL); + a3FL[c3FL] = (((o3AL + o3BL) * -2.0) + o3CL); + a3BR[c3BR] = (((o3FR + o3IR) * -2.0) + o3CR); + a3ER[c3ER] = (((o3CR + o3IR) * -2.0) + o3FR); + a3HR[c3HR] = (((o3CR + o3FR) * -2.0) + o3IR); + + c3DL++; if (c3DL < 0 || c3DL > ld3D) c3DL = 0; + c3EL++; if (c3EL < 0 || c3EL > ld3E) c3EL = 0; + c3FL++; if (c3FL < 0 || c3FL > ld3F) c3FL = 0; + c3BR++; if (c3BR < 0 || c3BR > ld3B) c3BR = 0; + c3ER++; if (c3ER < 0 || c3ER > ld3E) c3ER = 0; + c3HR++; if (c3HR < 0 || c3HR > ld3H) c3HR = 0; + + double o3DL = a3DL[c3DL-((c3DL > ld3D)?c3DL+1:0)]; + double o3EL = a3EL[c3EL-((c3EL > ld3E)?c3EL+1:0)]; + double o3FL = a3FL[c3FL-((c3FL > ld3F)?c3FL+1:0)]; + double o3BR = a3BR[c3BR-((c3BR > ld3B)?c3BR+1:0)]; + double o3ER = a3ER[c3ER-((c3ER > ld3E)?c3ER+1:0)]; + double o3HR = a3HR[c3HR-((c3HR > ld3H)?c3HR+1:0)]; + + a3GL[c3GL] = (((o3EL + o3FL) * -2.0) + o3DL); + a3HL[c3HL] = (((o3DL + o3FL) * -2.0) + o3EL); + a3IL[c3IL] = (((o3DL + o3EL) * -2.0) + o3FL); + a3AR[c3AR] = (((o3ER + o3HR) * -2.0) + o3BR); + a3DR[c3DR] = (((o3BR + o3HR) * -2.0) + o3ER); + a3GR[c3GR] = (((o3BR + o3ER) * -2.0) + o3HR); + + c3GL++; if (c3GL < 0 || c3GL > ld3G) c3GL = 0; + c3HL++; if (c3HL < 0 || c3HL > ld3H) c3HL = 0; + c3IL++; if (c3IL < 0 || c3IL > ld3I) c3IL = 0; + c3AR++; if (c3AR < 0 || c3AR > ld3A) c3AR = 0; + c3DR++; if (c3DR < 0 || c3DR > ld3D) c3DR = 0; + c3GR++; if (c3GR < 0 || c3GR > ld3G) c3GR = 0; + + double o3GL = a3GL[c3GL-((c3GL > ld3G)?c3GL+1:0)]; + double o3HL = a3HL[c3HL-((c3HL > ld3H)?c3HL+1:0)]; + double o3IL = a3IL[c3IL-((c3IL > ld3I)?c3IL+1:0)]; + double o3AR = a3AR[c3AR-((c3AR > ld3A)?c3AR+1:0)]; + double o3DR = a3DR[c3DR-((c3DR > ld3D)?c3DR+1:0)]; + double o3GR = a3GR[c3GR-((c3GR > ld3G)?c3GR+1:0)]; + + double inputSampleL = (o3GL + o3HL + o3IL)*0.03125; + double inputSampleR = (o3AR + o3DR + o3GR)*0.03125; + + bezF[bez_cycle] += derezFreq; + bezF[bez_SampL] += ((inputSampleL+bezF[bez_InL]) * derezFreq); + bezF[bez_SampR] += ((inputSampleL+bezF[bez_InR]) * derezFreq); + bezF[bez_InL] = inputSampleL; bezF[bez_InR] = inputSampleR; + if (bezF[bez_cycle] > 1.0) { //hit the end point and we do a filter sample + if (steppedFreq) bezF[bez_cycle] = 0.0; + else bezF[bez_cycle] -= 1.0; + bezF[bez_CL] = bezF[bez_BL]; + bezF[bez_BL] = bezF[bez_AL]; + bezF[bez_AL] = (bezF[bez_SampL]+bezF[bez_AvgInSampL])*0.5; + bezF[bez_AvgInSampL] = bezF[bez_SampL]; bezF[bez_SampL] = 0.0; + bezF[bez_CR] = bezF[bez_BR]; + bezF[bez_BR] = bezF[bez_AR]; + bezF[bez_AR] = (bezF[bez_SampR]+bezF[bez_AvgInSampR])*0.5; + bezF[bez_AvgInSampR] = bezF[bez_SampR]; bezF[bez_SampR] = 0.0; + } + double X = bezF[bez_cycle]*bezFreqTrim; + double CBLfreq = (bezF[bez_CL]*(1.0-X))+(bezF[bez_BL]*X); + double BALfreq = (bezF[bez_BL]*(1.0-X))+(bezF[bez_AL]*X); + double CBALfreq = (bezF[bez_BL]+(CBLfreq*(1.0-X))+(BALfreq*X))*0.125; + double CBRfreq = (bezF[bez_CR]*(1.0-X))+(bezF[bez_BR]*X); + double BARfreq = (bezF[bez_BR]*(1.0-X))+(bezF[bez_AR]*X); + double CBARfreq = (bezF[bez_BR]+(CBRfreq*(1.0-X))+(BARfreq*X))*0.125; + inputSampleL = CBALfreq+bezF[bez_AvgOutSampL]; + bezF[bez_AvgOutSampL] = CBALfreq; + inputSampleR = CBARfreq+bezF[bez_AvgOutSampR]; + bezF[bez_AvgOutSampR] = CBARfreq; + + double earlyReflectionL = inputSampleL; + double earlyReflectionR = inputSampleR; //kWoodRoom has filtered early reflections + + a6AL[c6AL] = inputSampleL + (f6BL * reg6n); + a6BL[c6BL] = inputSampleL + (f6CL * reg6n); + a6CL[c6CL] = inputSampleL + (f6DL * reg6n); + a6DL[c6DL] = inputSampleL + (f6EL * reg6n); + a6EL[c6EL] = inputSampleL + (f6FL * reg6n); + a6FL[c6FL] = inputSampleL + (f6AL * reg6n); + + c6AL++; if (c6AL < 0 || c6AL > d6A) c6AL = 0; + c6BL++; if (c6BL < 0 || c6BL > d6B) c6BL = 0; + c6CL++; if (c6CL < 0 || c6CL > d6C) c6CL = 0; + c6DL++; if (c6DL < 0 || c6DL > d6D) c6DL = 0; + c6EL++; if (c6EL < 0 || c6EL > d6E) c6EL = 0; + c6FL++; if (c6FL < 0 || c6FL > d6F) c6FL = 0; + + double o6AL = a6AL[c6AL-((c6AL > d6A)?d6A+1:0)]; + double o6BL = a6BL[c6BL-((c6BL > d6B)?d6B+1:0)]; + double o6CL = a6CL[c6CL-((c6CL > d6C)?d6C+1:0)]; + double o6DL = a6DL[c6DL-((c6DL > d6D)?d6D+1:0)]; + double o6EL = a6EL[c6EL-((c6EL > d6E)?d6E+1:0)]; + double o6FL = a6FL[c6FL-((c6FL > d6F)?d6F+1:0)]; + + a6FR[c6FR] = inputSampleR + (f6LR * reg6n); + a6LR[c6LR] = inputSampleR + (f6RR * reg6n); + a6RR[c6RR] = inputSampleR + (f6XR * reg6n); + a6XR[c6XR] = inputSampleR + (f6ZER * reg6n); + a6ZER[c6ZER] = inputSampleR + (f6ZKR * reg6n); + a6ZKR[c6ZKR] = inputSampleR + (f6FR * reg6n); + + c6FR++; if (c6FR < 0 || c6FR > d6F) c6FR = 0; + c6LR++; if (c6LR < 0 || c6LR > d6L) c6LR = 0; + c6RR++; if (c6RR < 0 || c6RR > d6R) c6RR = 0; + c6XR++; if (c6XR < 0 || c6XR > d6X) c6XR = 0; + c6ZER++; if (c6ZER < 0 || c6ZER > d6ZE) c6ZER = 0; + c6ZKR++; if (c6ZKR < 0 || c6ZKR > d6ZK) c6ZKR = 0; + + double o6FR = a6FR[c6FR-((c6FR > d6F)?d6F+1:0)]; + double o6LR = a6LR[c6LR-((c6LR > d6L)?d6L+1:0)]; + double o6RR = a6RR[c6RR-((c6RR > d6R)?d6R+1:0)]; + double o6XR = a6XR[c6XR-((c6XR > d6X)?d6X+1:0)]; + double o6ZER = a6ZER[c6ZER-((c6ZER > d6ZE)?d6ZE+1:0)]; + double o6ZKR = a6ZKR[c6ZKR-((c6ZKR > d6ZK)?d6ZK+1:0)]; + + //-------- one + + a6GL[c6GL] = ((o6AL*2.0) - (o6BL + o6CL + o6DL + o6EL + o6FL)); + a6HL[c6HL] = ((o6BL*2.0) - (o6AL + o6CL + o6DL + o6EL + o6FL)); + a6IL[c6IL] = ((o6CL*2.0) - (o6AL + o6BL + o6DL + o6EL + o6FL)); + a6JL[c6JL] = ((o6DL*2.0) - (o6AL + o6BL + o6CL + o6EL + o6FL)); + a6KL[c6KL] = ((o6EL*2.0) - (o6AL + o6BL + o6CL + o6DL + o6FL)); + a6LL[c6LL] = ((o6FL*2.0) - (o6AL + o6BL + o6CL + o6DL + o6EL)); + + c6GL++; if (c6GL < 0 || c6GL > d6G) c6GL = 0; + c6HL++; if (c6HL < 0 || c6HL > d6H) c6HL = 0; + c6IL++; if (c6IL < 0 || c6IL > d6I) c6IL = 0; + c6JL++; if (c6JL < 0 || c6JL > d6J) c6JL = 0; + c6KL++; if (c6KL < 0 || c6KL > d6K) c6KL = 0; + c6LL++; if (c6LL < 0 || c6LL > d6L) c6LL = 0; + + double o6GL = a6GL[c6GL-((c6GL > d6G)?d6G+1:0)]; + double o6HL = a6HL[c6HL-((c6HL > d6H)?d6H+1:0)]; + double o6IL = a6IL[c6IL-((c6IL > d6I)?d6I+1:0)]; + double o6JL = a6JL[c6JL-((c6JL > d6J)?d6J+1:0)]; + double o6KL = a6KL[c6KL-((c6KL > d6K)?d6K+1:0)]; + double o6LL = a6LL[c6LL-((c6LL > d6L)?d6L+1:0)]; + + a6ER[c6ER] = ((o6FR*2.0) - (o6LR + o6RR + o6XR + o6ZER + o6ZKR)); + a6KR[c6KR] = ((o6LR*2.0) - (o6FR + o6RR + o6XR + o6ZER + o6ZKR)); + a6QR[c6QR] = ((o6RR*2.0) - (o6FR + o6LR + o6XR + o6ZER + o6ZKR)); + a6WR[c6WR] = ((o6XR*2.0) - (o6FR + o6LR + o6RR + o6ZER + o6ZKR)); + a6ZDR[c6ZDR] = ((o6ZER*2.0) - (o6FR + o6LR + o6RR + o6XR + o6ZKR)); + a6ZJR[c6ZJR] = ((o6ZKR*2.0) - (o6FR + o6LR + o6RR + o6XR + o6ZER)); + + c6ER++; if (c6ER < 0 || c6ER > d6E) c6ER = 0; + c6KR++; if (c6KR < 0 || c6KR > d6K) c6KR = 0; + c6QR++; if (c6QR < 0 || c6QR > d6Q) c6QR = 0; + c6WR++; if (c6WR < 0 || c6WR > d6W) c6WR = 0; + c6ZDR++; if (c6ZDR < 0 || c6ZDR > d6ZD) c6ZDR = 0; + c6ZJR++; if (c6ZJR < 0 || c6ZJR > d6ZJ) c6ZJR = 0; + + double o6ER = a6ER[c6ER-((c6ER > d6E)?d6E+1:0)]; + double o6KR = a6KR[c6KR-((c6KR > d6K)?d6K+1:0)]; + double o6QR = a6QR[c6QR-((c6QR > d6Q)?d6Q+1:0)]; + double o6WR = a6WR[c6WR-((c6WR > d6W)?d6W+1:0)]; + double o6ZDR = a6ZDR[c6ZDR-((c6ZDR > d6ZD)?d6ZD+1:0)]; + double o6ZJR = a6ZJR[c6ZJR-((c6ZJR > d6ZJ)?d6ZJ+1:0)]; + + //-------- two + + a6ML[c6ML] = ((o6GL*2.0) - (o6HL + o6IL + o6JL + o6KL + o6LL)); + a6NL[c6NL] = ((o6HL*2.0) - (o6GL + o6IL + o6JL + o6KL + o6LL)); + a6OL[c6OL] = ((o6IL*2.0) - (o6GL + o6HL + o6JL + o6KL + o6LL)); + a6PL[c6PL] = ((o6JL*2.0) - (o6GL + o6HL + o6IL + o6KL + o6LL)); + a6QL[c6QL] = ((o6KL*2.0) - (o6GL + o6HL + o6IL + o6JL + o6LL)); + a6RL[c6RL] = ((o6LL*2.0) - (o6GL + o6HL + o6IL + o6JL + o6KL)); + + c6ML++; if (c6ML < 0 || c6ML > d6M) c6ML = 0; + c6NL++; if (c6NL < 0 || c6NL > d6N) c6NL = 0; + c6OL++; if (c6OL < 0 || c6OL > d6O) c6OL = 0; + c6PL++; if (c6PL < 0 || c6PL > d6P) c6PL = 0; + c6QL++; if (c6QL < 0 || c6QL > d6Q) c6QL = 0; + c6RL++; if (c6RL < 0 || c6RL > d6R) c6RL = 0; + + double o6ML = a6ML[c6ML-((c6ML > d6M)?d6M+1:0)]; + double o6NL = a6NL[c6NL-((c6NL > d6N)?d6N+1:0)]; + double o6OL = a6OL[c6OL-((c6OL > d6O)?d6O+1:0)]; + double o6PL = a6PL[c6PL-((c6PL > d6P)?d6P+1:0)]; + double o6QL = a6QL[c6QL-((c6QL > d6Q)?d6Q+1:0)]; + double o6RL = a6RL[c6RL-((c6RL > d6R)?d6R+1:0)]; + + a6DR[c6DR] = ((o6ER*2.0) - (o6KR + o6QR + o6WR + o6ZDR + o6ZJR)); + a6JR[c6JR] = ((o6KR*2.0) - (o6ER + o6QR + o6WR + o6ZDR + o6ZJR)); + a6PR[c6PR] = ((o6QR*2.0) - (o6ER + o6KR + o6WR + o6ZDR + o6ZJR)); + a6VR[c6VR] = ((o6WR*2.0) - (o6ER + o6KR + o6QR + o6ZDR + o6ZJR)); + a6ZCR[c6ZCR] = ((o6ZDR*2.0) - (o6ER + o6KR + o6QR + o6WR + o6ZJR)); + a6ZIR[c6ZIR] = ((o6ZJR*2.0) - (o6ER + o6KR + o6QR + o6WR + o6ZDR)); + + c6DR++; if (c6DR < 0 || c6DR > d6D) c6DR = 0; + c6JR++; if (c6JR < 0 || c6JR > d6J) c6JR = 0; + c6PR++; if (c6PR < 0 || c6PR > d6P) c6PR = 0; + c6VR++; if (c6VR < 0 || c6VR > d6V) c6VR = 0; + c6ZCR++; if (c6ZCR < 0 || c6ZCR > d6ZC) c6ZCR = 0; + c6ZIR++; if (c6ZIR < 0 || c6ZIR > d6ZI) c6ZIR = 0; + + double o6DR = a6DR[c6DR-((c6DR > d6D)?d6D+1:0)]; + double o6JR = a6JR[c6JR-((c6JR > d6J)?d6J+1:0)]; + double o6PR = a6PR[c6PR-((c6PR > d6P)?d6P+1:0)]; + double o6VR = a6VR[c6VR-((c6VR > d6V)?d6V+1:0)]; + double o6ZCR = a6ZCR[c6ZCR-((c6ZCR > d6ZC)?d6ZC+1:0)]; + double o6ZIR = a6ZIR[c6ZIR-((c6ZIR > d6ZI)?d6ZI+1:0)]; + + //-------- three + + a6SL[c6SL] = ((o6ML*2.0) - (o6NL + o6OL + o6PL + o6QL + o6RL)); + a6TL[c6TL] = ((o6NL*2.0) - (o6ML + o6OL + o6PL + o6QL + o6RL)); + a6UL[c6UL] = ((o6OL*2.0) - (o6ML + o6NL + o6PL + o6QL + o6RL)); + a6VL[c6VL] = ((o6PL*2.0) - (o6ML + o6NL + o6OL + o6QL + o6RL)); + a6WL[c6WL] = ((o6QL*2.0) - (o6ML + o6NL + o6OL + o6PL + o6RL)); + a6XL[c6XL] = ((o6RL*2.0) - (o6ML + o6NL + o6OL + o6PL + o6QL)); + + c6SL++; if (c6SL < 0 || c6SL > d6S) c6SL = 0; + c6TL++; if (c6TL < 0 || c6TL > d6T) c6TL = 0; + c6UL++; if (c6UL < 0 || c6UL > d6U) c6UL = 0; + c6VL++; if (c6VL < 0 || c6VL > d6V) c6VL = 0; + c6WL++; if (c6WL < 0 || c6WL > d6W) c6WL = 0; + c6XL++; if (c6XL < 0 || c6XL > d6X) c6XL = 0; + + double o6SL = a6SL[c6SL-((c6SL > d6S)?d6S+1:0)]; + double o6TL = a6TL[c6TL-((c6TL > d6T)?d6T+1:0)]; + double o6UL = a6UL[c6UL-((c6UL > d6U)?d6U+1:0)]; + double o6VL = a6VL[c6VL-((c6VL > d6V)?d6V+1:0)]; + double o6WL = a6WL[c6WL-((c6WL > d6W)?d6W+1:0)]; + double o6XL = a6XL[c6XL-((c6XL > d6X)?d6X+1:0)]; + + a6CR[c6CR] = ((o6DR*2.0) - (o6JR + o6PR + o6VR + o6ZCR + o6ZIR)); + a6IR[c6IR] = ((o6JR*2.0) - (o6DR + o6PR + o6VR + o6ZCR + o6ZIR)); + a6OR[c6OR] = ((o6PR*2.0) - (o6DR + o6JR + o6VR + o6ZCR + o6ZIR)); + a6UR[c6UR] = ((o6VR*2.0) - (o6DR + o6JR + o6PR + o6ZCR + o6ZIR)); + a6ZBR[c6ZBR] = ((o6ZCR*2.0) - (o6DR + o6JR + o6PR + o6VR + o6ZIR)); + a6ZHR[c6ZHR] = ((o6ZIR*2.0) - (o6DR + o6JR + o6PR + o6VR + o6ZCR)); + + c6CR++; if (c6CR < 0 || c6CR > d6C) c6CR = 0; + c6IR++; if (c6IR < 0 || c6IR > d6I) c6IR = 0; + c6OR++; if (c6OR < 0 || c6OR > d6O) c6OR = 0; + c6UR++; if (c6UR < 0 || c6UR > d6U) c6UR = 0; + c6ZBR++; if (c6ZBR < 0 || c6ZBR > d6ZB) c6ZBR = 0; + c6ZHR++; if (c6ZHR < 0 || c6ZHR > d6ZH) c6ZHR = 0; + + double o6CR = a6CR[c6CR-((c6CR > d6C)?d6C+1:0)]; + double o6IR = a6IR[c6IR-((c6IR > d6I)?d6I+1:0)]; + double o6OR = a6OR[c6OR-((c6OR > d6O)?d6O+1:0)]; + double o6UR = a6UR[c6UR-((c6UR > d6U)?d6U+1:0)]; + double o6ZBR = a6ZBR[c6ZBR-((c6ZBR > d6ZB)?d6ZB+1:0)]; + double o6ZHR = a6ZHR[c6ZHR-((c6ZHR > d6ZH)?d6ZH+1:0)]; + + //-------- four + + a6YL[c6YL] = ((o6SL*2.0) - (o6TL + o6UL + o6VL + o6WL + o6XL)); + a6ZAL[c6ZAL] = ((o6TL*2.0) - (o6SL + o6UL + o6VL + o6WL + o6XL)); + a6ZBL[c6ZBL] = ((o6UL*2.0) - (o6SL + o6TL + o6VL + o6WL + o6XL)); + a6ZCL[c6ZCL] = ((o6VL*2.0) - (o6SL + o6TL + o6UL + o6WL + o6XL)); + a6ZDL[c6ZDL] = ((o6WL*2.0) - (o6SL + o6TL + o6UL + o6VL + o6XL)); + a6ZEL[c6ZEL] = ((o6XL*2.0) - (o6SL + o6TL + o6UL + o6VL + o6WL)); + + c6YL++; if (c6YL < 0 || c6YL > d6Y) c6YL = 0; + c6ZAL++; if (c6ZAL < 0 || c6ZAL > d6ZA) c6ZAL = 0; + c6ZBL++; if (c6ZBL < 0 || c6ZBL > d6ZB) c6ZBL = 0; + c6ZCL++; if (c6ZCL < 0 || c6ZCL > d6ZC) c6ZCL = 0; + c6ZDL++; if (c6ZDL < 0 || c6ZDL > d6ZD) c6ZDL = 0; + c6ZEL++; if (c6ZEL < 0 || c6ZEL > d6ZE) c6ZEL = 0; + + double o6YL = a6YL[c6YL-((c6YL > d6Y)?d6Y+1:0)]; + double o6ZAL = a6ZAL[c6ZAL-((c6ZAL > d6ZA)?d6ZA+1:0)]; + double o6ZBL = a6ZBL[c6ZBL-((c6ZBL > d6ZB)?d6ZB+1:0)]; + double o6ZCL = a6ZCL[c6ZCL-((c6ZCL > d6ZC)?d6ZC+1:0)]; + double o6ZDL = a6ZDL[c6ZDL-((c6ZDL > d6ZD)?d6ZD+1:0)]; + double o6ZEL = a6ZEL[c6ZEL-((c6ZEL > d6ZE)?d6ZE+1:0)]; + + a6BR[c6BR] = ((o6CR*2.0) - (o6IR + o6OR + o6UR + o6ZBR + o6ZHR)); + a6HR[c6HR] = ((o6IR*2.0) - (o6CR + o6OR + o6UR + o6ZBR + o6ZHR)); + a6NR[c6NR] = ((o6OR*2.0) - (o6CR + o6IR + o6UR + o6ZBR + o6ZHR)); + a6TR[c6TR] = ((o6UR*2.0) - (o6CR + o6IR + o6OR + o6ZBR + o6ZHR)); + a6ZAR[c6ZAR] = ((o6ZBR*2.0) - (o6CR + o6IR + o6OR + o6UR + o6ZHR)); + a6ZGR[c6ZGR] = ((o6ZHR*2.0) - (o6CR + o6IR + o6OR + o6UR + o6ZBR)); + + c6BR++; if (c6BR < 0 || c6BR > d6B) c6BR = 0; + c6HR++; if (c6HR < 0 || c6HR > d6H) c6HR = 0; + c6NR++; if (c6NR < 0 || c6NR > d6N) c6NR = 0; + c6TR++; if (c6TR < 0 || c6TR > d6T) c6TR = 0; + c6ZBR++; if (c6ZBR < 0 || c6ZBR > d6ZB) c6ZBR = 0; + c6ZGR++; if (c6ZGR < 0 || c6ZGR > d6ZG) c6ZGR = 0; + + double o6BR = a6BR[c6BR-((c6BR > d6B)?d6B+1:0)]; + double o6HR = a6HR[c6HR-((c6HR > d6H)?d6H+1:0)]; + double o6NR = a6NR[c6NR-((c6NR > d6N)?d6N+1:0)]; + double o6TR = a6TR[c6TR-((c6TR > d6T)?d6T+1:0)]; + double o6ZAR = a6ZAR[c6ZAR-((c6ZAR > d6ZA)?d6ZA+1:0)]; + double o6ZGR = a6ZGR[c6ZGR-((c6ZGR > d6ZG)?d6ZG+1:0)]; + + //-------- five + + a6ZFL[c6ZFL] = ((o6YL*2.0) - (o6ZAL + o6ZBL + o6ZCL + o6ZDL + o6ZEL)); + a6ZGL[c6ZGL] = ((o6ZAL*2.0) - (o6YL + o6ZBL + o6ZCL + o6ZDL + o6ZEL)); + a6ZHL[c6ZHL] = ((o6ZBL*2.0) - (o6YL + o6ZAL + o6ZCL + o6ZDL + o6ZEL)); + a6ZIL[c6ZIL] = ((o6ZCL*2.0) - (o6YL + o6ZAL + o6ZBL + o6ZDL + o6ZEL)); + a6ZJL[c6ZJL] = ((o6ZDL*2.0) - (o6YL + o6ZAL + o6ZBL + o6ZCL + o6ZEL)); + a6ZKL[c6ZKL] = ((o6ZEL*2.0) - (o6YL + o6ZAL + o6ZBL + o6ZCL + o6ZDL)); + + c6ZFL++; if (c6ZFL < 0 || c6ZFL > d6ZF) c6ZFL = 0; + c6ZGL++; if (c6ZGL < 0 || c6ZGL > d6ZG) c6ZGL = 0; + c6ZHL++; if (c6ZHL < 0 || c6ZHL > d6ZH) c6ZHL = 0; + c6ZIL++; if (c6ZIL < 0 || c6ZIL > d6ZI) c6ZIL = 0; + c6ZJL++; if (c6ZJL < 0 || c6ZJL > d6ZJ) c6ZJL = 0; + c6ZKL++; if (c6ZKL < 0 || c6ZKL > d6ZK) c6ZKL = 0; + + double o6ZFL = a6ZFL[c6ZFL-((c6ZFL > d6ZF)?d6ZF+1:0)]; + double o6ZGL = a6ZGL[c6ZGL-((c6ZGL > d6ZG)?d6ZG+1:0)]; + double o6ZHL = a6ZHL[c6ZHL-((c6ZHL > d6ZH)?d6ZH+1:0)]; + double o6ZIL = a6ZIL[c6ZIL-((c6ZIL > d6ZI)?d6ZI+1:0)]; + double o6ZJL = a6ZJL[c6ZJL-((c6ZJL > d6ZJ)?d6ZJ+1:0)]; + double o6ZKL = a6ZKL[c6ZKL-((c6ZKL > d6ZK)?d6ZK+1:0)]; + + a6AR[c6AR] = ((o6BR*2.0) - (o6HR + o6NR + o6TR + o6ZAR + o6ZGR)); + a6GR[c6GR] = ((o6HR*2.0) - (o6BR + o6NR + o6TR + o6ZAR + o6ZGR)); + a6MR[c6MR] = ((o6NR*2.0) - (o6BR + o6HR + o6TR + o6ZAR + o6ZGR)); + a6SR[c6SR] = ((o6TR*2.0) - (o6BR + o6HR + o6NR + o6ZAR + o6ZGR)); + a6YR[c6YR] = ((o6ZAR*2.0) - (o6BR + o6HR + o6NR + o6TR + o6ZGR)); + a6ZFR[c6ZFR] = ((o6ZGR*2.0) - (o6BR + o6HR + o6NR + o6TR + o6ZAR)); + + c6AR++; if (c6AR < 0 || c6AR > d6A) c6AR = 0; + c6GR++; if (c6GR < 0 || c6GR > d6G) c6GR = 0; + c6MR++; if (c6MR < 0 || c6MR > d6M) c6MR = 0; + c6SR++; if (c6SR < 0 || c6SR > d6S) c6SR = 0; + c6YR++; if (c6YR < 0 || c6YR > d6Y) c6YR = 0; + c6ZFR++; if (c6ZFR < 0 || c6ZFR > d6ZF) c6ZFR = 0; + + double o6AR = a6AR[c6AR-((c6AR > d6A)?d6A+1:0)]; + double o6GR = a6GR[c6GR-((c6GR > d6G)?d6G+1:0)]; + double o6MR = a6MR[c6MR-((c6MR > d6M)?d6M+1:0)]; + double o6SR = a6SR[c6SR-((c6SR > d6S)?d6S+1:0)]; + double o6YR = a6YR[c6YR-((c6YR > d6Y)?d6Y+1:0)]; + double o6ZFR = a6ZFR[c6ZFR-((c6ZFR > d6ZF)?d6ZF+1:0)]; + + //-------- six + + f6AL = ((o6AR*2.0) - (o6GR + o6MR + o6SR + o6YR + o6ZFR)); + f6BL = ((o6GR*2.0) - (o6AR + o6MR + o6SR + o6YR + o6ZFR)); + f6CL = ((o6MR*2.0) - (o6AR + o6GR + o6SR + o6YR + o6ZFR)); + f6DL = ((o6SR*2.0) - (o6AR + o6GR + o6MR + o6YR + o6ZFR)); + f6EL = ((o6YR*2.0) - (o6AR + o6GR + o6MR + o6SR + o6ZFR)); + f6FL = ((o6ZFR*2.0) - (o6AR + o6GR + o6MR + o6SR + o6YR)); + + f6FR = ((o6ZFL*2.0) - (o6ZGL + o6ZHL + o6ZIL + o6ZJL + o6ZKL)); + f6LR = ((o6ZGL*2.0) - (o6ZFL + o6ZHL + o6ZIL + o6ZJL + o6ZKL)); + f6RR = ((o6ZHL*2.0) - (o6ZFL + o6ZGL + o6ZIL + o6ZJL + o6ZKL)); + f6XR = ((o6ZIL*2.0) - (o6ZFL + o6ZGL + o6ZHL + o6ZJL + o6ZKL)); + f6ZER = ((o6ZJL*2.0) - (o6ZFL + o6ZGL + o6ZHL + o6ZIL + o6ZKL)); + f6ZKR = ((o6ZKL*2.0) - (o6ZFL + o6ZGL + o6ZHL + o6ZIL + o6ZJL)); + + inputSampleL = (o6ZFL + o6ZGL + o6ZHL + o6ZIL + o6ZJL + o6ZKL)*0.001953125; + inputSampleR = (o6AR + o6GR + o6MR + o6SR + o6YR + o6ZFR)*0.001953125; + + f6AL = (f6AL+avg6L)*0.5; avg6L = f6AL; + f6FR = (f6FR+avg6R)*0.5; avg6R = f6FR; + //manipulating deep reverb tail for realism + + inputSampleL += (earlyReflectionL * earlyLoudness); + inputSampleR += (earlyReflectionR * earlyLoudness); + + bez[bez_CL] = bez[bez_BL]; + bez[bez_BL] = bez[bez_AL]; + bez[bez_AL] = inputSampleL; + bez[bez_SampL] = 0.0; + + bez[bez_CR] = bez[bez_BR]; + bez[bez_BR] = bez[bez_AR]; + bez[bez_AR] = inputSampleR; + bez[bez_SampR] = 0.0; + } + double X = bez[bez_cycle]*bezTrim; + double CBL = (bez[bez_CL]*(1.0-X))+(bez[bez_BL]*X); + double CBR = (bez[bez_CR]*(1.0-X))+(bez[bez_BR]*X); + double BAL = (bez[bez_BL]*(1.0-X))+(bez[bez_AL]*X); + double BAR = (bez[bez_BR]*(1.0-X))+(bez[bez_AR]*X); + double CBAL = (bez[bez_BL]+(CBL*(1.0-X))+(BAL*X))*-0.0625; + double CBAR = (bez[bez_BR]+(CBR*(1.0-X))+(BAR*X))*-0.0625; + inputSampleL = CBAL+bez[bez_AvgOutSampL]; bez[bez_AvgOutSampL] = CBAL; + inputSampleR = CBAR+bez[bez_AvgOutSampR]; bez[bez_AvgOutSampR] = CBAR; + + inputSampleL = (inputSampleL * wet)+(drySampleL * (1.0-wet)); + inputSampleR = (inputSampleR * wet)+(drySampleR * (1.0-wet)); + + //begin 64 bit stereo floating point dither + //int expon; frexp((double)inputSampleL, &expon); + fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5; + //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); + //frexp((double)inputSampleR, &expon); + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5; + //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); + //end 64 bit stereo floating point dither + + *out1 = inputSampleL; + *out2 = inputSampleR; + + in1++; + in2++; + out1++; + out2++; + } +} diff --git a/plugins/WinVST/kWoodRoom/vstplug.def b/plugins/WinVST/kWoodRoom/vstplug.def new file mode 100755 index 000000000..5bf499aa2 --- /dev/null +++ b/plugins/WinVST/kWoodRoom/vstplug.def @@ -0,0 +1,3 @@ +EXPORTS + VSTPluginMain + main=VSTPluginMain \ No newline at end of file diff --git a/what.txt b/what.txt index c6a18903a..a508332b3 100644 --- a/what.txt +++ b/what.txt @@ -368,7 +368,8 @@ SlewSonic combines SlewOnly with ultrasonic filtering to solo brightness.[coll=R Smooth can tame pointy sounds or make drums explode.[coll=Basic,Recommended,Latest] SmoothEQ is a sharp, accurate, transparent three-band filter.[coll=Basic,Recommended] SmoothEQ2 is a wildly intuitive vibe EQ with clarity and intensity.[coll=Basic,Recommended,Latest] -SoftClock is a groove-oriented time reference.[coll=Recommended,Latest] +SoftClock is a groove-oriented time reference.[coll=] +SoftClock2 is a groove-oriented time reference.[coll=Recommended,Latest] SoftGate is a gate that can mute hiss and smooth sample tails.[coll=Recommended,Latest] SpatializeDither is a high-performance clarity and accuracy dither.[coll=] Spiral is the new best smoothest distortion algorithm.[coll=]