diff --git a/Airwindopedia.txt b/Airwindopedia.txt index b4ffedc95..3be9b4285 100644 --- a/Airwindopedia.txt +++ b/Airwindopedia.txt @@ -29,7 +29,7 @@ Dynamics: Dynamics2, Pressure6, BeziComp, Pop3, Pop2, Pressure5, StoneFireComp, Effects: TakeCare, RingModulator, Dubly3, Dubly2, GalacticVibe, CloudCoat, Disintegrate, Fracture2, Dubly, Pafnuty2, PitchNasty, Trianglizer, ShortBuss, GuitarConditioner, Aura, TremoSquare, Tremolo, GlitchShifter, Gringer, Exciter, Energy2, Energy, Facet, Fracture, PowerSag2, PowerSag, Preponderant, Nikola -Filter: Suzan, SmoothEQ3, PearEQ, FatEQ, SmoothEQ2, BezEQ2, SmoothEQ, Parametric, Dattorro, Donut, Silken, Stonefire, AngleEQ, AngleFilter, Isolator3, BezEQ, Baxandall3, Baxandall2, Baxandall, Pear2, Capacitor2, Distance3, Pear, ResEQ2, SubTight, CStrip2, Weight, Isolator2, Kalman, PrimeFIR, Holt2, Holt, ToneSlant, AverMatrix, Average, MackEQ, Hull2, Hull, EQ, Capacitor, Isolator, TapeFat, ResEQ, Lowpass2, Highpass2, Distance, Distance2, Lowpass, Highpass +Filter: BezEQ3, Suzan, SmoothEQ3, PearEQ, FatEQ, SmoothEQ2, BezEQ2, SmoothEQ, Parametric, Dattorro, Donut, Silken, Stonefire, AngleEQ, AngleFilter, Isolator3, BezEQ, Baxandall3, Baxandall2, Baxandall, Pear2, Capacitor2, Distance3, Pear, ResEQ2, SubTight, CStrip2, Weight, Isolator2, Kalman, PrimeFIR, Holt2, Holt, ToneSlant, AverMatrix, Average, MackEQ, Hull2, Hull, EQ, Capacitor, Isolator, TapeFat, ResEQ, Lowpass2, Highpass2, Distance, Distance2, Lowpass, Highpass Lo-Fi: DeBez, HipCrush, Flutter2, DeRez3, Pockey2, CrunchyGrooveWear, GrooveWear, Pockey, Flutter, DeRez2, BitGlitter, DeRez, TapeBias, ChromeOxide, Cojones, Vibrato, Bite, Deckwrecka, DustBunny @@ -409,6 +409,27 @@ And then, perhaps a factor of how the bands are summed together, if you go to cu I have a feeling this is gonna be a real 'sleeper' plugin. It seems to do anything I ask while sounding like nothing was done. Those who are trying to mix by adding color upon color to their sounds, probably won't get this at all. But those of a simpler, rawer approach might really be pleasantly surprised. Even startled, in the best possible way. +############ BezEQ3 refines the concept into four vivid, unified bands. + +Persistence has its rewards… + +The idea was to see if BezEQ could be expanded into something I can use in a Console, for which I like having four bands and frequency sweep controls for each. But the delay lines built into BezEQ2 had to go, because I'd also want zero latency… and that would produce a phasier response, perhaps interactions between bands that would make it behave less normally. But normal's easy to come by, SmoothEQ2 exists, so what if we could get something worth having that's less normal? + +Enter BezEQ3. There's more improvements on getting it to filter smoothly, there's that needed 4th band, and the sweepable middle positions to the bands, but it's still very much BezEQ. It's refined that unusual tonality down, and is still using a filter topology where, set flat, it's literally perfectly transparent. + +And then it's perfectly transparent for any other setting, no matter how extreme… but how you GET to those settings is something else. + +Because removing the internal delay lines and making it be zero latency, derailed the filter bands in some peculiar way. If you boost a frequency, you're cutting something else. Everything's kind of interactive. It's not going to behave nicely if you think you can treat it like shelving filters with neat markings. No point EVEN marking it. This is not SmoothEQ2, which runs on DF1 biquad filters like a normal plugin. + +Instead, you voice it by using the bands and sweeps as suggestions, and you listen to what it's doing. Nothing will get a frequency band to separate out and act like a 'frequency band', and curiously nothing will get frequency bands to come forward or fall back (like FatEQ) either. It acts, more than any other EQ I've ever heard or made, like no EQ had been done, and like the sound was that way on recording. + +It's just that you can revoice things to a ridiculous degree and still have it sound like one coherent piece. + +This plugin will be very polarizing. You will likely love it or absolutely hate it. I suspect some of the other old-schoolers will like what they hear. I'm almost sure anybody with extensive modern-production expertise will be frustrated and confused. So very many people think in terms of taking all the sounds and decomposing them into distinct pieces and fitting them together like some mixing jigsaw puzzle. What are you going to do with an EQ that refuses to separate out anything, where you can never turn a sound into this band and that band and holes where the bad audio used to be? + +Meanwhile, the old school practitioners of mixing black arts are licking their chops and can't wait to turn a much smaller number of tracks into something huge and compelling… sneakily heightening rawness and energy, without ever seeming like they are EQing. It's more like voicing. Nothing needs to be aggressive, just voice everything until it hits right and sits in the right places, and the top-to-bottom, left-to-right, mixing jigsaw puzzle can stay in the box. With suitable use of compression and saturation you could use this to mix a whole thing in mono, sounding unequalized, and it'd still hit like a ton of bricks. + +BezEQ3 is currently on track to be the primary EQ in ConsoleX3. Many people will just get mad at it, most likely. I'm just gonna have to show people what this is about… but if something happens when you try this plugin, and it gets exactly the sound you crave and you want to use it on everything… well, you know who you are, and you're welcome :) ############ BeziComp is a radical compressor that eliminates aliasing! @@ -4590,6 +4611,8 @@ PurestConsole is like the dynamics encode/decode out of Console5, without the sl Channels: inputSample = sin(inputSample); Buss: inputSample = asin(inputSample); +Note that the Channel version of this wavefolds. It doesn't stop at +1.0 -1.0, it will wrap around further. The Buss version does clip at that because otherwise the whole thing would crash. + Without all the mojo and tone changing, that is IT. Anyone building a DAW can include this (channels post fader! And do not allow the asin() to see values that’ll break it, you can get NaN out of math functions if you break them!). PurestConsole has special properties, besides ‘being in the Console5 family so you can swap them out freely with any Console5 variation and get correct results’. Since the amplitude encode/decode is most important to the effect, stripping it down to THIS simple has an interesting property I demonstrate in the video. @@ -4611,6 +4634,8 @@ PurestConsole was always the ‘colorless, transparent’ take on any Console sy The end result is the same kind of analog warmth… except it’s a cool, airy clarity that resolves absolutely EVERYTHING. If you’re shooting for super-clear this is the one you want. And since Console mixes can drive submixes which then use another Console system to sum the stems to the 2-buss… you can sneak it in on your harmony vocal beds, or orchestral stems, or you could use Console7 for everything and then sum only the stems to the 2-buss using PurestConsole2. Instead of mixing and matching within the summing busses, design your mix structure by figuring out where you want analog fatness and slam, and where you want clarity and resolution. +The specific way I go about doing this grandiose thing has to do with filters, which is an odd thing to include in PurestConsole but it's got its place. This is one of those 'distributed filters' but it's only two stages of filtering: it's running a 0.618 resonance filter on the channels, and then a 1.618 resonance filter on the buss. These combine to become a flat filter… but the buss aspect is running inside Console, so the resonant peak it has is being applied to the summing before decoding. Hence, the 'airy clarity' stuff: we're literally applying expansion to just the highs of the track in summing without altering the tonal balance of the whole chain. + ############ PurestConsole3Buss is an alternate algorithm for minimalist Console. ############ PurestConsole3Channel is an alternate algorithm for minimalist Console. @@ -4628,6 +4653,10 @@ And it went from 5% CPU, with presumably 16x oversampling on all Console tracks And it sounds… different! You'll hear it. You surely can do it. It's got its own sound. Not an Airwindows sound, I think. Sort of smoothed off and glossy. In the video I demonstrate this output, versus non-oversampled PurestConsole3, versus ConsoleZero. And, having heard all the original sounds off my instruments and modular, I think ConsoleZero is rawer and more accurate (that's sort of the idea). But now, if you have a great love for oversampled nonlinear plugins, PurestConsole3 is my little gift, an Airwindows Console version that's designed to work with, not against, what you like. +I must add, however, that while this is interesting (a precursor to PurestSaturation and a lot of further work I did: this concept underlies my TapeHack algorithm), my little 'gift' is NOT safe under all circumstances. To make it oversample as high as possible, I stripped it of virtually any other code. That includes safety clipping. So if you wanted to use PurestConsole3 in total safety, you'd need to run a safety clipper like ClipOnly3 or ClipOnly2 (any version, really) because none of PurestConsole's algorithms clip. And where a normal 'sine' function will continue to do wavefolding and keep the output between -1 and 1 forever, this… very much won't. + +So be aware, PurestConsole3 is one of those experimental ones. So long as you keep the levels down, it's a very CPU-efficient way to fool with Console summing even at high oversamplings (or just use minimalist processing). But it can't handle excess gain. + Have fun, and I'll keep new stuff coming as well as I can! ############ PurestDrive is the magic saturation plugin of subtlety and French House tone. diff --git a/plugins/LinuxVST/CMakeLists.txt b/plugins/LinuxVST/CMakeLists.txt index 14eb1c9af..aad5dd9b4 100755 --- a/plugins/LinuxVST/CMakeLists.txt +++ b/plugins/LinuxVST/CMakeLists.txt @@ -289,6 +289,7 @@ add_airwindows_plugin(LeadAmp) add_airwindows_plugin(LeftoMono) add_airwindows_plugin(LilAmp) add_airwindows_plugin(Logical4) +add_airwindows_plugin(Longhand) add_airwindows_plugin(Loud) add_airwindows_plugin(Lowpass) add_airwindows_plugin(Lowpass2) diff --git a/plugins/LinuxVST/src/BezEQ3/BezEQ3Proc.cpp b/plugins/LinuxVST/src/BezEQ3/BezEQ3Proc.cpp index fea1c054c..84c3a79bf 100755 --- a/plugins/LinuxVST/src/BezEQ3/BezEQ3Proc.cpp +++ b/plugins/LinuxVST/src/BezEQ3/BezEQ3Proc.cpp @@ -114,10 +114,12 @@ void BezEQ3::processReplacing(float **inputs, float **outputs, VstInt32 sampleFr //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)); + inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-44l * 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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 32 bit stereo floating point dither *out1 = inputSampleL; @@ -237,10 +239,12 @@ void BezEQ3::processDoubleReplacing(double **inputs, double **outputs, VstInt32 //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)); + //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 64 bit stereo floating point dither *out1 = inputSampleL; diff --git a/plugins/LinuxVST/src/Density3/Density3Proc.cpp b/plugins/LinuxVST/src/Density3/Density3Proc.cpp index dfd071162..fbe26ea32 100755 --- a/plugins/LinuxVST/src/Density3/Density3Proc.cpp +++ b/plugins/LinuxVST/src/Density3/Density3Proc.cpp @@ -95,10 +95,12 @@ void Density3::processReplacing(float **inputs, float **outputs, VstInt32 sample //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)); + inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-44l * 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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 32 bit stereo floating point dither *out1 = inputSampleL; @@ -199,10 +201,12 @@ void Density3::processDoubleReplacing(double **inputs, double **outputs, VstInt3 //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)); + //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 64 bit stereo floating point dither *out1 = inputSampleL; diff --git a/plugins/LinuxVST/src/Dynamics3/Dynamics3.cpp b/plugins/LinuxVST/src/Dynamics3/Dynamics3.cpp index 11696659e..a0d0d3673 100755 --- a/plugins/LinuxVST/src/Dynamics3/Dynamics3.cpp +++ b/plugins/LinuxVST/src/Dynamics3/Dynamics3.cpp @@ -12,10 +12,10 @@ AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new D Dynamics3::Dynamics3(audioMasterCallback audioMaster) : AudioEffectX(audioMaster, kNumPrograms, kNumParameters) { - A = 0.999; + A = 1.0; B = 0.382; C = 0.618; - D = 0.618; + D = 1.0; for (int x = 0; x < bez_total; x++) bezComp[x] = 0.0; //Dynamics3 @@ -104,7 +104,7 @@ void Dynamics3::getParameterName(VstInt32 index, char *text) { case kParamA: vst_strncpy (text, "Thresh", kVstMaxParamStrLen); break; case kParamB: vst_strncpy (text, "Attack", kVstMaxParamStrLen); break; case kParamC: vst_strncpy (text, "Release", kVstMaxParamStrLen); break; - case kParamD: vst_strncpy (text, "Ratio", kVstMaxParamStrLen); break; + case kParamD: vst_strncpy (text, "Dry/Wet", kVstMaxParamStrLen); break; default: break; // unknown parameter, shouldn't happen! } //this is our labels for displaying in the VST host } diff --git a/plugins/LinuxVST/src/Dynamics3/Dynamics3Proc.cpp b/plugins/LinuxVST/src/Dynamics3/Dynamics3Proc.cpp index 745d60f23..bc5779ed5 100755 --- a/plugins/LinuxVST/src/Dynamics3/Dynamics3Proc.cpp +++ b/plugins/LinuxVST/src/Dynamics3/Dynamics3Proc.cpp @@ -19,15 +19,17 @@ void Dynamics3::processReplacing(float **inputs, float **outputs, VstInt32 sampl overallscale *= getSampleRate(); //begin Dynamics3 - double bezThresh = pow(A+0.6180339887498949,2.0)*2.0; + double bezThresh = pow(A+0.6180339887498949,2.0)*1.6180339887498949; double sqrThresh = sqrt(bezThresh); double bezRez = fmax(pow((1.0-B)*0.5,4.0)/overallscale,0.0001); bezRez /= (2.0/pow(overallscale,0.5-((overallscale-1.0)*0.0375))); - double bezTrim = 1.0-pow(bezRez*0.5,1.0/(bezRez*0.5)); + int stepped = 999999; if (bezRez > 0.000001) stepped = (int)(1.0/bezRez); + bezRez = 1.0 / stepped; + double bezTrim = 1.0-(bezRez*((double)stepped/(stepped+1.0))); double sloRez = fmax(pow((1.0-C)*0.5,4.0)/overallscale,0.00001); sloRez /= (2.0/pow(overallscale,0.5-((overallscale-1.0)*0.0375))); - double bezRatio = 1.0-pow(1.0-D,1.6180339887498949); - if (bezThresh > 5.236) bezRatio = 1.0; + double bezCompDry = pow(1.0-D,1.6180339887498949); + if (bezThresh > 4.236) bezCompDry = 0.0; //end Dynamics3 while (--sampleFrames >= 0) @@ -46,23 +48,25 @@ void Dynamics3::processReplacing(float **inputs, float **outputs, VstInt32 sampl bezComp[bez_min] = fmax(bezComp[bez_min]-sloRez,ctrl); bezComp[bez_Ctrl] += (bezComp[bez_min] * bezRez); bezComp[bez_cycle] += bezRez; - if (bezComp[bez_cycle] > 1.0) {bezComp[bez_cycle] -= 1.0; + if (bezComp[bez_cycle] > 1.0) {bezComp[bez_cycle] = 0.0; bezComp[bez_C] = bezComp[bez_B]; bezComp[bez_B] = bezComp[bez_A]; bezComp[bez_A] = bezComp[bez_Ctrl]; bezComp[bez_Ctrl] = 0.0;} double X = bezComp[bez_cycle]*bezTrim; bezComp[bez_comp] = bezComp[bez_B]+(bezComp[bez_C]*(1.0-X)*(1.0-X))+(bezComp[bez_B]*2.0*(1.0-X)*X)+(bezComp[bez_A]*X*X); - bezComp[bez_comp] = ((1.0-(fmin(bezComp[bez_comp],1.0))));// /bezCeiling - inputSampleL = (drySampleL*bezRatio)+(inputSampleL*(1.0-bezRatio)*bezComp[bez_comp]*bezThresh); - inputSampleR = (drySampleR*bezRatio)+(inputSampleR*(1.0-bezRatio)*bezComp[bez_comp]*bezThresh); + bezComp[bez_comp] = ((1.0-(fmin(bezComp[bez_comp],1.0)))); + inputSampleL = (drySampleL*bezCompDry*(1.0-(bezComp[bez_comp]*(1.0-bezCompDry))))+(inputSampleL*(1.0-bezCompDry)*bezComp[bez_comp]*bezThresh); + inputSampleR = (drySampleR*bezCompDry*(1.0-(bezComp[bez_comp]*(1.0-bezCompDry))))+(inputSampleR*(1.0-bezCompDry)*bezComp[bez_comp]*bezThresh); //end Dynamics3 //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)); + inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-44l * 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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 32 bit stereo floating point dither *out1 = inputSampleL; @@ -87,15 +91,17 @@ void Dynamics3::processDoubleReplacing(double **inputs, double **outputs, VstInt overallscale *= getSampleRate(); //begin Dynamics3 - double bezThresh = pow(A+0.6180339887498949,2.0)*2.0; + double bezThresh = pow(A+0.6180339887498949,2.0)*1.6180339887498949; double sqrThresh = sqrt(bezThresh); double bezRez = fmax(pow((1.0-B)*0.5,4.0)/overallscale,0.0001); bezRez /= (2.0/pow(overallscale,0.5-((overallscale-1.0)*0.0375))); - double bezTrim = 1.0-pow(bezRez*0.5,1.0/(bezRez*0.5)); + int stepped = 999999; if (bezRez > 0.000001) stepped = (int)(1.0/bezRez); + bezRez = 1.0 / stepped; + double bezTrim = 1.0-(bezRez*((double)stepped/(stepped+1.0))); double sloRez = fmax(pow((1.0-C)*0.5,4.0)/overallscale,0.00001); sloRez /= (2.0/pow(overallscale,0.5-((overallscale-1.0)*0.0375))); - double bezRatio = 1.0-pow(1.0-D,1.6180339887498949); - if (bezThresh > 5.236) bezRatio = 1.0; + double bezCompDry = pow(1.0-D,1.6180339887498949); + if (bezThresh > 4.236) bezCompDry = 0.0; //end Dynamics3 while (--sampleFrames >= 0) @@ -114,23 +120,25 @@ void Dynamics3::processDoubleReplacing(double **inputs, double **outputs, VstInt bezComp[bez_min] = fmax(bezComp[bez_min]-sloRez,ctrl); bezComp[bez_Ctrl] += (bezComp[bez_min] * bezRez); bezComp[bez_cycle] += bezRez; - if (bezComp[bez_cycle] > 1.0) {bezComp[bez_cycle] -= 1.0; + if (bezComp[bez_cycle] > 1.0) {bezComp[bez_cycle] = 0.0; bezComp[bez_C] = bezComp[bez_B]; bezComp[bez_B] = bezComp[bez_A]; bezComp[bez_A] = bezComp[bez_Ctrl]; bezComp[bez_Ctrl] = 0.0;} double X = bezComp[bez_cycle]*bezTrim; bezComp[bez_comp] = bezComp[bez_B]+(bezComp[bez_C]*(1.0-X)*(1.0-X))+(bezComp[bez_B]*2.0*(1.0-X)*X)+(bezComp[bez_A]*X*X); - bezComp[bez_comp] = ((1.0-(fmin(bezComp[bez_comp],1.0))));// /bezCeiling - inputSampleL = (drySampleL*bezRatio)+(inputSampleL*(1.0-bezRatio)*bezComp[bez_comp]*bezThresh); - inputSampleR = (drySampleR*bezRatio)+(inputSampleR*(1.0-bezRatio)*bezComp[bez_comp]*bezThresh); + bezComp[bez_comp] = ((1.0-(fmin(bezComp[bez_comp],1.0)))); + inputSampleL = (drySampleL*bezCompDry*(1.0-(bezComp[bez_comp]*(1.0-bezCompDry))))+(inputSampleL*(1.0-bezCompDry)*bezComp[bez_comp]*bezThresh); + inputSampleR = (drySampleR*bezCompDry*(1.0-(bezComp[bez_comp]*(1.0-bezCompDry))))+(inputSampleR*(1.0-bezCompDry)*bezComp[bez_comp]*bezThresh); //end Dynamics3 //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)); + //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 64 bit stereo floating point dither *out1 = inputSampleL; diff --git a/plugins/LinuxVST/src/LRConvolve3/LRConvolve3Proc.cpp b/plugins/LinuxVST/src/LRConvolve3/LRConvolve3Proc.cpp index 62f8d41f9..8822b8b8c 100755 --- a/plugins/LinuxVST/src/LRConvolve3/LRConvolve3Proc.cpp +++ b/plugins/LinuxVST/src/LRConvolve3/LRConvolve3Proc.cpp @@ -36,17 +36,19 @@ void LRConvolve3::processReplacing(float **inputs, float **outputs, VstInt32 sam } if (iirSample < modulate) iirSample = modulate; modulate = (iirSample*smooth)+(modulate*(1.0-smooth)); - if (carrier > 0.0) carrier = sqrt(carrier/modulate)*modulate; - if (carrier < 0.0) carrier = -sqrt(carrier/modulate)*modulate; + if (carrier > 0.0 && modulate > 0.0) carrier = sqrt(carrier/modulate)*modulate; + if (carrier < 0.0 && modulate > 0.0) carrier = -sqrt(-carrier/modulate)*modulate; inputSampleL = inputSampleR = carrier; //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)); + inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-44l * 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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 32 bit stereo floating point dither *out1 = inputSampleL; @@ -88,17 +90,19 @@ void LRConvolve3::processDoubleReplacing(double **inputs, double **outputs, VstI } if (iirSample < modulate) iirSample = modulate; modulate = (iirSample*smooth)+(modulate*(1.0-smooth)); - if (carrier > 0.0) carrier = sqrt(carrier/modulate)*modulate; - if (carrier < 0.0) carrier = -sqrt(carrier/modulate)*modulate; + if (carrier > 0.0 && modulate > 0.0) carrier = sqrt(carrier/modulate)*modulate; + if (carrier < 0.0 && modulate > 0.0) carrier = -sqrt(-carrier/modulate)*modulate; inputSampleL = inputSampleR = carrier; //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)); + //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 64 bit stereo floating point dither *out1 = inputSampleL; diff --git a/plugins/LinuxVST/src/Longhand/Longhand.cpp b/plugins/LinuxVST/src/Longhand/Longhand.cpp new file mode 100755 index 000000000..9e6542f9e --- /dev/null +++ b/plugins/LinuxVST/src/Longhand/Longhand.cpp @@ -0,0 +1,136 @@ +/* ======================================== + * Longhand - Longhand.h + * Copyright (c) airwindows, Airwindows uses the MIT license + * ======================================== */ + +#ifndef __Longhand_H +#include "Longhand.h" +#endif + +AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new Longhand(audioMaster);} + +Longhand::Longhand(audioMasterCallback audioMaster) : + AudioEffectX(audioMaster, kNumPrograms, kNumParameters) +{ + A = 0.445; + B = 1.0; + C = 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 +} + +Longhand::~Longhand() {} +VstInt32 Longhand::getVendorVersion () {return 1000;} +void Longhand::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);} +void Longhand::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 Longhand::getChunk (void** data, bool isPreset) +{ + float *chunkData = (float *)calloc(kNumParameters, sizeof(float)); + chunkData[0] = A; + chunkData[1] = B; + chunkData[2] = C; + /* 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 Longhand::setChunk (void* data, VstInt32 byteSize, bool isPreset) +{ + float *chunkData = (float *)data; + A = pinParameter(chunkData[0]); + B = pinParameter(chunkData[1]); + C = pinParameter(chunkData[2]); + /* 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 Longhand::setParameter(VstInt32 index, float value) { + switch (index) { + case kParamA: A = value; break; + case kParamB: B = value; break; + case kParamC: C = value; break; + default: throw; // unknown parameter, shouldn't happen! + } +} + +float Longhand::getParameter(VstInt32 index) { + switch (index) { + case kParamA: return A; break; + case kParamB: return B; break; + case kParamC: return C; 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 Longhand::getParameterName(VstInt32 index, char *text) { + switch (index) { + case kParamA: vst_strncpy (text, "Input", kVstMaxParamStrLen); break; + case kParamB: vst_strncpy (text, "Output", kVstMaxParamStrLen); break; + case kParamC: 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 Longhand::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; + default: break; // unknown parameter, shouldn't happen! + } //this displays the values and handles 'popups' where it's discrete choices +} + +void Longhand::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; + default: break; // unknown parameter, shouldn't happen! + } +} + +VstInt32 Longhand::canDo(char *text) +{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know + +bool Longhand::getEffectName(char* name) { + vst_strncpy(name, "Longhand", kVstMaxProductStrLen); return true; +} + +VstPlugCategory Longhand::getPlugCategory() {return kPlugCategEffect;} + +bool Longhand::getProductString(char* text) { + vst_strncpy (text, "airwindows Longhand", kVstMaxProductStrLen); return true; +} + +bool Longhand::getVendorString(char* text) { + vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true; +} diff --git a/plugins/LinuxVST/src/Longhand/Longhand.h b/plugins/LinuxVST/src/Longhand/Longhand.h new file mode 100755 index 000000000..56e996905 --- /dev/null +++ b/plugins/LinuxVST/src/Longhand/Longhand.h @@ -0,0 +1,66 @@ +/* ======================================== + * Longhand - Longhand.h + * Created 8/12/11 by SPIAdmin + * Copyright (c) Airwindows, Airwindows uses the MIT license + * ======================================== */ + +#ifndef __Longhand_H +#define __Longhand_H + +#ifndef __audioeffect__ +#include "audioeffectx.h" +#endif + +#include +#include +#include + +enum { + kParamA =0, + kParamB =1, + kParamC =2, + kNumParameters = 3 +}; // + +const int kNumPrograms = 0; +const int kNumInputs = 2; +const int kNumOutputs = 2; +const unsigned long kUniqueId = 'lonh'; //Change this to what the AU identity is! + +class Longhand : + public AudioEffectX +{ +public: + Longhand(audioMasterCallback audioMaster); + ~Longhand(); + 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; + + uint32_t fpdL; + uint32_t fpdR; + //default stuff +}; + +#endif diff --git a/plugins/LinuxVST/src/Longhand/LonghandProc.cpp b/plugins/LinuxVST/src/Longhand/LonghandProc.cpp new file mode 100755 index 000000000..68d8125de --- /dev/null +++ b/plugins/LinuxVST/src/Longhand/LonghandProc.cpp @@ -0,0 +1,181 @@ +/* ======================================== + * Longhand - Longhand.h + * Copyright (c) airwindows, Airwindows uses the MIT license + * ======================================== */ + +#ifndef __Longhand_H +#include "Longhand.h" +#endif + +void Longhand::processReplacing(float **inputs, float **outputs, VstInt32 sampleFrames) +{ + float* in1 = inputs[0]; + float* in2 = inputs[1]; + float* out1 = outputs[0]; + float* out2 = outputs[1]; + + double inputGain = pow(A,2.0)*7.72;//normalized input does not wavefold too far + double outputGain = B; + double wet = C; + + 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; + inputSampleL = fmin(fmax(inputSampleL,-1.0),1.0); + inputSampleR = fmin(fmax(inputSampleR,-1.0),1.0); + double drySampleL = inputSampleL; + double drySampleR = inputSampleR; + + if (inputGain != 1.0) { + inputSampleL *= inputGain; + inputSampleR *= inputGain; + drySampleL *= inputGain; + drySampleR *= inputGain; + } + + long double X = inputSampleL; X *= X; //long double for even + long double temp = inputSampleL * X; //the initial multiplies + inputSampleL -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleL += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleL -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleL += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleL -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleL += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleL -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleL += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleL -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleL += temp*0.00000000000000000001957294106339126; + X = inputSampleR; X *= X; //long double for even + temp = inputSampleR * X; //the initial multiplies + inputSampleR -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleR += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleR -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleR += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleR -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleR += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleR -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleR += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleR -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleR += temp*0.00000000000000000001957294106339126; + //retain mantissa of a long double increasing power function + //long double probably doesn't handle more than 36 digits or so + + if (outputGain != 1.0) { + inputSampleL *= outputGain; + inputSampleR *= outputGain; + } + + if (wet !=1.0) { + 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)) * 3.553e-44l * pow(2,expon+62)); + frexpf((float)inputSampleR, &expon); + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5; + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); + + *out1 = inputSampleL; + *out2 = inputSampleR; + + in1++; + in2++; + out1++; + out2++; + } +} + +void Longhand::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames) +{ + double* in1 = inputs[0]; + double* in2 = inputs[1]; + double* out1 = outputs[0]; + double* out2 = outputs[1]; + + double inputGain = pow(A,2.0)*7.72;//normalized input does not wavefold too far + double outputGain = B; + double wet = C; + + 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; + inputSampleL = fmin(fmax(inputSampleL,-1.0),1.0); + inputSampleR = fmin(fmax(inputSampleR,-1.0),1.0); + double drySampleL = inputSampleL; + double drySampleR = inputSampleR; + + if (inputGain != 1.0) { + inputSampleL *= inputGain; + inputSampleR *= inputGain; + drySampleL *= inputGain; + drySampleR *= inputGain; + } + + long double X = inputSampleL; X *= X; //long double for even + long double temp = inputSampleL * X; //the initial multiplies + inputSampleL -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleL += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleL -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleL += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleL -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleL += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleL -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleL += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleL -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleL += temp*0.00000000000000000001957294106339126; + X = inputSampleR; X *= X; //long double for even + temp = inputSampleR * X; //the initial multiplies + inputSampleR -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleR += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleR -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleR += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleR -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleR += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleR -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleR += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleR -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleR += temp*0.00000000000000000001957294106339126; + //retain mantissa of a long double increasing power function + //long double probably doesn't handle more than 36 digits or so + + if (outputGain != 1.0) { + inputSampleL *= outputGain; + inputSampleR *= outputGain; + } + + if (wet !=1.0) { + 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)) * 3.553e-44l * pow(2,expon+62)); + //frexp((double)inputSampleR, &expon); + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5; + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-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/PearLiteEQ/PearLiteEQProc.cpp b/plugins/LinuxVST/src/PearLiteEQ/PearLiteEQProc.cpp index 2564fbf88..f28940034 100755 --- a/plugins/LinuxVST/src/PearLiteEQ/PearLiteEQProc.cpp +++ b/plugins/LinuxVST/src/PearLiteEQ/PearLiteEQProc.cpp @@ -73,10 +73,12 @@ void PearLiteEQ::processReplacing(float **inputs, float **outputs, VstInt32 samp //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)); + inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-44l * 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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 32 bit stereo floating point dither *out1 = inputSampleL; @@ -155,10 +157,12 @@ void PearLiteEQ::processDoubleReplacing(double **inputs, double **outputs, VstIn //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)); + //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 64 bit stereo floating point dither *out1 = inputSampleL; diff --git a/plugins/LinuxVST/src/PunchyDeluxe/PunchyDeluxeProc.cpp b/plugins/LinuxVST/src/PunchyDeluxe/PunchyDeluxeProc.cpp index 0eef3c796..1634c6d18 100755 --- a/plugins/LinuxVST/src/PunchyDeluxe/PunchyDeluxeProc.cpp +++ b/plugins/LinuxVST/src/PunchyDeluxe/PunchyDeluxeProc.cpp @@ -77,16 +77,19 @@ void PunchyDeluxe::processReplacing(float **inputs, float **outputs, VstInt32 sa } inputSampleL += band; inputSampleL *= drive; - inputSampleL = fmin(fmax(inputSampleL,-2.032610446872596),2.032610446872596); - long double X = inputSampleL * inputSampleL; - long double temp = inputSampleL * X; - inputSampleL -= (temp*0.125); temp *= X; - inputSampleL += (temp*0.0078125); temp *= X; - inputSampleL -= (temp*0.000244140625); temp *= X; - inputSampleL += (temp*0.000003814697265625); temp *= X; - inputSampleL -= (temp*0.0000000298023223876953125); temp *= X; - //purestsaturation: sine, except all the corrections - //retain mantissa of a long double increasing power function + inputSampleL = fmin(fmax(inputSampleL,-M_PI_2),M_PI_2); + long double X = inputSampleL; X *= X; //long double for even + long double temp = inputSampleL * X; //the initial multiplies + inputSampleL -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleL += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleL -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleL += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleL -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleL += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleL -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleL += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleL -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleL += temp*0.00000000000000000001957294106339126; fr = (0.92/overallscale)+(overallscale*0.01); band = inputSampleR; inputSampleR = 0.0; @@ -99,16 +102,21 @@ void PunchyDeluxe::processReplacing(float **inputs, float **outputs, VstInt32 sa } inputSampleR += band; inputSampleR *= drive; - inputSampleR = fmin(fmax(inputSampleR,-2.032610446872596),2.032610446872596); - X = inputSampleR * inputSampleR; - temp = inputSampleR * X; - inputSampleR -= (temp*0.125); temp *= X; - inputSampleR += (temp*0.0078125); temp *= X; - inputSampleR -= (temp*0.000244140625); temp *= X; - inputSampleR += (temp*0.000003814697265625); temp *= X; - inputSampleR -= (temp*0.0000000298023223876953125); temp *= X; - //purestsaturation: sine, except all the corrections + inputSampleR = fmin(fmax(inputSampleR,-M_PI_2),M_PI_2); + X = inputSampleR; X *= X; //long double for even + temp = inputSampleR * X; //the initial multiplies + inputSampleR -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleR += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleR -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleR += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleR -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleR += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleR -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleR += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleR -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleR += temp*0.00000000000000000001957294106339126; //retain mantissa of a long double increasing power function + //long double probably doesn't handle more than 36 digits or so } if (pad < 1.0) { @@ -116,16 +124,45 @@ void PunchyDeluxe::processReplacing(float **inputs, float **outputs, VstInt32 sa inputSampleR *= pad; } - inputSampleL = sin(fmin(fmax(inputSampleL,-M_PI),M_PI)); - inputSampleR = sin(fmin(fmax(inputSampleR,-M_PI),M_PI)); + inputSampleL = fmin(fmax(inputSampleL,-M_PI_2),M_PI_2); + inputSampleR = fmin(fmax(inputSampleR,-M_PI_2),M_PI_2); + + long double X = inputSampleL; X *= X; //long double for even + long double temp = inputSampleL * X; //the initial multiplies + inputSampleL -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleL += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleL -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleL += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleL -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleL += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleL -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleL += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleL -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleL += temp*0.00000000000000000001957294106339126; + X = inputSampleR; X *= X; //long double for even + temp = inputSampleR * X; //the initial multiplies + inputSampleR -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleR += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleR -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleR += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleR -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleR += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleR -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleR += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleR -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleR += temp*0.00000000000000000001957294106339126; + //retain mantissa of a long double increasing power function + //long double probably doesn't handle more than 36 digits or so //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)); + inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-44l * 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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 32 bit stereo floating point dither *out1 = inputSampleL; @@ -208,16 +245,19 @@ void PunchyDeluxe::processDoubleReplacing(double **inputs, double **outputs, Vst } inputSampleL += band; inputSampleL *= drive; - inputSampleL = fmin(fmax(inputSampleL,-2.032610446872596),2.032610446872596); - long double X = inputSampleL * inputSampleL; - long double temp = inputSampleL * X; - inputSampleL -= (temp*0.125); temp *= X; - inputSampleL += (temp*0.0078125); temp *= X; - inputSampleL -= (temp*0.000244140625); temp *= X; - inputSampleL += (temp*0.000003814697265625); temp *= X; - inputSampleL -= (temp*0.0000000298023223876953125); temp *= X; - //purestsaturation: sine, except all the corrections - //retain mantissa of a long double increasing power function + inputSampleL = fmin(fmax(inputSampleL,-M_PI_2),M_PI_2); + long double X = inputSampleL; X *= X; //long double for even + long double temp = inputSampleL * X; //the initial multiplies + inputSampleL -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleL += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleL -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleL += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleL -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleL += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleL -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleL += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleL -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleL += temp*0.00000000000000000001957294106339126; fr = (0.92/overallscale)+(overallscale*0.01); band = inputSampleR; inputSampleR = 0.0; @@ -230,16 +270,21 @@ void PunchyDeluxe::processDoubleReplacing(double **inputs, double **outputs, Vst } inputSampleR += band; inputSampleR *= drive; - inputSampleR = fmin(fmax(inputSampleR,-2.032610446872596),2.032610446872596); - X = inputSampleR * inputSampleR; - temp = inputSampleR * X; - inputSampleR -= (temp*0.125); temp *= X; - inputSampleR += (temp*0.0078125); temp *= X; - inputSampleR -= (temp*0.000244140625); temp *= X; - inputSampleR += (temp*0.000003814697265625); temp *= X; - inputSampleR -= (temp*0.0000000298023223876953125); temp *= X; - //purestsaturation: sine, except all the corrections + inputSampleR = fmin(fmax(inputSampleR,-M_PI_2),M_PI_2); + X = inputSampleR; X *= X; //long double for even + temp = inputSampleR * X; //the initial multiplies + inputSampleR -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleR += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleR -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleR += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleR -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleR += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleR -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleR += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleR -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleR += temp*0.00000000000000000001957294106339126; //retain mantissa of a long double increasing power function + //long double probably doesn't handle more than 36 digits or so } if (pad < 1.0) { @@ -247,16 +292,45 @@ void PunchyDeluxe::processDoubleReplacing(double **inputs, double **outputs, Vst inputSampleR *= pad; } - inputSampleL = sin(fmin(fmax(inputSampleL,-M_PI),M_PI)); - inputSampleR = sin(fmin(fmax(inputSampleR,-M_PI),M_PI)); + inputSampleL = fmin(fmax(inputSampleL,-M_PI_2),M_PI_2); + inputSampleR = fmin(fmax(inputSampleR,-M_PI_2),M_PI_2); + + long double X = inputSampleL; X *= X; //long double for even + long double temp = inputSampleL * X; //the initial multiplies + inputSampleL -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleL += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleL -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleL += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleL -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleL += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleL -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleL += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleL -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleL += temp*0.00000000000000000001957294106339126; + X = inputSampleR; X *= X; //long double for even + temp = inputSampleR * X; //the initial multiplies + inputSampleR -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleR += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleR -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleR += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleR -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleR += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleR -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleR += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleR -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleR += temp*0.00000000000000000001957294106339126; + //retain mantissa of a long double increasing power function + //long double probably doesn't handle more than 36 digits or so //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)); + //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 64 bit stereo floating point dither *out1 = inputSampleL; diff --git a/plugins/LinuxVST/src/PunchyGuitar/PunchyGuitarProc.cpp b/plugins/LinuxVST/src/PunchyGuitar/PunchyGuitarProc.cpp index 1cffc39b1..5e3877c25 100755 --- a/plugins/LinuxVST/src/PunchyGuitar/PunchyGuitarProc.cpp +++ b/plugins/LinuxVST/src/PunchyGuitar/PunchyGuitarProc.cpp @@ -90,16 +90,19 @@ void PunchyGuitar::processReplacing(float **inputs, float **outputs, VstInt32 sa } inputSampleL += (band*angG[9]); inputSampleL *= drive; - inputSampleL = fmin(fmax(inputSampleL,-2.032610446872596),2.032610446872596); - long double X = inputSampleL * inputSampleL; - long double temp = inputSampleL * X; - inputSampleL -= (temp*0.125); temp *= X; - inputSampleL += (temp*0.0078125); temp *= X; - inputSampleL -= (temp*0.000244140625); temp *= X; - inputSampleL += (temp*0.000003814697265625); temp *= X; - inputSampleL -= (temp*0.0000000298023223876953125); temp *= X; - //purestsaturation: sine, except all the corrections - //retain mantissa of a long double increasing power function + inputSampleL = fmin(fmax(inputSampleL,-M_PI_2),M_PI_2); + long double X = inputSampleL; X *= X; //long double for even + long double temp = inputSampleL * X; //the initial multiplies + inputSampleL -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleL += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleL -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleL += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleL -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleL += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleL -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleL += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleL -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleL += temp*0.00000000000000000001957294106339126; } if (gaterollerL < 1.0) @@ -170,16 +173,21 @@ void PunchyGuitar::processReplacing(float **inputs, float **outputs, VstInt32 sa } inputSampleR += (band*angG[9]); inputSampleR *= drive; - inputSampleR = fmin(fmax(inputSampleR,-2.032610446872596),2.032610446872596); - long double X = inputSampleR * inputSampleR; - long double temp = inputSampleR * X; - inputSampleR -= (temp*0.125); temp *= X; - inputSampleR += (temp*0.0078125); temp *= X; - inputSampleR -= (temp*0.000244140625); temp *= X; - inputSampleR += (temp*0.000003814697265625); temp *= X; - inputSampleR -= (temp*0.0000000298023223876953125); temp *= X; - //purestsaturation: sine, except all the corrections + inputSampleR = fmin(fmax(inputSampleR,-M_PI_2),M_PI_2); + long double X = inputSampleR; X *= X; //long double for even + long double temp = inputSampleR * X; //the initial multiplies + inputSampleR -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleR += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleR -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleR += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleR -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleR += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleR -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleR += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleR -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleR += temp*0.00000000000000000001957294106339126; //retain mantissa of a long double increasing power function + //long double probably doesn't handle more than 36 digits or so } if (gaterollerR < 1.0) @@ -210,10 +218,12 @@ void PunchyGuitar::processReplacing(float **inputs, float **outputs, VstInt32 sa //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)); + inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-44l * 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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 32 bit stereo floating point dither *out1 = inputSampleL; @@ -309,16 +319,19 @@ void PunchyGuitar::processDoubleReplacing(double **inputs, double **outputs, Vst } inputSampleL += (band*angG[9]); inputSampleL *= drive; - inputSampleL = fmin(fmax(inputSampleL,-2.032610446872596),2.032610446872596); - long double X = inputSampleL * inputSampleL; - long double temp = inputSampleL * X; - inputSampleL -= (temp*0.125); temp *= X; - inputSampleL += (temp*0.0078125); temp *= X; - inputSampleL -= (temp*0.000244140625); temp *= X; - inputSampleL += (temp*0.000003814697265625); temp *= X; - inputSampleL -= (temp*0.0000000298023223876953125); temp *= X; - //purestsaturation: sine, except all the corrections - //retain mantissa of a long double increasing power function + inputSampleL = fmin(fmax(inputSampleL,-M_PI_2),M_PI_2); + long double X = inputSampleL; X *= X; //long double for even + long double temp = inputSampleL * X; //the initial multiplies + inputSampleL -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleL += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleL -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleL += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleL -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleL += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleL -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleL += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleL -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleL += temp*0.00000000000000000001957294106339126; } if (gaterollerL < 1.0) @@ -389,16 +402,21 @@ void PunchyGuitar::processDoubleReplacing(double **inputs, double **outputs, Vst } inputSampleR += (band*angG[9]); inputSampleR *= drive; - inputSampleR = fmin(fmax(inputSampleR,-2.032610446872596),2.032610446872596); - long double X = inputSampleR * inputSampleR; - long double temp = inputSampleR * X; - inputSampleR -= (temp*0.125); temp *= X; - inputSampleR += (temp*0.0078125); temp *= X; - inputSampleR -= (temp*0.000244140625); temp *= X; - inputSampleR += (temp*0.000003814697265625); temp *= X; - inputSampleR -= (temp*0.0000000298023223876953125); temp *= X; - //purestsaturation: sine, except all the corrections + inputSampleR = fmin(fmax(inputSampleR,-M_PI_2),M_PI_2); + long double X = inputSampleR; X *= X; //long double for even + long double temp = inputSampleR * X; //the initial multiplies + inputSampleR -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleR += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleR -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleR += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleR -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleR += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleR -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleR += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleR -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleR += temp*0.00000000000000000001957294106339126; //retain mantissa of a long double increasing power function + //long double probably doesn't handle more than 36 digits or so } if (gaterollerR < 1.0) @@ -429,10 +447,12 @@ void PunchyGuitar::processDoubleReplacing(double **inputs, double **outputs, Vst //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)); + //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 64 bit stereo floating point dither *out1 = inputSampleL; diff --git a/plugins/LinuxVST/src/SoftClock3/SoftClock3Proc.cpp b/plugins/LinuxVST/src/SoftClock3/SoftClock3Proc.cpp index 4efb92972..42f85ef3a 100755 --- a/plugins/LinuxVST/src/SoftClock3/SoftClock3Proc.cpp +++ b/plugins/LinuxVST/src/SoftClock3/SoftClock3Proc.cpp @@ -148,10 +148,12 @@ void SoftClock3::processReplacing(float **inputs, float **outputs, VstInt32 samp //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)); + inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-44l * 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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 32 bit stereo floating point dither *out1 = inputSampleL; @@ -305,10 +307,12 @@ void SoftClock3::processDoubleReplacing(double **inputs, double **outputs, VstIn //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)); + //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 64 bit stereo floating point dither *out1 = inputSampleL; diff --git a/plugins/LinuxVST/src/X2Buss/X2Buss.cpp b/plugins/LinuxVST/src/X2Buss/X2Buss.cpp index 59b50e4ab..24eac3277 100755 --- a/plugins/LinuxVST/src/X2Buss/X2Buss.cpp +++ b/plugins/LinuxVST/src/X2Buss/X2Buss.cpp @@ -47,15 +47,14 @@ X2Buss::X2Buss(audioMasterCallback audioMaster) : 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 + lastSampleL = 0.0; + wasPosClipL = false; + wasNegClipL = false; + lastSampleR = 0.0; + wasPosClipR = false; + wasNegClipR = false; + for (int x = 0; x < 17; x++) {intermediateL[x] = 0.0; intermediateR[x] = 0.0;} + for (int x = 0; x < 33; x++) {slewL[x] = 0.0; slewR[x] = 0.0;} inTrimA = 0.5; inTrimB = 0.5; diff --git a/plugins/LinuxVST/src/X2Buss/X2Buss.h b/plugins/LinuxVST/src/X2Buss/X2Buss.h index 2a192358b..77b2f2a51 100755 --- a/plugins/LinuxVST/src/X2Buss/X2Buss.h +++ b/plugins/LinuxVST/src/X2Buss/X2Buss.h @@ -126,22 +126,16 @@ private: 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 lastSampleL; + double intermediateL[18]; + double slewL[34]; + bool wasPosClipL; + bool wasNegClipL; + double lastSampleR; + double intermediateR[18]; + double slewR[34]; + bool wasPosClipR; + bool wasNegClipR; //Stereo ClipOnly3 double inTrimA; double inTrimB; diff --git a/plugins/LinuxVST/src/X2Buss/X2BussProc.cpp b/plugins/LinuxVST/src/X2Buss/X2BussProc.cpp index d203aadb5..405edde94 100755 --- a/plugins/LinuxVST/src/X2Buss/X2BussProc.cpp +++ b/plugins/LinuxVST/src/X2Buss/X2BussProc.cpp @@ -141,9 +141,15 @@ void X2Buss::processReplacing(float **inputs, float **outputs, VstInt32 sampleFr double bezCThresh = pow(1.0-I, 6.0) * 8.0; double bezRez = pow(1.0-I, 12.360679774997898) / overallscale; + bezRez = fmin(fmax(bezRez,0.00001),1.0); + int stepped = 999999; if (bezRez > 0.000001) stepped = (int)(1.0/bezRez); + bezRez = 1.0 / stepped; + double bezTrim = 1.0-(bezRez*((double)stepped/(stepped+1.0))); 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); + stepped = 999999; if (sloRez > 0.000001) stepped = (int)(1.0/sloRez); + sloRez = 1.0 / stepped; + double sloTrim = 1.0-(sloRez*((double)stepped/(stepped+1.0))); //Dynamics2 inTrimA = inTrimB; inTrimB = J*2.0; @@ -155,17 +161,7 @@ void X2Buss::processReplacing(float **inputs, float **outputs, VstInt32 sampleFr 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]; @@ -300,8 +296,8 @@ void X2Buss::processReplacing(float **inputs, float **outputs, VstInt32 sampleFr inputSampleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain); //fourth stage of three crossovers is the exponential filters - //SmoothEQ2 + //SmoothEQ2 if (bezCThresh > 0.0) { inputSampleL *= ((bezCThresh*0.5)+1.0); inputSampleR *= ((bezCThresh*0.5)+1.0); @@ -327,6 +323,7 @@ void X2Buss::processReplacing(float **inputs, float **outputs, VstInt32 sampleFr 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]; @@ -338,22 +335,21 @@ void X2Buss::processReplacing(float **inputs, float **outputs, VstInt32 sampleFr 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 X = bezCompF[bez_cycle]*bezTrim; + double CBAFL = bezCompF[bez_BL]+(bezCompF[bez_CL]*(1.0-X)*(1.0-X))+(bezCompF[bez_BL]*2.0*(1.0-X)*X)+(bezCompF[bez_AL]*X*X); + CBAFL *= 0.5; + X = bezCompS[bez_cycle]*sloTrim; + double CBASL = bezCompS[bez_BL]+(bezCompS[bez_CL]*(1.0-X)*(1.0-X))+(bezCompS[bez_BL]*2.0*(1.0-X)*X)+(bezCompS[bez_AL]*X*X); + CBASL *= 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; + X = bezCompF[bez_cycle]*bezTrim; + double CBAFR = bezCompF[bez_BR]+(bezCompF[bez_CR]*(1.0-X)*(1.0-X))+(bezCompF[bez_BR]*2.0*(1.0-X)*X)+(bezCompF[bez_AR]*X*X); + CBAFR *= 0.5; + X = bezCompS[bez_cycle]*sloTrim; + double CBASR = bezCompS[bez_BR]+(bezCompS[bez_CR]*(1.0-X)*(1.0-X))+(bezCompS[bez_BR]*2.0*(1.0-X)*X)+(bezCompS[bez_AR]*X*X); + CBASR *= 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)); @@ -361,93 +357,69 @@ void X2Buss::processReplacing(float **inputs, float **outputs, VstInt32 sampleFr 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 ClipOnly3 as a little, compressed chunk that can be dropped into code + double noise = 1.0-((double(fpdL)/UINT32_MAX)*0.076); + if (wasPosClipL == true) { //current will be over + if (inputSampleL0.9085097) {wasPosClipL=true;inputSampleL=(0.9085097*noise)+(lastSampleL*(1.0-noise));} + if (wasNegClipL == true) { //current will be -over + if (inputSampleL > lastSampleL) lastSampleL=(-0.9085097*noise)+(inputSampleL*(1.0-noise)); + else lastSampleL = -0.94; + } wasNegClipL = false; + if (inputSampleL<-0.9085097) {wasNegClipL=true;inputSampleL=(-0.9085097*noise)+(lastSampleL*(1.0-noise));} + slewL[spacing*2] = fabs(lastSampleL-inputSampleL); + for (int x = spacing*2; x > 0; x--) slewL[x-1] = slewL[x]; + intermediateL[spacing] = inputSampleL; inputSampleL = lastSampleL; + //latency is however many samples equals one 44.1k sample + for (int x = spacing; x > 0; x--) {intermediateL[x-1] = intermediateL[x];} lastSampleL = intermediateL[0]; + if (wasPosClipL || wasNegClipL) { + for (int x = spacing; x > 0; x--) lastSampleL += intermediateL[x]; + lastSampleL /= spacing; + } double finalSlew = 0.0; + for (int x = spacing*2; x >= 0; x--) if (finalSlew < slewL[x]) finalSlew = slewL[x]; + double postclip = 0.94 / (1.0+(finalSlew*1.3986013)); + if (inputSampleL > postclip) inputSampleL = postclip; if (inputSampleL < -postclip) inputSampleL = -postclip; - //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 + noise = 1.0-((double(fpdR)/UINT32_MAX)*0.076); + if (wasPosClipR == true) { //current will be over + if (inputSampleR0.9085097) {wasPosClipR=true;inputSampleR=(0.9085097*noise)+(lastSampleR*(1.0-noise));} + if (wasNegClipR == true) { //current will be -over + if (inputSampleR > lastSampleR) lastSampleR=(-0.9085097*noise)+(inputSampleR*(1.0-noise)); + else lastSampleR = -0.94; + } wasNegClipR = false; + if (inputSampleR<-0.9085097) {wasNegClipR=true;inputSampleR=(-0.9085097*noise)+(lastSampleR*(1.0-noise));} + slewR[spacing*2] = fabs(lastSampleR-inputSampleR); + for (int x = spacing*2; x > 0; x--) slewR[x-1] = slewR[x]; + intermediateR[spacing] = inputSampleR; inputSampleR = lastSampleR; + //latency is however many samples equals one 44.1k sample + for (int x = spacing; x > 0; x--) {intermediateR[x-1] = intermediateR[x];} lastSampleR = intermediateR[0]; + if (wasPosClipR || wasNegClipR) { + for (int x = spacing; x > 0; x--) lastSampleR += intermediateR[x]; + lastSampleR /= spacing; + } finalSlew = 0.0; + for (int x = spacing*2; x >= 0; x--) if (finalSlew < slewR[x]) finalSlew = slewR[x]; + postclip = 0.94 / (1.0+(finalSlew*1.3986013)); + if (inputSampleR > postclip) inputSampleR = postclip; if (inputSampleR < -postclip) inputSampleR = -postclip; + //end ClipOnly3 as a little, compressed chunk that can be dropped into code //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)); + inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-44l * 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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 32 bit stereo floating point dither *out1 = inputSampleL; @@ -594,9 +566,15 @@ void X2Buss::processDoubleReplacing(double **inputs, double **outputs, VstInt32 double bezCThresh = pow(1.0-I, 6.0) * 8.0; double bezRez = pow(1.0-I, 12.360679774997898) / overallscale; + bezRez = fmin(fmax(bezRez,0.00001),1.0); + int stepped = 999999; if (bezRez > 0.000001) stepped = (int)(1.0/bezRez); + bezRez = 1.0 / stepped; + double bezTrim = 1.0-(bezRez*((double)stepped/(stepped+1.0))); 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); + stepped = 999999; if (sloRez > 0.000001) stepped = (int)(1.0/sloRez); + sloRez = 1.0 / stepped; + double sloTrim = 1.0-(sloRez*((double)stepped/(stepped+1.0))); //Dynamics2 inTrimA = inTrimB; inTrimB = J*2.0; @@ -753,8 +731,8 @@ void X2Buss::processDoubleReplacing(double **inputs, double **outputs, VstInt32 inputSampleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain); //fourth stage of three crossovers is the exponential filters - //SmoothEQ2 + //SmoothEQ2 if (bezCThresh > 0.0) { inputSampleL *= ((bezCThresh*0.5)+1.0); inputSampleR *= ((bezCThresh*0.5)+1.0); @@ -780,6 +758,7 @@ void X2Buss::processDoubleReplacing(double **inputs, double **outputs, VstInt32 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]; @@ -791,22 +770,21 @@ void X2Buss::processDoubleReplacing(double **inputs, double **outputs, VstInt32 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 X = bezCompF[bez_cycle]*bezTrim; + double CBAFL = bezCompF[bez_BL]+(bezCompF[bez_CL]*(1.0-X)*(1.0-X))+(bezCompF[bez_BL]*2.0*(1.0-X)*X)+(bezCompF[bez_AL]*X*X); + CBAFL *= 0.5; + X = bezCompS[bez_cycle]*sloTrim; + double CBASL = bezCompS[bez_BL]+(bezCompS[bez_CL]*(1.0-X)*(1.0-X))+(bezCompS[bez_BL]*2.0*(1.0-X)*X)+(bezCompS[bez_AL]*X*X); + CBASL *= 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; + X = bezCompF[bez_cycle]*bezTrim; + double CBAFR = bezCompF[bez_BR]+(bezCompF[bez_CR]*(1.0-X)*(1.0-X))+(bezCompF[bez_BR]*2.0*(1.0-X)*X)+(bezCompF[bez_AR]*X*X); + CBAFR *= 0.5; + X = bezCompS[bez_cycle]*sloTrim; + double CBASR = bezCompS[bez_BR]+(bezCompS[bez_CR]*(1.0-X)*(1.0-X))+(bezCompS[bez_BR]*2.0*(1.0-X)*X)+(bezCompS[bez_AR]*X*X); + CBASR *= 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)); @@ -814,94 +792,69 @@ void X2Buss::processDoubleReplacing(double **inputs, double **outputs, VstInt32 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 ClipOnly3 as a little, compressed chunk that can be dropped into code + double noise = 1.0-((double(fpdL)/UINT32_MAX)*0.076); + if (wasPosClipL == true) { //current will be over + if (inputSampleL0.9085097) {wasPosClipL=true;inputSampleL=(0.9085097*noise)+(lastSampleL*(1.0-noise));} + if (wasNegClipL == true) { //current will be -over + if (inputSampleL > lastSampleL) lastSampleL=(-0.9085097*noise)+(inputSampleL*(1.0-noise)); + else lastSampleL = -0.94; + } wasNegClipL = false; + if (inputSampleL<-0.9085097) {wasNegClipL=true;inputSampleL=(-0.9085097*noise)+(lastSampleL*(1.0-noise));} + slewL[spacing*2] = fabs(lastSampleL-inputSampleL); + for (int x = spacing*2; x > 0; x--) slewL[x-1] = slewL[x]; + intermediateL[spacing] = inputSampleL; inputSampleL = lastSampleL; + //latency is however many samples equals one 44.1k sample + for (int x = spacing; x > 0; x--) {intermediateL[x-1] = intermediateL[x];} lastSampleL = intermediateL[0]; + if (wasPosClipL || wasNegClipL) { + for (int x = spacing; x > 0; x--) lastSampleL += intermediateL[x]; + lastSampleL /= spacing; + } double finalSlew = 0.0; + for (int x = spacing*2; x >= 0; x--) if (finalSlew < slewL[x]) finalSlew = slewL[x]; + double postclip = 0.94 / (1.0+(finalSlew*1.3986013)); + if (inputSampleL > postclip) inputSampleL = postclip; if (inputSampleL < -postclip) inputSampleL = -postclip; - //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 + noise = 1.0-((double(fpdR)/UINT32_MAX)*0.076); + if (wasPosClipR == true) { //current will be over + if (inputSampleR0.9085097) {wasPosClipR=true;inputSampleR=(0.9085097*noise)+(lastSampleR*(1.0-noise));} + if (wasNegClipR == true) { //current will be -over + if (inputSampleR > lastSampleR) lastSampleR=(-0.9085097*noise)+(inputSampleR*(1.0-noise)); + else lastSampleR = -0.94; + } wasNegClipR = false; + if (inputSampleR<-0.9085097) {wasNegClipR=true;inputSampleR=(-0.9085097*noise)+(lastSampleR*(1.0-noise));} + slewR[spacing*2] = fabs(lastSampleR-inputSampleR); + for (int x = spacing*2; x > 0; x--) slewR[x-1] = slewR[x]; + intermediateR[spacing] = inputSampleR; inputSampleR = lastSampleR; + //latency is however many samples equals one 44.1k sample + for (int x = spacing; x > 0; x--) {intermediateR[x-1] = intermediateR[x];} lastSampleR = intermediateR[0]; + if (wasPosClipR || wasNegClipR) { + for (int x = spacing; x > 0; x--) lastSampleR += intermediateR[x]; + lastSampleR /= spacing; + } finalSlew = 0.0; + for (int x = spacing*2; x >= 0; x--) if (finalSlew < slewR[x]) finalSlew = slewR[x]; + postclip = 0.94 / (1.0+(finalSlew*1.3986013)); + if (inputSampleR > postclip) inputSampleR = postclip; if (inputSampleR < -postclip) inputSampleR = -postclip; + //end ClipOnly3 as a little, compressed chunk that can be dropped into code //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)); + //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 64 bit stereo floating point dither *out1 = inputSampleL; diff --git a/plugins/LinuxVST/src/kRockstar/kRockstarProc.cpp b/plugins/LinuxVST/src/kRockstar/kRockstarProc.cpp index 6b1685f7b..8865a8836 100755 --- a/plugins/LinuxVST/src/kRockstar/kRockstarProc.cpp +++ b/plugins/LinuxVST/src/kRockstar/kRockstarProc.cpp @@ -551,10 +551,12 @@ void kRockstar::processReplacing(float **inputs, float **outputs, VstInt32 sampl //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)); + inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-44l * 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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 32 bit stereo floating point dither *out1 = inputSampleL; @@ -1111,10 +1113,12 @@ void kRockstar::processDoubleReplacing(double **inputs, double **outputs, VstInt //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)); + //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 64 bit stereo floating point dither *out1 = inputSampleL; diff --git a/plugins/MacSignedAU/BezEQ3/BezEQ3.cpp b/plugins/MacSignedAU/BezEQ3/BezEQ3.cpp index 15a351de7..8d6b94024 100755 --- a/plugins/MacSignedAU/BezEQ3/BezEQ3.cpp +++ b/plugins/MacSignedAU/BezEQ3/BezEQ3.cpp @@ -304,7 +304,7 @@ void BezEQ3::BezEQ3Kernel::Process( const Float32 *inSourceP, //begin 32 bit floating point dither int expon; frexpf((float)inputSampleL, &expon); fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; - inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62)); + inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 32 bit floating point dither *destP = inputSampleL; diff --git a/plugins/MacSignedAU/BezEQ3/BezEQ3.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacSignedAU/BezEQ3/BezEQ3.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate index 6e76a7132..fec9210fe 100644 Binary files a/plugins/MacSignedAU/BezEQ3/BezEQ3.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate and b/plugins/MacSignedAU/BezEQ3/BezEQ3.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/plugins/MacSignedAU/Density3/Density3.cpp b/plugins/MacSignedAU/Density3/Density3.cpp index a5ee17327..a733e5d61 100755 --- a/plugins/MacSignedAU/Density3/Density3.cpp +++ b/plugins/MacSignedAU/Density3/Density3.cpp @@ -246,7 +246,7 @@ void Density3::Density3Kernel::Process( const Float32 *inSourceP, //begin 32 bit floating point dither int expon; frexpf((float)inputSample, &expon); fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; - inputSample += ((double(fpd)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62)); + inputSample += ((double(fpd)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 32 bit floating point dither *destP = inputSample; diff --git a/plugins/MacSignedAU/Density3/Density3.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacSignedAU/Density3/Density3.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate index 91f798aba..a6ac7c2dc 100644 Binary files a/plugins/MacSignedAU/Density3/Density3.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate and b/plugins/MacSignedAU/Density3/Density3.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/plugins/MacSignedAU/Dynamics3/Dynamics3.cpp b/plugins/MacSignedAU/Dynamics3/Dynamics3.cpp index 2d12a208d..34de78525 100755 --- a/plugins/MacSignedAU/Dynamics3/Dynamics3.cpp +++ b/plugins/MacSignedAU/Dynamics3/Dynamics3.cpp @@ -223,15 +223,17 @@ OSStatus Dynamics3::ProcessBufferLists(AudioUnitRenderActionFlags & ioActionFla overallscale *= GetSampleRate(); //begin Dynamics3 - double bezThresh = pow(GetParameter( kParam_A )+0.6180339887498949,2.0)*2.0; + double bezThresh = pow(GetParameter( kParam_A )+0.6180339887498949,2.0)*1.6180339887498949; double sqrThresh = sqrt(bezThresh); double bezRez = fmax(pow((1.0-GetParameter( kParam_B ))*0.5,4.0)/overallscale,0.0001); bezRez /= (2.0/pow(overallscale,0.5-((overallscale-1.0)*0.0375))); - double bezTrim = 1.0-pow(bezRez*0.5,1.0/(bezRez*0.5)); + int stepped = 999999; if (bezRez > 0.000001) stepped = (int)(1.0/bezRez); + bezRez = 1.0 / stepped; + double bezTrim = 1.0-(bezRez*((double)stepped/(stepped+1.0))); double sloRez = fmax(pow((1.0-GetParameter( kParam_C ))*0.5,4.0)/overallscale,0.00001); sloRez /= (2.0/pow(overallscale,0.5-((overallscale-1.0)*0.0375))); - double bezRatio = 1.0-pow(1.0-GetParameter( kParam_D ),1.6180339887498949); - if (bezThresh > 5.236) bezRatio = 1.0; + double bezCompDry = pow(1.0-GetParameter( kParam_D ),1.6180339887498949); + if (bezThresh > 4.236) bezCompDry = 0.0; //end Dynamics3 while (nSampleFrames-- > 0) { @@ -249,25 +251,25 @@ OSStatus Dynamics3::ProcessBufferLists(AudioUnitRenderActionFlags & ioActionFla bezComp[bez_min] = fmax(bezComp[bez_min]-sloRez,ctrl); bezComp[bez_Ctrl] += (bezComp[bez_min] * bezRez); bezComp[bez_cycle] += bezRez; - if (bezComp[bez_cycle] > 1.0) {bezComp[bez_cycle] -= 1.0; + if (bezComp[bez_cycle] > 1.0) {bezComp[bez_cycle] = 0.0; bezComp[bez_C] = bezComp[bez_B]; bezComp[bez_B] = bezComp[bez_A]; bezComp[bez_A] = bezComp[bez_Ctrl]; bezComp[bez_Ctrl] = 0.0;} double X = bezComp[bez_cycle]*bezTrim; bezComp[bez_comp] = bezComp[bez_B]+(bezComp[bez_C]*(1.0-X)*(1.0-X))+(bezComp[bez_B]*2.0*(1.0-X)*X)+(bezComp[bez_A]*X*X); - bezComp[bez_comp] = ((1.0-(fmin(bezComp[bez_comp],1.0))));// /bezCeiling - inputSampleL = (drySampleL*bezRatio)+(inputSampleL*(1.0-bezRatio)*bezComp[bez_comp]*bezThresh); - inputSampleR = (drySampleR*bezRatio)+(inputSampleR*(1.0-bezRatio)*bezComp[bez_comp]*bezThresh); + bezComp[bez_comp] = ((1.0-(fmin(bezComp[bez_comp],1.0)))); + inputSampleL = (drySampleL*bezCompDry*(1.0-(bezComp[bez_comp]*(1.0-bezCompDry))))+(inputSampleL*(1.0-bezCompDry)*bezComp[bez_comp]*bezThresh); + inputSampleR = (drySampleR*bezCompDry*(1.0-(bezComp[bez_comp]*(1.0-bezCompDry))))+(inputSampleR*(1.0-bezCompDry)*bezComp[bez_comp]*bezThresh); //end Dynamics3 //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)); + inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); frexpf((float)inputSampleR, &expon); fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5; if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} - inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62)); + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 32 bit stereo floating point dither *outputL = inputSampleL; diff --git a/plugins/MacSignedAU/Dynamics3/Dynamics3.h b/plugins/MacSignedAU/Dynamics3/Dynamics3.h index 941e9131b..496960976 100755 --- a/plugins/MacSignedAU/Dynamics3/Dynamics3.h +++ b/plugins/MacSignedAU/Dynamics3/Dynamics3.h @@ -54,15 +54,15 @@ #pragma mark ____Dynamics3 Parameters // parameters -static const float kDefaultValue_ParamA = 0.999; +static const float kDefaultValue_ParamA = 1.0; static const float kDefaultValue_ParamB = 0.382; static const float kDefaultValue_ParamC = 0.618; -static const float kDefaultValue_ParamD = 0.618; +static const float kDefaultValue_ParamD = 1.0; static CFStringRef kParameterAName = CFSTR("Thresh"); static CFStringRef kParameterBName = CFSTR("Attack"); static CFStringRef kParameterCName = CFSTR("Release"); -static CFStringRef kParameterDName = CFSTR("Ratio"); +static CFStringRef kParameterDName = CFSTR("Dry/Wet"); enum { kParam_A =0, diff --git a/plugins/MacSignedAU/Dynamics3/Dynamics3.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacSignedAU/Dynamics3/Dynamics3.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate index 1d4c0a1bd..5d17b46df 100644 Binary files a/plugins/MacSignedAU/Dynamics3/Dynamics3.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate and b/plugins/MacSignedAU/Dynamics3/Dynamics3.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/plugins/MacSignedAU/Dynamics3Mono/Dynamics3Mono.cpp b/plugins/MacSignedAU/Dynamics3Mono/Dynamics3Mono.cpp index 3c6a43a2e..42f9d4eb8 100755 --- a/plugins/MacSignedAU/Dynamics3Mono/Dynamics3Mono.cpp +++ b/plugins/MacSignedAU/Dynamics3Mono/Dynamics3Mono.cpp @@ -205,15 +205,17 @@ void Dynamics3Mono::Dynamics3MonoKernel::Process( const Float32 *inSourceP, overallscale *= GetSampleRate(); //begin Dynamics3 - double bezThresh = pow(GetParameter( kParam_A )+0.6180339887498949,2.0)*2.0; + double bezThresh = pow(GetParameter( kParam_A )+0.6180339887498949,2.0)*1.6180339887498949; double sqrThresh = sqrt(bezThresh); double bezRez = fmax(pow((1.0-GetParameter( kParam_B ))*0.5,4.0)/overallscale,0.0001); bezRez /= (2.0/pow(overallscale,0.5-((overallscale-1.0)*0.0375))); - double bezTrim = 1.0-pow(bezRez*0.5,1.0/(bezRez*0.5)); + int stepped = 999999; if (bezRez > 0.000001) stepped = (int)(1.0/bezRez); + bezRez = 1.0 / stepped; + double bezTrim = 1.0-(bezRez*((double)stepped/(stepped+1.0))); double sloRez = fmax(pow((1.0-GetParameter( kParam_C ))*0.5,4.0)/overallscale,0.00001); sloRez /= (2.0/pow(overallscale,0.5-((overallscale-1.0)*0.0375))); - double bezRatio = 1.0-pow(1.0-GetParameter( kParam_D ),1.6180339887498949); - if (bezThresh > 5.236) bezRatio = 1.0; + double bezCompDry = pow(1.0-GetParameter( kParam_D ),1.6180339887498949); + if (bezThresh > 4.236) bezCompDry = 0.0; //end Dynamics3 while (nSampleFrames-- > 0) { @@ -227,19 +229,19 @@ void Dynamics3Mono::Dynamics3MonoKernel::Process( const Float32 *inSourceP, bezComp[bez_min] = fmax(bezComp[bez_min]-sloRez,ctrl); bezComp[bez_Ctrl] += (bezComp[bez_min] * bezRez); bezComp[bez_cycle] += bezRez; - if (bezComp[bez_cycle] > 1.0) {bezComp[bez_cycle] -= 1.0; + if (bezComp[bez_cycle] > 1.0) {bezComp[bez_cycle] = 0.0; bezComp[bez_C] = bezComp[bez_B]; bezComp[bez_B] = bezComp[bez_A]; bezComp[bez_A] = bezComp[bez_Ctrl]; bezComp[bez_Ctrl] = 0.0;} double X = bezComp[bez_cycle]*bezTrim; bezComp[bez_comp] = bezComp[bez_B]+(bezComp[bez_C]*(1.0-X)*(1.0-X))+(bezComp[bez_B]*2.0*(1.0-X)*X)+(bezComp[bez_A]*X*X); - bezComp[bez_comp] = ((1.0-(fmin(bezComp[bez_comp],1.0))));// /bezCeiling - inputSample = (drySample*bezRatio)+(inputSample*(1.0-bezRatio)*bezComp[bez_comp]*bezThresh); + bezComp[bez_comp] = ((1.0-(fmin(bezComp[bez_comp],1.0)))); + inputSample = (drySample*bezCompDry*(1.0-(bezComp[bez_comp]*(1.0-bezCompDry))))+(inputSample*(1.0-bezCompDry)*bezComp[bez_comp]*bezThresh); //end Dynamics3 //begin 32 bit floating point dither int expon; frexpf((float)inputSample, &expon); fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; - inputSample += ((double(fpd)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62)); + inputSample += ((double(fpd)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 32 bit floating point dither *destP = inputSample; diff --git a/plugins/MacSignedAU/Dynamics3Mono/Dynamics3Mono.h b/plugins/MacSignedAU/Dynamics3Mono/Dynamics3Mono.h index e40e24b8f..a28180cea 100755 --- a/plugins/MacSignedAU/Dynamics3Mono/Dynamics3Mono.h +++ b/plugins/MacSignedAU/Dynamics3Mono/Dynamics3Mono.h @@ -54,15 +54,15 @@ #pragma mark ____Dynamics3Mono Parameters // parameters -static const float kDefaultValue_ParamA = 0.999; +static const float kDefaultValue_ParamA = 1.0; static const float kDefaultValue_ParamB = 0.382; static const float kDefaultValue_ParamC = 0.618; -static const float kDefaultValue_ParamD = 0.618; +static const float kDefaultValue_ParamD = 1.0; static CFStringRef kParameterAName = CFSTR("Thresh"); static CFStringRef kParameterBName = CFSTR("Attack"); static CFStringRef kParameterCName = CFSTR("Release"); -static CFStringRef kParameterDName = CFSTR("Ratio"); +static CFStringRef kParameterDName = CFSTR("Dry/Wet"); enum { kParam_A =0, diff --git a/plugins/MacSignedAU/Dynamics3Mono/Dynamics3Mono.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacSignedAU/Dynamics3Mono/Dynamics3Mono.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate index 32f1e87d2..f91fb724e 100644 Binary files a/plugins/MacSignedAU/Dynamics3Mono/Dynamics3Mono.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate and b/plugins/MacSignedAU/Dynamics3Mono/Dynamics3Mono.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/plugins/MacSignedAU/LRConvolve3/LRConvolve3.cpp b/plugins/MacSignedAU/LRConvolve3/LRConvolve3.cpp index 73bd02254..88f7c9db0 100755 --- a/plugins/MacSignedAU/LRConvolve3/LRConvolve3.cpp +++ b/plugins/MacSignedAU/LRConvolve3/LRConvolve3.cpp @@ -221,17 +221,20 @@ OSStatus LRConvolve3::ProcessBufferLists(AudioUnitRenderActionFlags & ioActionF } if (iirSample < modulate) iirSample = modulate; modulate = (iirSample*smooth)+(modulate*(1.0-smooth)); - if (carrier > 0.0) carrier = sqrt(carrier/modulate)*modulate; - if (carrier < 0.0) carrier = -sqrt(carrier/modulate)*modulate; + + if (carrier > 0.0 && modulate > 0.0) carrier = sqrt(carrier/modulate)*modulate; + if (carrier < 0.0 && modulate > 0.0) carrier = -sqrt(-carrier/modulate)*modulate; inputSampleL = inputSampleR = carrier; //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)); + inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-44l * 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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 32 bit stereo floating point dither *outputL = inputSampleL; diff --git a/plugins/MacSignedAU/LRConvolve3/LRConvolve3.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacSignedAU/LRConvolve3/LRConvolve3.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate index e5396e580..683334786 100644 Binary files a/plugins/MacSignedAU/LRConvolve3/LRConvolve3.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate and b/plugins/MacSignedAU/LRConvolve3/LRConvolve3.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/plugins/MacSignedAU/Longhand/Info.plist b/plugins/MacSignedAU/Longhand/Info.plist new file mode 100755 index 000000000..0f28b611a --- /dev/null +++ b/plugins/MacSignedAU/Longhand/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 + lonh + 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 + DthX + CFBundleVersion + 1.0 + CSResourcesFileMapped + + + diff --git a/plugins/MacSignedAU/Longhand/Longhand.cpp b/plugins/MacSignedAU/Longhand/Longhand.cpp new file mode 100755 index 000000000..6c9d034e0 --- /dev/null +++ b/plugins/MacSignedAU/Longhand/Longhand.cpp @@ -0,0 +1,245 @@ +/* +* File: Longhand.cpp +* +* Version: 1.0 +* +* Created: 4/29/26 +* +* Copyright: Copyright © 2026 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. +* +*/ +/*============================================================================= + Longhand.cpp + +=============================================================================*/ +#include "Longhand.h" + + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +AUDIOCOMPONENT_ENTRY(AUBaseFactory, Longhand) + + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// Longhand::Longhand +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Longhand::Longhand(AudioUnit component) + : AUEffectBase(component) +{ + CreateElements(); + Globals()->UseIndexedParameters(kNumberOfParameters); + SetParameter(kParam_A, kDefaultValue_ParamA ); + SetParameter(kParam_B, kDefaultValue_ParamB ); + SetParameter(kParam_C, kDefaultValue_ParamC ); + +#if AU_DEBUG_DISPATCHER + mDebugDispatcher = new AUDebugDispatcher (this); +#endif + +} + + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// Longhand::GetParameterValueStrings +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +ComponentResult Longhand::GetParameterValueStrings(AudioUnitScope inScope, + AudioUnitParameterID inParameterID, + CFArrayRef * outStrings) +{ + + return kAudioUnitErr_InvalidProperty; +} + + + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// Longhand::GetParameterInfo +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +ComponentResult Longhand::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; + default: + result = kAudioUnitErr_InvalidParameter; + break; + } + } else { + result = kAudioUnitErr_InvalidParameter; + } + + + + return result; +} + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// Longhand::GetPropertyInfo +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +ComponentResult Longhand::GetPropertyInfo (AudioUnitPropertyID inID, + AudioUnitScope inScope, + AudioUnitElement inElement, + UInt32 & outDataSize, + Boolean & outWritable) +{ + return AUEffectBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable); +} + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// Longhand::GetProperty +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +ComponentResult Longhand::GetProperty( AudioUnitPropertyID inID, + AudioUnitScope inScope, + AudioUnitElement inElement, + void * outData ) +{ + return AUEffectBase::GetProperty (inID, inScope, inElement, outData); +} + +// Longhand::Initialize +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +ComponentResult Longhand::Initialize() +{ + ComponentResult result = AUEffectBase::Initialize(); + if (result == noErr) + Reset(kAudioUnitScope_Global, 0); + return result; +} + +#pragma mark ____LonghandEffectKernel + + + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// Longhand::LonghandKernel::Reset() +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +void Longhand::LonghandKernel::Reset() +{ + fpd = 1.0; while (fpd < 16386) fpd = rand()*UINT32_MAX; +} + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// Longhand::LonghandKernel::Process +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +void Longhand::LonghandKernel::Process( const Float32 *inSourceP, + Float32 *inDestP, + UInt32 inFramesToProcess, + UInt32 inNumChannels, + bool &ioSilence ) +{ + UInt32 nSampleFrames = inFramesToProcess; + const Float32 *sourceP = inSourceP; + Float32 *destP = inDestP; + double overallscale = 1.0; + overallscale /= 44100.0; + overallscale *= GetSampleRate(); + + double inputGain = pow(GetParameter( kParam_A ),2.0)*7.72;//normalized input does not wavefold too far + double outputGain = GetParameter( kParam_B ); + double wet = GetParameter( kParam_C ); + + while (nSampleFrames-- > 0) { + double inputSampleL = *sourceP; + if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpd * 1.18e-17; + inputSampleL = fmin(fmax(inputSampleL,-1.0),1.0); + double drySampleL = inputSampleL; + + if (inputGain != 1.0) { + inputSampleL *= inputGain; + drySampleL *= inputGain; + } + + long double X = inputSampleL; X *= X; //long double for even + long double temp = inputSampleL * X; //the initial multiplies + inputSampleL -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleL += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleL -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleL += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleL -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleL += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleL -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleL += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleL -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleL += temp*0.00000000000000000001957294106339126; + //retain mantissa of a long double increasing power function + //long double probably doesn't handle more than 36 digits or so + + if (outputGain != 1.0) { + inputSampleL *= outputGain; + } + + if (wet !=1.0) { + inputSampleL = (inputSampleL * wet) + (drySampleL * (1.0-wet)); + } + + //begin 32 bit floating point dither + int expon; frexpf((float)inputSampleL, &expon); + fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; + inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); + //end 32 bit floating point dither + + *destP = inputSampleL; + + sourceP += inNumChannels; destP += inNumChannels; + } +} + diff --git a/plugins/MacSignedAU/Longhand/Longhand.exp b/plugins/MacSignedAU/Longhand/Longhand.exp new file mode 100755 index 000000000..d2be6743f --- /dev/null +++ b/plugins/MacSignedAU/Longhand/Longhand.exp @@ -0,0 +1,2 @@ +_LonghandEntry +_LonghandFactory diff --git a/plugins/MacSignedAU/Longhand/Longhand.h b/plugins/MacSignedAU/Longhand/Longhand.h new file mode 100755 index 000000000..e2903d218 --- /dev/null +++ b/plugins/MacSignedAU/Longhand/Longhand.h @@ -0,0 +1,140 @@ +/* +* File: Longhand.h +* +* Version: 1.0 +* +* Created: 4/29/26 +* +* Copyright: Copyright © 2026 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 "LonghandVersion.h" + +#if AU_DEBUG_DISPATCHER + #include "AUDebugDispatcher.h" +#endif + + +#ifndef __Longhand_h__ +#define __Longhand_h__ + + +#pragma mark ____Longhand Parameters + +// parameters +static const float kDefaultValue_ParamA = 0.445; +static const float kDefaultValue_ParamB = 1.0; +static const float kDefaultValue_ParamC = 1.0; + +static CFStringRef kParameterAName = CFSTR("Input"); +static CFStringRef kParameterBName = CFSTR("Output"); +static CFStringRef kParameterCName = CFSTR("Dry/Wet"); + +enum { + kParam_A =0, + kParam_B =1, + kParam_C =2, + //Add your parameters here... + kNumberOfParameters=3 +}; + +#pragma mark ____Longhand +class Longhand : public AUEffectBase +{ +public: + Longhand(AudioUnit component); +#if AU_DEBUG_DISPATCHER + virtual ~Longhand () { delete mDebugDispatcher; } +#endif + + virtual AUKernelBase * NewKernel() { return new LonghandKernel(this); } + + virtual ComponentResult GetParameterValueStrings(AudioUnitScope inScope, + AudioUnitParameterID inParameterID, + CFArrayRef * outStrings); + + virtual ComponentResult GetParameterInfo(AudioUnitScope inScope, + AudioUnitParameterID inParameterID, + AudioUnitParameterInfo &outParameterInfo); + + virtual ComponentResult GetPropertyInfo(AudioUnitPropertyID inID, + AudioUnitScope inScope, + AudioUnitElement inElement, + UInt32 & outDataSize, + Boolean & outWritable ); + + virtual ComponentResult GetProperty(AudioUnitPropertyID inID, + AudioUnitScope inScope, + AudioUnitElement inElement, + void * outData); + + virtual ComponentResult Initialize(); + virtual bool SupportsTail () { return true; } + virtual Float64 GetTailTime() {return (1.0/GetSampleRate())*0.0;} //in SECONDS! gsr * a number = in samples + virtual Float64 GetLatency() {return (1.0/GetSampleRate())*0.0;} // in SECONDS! gsr * a number = in samples + + /*! @method Version */ + virtual ComponentResult Version() { return kLonghandVersion; } + + + +protected: + class LonghandKernel : public AUKernelBase // most of the real work happens here + { +public: + LonghandKernel(AUEffectBase *inAudioUnit ) + : AUKernelBase(inAudioUnit) + { + } + + // *Required* overides for the process method for this effect + // processes one channel of interleaved samples + virtual void Process( const Float32 *inSourceP, + Float32 *inDestP, + UInt32 inFramesToProcess, + UInt32 inNumChannels, + bool &ioSilence); + + virtual void Reset(); + + private: + uint32_t fpd; + }; +}; + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + +#endif \ No newline at end of file diff --git a/plugins/MacSignedAU/Longhand/Longhand.r b/plugins/MacSignedAU/Longhand/Longhand.r new file mode 100755 index 000000000..04b43b4db --- /dev/null +++ b/plugins/MacSignedAU/Longhand/Longhand.r @@ -0,0 +1,61 @@ +/* +* File: Longhand.r +* +* Version: 1.0 +* +* Created: 4/29/26 +* +* Copyright: Copyright © 2026 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 "LonghandVersion.h" + +// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description +#define kAudioUnitResID_Longhand 1000 + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Longhand~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +#define RES_ID kAudioUnitResID_Longhand +#define COMP_TYPE kAudioUnitType_Effect +#define COMP_SUBTYPE Longhand_COMP_SUBTYPE +#define COMP_MANUF Longhand_COMP_MANF + +#define VERSION kLonghandVersion +#define NAME "Airwindows: Longhand" +#define DESCRIPTION "Longhand AU" +#define ENTRY_POINT "LonghandEntry" + +#include "AUResources.r" \ No newline at end of file diff --git a/plugins/MacSignedAU/Longhand/Longhand.xcodeproj/christopherjohnson.mode1v3 b/plugins/MacSignedAU/Longhand/Longhand.xcodeproj/christopherjohnson.mode1v3 new file mode 100755 index 000000000..f301be9a2 --- /dev/null +++ b/plugins/MacSignedAU/Longhand/Longhand.xcodeproj/christopherjohnson.mode1v3 @@ -0,0 +1,1358 @@ + + + + + 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 + + 186 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 089C166AFE841209C02AAC07 + 08FB77ADFE841716C02AAC07 + 8BA05AEB0720742700365D66 + 1C37FBAC04509CD000000102 + 1C37FABC05509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 20 + 19 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {186, 445}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + + XCSharingToken + com.apple.Xcode.GFSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {203, 463}} + GroupTreeTableConfiguration + + MainColumn + 186 + + RubberWindowFrame + 203 321 788 504 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 203pt + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CE0B20306471E060097A5F4 + PBXProjectModuleLabel + MyNewFile14.java + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CE0B20406471E060097A5F4 + PBXProjectModuleLabel + MyNewFile14.java + + SplitCount + 1 + + StatusBarVisibility + + + GeometryConfiguration + + Frame + {{0, 0}, {580, 269}} + RubberWindowFrame + 203 321 788 504 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 269pt + + + ContentConfiguration + + PBXProjectModuleGUID + 1CE0B20506471E060097A5F4 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{0, 274}, {580, 189}} + RubberWindowFrame + 203 321 788 504 0 0 1440 878 + + Module + XCDetailModule + Proportion + 189pt + + + Proportion + 580pt + + + Name + Project + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + XCModuleDock + PBXNavigatorGroup + XCDetailModule + + TableOfContents + + 8B563EC9161B5E170067FE32 + 1CE0B1FE06471DED0097A5F4 + 8B563ECA161B5E170067FE32 + 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/StarterAU.xcodeproj + + WindowString + 203 321 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 + 8B563ECB161B5E170067FE32 + 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/Longhand/Longhand.xcodeproj/christopherjohnson.pbxuser b/plugins/MacSignedAU/Longhand/Longhand.xcodeproj/christopherjohnson.pbxuser new file mode 100755 index 000000000..8aea60317 --- /dev/null +++ b/plugins/MacSignedAU/Longhand/Longhand.xcodeproj/christopherjohnson.pbxuser @@ -0,0 +1,137 @@ +// !$*UTF8*$! +{ + 089C1669FE841209C02AAC07 /* Project object */ = { + activeBuildConfigurationName = Release; + activeTarget = 8D01CCC60486CAD60068D4B7 /* Longhand */; + codeSenseManager = 8BD3CCB9148830B20062E48C /* Code sense */; + perUserDictionary = { + PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = { + PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; + PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; + PBXFileTableDataSourceColumnWidthsKey = ( + 20, + 137, + 20, + 48, + 43, + 43, + 20, + ); + PBXFileTableDataSourceColumnsKey = ( + PBXFileDataSource_FiletypeID, + PBXFileDataSource_Filename_ColumnID, + PBXFileDataSource_Built_ColumnID, + PBXFileDataSource_ObjectSize_ColumnID, + PBXFileDataSource_Errors_ColumnID, + PBXFileDataSource_Warnings_ColumnID, + PBXFileDataSource_Target_ColumnID, + ); + }; + PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = { + PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; + PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; + PBXFileTableDataSourceColumnWidthsKey = ( + 20, + 252, + 60, + 20, + 48, + 43, + 43, + ); + PBXFileTableDataSourceColumnsKey = ( + PBXFileDataSource_FiletypeID, + PBXFileDataSource_Filename_ColumnID, + PBXTargetDataSource_PrimaryAttribute, + PBXFileDataSource_Built_ColumnID, + PBXFileDataSource_ObjectSize_ColumnID, + PBXFileDataSource_Errors_ColumnID, + PBXFileDataSource_Warnings_ColumnID, + ); + }; + PBXPerProjectTemplateStateSaveDate = 799701502; + PBXWorkspaceStateSaveDate = 799701502; + }; + perUserProjectItems = { + 8B85FE1C2FA3E39100F0F89A /* PlistBookmark */ = 8B85FE1C2FA3E39100F0F89A /* PlistBookmark */; + 8B9472762FAA7AA500C74D02 /* PBXTextBookmark */ = 8B9472762FAA7AA500C74D02 /* PBXTextBookmark */; + 8B9472772FAA7AA500C74D02 /* PBXTextBookmark */ = 8B9472772FAA7AA500C74D02 /* PBXTextBookmark */; + }; + sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */; + userBuildSettings = { + }; + }; + 8B85FE1C2FA3E39100F0F89A /* PlistBookmark */ = { + isa = PlistBookmark; + fRef = 8D01CCD10486CAD60068D4B7 /* Info.plist */; + fallbackIsa = PBXBookmark; + isK = 0; + kPath = ( + CFBundleName, + ); + name = /Users/christopherjohnson/Desktop/Longhand/Info.plist; + rLen = 0; + rLoc = 9223372036854775808; + }; + 8B9472762FAA7AA500C74D02 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 8BA05A660720730100365D66 /* Longhand.cpp */; + name = "Longhand.cpp: 237"; + rLen = 10; + rLoc = 10728; + rType = 0; + vrLen = 65; + vrLoc = 3; + }; + 8B9472772FAA7AA500C74D02 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 8BA05A660720730100365D66 /* Longhand.cpp */; + name = "Longhand.cpp: 237"; + rLen = 10; + rLoc = 10728; + rType = 0; + vrLen = 65; + vrLoc = 3; + }; + 8BA05A660720730100365D66 /* Longhand.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {948, 4536}}"; + sepNavSelRange = "{10728, 10}"; + sepNavVisRange = "{3, 65}"; + sepNavWindowFrame = "{{604, 38}, {836, 840}}"; + }; + }; + 8BA05A690720730100365D66 /* LonghandVersion.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1056, 1062}}"; + sepNavSelRange = "{2899, 0}"; + sepNavVisRange = "{861, 2101}"; + sepNavWindowFrame = "{{621, 38}, {1102, 840}}"; + }; + }; + 8BC6025B073B072D006C4272 /* Longhand.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1146, 2484}}"; + sepNavSelRange = "{2872, 0}"; + sepNavVisRange = "{2969, 1258}"; + sepNavWindowFrame = "{{821, 38}, {1102, 840}}"; + }; + }; + 8BD3CCB8148830B20062E48C /* Source Control */ = { + isa = PBXSourceControlManager; + fallbackIsa = XCSourceControlManager; + isSCMEnabled = 0; + scmConfiguration = { + repositoryNamesForRoots = { + "" = ""; + }; + }; + }; + 8BD3CCB9148830B20062E48C /* Code sense */ = { + isa = PBXCodeSenseManager; + indexTemplatePath = ""; + }; + 8D01CCC60486CAD60068D4B7 /* Longhand */ = { + activeExec = 0; + }; +} diff --git a/plugins/MacSignedAU/Longhand/Longhand.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacSignedAU/Longhand/Longhand.xcodeproj/christopherjohnson.perspectivev3 new file mode 100755 index 000000000..b2ffa45c3 --- /dev/null +++ b/plugins/MacSignedAU/Longhand/Longhand.xcodeproj/christopherjohnson.perspectivev3 @@ -0,0 +1,1507 @@ + + + + + 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 + 8BD7274F1D46E5A5000176F0 + 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 + + 841 + 841 + + 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 + + 288 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 089C166AFE841209C02AAC07 + 08FB77ADFE841716C02AAC07 + 8BA05A56072072A900365D66 + 089C167CFE841241C02AAC07 + 1C37FBAC04509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 4 + 2 + 1 + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {288, 447}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + + + GeometryConfiguration + + Frame + {{0, 0}, {305, 465}} + GroupTreeTableConfiguration + + MainColumn + 288 + + RubberWindowFrame + 734 319 686 506 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 305pt + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 8BD7274A1D46E5A5000176F0 + PBXProjectModuleLabel + Longhand.cpp + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 8BD7274B1D46E5A5000176F0 + PBXProjectModuleLabel + Longhand.cpp + _historyCapacity + 0 + bookmark + 8B9472772FAA7AA500C74D02 + history + + 8B85FE1C2FA3E39100F0F89A + 8B9472762FAA7AA500C74D02 + + + SplitCount + 1 + + StatusBarVisibility + + XCSharingToken + com.apple.Xcode.CommonNavigatorGroupSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {376, 138}} + RubberWindowFrame + 734 319 686 506 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 138pt + + + Proportion + 322pt + Tabs + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA23EDF0692099D00951B8B + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{10, 27}, {376, 295}} + RubberWindowFrame + 734 319 686 506 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}, {531, 352}} + + Module + PBXBuildResultsModule + + + + + Proportion + 376pt + + + Name + Project + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + XCModuleDock + PBXNavigatorGroup + XCDockableTabModule + XCDetailModule + PBXProjectFindModule + PBXCVSModule + PBXBuildResultsModule + + TableOfContents + + 8B9472782FAA7AA500C74D02 + 1CA23ED40692098700951B8B + 8B9472792FAA7AA500C74D02 + 8BD7274A1D46E5A5000176F0 + 8B94727A2FAA7AA500C74D02 + 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 + + Layout + + + ContentConfiguration + + PBXProjectModuleGUID + 1CCC7628064C1048000F2A68 + PBXProjectModuleLabel + Debugger Console + + GeometryConfiguration + + Frame + {{0, 0}, {810, 0}} + + Module + PBXDebugCLIModule + Proportion + 0pt + + + ContentConfiguration + + Debugger + + HorizontalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {395, 214}} + {{395, 0}, {415, 214}} + + + VerticalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {810, 214}} + {{0, 214}, {810, 227}} + + + + LauncherConfigVersion + 8 + PBXProjectModuleGUID + 1CCC7629064C1048000F2A68 + PBXProjectModuleLabel + Debug + + GeometryConfiguration + + DebugConsoleVisible + None + DebugConsoleWindowFrame + {{200, 200}, {500, 300}} + DebugSTDIOWindowFrame + {{200, 200}, {500, 300}} + Frame + {{0, 5}, {810, 441}} + PBXDebugSessionStackFrameViewKey + + DebugVariablesTableConfiguration + + Name + 120 + Value + 85 + Summary + 185 + + Frame + {{395, 0}, {415, 214}} + + + Module + PBXDebugSessionModule + Proportion + 441pt + + + Name + Debug + ServiceClasses + + XCModuleDock + PBXDebugCLIModule + PBXDebugSessionModule + PBXDebugProcessAndThreadModule + PBXDebugProcessViewModule + PBXDebugThreadViewModule + PBXDebugStackFrameViewModule + PBXNavigatorGroup + + TableOfContents + + 8BD727EC1D46ECF1000176F0 + 1CCC7628064C1048000F2A68 + 1CCC7629064C1048000F2A68 + 8BD727ED1D46ECF1000176F0 + 8BD727EE1D46ECF1000176F0 + 8BD727EF1D46ECF1000176F0 + 8BD727F01D46ECF1000176F0 + 8BD727E71D46ECD9000176F0 + + ToolbarConfigUserDefaultsMinorVersion + 2 + ToolbarConfiguration + xcode.toolbar.config.debugV3 + + + PerspectivesBarVisible + + ShelfIsVisible + + SourceDescription + file at '/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecification.xcperspec' + StatusbarIsVisible + + TimeStamp + 799701669.52437699 + ToolbarConfigUserDefaultsMinorVersion + 2 + ToolbarDisplayMode + 1 + ToolbarIsVisible + + ToolbarSizeMode + 2 + Type + Perspectives + UpdateMessage + + WindowJustification + 5 + WindowOrderList + + 8B94727B2FAA7AA500C74D02 + /Users/christopherjohnson/Desktop/airwindows/plugins/MacAU/Longhand/Longhand.xcodeproj + + WindowString + 734 319 686 506 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/Longhand/Longhand.xcodeproj/project.pbxproj b/plugins/MacSignedAU/Longhand/Longhand.xcodeproj/project.pbxproj new file mode 100755 index 000000000..703cf0862 --- /dev/null +++ b/plugins/MacSignedAU/Longhand/Longhand.xcodeproj/project.pbxproj @@ -0,0 +1,965 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 8BA05A6B0720730100365D66 /* Longhand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* Longhand.cpp */; }; + 8BA05A6E0720730100365D66 /* LonghandVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* LonghandVersion.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 /* Longhand.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* Longhand.h */; }; + 8BD887C42FAC0EDE0045683F /* CAExtAudioFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD8873C2FAC0EDE0045683F /* CAExtAudioFile.h */; }; + 8BD887C52FAC0EDE0045683F /* CACFMachPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD8873D2FAC0EDE0045683F /* CACFMachPort.h */; }; + 8BD887C62FAC0EDE0045683F /* CABool.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD8873E2FAC0EDE0045683F /* CABool.h */; }; + 8BD887C72FAC0EDE0045683F /* CAComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD8873F2FAC0EDE0045683F /* CAComponent.cpp */; }; + 8BD887C82FAC0EDE0045683F /* CADebugger.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887402FAC0EDE0045683F /* CADebugger.h */; }; + 8BD887C92FAC0EDE0045683F /* CACFNumber.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD887412FAC0EDE0045683F /* CACFNumber.cpp */; }; + 8BD887CA2FAC0EDE0045683F /* CAGuard.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887422FAC0EDE0045683F /* CAGuard.h */; }; + 8BD887CB2FAC0EDE0045683F /* CAAtomic.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887432FAC0EDE0045683F /* CAAtomic.h */; }; + 8BD887CC2FAC0EDE0045683F /* CAStreamBasicDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887442FAC0EDE0045683F /* CAStreamBasicDescription.h */; }; + 8BD887CD2FAC0EDE0045683F /* CACFObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887452FAC0EDE0045683F /* CACFObject.h */; }; + 8BD887CE2FAC0EDE0045683F /* CAStreamRangedDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887462FAC0EDE0045683F /* CAStreamRangedDescription.h */; }; + 8BD887CF2FAC0EDE0045683F /* CATokenMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887472FAC0EDE0045683F /* CATokenMap.h */; }; + 8BD887D02FAC0EDE0045683F /* CAComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887482FAC0EDE0045683F /* CAComponent.h */; }; + 8BD887D12FAC0EDE0045683F /* CAAudioBufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887492FAC0EDE0045683F /* CAAudioBufferList.h */; }; + 8BD887D22FAC0EDE0045683F /* CAAudioUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD8874A2FAC0EDE0045683F /* CAAudioUnit.h */; }; + 8BD887D32FAC0EDE0045683F /* CAAUParameter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD8874B2FAC0EDE0045683F /* CAAUParameter.h */; }; + 8BD887D42FAC0EDE0045683F /* CAException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD8874C2FAC0EDE0045683F /* CAException.h */; }; + 8BD887D52FAC0EDE0045683F /* CAAUProcessor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD8874D2FAC0EDE0045683F /* CAAUProcessor.cpp */; }; + 8BD887D62FAC0EDE0045683F /* CAAUProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD8874E2FAC0EDE0045683F /* CAAUProcessor.h */; }; + 8BD887D72FAC0EDE0045683F /* CAProcess.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD8874F2FAC0EDE0045683F /* CAProcess.h */; }; + 8BD887D82FAC0EDE0045683F /* CACFDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887502FAC0EDE0045683F /* CACFDictionary.h */; }; + 8BD887D92FAC0EDE0045683F /* CAPThread.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887512FAC0EDE0045683F /* CAPThread.h */; }; + 8BD887DA2FAC0EDE0045683F /* CAAUParameter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD887522FAC0EDE0045683F /* CAAUParameter.cpp */; }; + 8BD887DB2FAC0EDE0045683F /* CAAudioTimeStamp.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887532FAC0EDE0045683F /* CAAudioTimeStamp.h */; }; + 8BD887DC2FAC0EDE0045683F /* CAFilePathUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD887542FAC0EDE0045683F /* CAFilePathUtils.cpp */; }; + 8BD887DD2FAC0EDE0045683F /* CAAudioValueRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887552FAC0EDE0045683F /* CAAudioValueRange.h */; }; + 8BD887DE2FAC0EDE0045683F /* CAVectorUnitTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887562FAC0EDE0045683F /* CAVectorUnitTypes.h */; }; + 8BD887DF2FAC0EDE0045683F /* CAAudioChannelLayoutObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD887572FAC0EDE0045683F /* CAAudioChannelLayoutObject.cpp */; }; + 8BD887E02FAC0EDE0045683F /* CAGuard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD887582FAC0EDE0045683F /* CAGuard.cpp */; }; + 8BD887E12FAC0EDE0045683F /* CACFNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887592FAC0EDE0045683F /* CACFNumber.h */; }; + 8BD887E22FAC0EDE0045683F /* CACFDistributedNotification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD8875A2FAC0EDE0045683F /* CACFDistributedNotification.cpp */; }; + 8BD887E32FAC0EDE0045683F /* CACFString.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD8875B2FAC0EDE0045683F /* CACFString.h */; }; + 8BD887E42FAC0EDE0045683F /* CAAUMIDIMapManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD8875C2FAC0EDE0045683F /* CAAUMIDIMapManager.cpp */; }; + 8BD887E52FAC0EDE0045683F /* CAComponentDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD8875D2FAC0EDE0045683F /* CAComponentDescription.cpp */; }; + 8BD887E62FAC0EDE0045683F /* CAHostTimeBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD8875E2FAC0EDE0045683F /* CAHostTimeBase.h */; }; + 8BD887E72FAC0EDE0045683F /* CADebugMacros.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD8875F2FAC0EDE0045683F /* CADebugMacros.cpp */; }; + 8BD887E82FAC0EDE0045683F /* CAAudioFileFormats.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887602FAC0EDE0045683F /* CAAudioFileFormats.h */; }; + 8BD887E92FAC0EDE0045683F /* CAAUMIDIMapManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887612FAC0EDE0045683F /* CAAUMIDIMapManager.h */; }; + 8BD887EA2FAC0EDE0045683F /* CACFDictionary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD887622FAC0EDE0045683F /* CACFDictionary.cpp */; }; + 8BD887EB2FAC0EDE0045683F /* CAMutex.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887632FAC0EDE0045683F /* CAMutex.h */; }; + 8BD887EC2FAC0EDE0045683F /* CACFString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD887642FAC0EDE0045683F /* CACFString.cpp */; }; + 8BD887ED2FAC0EDE0045683F /* CASettingsStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887652FAC0EDE0045683F /* CASettingsStorage.h */; }; + 8BD887EE2FAC0EDE0045683F /* CADebugPrintf.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887662FAC0EDE0045683F /* CADebugPrintf.h */; }; + 8BD887EF2FAC0EDE0045683F /* CAXException.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD887672FAC0EDE0045683F /* CAXException.cpp */; }; + 8BD887F02FAC0EDE0045683F /* CAAUMIDIMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887682FAC0EDE0045683F /* CAAUMIDIMap.h */; }; + 8BD887F12FAC0EDE0045683F /* AUParamInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887692FAC0EDE0045683F /* AUParamInfo.h */; }; + 8BD887F22FAC0EDE0045683F /* CABitOperations.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD8876A2FAC0EDE0045683F /* CABitOperations.h */; }; + 8BD887F32FAC0EDE0045683F /* CACFPreferences.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD8876B2FAC0EDE0045683F /* CACFPreferences.cpp */; }; + 8BD887F42FAC0EDE0045683F /* CABundleLocker.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD8876C2FAC0EDE0045683F /* CABundleLocker.h */; }; + 8BD887F52FAC0EDE0045683F /* CAPropertyAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD8876D2FAC0EDE0045683F /* CAPropertyAddress.h */; }; + 8BD887F62FAC0EDE0045683F /* CAXException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD8876E2FAC0EDE0045683F /* CAXException.h */; }; + 8BD887F72FAC0EDE0045683F /* CAAudioChannelLayout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD8876F2FAC0EDE0045683F /* CAAudioChannelLayout.cpp */; }; + 8BD887F82FAC0EDE0045683F /* CAThreadSafeList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887702FAC0EDE0045683F /* CAThreadSafeList.h */; }; + 8BD887F92FAC0EDE0045683F /* CAAudioUnitOutputCapturer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887712FAC0EDE0045683F /* CAAudioUnitOutputCapturer.h */; }; + 8BD887FA2FAC0EDE0045683F /* AUParamInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD887722FAC0EDE0045683F /* AUParamInfo.cpp */; }; + 8BD887FB2FAC0EDE0045683F /* CASharedLibrary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD887732FAC0EDE0045683F /* CASharedLibrary.cpp */; }; + 8BD887FC2FAC0EDE0045683F /* CAAUMIDIMap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD887742FAC0EDE0045683F /* CAAUMIDIMap.cpp */; }; + 8BD887FD2FAC0EDE0045683F /* CALogMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887752FAC0EDE0045683F /* CALogMacros.h */; }; + 8BD887FE2FAC0EDE0045683F /* CACFMessagePort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD887762FAC0EDE0045683F /* CACFMessagePort.cpp */; }; + 8BD887FF2FAC0EDE0045683F /* CARingBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887772FAC0EDE0045683F /* CARingBuffer.h */; }; + 8BD888002FAC0EDE0045683F /* AUOutputBL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD887782FAC0EDE0045683F /* AUOutputBL.cpp */; }; + 8BD888012FAC0EDE0045683F /* CABufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887792FAC0EDE0045683F /* CABufferList.h */; }; + 8BD888022FAC0EDE0045683F /* CASharedLibrary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD8877A2FAC0EDE0045683F /* CASharedLibrary.h */; }; + 8BD888032FAC0EDE0045683F /* CACFData.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD8877B2FAC0EDE0045683F /* CACFData.h */; }; + 8BD888042FAC0EDE0045683F /* CAStreamRangedDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD8877C2FAC0EDE0045683F /* CAStreamRangedDescription.cpp */; }; + 8BD888052FAC0EDE0045683F /* CAPThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD8877D2FAC0EDE0045683F /* CAPThread.cpp */; }; + 8BD888062FAC0EDE0045683F /* CAAutoDisposer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD8877E2FAC0EDE0045683F /* CAAutoDisposer.h */; }; + 8BD888072FAC0EDE0045683F /* CACFPreferences.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD8877F2FAC0EDE0045683F /* CACFPreferences.h */; }; + 8BD888082FAC0EDE0045683F /* CAVectorUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD887802FAC0EDE0045683F /* CAVectorUnit.cpp */; }; + 8BD888092FAC0EDE0045683F /* CAComponentDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887812FAC0EDE0045683F /* CAComponentDescription.h */; }; + 8BD8880A2FAC0EDE0045683F /* CADebugMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887822FAC0EDE0045683F /* CADebugMacros.h */; }; + 8BD8880B2FAC0EDE0045683F /* AUOutputBL.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887832FAC0EDE0045683F /* AUOutputBL.h */; }; + 8BD8880C2FAC0EDE0045683F /* CADebugPrintf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD887842FAC0EDE0045683F /* CADebugPrintf.cpp */; }; + 8BD8880D2FAC0EDE0045683F /* CARingBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD887852FAC0EDE0045683F /* CARingBuffer.cpp */; }; + 8BD8880E2FAC0EDE0045683F /* CACFPlugIn.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887862FAC0EDE0045683F /* CACFPlugIn.h */; }; + 8BD8880F2FAC0EDE0045683F /* CASettingsStorage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD887872FAC0EDE0045683F /* CASettingsStorage.cpp */; }; + 8BD888102FAC0EDE0045683F /* CAMixMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887882FAC0EDE0045683F /* CAMixMap.h */; }; + 8BD888112FAC0EDE0045683F /* CACFDistributedNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887892FAC0EDE0045683F /* CACFDistributedNotification.h */; }; + 8BD888122FAC0EDE0045683F /* CAFilePathUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD8878A2FAC0EDE0045683F /* CAFilePathUtils.h */; }; + 8BD888132FAC0EDE0045683F /* CATink.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD8878B2FAC0EDE0045683F /* CATink.h */; }; + 8BD888142FAC0EDF0045683F /* CAStreamBasicDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD8878C2FAC0EDE0045683F /* CAStreamBasicDescription.cpp */; }; + 8BD888152FAC0EDF0045683F /* CAAudioChannelLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD8878D2FAC0EDE0045683F /* CAAudioChannelLayout.h */; }; + 8BD888162FAC0EDF0045683F /* CAProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD8878E2FAC0EDE0045683F /* CAProcess.cpp */; }; + 8BD888172FAC0EDF0045683F /* CAHostTimeBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD8878F2FAC0EDE0045683F /* CAHostTimeBase.cpp */; }; + 8BD888182FAC0EDF0045683F /* CAPersistence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD887902FAC0EDE0045683F /* CAPersistence.cpp */; }; + 8BD888192FAC0EDF0045683F /* CAAudioBufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD887912FAC0EDE0045683F /* CAAudioBufferList.cpp */; }; + 8BD8881A2FAC0EDF0045683F /* CAAudioTimeStamp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD887922FAC0EDE0045683F /* CAAudioTimeStamp.cpp */; }; + 8BD8881B2FAC0EDF0045683F /* CAVectorUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887932FAC0EDE0045683F /* CAVectorUnit.h */; }; + 8BD8881C2FAC0EDF0045683F /* CAByteOrder.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887942FAC0EDE0045683F /* CAByteOrder.h */; }; + 8BD8881D2FAC0EDF0045683F /* CACFArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887952FAC0EDE0045683F /* CACFArray.h */; }; + 8BD8881E2FAC0EDF0045683F /* CAAtomicStack.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887962FAC0EDE0045683F /* CAAtomicStack.h */; }; + 8BD8881F2FAC0EDF0045683F /* CAReferenceCounted.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887972FAC0EDE0045683F /* CAReferenceCounted.h */; }; + 8BD888202FAC0EDF0045683F /* CACFMachPort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD887982FAC0EDE0045683F /* CACFMachPort.cpp */; }; + 8BD888212FAC0EDF0045683F /* CABufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD887992FAC0EDE0045683F /* CABufferList.cpp */; }; + 8BD888222FAC0EDF0045683F /* CAMutex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD8879A2FAC0EDE0045683F /* CAMutex.cpp */; }; + 8BD888232FAC0EDF0045683F /* CADebugger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD8879B2FAC0EDE0045683F /* CADebugger.cpp */; }; + 8BD888242FAC0EDF0045683F /* CABundleLocker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD8879C2FAC0EDE0045683F /* CABundleLocker.cpp */; }; + 8BD888252FAC0EDF0045683F /* CAAudioFileFormats.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD8879D2FAC0EDE0045683F /* CAAudioFileFormats.cpp */; }; + 8BD888262FAC0EDF0045683F /* CAMath.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD8879E2FAC0EDE0045683F /* CAMath.h */; }; + 8BD888272FAC0EDF0045683F /* CACFArray.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD8879F2FAC0EDE0045683F /* CACFArray.cpp */; }; + 8BD888282FAC0EDF0045683F /* CACFMessagePort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887A02FAC0EDE0045683F /* CACFMessagePort.h */; }; + 8BD888292FAC0EDF0045683F /* CAAudioValueRange.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD887A12FAC0EDE0045683F /* CAAudioValueRange.cpp */; }; + 8BD8882A2FAC0EDF0045683F /* CAAudioUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD887A22FAC0EDE0045683F /* CAAudioUnit.cpp */; }; + 8BD8882B2FAC0EDF0045683F /* AUViewLocalizedStringKeys.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887A62FAC0EDE0045683F /* AUViewLocalizedStringKeys.h */; }; + 8BD8882C2FAC0EDF0045683F /* ComponentBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD887A82FAC0EDE0045683F /* ComponentBase.cpp */; }; + 8BD8882D2FAC0EDF0045683F /* AUScopeElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD887A92FAC0EDE0045683F /* AUScopeElement.cpp */; }; + 8BD8882E2FAC0EDF0045683F /* ComponentBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887AA2FAC0EDE0045683F /* ComponentBase.h */; }; + 8BD8882F2FAC0EDF0045683F /* AUBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD887AB2FAC0EDE0045683F /* AUBase.cpp */; }; + 8BD888302FAC0EDF0045683F /* AUInputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887AC2FAC0EDE0045683F /* AUInputElement.h */; }; + 8BD888312FAC0EDF0045683F /* AUBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887AD2FAC0EDE0045683F /* AUBase.h */; }; + 8BD888322FAC0EDF0045683F /* AUPlugInDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887AE2FAC0EDE0045683F /* AUPlugInDispatch.h */; }; + 8BD888332FAC0EDF0045683F /* AUDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887AF2FAC0EDE0045683F /* AUDispatch.h */; }; + 8BD888342FAC0EDF0045683F /* AUOutputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD887B02FAC0EDE0045683F /* AUOutputElement.cpp */; }; + 8BD888362FAC0EDF0045683F /* AUPlugInDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD887B22FAC0EDE0045683F /* AUPlugInDispatch.cpp */; }; + 8BD888372FAC0EDF0045683F /* AUOutputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887B32FAC0EDE0045683F /* AUOutputElement.h */; }; + 8BD888382FAC0EDF0045683F /* AUDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD887B42FAC0EDE0045683F /* AUDispatch.cpp */; }; + 8BD888392FAC0EDF0045683F /* AUScopeElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887B52FAC0EDE0045683F /* AUScopeElement.h */; }; + 8BD8883A2FAC0EDF0045683F /* AUInputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD887B62FAC0EDE0045683F /* AUInputElement.cpp */; }; + 8BD8883B2FAC0EDF0045683F /* AUEffectBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD887B82FAC0EDE0045683F /* AUEffectBase.cpp */; }; + 8BD8883C2FAC0EDF0045683F /* AUEffectBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887B92FAC0EDE0045683F /* AUEffectBase.h */; }; + 8BD8883D2FAC0EDF0045683F /* AUTimestampGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887BB2FAC0EDE0045683F /* AUTimestampGenerator.h */; }; + 8BD8883E2FAC0EDF0045683F /* AUBaseHelper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD887BC2FAC0EDE0045683F /* AUBaseHelper.cpp */; }; + 8BD8883F2FAC0EDF0045683F /* AUSilentTimeout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887BD2FAC0EDE0045683F /* AUSilentTimeout.h */; }; + 8BD888402FAC0EDF0045683F /* AUInputFormatConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887BE2FAC0EDE0045683F /* AUInputFormatConverter.h */; }; + 8BD888412FAC0EDF0045683F /* AUTimestampGenerator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD887BF2FAC0EDE0045683F /* AUTimestampGenerator.cpp */; }; + 8BD888422FAC0EDF0045683F /* AUBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD887C02FAC0EDE0045683F /* AUBuffer.cpp */; }; + 8BD888432FAC0EDF0045683F /* AUMIDIDefs.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887C12FAC0EDE0045683F /* AUMIDIDefs.h */; }; + 8BD888442FAC0EDF0045683F /* AUBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887C22FAC0EDE0045683F /* AUBuffer.h */; }; + 8BD888452FAC0EDF0045683F /* AUBaseHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887C32FAC0EDE0045683F /* AUBaseHelper.h */; }; + 8D01CCCA0486CAD60068D4B7 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C167DFE841241C02AAC07 /* InfoPlist.strings */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 8B5C7FBF076FB2C200A15F61 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = ""; }; + 8BA05A660720730100365D66 /* Longhand.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Longhand.cpp; sourceTree = ""; }; + 8BA05A670720730100365D66 /* Longhand.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = Longhand.exp; sourceTree = ""; }; + 8BA05A680720730100365D66 /* Longhand.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = Longhand.r; sourceTree = ""; }; + 8BA05A690720730100365D66 /* LonghandVersion.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = LonghandVersion.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 /* Longhand.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Longhand.h; sourceTree = ""; }; + 8BD8873C2FAC0EDE0045683F /* CAExtAudioFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAExtAudioFile.h; sourceTree = ""; }; + 8BD8873D2FAC0EDE0045683F /* CACFMachPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMachPort.h; sourceTree = ""; }; + 8BD8873E2FAC0EDE0045683F /* CABool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABool.h; sourceTree = ""; }; + 8BD8873F2FAC0EDE0045683F /* CAComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponent.cpp; sourceTree = ""; }; + 8BD887402FAC0EDE0045683F /* CADebugger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugger.h; sourceTree = ""; }; + 8BD887412FAC0EDE0045683F /* CACFNumber.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFNumber.cpp; sourceTree = ""; }; + 8BD887422FAC0EDE0045683F /* CAGuard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAGuard.h; sourceTree = ""; }; + 8BD887432FAC0EDE0045683F /* CAAtomic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomic.h; sourceTree = ""; }; + 8BD887442FAC0EDE0045683F /* CAStreamBasicDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamBasicDescription.h; sourceTree = ""; }; + 8BD887452FAC0EDE0045683F /* CACFObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFObject.h; sourceTree = ""; }; + 8BD887462FAC0EDE0045683F /* CAStreamRangedDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamRangedDescription.h; sourceTree = ""; }; + 8BD887472FAC0EDE0045683F /* CATokenMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATokenMap.h; sourceTree = ""; }; + 8BD887482FAC0EDE0045683F /* CAComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponent.h; sourceTree = ""; }; + 8BD887492FAC0EDE0045683F /* CAAudioBufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioBufferList.h; sourceTree = ""; }; + 8BD8874A2FAC0EDE0045683F /* CAAudioUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnit.h; sourceTree = ""; }; + 8BD8874B2FAC0EDE0045683F /* CAAUParameter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUParameter.h; sourceTree = ""; }; + 8BD8874C2FAC0EDE0045683F /* CAException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAException.h; sourceTree = ""; }; + 8BD8874D2FAC0EDE0045683F /* CAAUProcessor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUProcessor.cpp; sourceTree = ""; }; + 8BD8874E2FAC0EDE0045683F /* CAAUProcessor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUProcessor.h; sourceTree = ""; }; + 8BD8874F2FAC0EDE0045683F /* CAProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAProcess.h; sourceTree = ""; }; + 8BD887502FAC0EDE0045683F /* CACFDictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDictionary.h; sourceTree = ""; }; + 8BD887512FAC0EDE0045683F /* CAPThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPThread.h; sourceTree = ""; }; + 8BD887522FAC0EDE0045683F /* CAAUParameter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUParameter.cpp; sourceTree = ""; }; + 8BD887532FAC0EDE0045683F /* CAAudioTimeStamp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioTimeStamp.h; sourceTree = ""; }; + 8BD887542FAC0EDE0045683F /* CAFilePathUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAFilePathUtils.cpp; sourceTree = ""; }; + 8BD887552FAC0EDE0045683F /* CAAudioValueRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioValueRange.h; sourceTree = ""; }; + 8BD887562FAC0EDE0045683F /* CAVectorUnitTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnitTypes.h; sourceTree = ""; }; + 8BD887572FAC0EDE0045683F /* CAAudioChannelLayoutObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayoutObject.cpp; sourceTree = ""; }; + 8BD887582FAC0EDE0045683F /* CAGuard.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAGuard.cpp; sourceTree = ""; }; + 8BD887592FAC0EDE0045683F /* CACFNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFNumber.h; sourceTree = ""; }; + 8BD8875A2FAC0EDE0045683F /* CACFDistributedNotification.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDistributedNotification.cpp; sourceTree = ""; }; + 8BD8875B2FAC0EDE0045683F /* CACFString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFString.h; sourceTree = ""; }; + 8BD8875C2FAC0EDE0045683F /* CAAUMIDIMapManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMapManager.cpp; sourceTree = ""; }; + 8BD8875D2FAC0EDE0045683F /* CAComponentDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponentDescription.cpp; sourceTree = ""; }; + 8BD8875E2FAC0EDE0045683F /* CAHostTimeBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAHostTimeBase.h; sourceTree = ""; }; + 8BD8875F2FAC0EDE0045683F /* CADebugMacros.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugMacros.cpp; sourceTree = ""; }; + 8BD887602FAC0EDE0045683F /* CAAudioFileFormats.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioFileFormats.h; sourceTree = ""; }; + 8BD887612FAC0EDE0045683F /* CAAUMIDIMapManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMapManager.h; sourceTree = ""; }; + 8BD887622FAC0EDE0045683F /* CACFDictionary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDictionary.cpp; sourceTree = ""; }; + 8BD887632FAC0EDE0045683F /* CAMutex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMutex.h; sourceTree = ""; }; + 8BD887642FAC0EDE0045683F /* CACFString.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFString.cpp; sourceTree = ""; }; + 8BD887652FAC0EDE0045683F /* CASettingsStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASettingsStorage.h; sourceTree = ""; }; + 8BD887662FAC0EDE0045683F /* CADebugPrintf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugPrintf.h; sourceTree = ""; }; + 8BD887672FAC0EDE0045683F /* CAXException.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAXException.cpp; sourceTree = ""; }; + 8BD887682FAC0EDE0045683F /* CAAUMIDIMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMap.h; sourceTree = ""; }; + 8BD887692FAC0EDE0045683F /* AUParamInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUParamInfo.h; sourceTree = ""; }; + 8BD8876A2FAC0EDE0045683F /* CABitOperations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABitOperations.h; sourceTree = ""; }; + 8BD8876B2FAC0EDE0045683F /* CACFPreferences.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFPreferences.cpp; sourceTree = ""; }; + 8BD8876C2FAC0EDE0045683F /* CABundleLocker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABundleLocker.h; sourceTree = ""; }; + 8BD8876D2FAC0EDE0045683F /* CAPropertyAddress.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPropertyAddress.h; sourceTree = ""; }; + 8BD8876E2FAC0EDE0045683F /* CAXException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAXException.h; sourceTree = ""; }; + 8BD8876F2FAC0EDE0045683F /* CAAudioChannelLayout.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayout.cpp; sourceTree = ""; }; + 8BD887702FAC0EDE0045683F /* CAThreadSafeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAThreadSafeList.h; sourceTree = ""; }; + 8BD887712FAC0EDE0045683F /* CAAudioUnitOutputCapturer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnitOutputCapturer.h; sourceTree = ""; }; + 8BD887722FAC0EDE0045683F /* AUParamInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUParamInfo.cpp; sourceTree = ""; }; + 8BD887732FAC0EDE0045683F /* CASharedLibrary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASharedLibrary.cpp; sourceTree = ""; }; + 8BD887742FAC0EDE0045683F /* CAAUMIDIMap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMap.cpp; sourceTree = ""; }; + 8BD887752FAC0EDE0045683F /* CALogMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CALogMacros.h; sourceTree = ""; }; + 8BD887762FAC0EDE0045683F /* CACFMessagePort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMessagePort.cpp; sourceTree = ""; }; + 8BD887772FAC0EDE0045683F /* CARingBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CARingBuffer.h; sourceTree = ""; }; + 8BD887782FAC0EDE0045683F /* AUOutputBL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputBL.cpp; sourceTree = ""; }; + 8BD887792FAC0EDE0045683F /* CABufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABufferList.h; sourceTree = ""; }; + 8BD8877A2FAC0EDE0045683F /* CASharedLibrary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASharedLibrary.h; sourceTree = ""; }; + 8BD8877B2FAC0EDE0045683F /* CACFData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFData.h; sourceTree = ""; }; + 8BD8877C2FAC0EDE0045683F /* CAStreamRangedDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamRangedDescription.cpp; sourceTree = ""; }; + 8BD8877D2FAC0EDE0045683F /* CAPThread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPThread.cpp; sourceTree = ""; }; + 8BD8877E2FAC0EDE0045683F /* CAAutoDisposer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAutoDisposer.h; sourceTree = ""; }; + 8BD8877F2FAC0EDE0045683F /* CACFPreferences.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPreferences.h; sourceTree = ""; }; + 8BD887802FAC0EDE0045683F /* CAVectorUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAVectorUnit.cpp; sourceTree = ""; }; + 8BD887812FAC0EDE0045683F /* CAComponentDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponentDescription.h; sourceTree = ""; }; + 8BD887822FAC0EDE0045683F /* CADebugMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugMacros.h; sourceTree = ""; }; + 8BD887832FAC0EDE0045683F /* AUOutputBL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputBL.h; sourceTree = ""; }; + 8BD887842FAC0EDE0045683F /* CADebugPrintf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugPrintf.cpp; sourceTree = ""; }; + 8BD887852FAC0EDE0045683F /* CARingBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CARingBuffer.cpp; sourceTree = ""; }; + 8BD887862FAC0EDE0045683F /* CACFPlugIn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPlugIn.h; sourceTree = ""; }; + 8BD887872FAC0EDE0045683F /* CASettingsStorage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASettingsStorage.cpp; sourceTree = ""; }; + 8BD887882FAC0EDE0045683F /* CAMixMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMixMap.h; sourceTree = ""; }; + 8BD887892FAC0EDE0045683F /* CACFDistributedNotification.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDistributedNotification.h; sourceTree = ""; }; + 8BD8878A2FAC0EDE0045683F /* CAFilePathUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAFilePathUtils.h; sourceTree = ""; }; + 8BD8878B2FAC0EDE0045683F /* CATink.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATink.h; sourceTree = ""; }; + 8BD8878C2FAC0EDE0045683F /* CAStreamBasicDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamBasicDescription.cpp; sourceTree = ""; }; + 8BD8878D2FAC0EDE0045683F /* CAAudioChannelLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioChannelLayout.h; sourceTree = ""; }; + 8BD8878E2FAC0EDE0045683F /* CAProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAProcess.cpp; sourceTree = ""; }; + 8BD8878F2FAC0EDE0045683F /* CAHostTimeBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAHostTimeBase.cpp; sourceTree = ""; }; + 8BD887902FAC0EDE0045683F /* CAPersistence.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPersistence.cpp; sourceTree = ""; }; + 8BD887912FAC0EDE0045683F /* CAAudioBufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioBufferList.cpp; sourceTree = ""; }; + 8BD887922FAC0EDE0045683F /* CAAudioTimeStamp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioTimeStamp.cpp; sourceTree = ""; }; + 8BD887932FAC0EDE0045683F /* CAVectorUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnit.h; sourceTree = ""; }; + 8BD887942FAC0EDE0045683F /* CAByteOrder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAByteOrder.h; sourceTree = ""; }; + 8BD887952FAC0EDE0045683F /* CACFArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFArray.h; sourceTree = ""; }; + 8BD887962FAC0EDE0045683F /* CAAtomicStack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomicStack.h; sourceTree = ""; }; + 8BD887972FAC0EDE0045683F /* CAReferenceCounted.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAReferenceCounted.h; sourceTree = ""; }; + 8BD887982FAC0EDE0045683F /* CACFMachPort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMachPort.cpp; sourceTree = ""; }; + 8BD887992FAC0EDE0045683F /* CABufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABufferList.cpp; sourceTree = ""; }; + 8BD8879A2FAC0EDE0045683F /* CAMutex.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAMutex.cpp; sourceTree = ""; }; + 8BD8879B2FAC0EDE0045683F /* CADebugger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugger.cpp; sourceTree = ""; }; + 8BD8879C2FAC0EDE0045683F /* CABundleLocker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABundleLocker.cpp; sourceTree = ""; }; + 8BD8879D2FAC0EDE0045683F /* CAAudioFileFormats.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioFileFormats.cpp; sourceTree = ""; }; + 8BD8879E2FAC0EDE0045683F /* CAMath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMath.h; sourceTree = ""; }; + 8BD8879F2FAC0EDE0045683F /* CACFArray.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFArray.cpp; sourceTree = ""; }; + 8BD887A02FAC0EDE0045683F /* CACFMessagePort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMessagePort.h; sourceTree = ""; }; + 8BD887A12FAC0EDE0045683F /* CAAudioValueRange.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioValueRange.cpp; sourceTree = ""; }; + 8BD887A22FAC0EDE0045683F /* CAAudioUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioUnit.cpp; sourceTree = ""; }; + 8BD887A62FAC0EDE0045683F /* AUViewLocalizedStringKeys.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUViewLocalizedStringKeys.h; sourceTree = ""; }; + 8BD887A82FAC0EDE0045683F /* ComponentBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ComponentBase.cpp; sourceTree = ""; }; + 8BD887A92FAC0EDE0045683F /* AUScopeElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUScopeElement.cpp; sourceTree = ""; }; + 8BD887AA2FAC0EDE0045683F /* ComponentBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ComponentBase.h; sourceTree = ""; }; + 8BD887AB2FAC0EDE0045683F /* AUBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBase.cpp; sourceTree = ""; }; + 8BD887AC2FAC0EDE0045683F /* AUInputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputElement.h; sourceTree = ""; }; + 8BD887AD2FAC0EDE0045683F /* AUBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBase.h; sourceTree = ""; }; + 8BD887AE2FAC0EDE0045683F /* AUPlugInDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUPlugInDispatch.h; sourceTree = ""; }; + 8BD887AF2FAC0EDE0045683F /* AUDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUDispatch.h; sourceTree = ""; }; + 8BD887B02FAC0EDE0045683F /* AUOutputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputElement.cpp; sourceTree = ""; }; + 8BD887B12FAC0EDE0045683F /* AUResources.r */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; path = AUResources.r; sourceTree = ""; }; + 8BD887B22FAC0EDE0045683F /* AUPlugInDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUPlugInDispatch.cpp; sourceTree = ""; }; + 8BD887B32FAC0EDE0045683F /* AUOutputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputElement.h; sourceTree = ""; }; + 8BD887B42FAC0EDE0045683F /* AUDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUDispatch.cpp; sourceTree = ""; }; + 8BD887B52FAC0EDE0045683F /* AUScopeElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUScopeElement.h; sourceTree = ""; }; + 8BD887B62FAC0EDE0045683F /* AUInputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUInputElement.cpp; sourceTree = ""; }; + 8BD887B82FAC0EDE0045683F /* AUEffectBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUEffectBase.cpp; sourceTree = ""; }; + 8BD887B92FAC0EDE0045683F /* AUEffectBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUEffectBase.h; sourceTree = ""; }; + 8BD887BB2FAC0EDE0045683F /* AUTimestampGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUTimestampGenerator.h; sourceTree = ""; }; + 8BD887BC2FAC0EDE0045683F /* AUBaseHelper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBaseHelper.cpp; sourceTree = ""; }; + 8BD887BD2FAC0EDE0045683F /* AUSilentTimeout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUSilentTimeout.h; sourceTree = ""; }; + 8BD887BE2FAC0EDE0045683F /* AUInputFormatConverter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputFormatConverter.h; sourceTree = ""; }; + 8BD887BF2FAC0EDE0045683F /* AUTimestampGenerator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUTimestampGenerator.cpp; sourceTree = ""; }; + 8BD887C02FAC0EDE0045683F /* AUBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBuffer.cpp; sourceTree = ""; }; + 8BD887C12FAC0EDE0045683F /* AUMIDIDefs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUMIDIDefs.h; sourceTree = ""; }; + 8BD887C22FAC0EDE0045683F /* AUBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBuffer.h; sourceTree = ""; }; + 8BD887C32FAC0EDE0045683F /* AUBaseHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBaseHelper.h; sourceTree = ""; }; + 8BD888462FAC0F940045683F /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; + 8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; + 8D01CCD20486CAD60068D4B7 /* Longhand.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Longhand.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 /* Longhand */ = { + isa = PBXGroup; + children = ( + 08FB77ADFE841716C02AAC07 /* Source */, + 089C167CFE841241C02AAC07 /* Resources */, + 089C1671FE841209C02AAC07 /* External Frameworks and Libraries */, + 19C28FB4FE9D528D11CA2CBB /* Products */, + ); + name = Longhand; + 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 = ( + 8BD8873A2FAC0EDE0045683F /* CA_SDK */, + 8BA05A56072072A900365D66 /* AU Source */, + ); + name = Source; + sourceTree = ""; + }; + 19C28FB4FE9D528D11CA2CBB /* Products */ = { + isa = PBXGroup; + children = ( + 8D01CCD20486CAD60068D4B7 /* Longhand.component */, + ); + name = Products; + sourceTree = ""; + }; + 8BA05A56072072A900365D66 /* AU Source */ = { + isa = PBXGroup; + children = ( + 8BC6025B073B072D006C4272 /* Longhand.h */, + 8BA05A660720730100365D66 /* Longhand.cpp */, + 8BA05A670720730100365D66 /* Longhand.exp */, + 8BA05A680720730100365D66 /* Longhand.r */, + 8BA05A690720730100365D66 /* LonghandVersion.h */, + ); + name = "AU Source"; + sourceTree = ""; + }; + 8BD8873A2FAC0EDE0045683F /* CA_SDK */ = { + isa = PBXGroup; + children = ( + 8BD8873B2FAC0EDE0045683F /* PublicUtility */, + 8BD887A32FAC0EDE0045683F /* AudioUnits */, + ); + name = CA_SDK; + path = ../../../../CA_SDK; + sourceTree = ""; + }; + 8BD8873B2FAC0EDE0045683F /* PublicUtility */ = { + isa = PBXGroup; + children = ( + 8BD8873C2FAC0EDE0045683F /* CAExtAudioFile.h */, + 8BD8873D2FAC0EDE0045683F /* CACFMachPort.h */, + 8BD8873E2FAC0EDE0045683F /* CABool.h */, + 8BD8873F2FAC0EDE0045683F /* CAComponent.cpp */, + 8BD887402FAC0EDE0045683F /* CADebugger.h */, + 8BD887412FAC0EDE0045683F /* CACFNumber.cpp */, + 8BD887422FAC0EDE0045683F /* CAGuard.h */, + 8BD887432FAC0EDE0045683F /* CAAtomic.h */, + 8BD887442FAC0EDE0045683F /* CAStreamBasicDescription.h */, + 8BD887452FAC0EDE0045683F /* CACFObject.h */, + 8BD887462FAC0EDE0045683F /* CAStreamRangedDescription.h */, + 8BD887472FAC0EDE0045683F /* CATokenMap.h */, + 8BD887482FAC0EDE0045683F /* CAComponent.h */, + 8BD887492FAC0EDE0045683F /* CAAudioBufferList.h */, + 8BD8874A2FAC0EDE0045683F /* CAAudioUnit.h */, + 8BD8874B2FAC0EDE0045683F /* CAAUParameter.h */, + 8BD8874C2FAC0EDE0045683F /* CAException.h */, + 8BD8874D2FAC0EDE0045683F /* CAAUProcessor.cpp */, + 8BD8874E2FAC0EDE0045683F /* CAAUProcessor.h */, + 8BD8874F2FAC0EDE0045683F /* CAProcess.h */, + 8BD887502FAC0EDE0045683F /* CACFDictionary.h */, + 8BD887512FAC0EDE0045683F /* CAPThread.h */, + 8BD887522FAC0EDE0045683F /* CAAUParameter.cpp */, + 8BD887532FAC0EDE0045683F /* CAAudioTimeStamp.h */, + 8BD887542FAC0EDE0045683F /* CAFilePathUtils.cpp */, + 8BD887552FAC0EDE0045683F /* CAAudioValueRange.h */, + 8BD887562FAC0EDE0045683F /* CAVectorUnitTypes.h */, + 8BD887572FAC0EDE0045683F /* CAAudioChannelLayoutObject.cpp */, + 8BD887582FAC0EDE0045683F /* CAGuard.cpp */, + 8BD887592FAC0EDE0045683F /* CACFNumber.h */, + 8BD8875A2FAC0EDE0045683F /* CACFDistributedNotification.cpp */, + 8BD8875B2FAC0EDE0045683F /* CACFString.h */, + 8BD8875C2FAC0EDE0045683F /* CAAUMIDIMapManager.cpp */, + 8BD8875D2FAC0EDE0045683F /* CAComponentDescription.cpp */, + 8BD8875E2FAC0EDE0045683F /* CAHostTimeBase.h */, + 8BD8875F2FAC0EDE0045683F /* CADebugMacros.cpp */, + 8BD887602FAC0EDE0045683F /* CAAudioFileFormats.h */, + 8BD887612FAC0EDE0045683F /* CAAUMIDIMapManager.h */, + 8BD887622FAC0EDE0045683F /* CACFDictionary.cpp */, + 8BD887632FAC0EDE0045683F /* CAMutex.h */, + 8BD887642FAC0EDE0045683F /* CACFString.cpp */, + 8BD887652FAC0EDE0045683F /* CASettingsStorage.h */, + 8BD887662FAC0EDE0045683F /* CADebugPrintf.h */, + 8BD887672FAC0EDE0045683F /* CAXException.cpp */, + 8BD887682FAC0EDE0045683F /* CAAUMIDIMap.h */, + 8BD887692FAC0EDE0045683F /* AUParamInfo.h */, + 8BD8876A2FAC0EDE0045683F /* CABitOperations.h */, + 8BD8876B2FAC0EDE0045683F /* CACFPreferences.cpp */, + 8BD8876C2FAC0EDE0045683F /* CABundleLocker.h */, + 8BD8876D2FAC0EDE0045683F /* CAPropertyAddress.h */, + 8BD8876E2FAC0EDE0045683F /* CAXException.h */, + 8BD8876F2FAC0EDE0045683F /* CAAudioChannelLayout.cpp */, + 8BD887702FAC0EDE0045683F /* CAThreadSafeList.h */, + 8BD887712FAC0EDE0045683F /* CAAudioUnitOutputCapturer.h */, + 8BD887722FAC0EDE0045683F /* AUParamInfo.cpp */, + 8BD887732FAC0EDE0045683F /* CASharedLibrary.cpp */, + 8BD887742FAC0EDE0045683F /* CAAUMIDIMap.cpp */, + 8BD887752FAC0EDE0045683F /* CALogMacros.h */, + 8BD887762FAC0EDE0045683F /* CACFMessagePort.cpp */, + 8BD887772FAC0EDE0045683F /* CARingBuffer.h */, + 8BD887782FAC0EDE0045683F /* AUOutputBL.cpp */, + 8BD887792FAC0EDE0045683F /* CABufferList.h */, + 8BD8877A2FAC0EDE0045683F /* CASharedLibrary.h */, + 8BD8877B2FAC0EDE0045683F /* CACFData.h */, + 8BD8877C2FAC0EDE0045683F /* CAStreamRangedDescription.cpp */, + 8BD8877D2FAC0EDE0045683F /* CAPThread.cpp */, + 8BD8877E2FAC0EDE0045683F /* CAAutoDisposer.h */, + 8BD8877F2FAC0EDE0045683F /* CACFPreferences.h */, + 8BD887802FAC0EDE0045683F /* CAVectorUnit.cpp */, + 8BD887812FAC0EDE0045683F /* CAComponentDescription.h */, + 8BD887822FAC0EDE0045683F /* CADebugMacros.h */, + 8BD887832FAC0EDE0045683F /* AUOutputBL.h */, + 8BD887842FAC0EDE0045683F /* CADebugPrintf.cpp */, + 8BD887852FAC0EDE0045683F /* CARingBuffer.cpp */, + 8BD887862FAC0EDE0045683F /* CACFPlugIn.h */, + 8BD887872FAC0EDE0045683F /* CASettingsStorage.cpp */, + 8BD887882FAC0EDE0045683F /* CAMixMap.h */, + 8BD887892FAC0EDE0045683F /* CACFDistributedNotification.h */, + 8BD8878A2FAC0EDE0045683F /* CAFilePathUtils.h */, + 8BD8878B2FAC0EDE0045683F /* CATink.h */, + 8BD8878C2FAC0EDE0045683F /* CAStreamBasicDescription.cpp */, + 8BD8878D2FAC0EDE0045683F /* CAAudioChannelLayout.h */, + 8BD8878E2FAC0EDE0045683F /* CAProcess.cpp */, + 8BD8878F2FAC0EDE0045683F /* CAHostTimeBase.cpp */, + 8BD887902FAC0EDE0045683F /* CAPersistence.cpp */, + 8BD887912FAC0EDE0045683F /* CAAudioBufferList.cpp */, + 8BD887922FAC0EDE0045683F /* CAAudioTimeStamp.cpp */, + 8BD887932FAC0EDE0045683F /* CAVectorUnit.h */, + 8BD887942FAC0EDE0045683F /* CAByteOrder.h */, + 8BD887952FAC0EDE0045683F /* CACFArray.h */, + 8BD887962FAC0EDE0045683F /* CAAtomicStack.h */, + 8BD887972FAC0EDE0045683F /* CAReferenceCounted.h */, + 8BD887982FAC0EDE0045683F /* CACFMachPort.cpp */, + 8BD887992FAC0EDE0045683F /* CABufferList.cpp */, + 8BD8879A2FAC0EDE0045683F /* CAMutex.cpp */, + 8BD8879B2FAC0EDE0045683F /* CADebugger.cpp */, + 8BD8879C2FAC0EDE0045683F /* CABundleLocker.cpp */, + 8BD8879D2FAC0EDE0045683F /* CAAudioFileFormats.cpp */, + 8BD8879E2FAC0EDE0045683F /* CAMath.h */, + 8BD8879F2FAC0EDE0045683F /* CACFArray.cpp */, + 8BD887A02FAC0EDE0045683F /* CACFMessagePort.h */, + 8BD887A12FAC0EDE0045683F /* CAAudioValueRange.cpp */, + 8BD887A22FAC0EDE0045683F /* CAAudioUnit.cpp */, + ); + path = PublicUtility; + sourceTree = ""; + }; + 8BD887A32FAC0EDE0045683F /* AudioUnits */ = { + isa = PBXGroup; + children = ( + 8BD887A42FAC0EDE0045683F /* AUPublic */, + ); + path = AudioUnits; + sourceTree = ""; + }; + 8BD887A42FAC0EDE0045683F /* AUPublic */ = { + isa = PBXGroup; + children = ( + 8BD887A52FAC0EDE0045683F /* AUViewBase */, + 8BD887A72FAC0EDE0045683F /* AUBase */, + 8BD887B72FAC0EDE0045683F /* OtherBases */, + 8BD887BA2FAC0EDE0045683F /* Utility */, + ); + path = AUPublic; + sourceTree = ""; + }; + 8BD887A52FAC0EDE0045683F /* AUViewBase */ = { + isa = PBXGroup; + children = ( + 8BD887A62FAC0EDE0045683F /* AUViewLocalizedStringKeys.h */, + ); + path = AUViewBase; + sourceTree = ""; + }; + 8BD887A72FAC0EDE0045683F /* AUBase */ = { + isa = PBXGroup; + children = ( + 8BD887A82FAC0EDE0045683F /* ComponentBase.cpp */, + 8BD887A92FAC0EDE0045683F /* AUScopeElement.cpp */, + 8BD887AA2FAC0EDE0045683F /* ComponentBase.h */, + 8BD887AB2FAC0EDE0045683F /* AUBase.cpp */, + 8BD887AC2FAC0EDE0045683F /* AUInputElement.h */, + 8BD887AD2FAC0EDE0045683F /* AUBase.h */, + 8BD887AE2FAC0EDE0045683F /* AUPlugInDispatch.h */, + 8BD887AF2FAC0EDE0045683F /* AUDispatch.h */, + 8BD887B02FAC0EDE0045683F /* AUOutputElement.cpp */, + 8BD887B12FAC0EDE0045683F /* AUResources.r */, + 8BD887B22FAC0EDE0045683F /* AUPlugInDispatch.cpp */, + 8BD887B32FAC0EDE0045683F /* AUOutputElement.h */, + 8BD887B42FAC0EDE0045683F /* AUDispatch.cpp */, + 8BD887B52FAC0EDE0045683F /* AUScopeElement.h */, + 8BD887B62FAC0EDE0045683F /* AUInputElement.cpp */, + ); + path = AUBase; + sourceTree = ""; + }; + 8BD887B72FAC0EDE0045683F /* OtherBases */ = { + isa = PBXGroup; + children = ( + 8BD887B82FAC0EDE0045683F /* AUEffectBase.cpp */, + 8BD887B92FAC0EDE0045683F /* AUEffectBase.h */, + ); + path = OtherBases; + sourceTree = ""; + }; + 8BD887BA2FAC0EDE0045683F /* Utility */ = { + isa = PBXGroup; + children = ( + 8BD887BB2FAC0EDE0045683F /* AUTimestampGenerator.h */, + 8BD887BC2FAC0EDE0045683F /* AUBaseHelper.cpp */, + 8BD887BD2FAC0EDE0045683F /* AUSilentTimeout.h */, + 8BD887BE2FAC0EDE0045683F /* AUInputFormatConverter.h */, + 8BD887BF2FAC0EDE0045683F /* AUTimestampGenerator.cpp */, + 8BD887C02FAC0EDE0045683F /* AUBuffer.cpp */, + 8BD887C12FAC0EDE0045683F /* AUMIDIDefs.h */, + 8BD887C22FAC0EDE0045683F /* AUBuffer.h */, + 8BD887C32FAC0EDE0045683F /* AUBaseHelper.h */, + ); + path = Utility; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 8D01CCC70486CAD60068D4B7 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 8BD887F42FAC0EDE0045683F /* CABundleLocker.h in Headers */, + 8BD888152FAC0EDF0045683F /* CAAudioChannelLayout.h in Headers */, + 8BD8880B2FAC0EDE0045683F /* AUOutputBL.h in Headers */, + 8BD887E62FAC0EDE0045683F /* CAHostTimeBase.h in Headers */, + 8BD8882E2FAC0EDF0045683F /* ComponentBase.h in Headers */, + 8BD8881E2FAC0EDF0045683F /* CAAtomicStack.h in Headers */, + 8BD887DB2FAC0EDE0045683F /* CAAudioTimeStamp.h in Headers */, + 8BD887F82FAC0EDE0045683F /* CAThreadSafeList.h in Headers */, + 8BD887D32FAC0EDE0045683F /* CAAUParameter.h in Headers */, + 8BD888452FAC0EDF0045683F /* AUBaseHelper.h in Headers */, + 8BD8883D2FAC0EDF0045683F /* AUTimestampGenerator.h in Headers */, + 8BD887EE2FAC0EDE0045683F /* CADebugPrintf.h in Headers */, + 8BD888282FAC0EDF0045683F /* CACFMessagePort.h in Headers */, + 8BD887D62FAC0EDE0045683F /* CAAUProcessor.h in Headers */, + 8BD887D22FAC0EDE0045683F /* CAAudioUnit.h in Headers */, + 8BD8882B2FAC0EDF0045683F /* AUViewLocalizedStringKeys.h in Headers */, + 8BD888112FAC0EDE0045683F /* CACFDistributedNotification.h in Headers */, + 8BD887D02FAC0EDE0045683F /* CAComponent.h in Headers */, + 8BD887DE2FAC0EDE0045683F /* CAVectorUnitTypes.h in Headers */, + 8BA05A6E0720730100365D66 /* LonghandVersion.h in Headers */, + 8BD888122FAC0EDE0045683F /* CAFilePathUtils.h in Headers */, + 8BD887D42FAC0EDE0045683F /* CAException.h in Headers */, + 8BD887CB2FAC0EDE0045683F /* CAAtomic.h in Headers */, + 8BD887CA2FAC0EDE0045683F /* CAGuard.h in Headers */, + 8BD888302FAC0EDF0045683F /* AUInputElement.h in Headers */, + 8BD888072FAC0EDE0045683F /* CACFPreferences.h in Headers */, + 8BD8881C2FAC0EDF0045683F /* CAByteOrder.h in Headers */, + 8BD887FF2FAC0EDE0045683F /* CARingBuffer.h in Headers */, + 8BD887C62FAC0EDE0045683F /* CABool.h in Headers */, + 8BD887EB2FAC0EDE0045683F /* CAMutex.h in Headers */, + 8BD888312FAC0EDF0045683F /* AUBase.h in Headers */, + 8BC6025C073B072D006C4272 /* Longhand.h in Headers */, + 8BD887E32FAC0EDE0045683F /* CACFString.h in Headers */, + 8BD888022FAC0EDE0045683F /* CASharedLibrary.h in Headers */, + 8BD887CF2FAC0EDE0045683F /* CATokenMap.h in Headers */, + 8BD887C42FAC0EDE0045683F /* CAExtAudioFile.h in Headers */, + 8BD887D92FAC0EDE0045683F /* CAPThread.h in Headers */, + 8BD887F52FAC0EDE0045683F /* CAPropertyAddress.h in Headers */, + 8BD8881F2FAC0EDF0045683F /* CAReferenceCounted.h in Headers */, + 8BD888442FAC0EDF0045683F /* AUBuffer.h in Headers */, + 8BD888262FAC0EDF0045683F /* CAMath.h in Headers */, + 8BD888062FAC0EDE0045683F /* CAAutoDisposer.h in Headers */, + 8BD887CD2FAC0EDE0045683F /* CACFObject.h in Headers */, + 8BD887ED2FAC0EDE0045683F /* CASettingsStorage.h in Headers */, + 8BD887F62FAC0EDE0045683F /* CAXException.h in Headers */, + 8BD888132FAC0EDE0045683F /* CATink.h in Headers */, + 8BD888402FAC0EDF0045683F /* AUInputFormatConverter.h in Headers */, + 8BD8881B2FAC0EDF0045683F /* CAVectorUnit.h in Headers */, + 8BD887D72FAC0EDE0045683F /* CAProcess.h in Headers */, + 8BD887DD2FAC0EDE0045683F /* CAAudioValueRange.h in Headers */, + 8BD887F22FAC0EDE0045683F /* CABitOperations.h in Headers */, + 8BD887E82FAC0EDE0045683F /* CAAudioFileFormats.h in Headers */, + 8BD887E12FAC0EDE0045683F /* CACFNumber.h in Headers */, + 8BD887F92FAC0EDE0045683F /* CAAudioUnitOutputCapturer.h in Headers */, + 8BD8880A2FAC0EDE0045683F /* CADebugMacros.h in Headers */, + 8BD888432FAC0EDF0045683F /* AUMIDIDefs.h in Headers */, + 8BD888032FAC0EDE0045683F /* CACFData.h in Headers */, + 8BD887CC2FAC0EDE0045683F /* CAStreamBasicDescription.h in Headers */, + 8BD888322FAC0EDF0045683F /* AUPlugInDispatch.h in Headers */, + 8BD887CE2FAC0EDE0045683F /* CAStreamRangedDescription.h in Headers */, + 8BD8880E2FAC0EDE0045683F /* CACFPlugIn.h in Headers */, + 8BD887D12FAC0EDE0045683F /* CAAudioBufferList.h in Headers */, + 8BD887E92FAC0EDE0045683F /* CAAUMIDIMapManager.h in Headers */, + 8BD8883C2FAC0EDF0045683F /* AUEffectBase.h in Headers */, + 8BD887D82FAC0EDE0045683F /* CACFDictionary.h in Headers */, + 8BD888392FAC0EDF0045683F /* AUScopeElement.h in Headers */, + 8BD888092FAC0EDE0045683F /* CAComponentDescription.h in Headers */, + 8BD8883F2FAC0EDF0045683F /* AUSilentTimeout.h in Headers */, + 8BD888012FAC0EDE0045683F /* CABufferList.h in Headers */, + 8BD888332FAC0EDF0045683F /* AUDispatch.h in Headers */, + 8BD888372FAC0EDF0045683F /* AUOutputElement.h in Headers */, + 8BD887FD2FAC0EDE0045683F /* CALogMacros.h in Headers */, + 8BD887F12FAC0EDE0045683F /* AUParamInfo.h in Headers */, + 8BD888102FAC0EDE0045683F /* CAMixMap.h in Headers */, + 8BD8881D2FAC0EDF0045683F /* CACFArray.h in Headers */, + 8BD887C52FAC0EDE0045683F /* CACFMachPort.h in Headers */, + 8BD887F02FAC0EDE0045683F /* CAAUMIDIMap.h in Headers */, + 8BD887C82FAC0EDE0045683F /* CADebugger.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 8D01CCC60486CAD60068D4B7 /* Longhand */ = { + isa = PBXNativeTarget; + buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "Longhand" */; + buildPhases = ( + 8D01CCC70486CAD60068D4B7 /* Headers */, + 8D01CCC90486CAD60068D4B7 /* Resources */, + 8D01CCCB0486CAD60068D4B7 /* Sources */, + 8D01CCCD0486CAD60068D4B7 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Longhand; + productInstallPath = "$(HOME)/Library/Bundles"; + productName = Longhand; + productReference = 8D01CCD20486CAD60068D4B7 /* Longhand.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 "Longhand" */; + compatibilityVersion = "Xcode 3.1"; + developmentRegion = en; + hasScannedForEncodings = 1; + knownRegions = ( + ja, + de, + Base, + en, + fr, + ); + mainGroup = 089C166AFE841209C02AAC07 /* Longhand */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 8D01CCC60486CAD60068D4B7 /* Longhand */, + ); + }; +/* 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 = ( + 8BD888002FAC0EDE0045683F /* AUOutputBL.cpp in Sources */, + 8BD888252FAC0EDF0045683F /* CAAudioFileFormats.cpp in Sources */, + 8BD888172FAC0EDF0045683F /* CAHostTimeBase.cpp in Sources */, + 8BD887EF2FAC0EDE0045683F /* CAXException.cpp in Sources */, + 8BD888192FAC0EDF0045683F /* CAAudioBufferList.cpp in Sources */, + 8BD887DC2FAC0EDE0045683F /* CAFilePathUtils.cpp in Sources */, + 8BD887DA2FAC0EDE0045683F /* CAAUParameter.cpp in Sources */, + 8BD887FC2FAC0EDE0045683F /* CAAUMIDIMap.cpp in Sources */, + 8BD888292FAC0EDF0045683F /* CAAudioValueRange.cpp in Sources */, + 8BD888382FAC0EDF0045683F /* AUDispatch.cpp in Sources */, + 8BD887F32FAC0EDE0045683F /* CACFPreferences.cpp in Sources */, + 8BD888362FAC0EDF0045683F /* AUPlugInDispatch.cpp in Sources */, + 8BD887D52FAC0EDE0045683F /* CAAUProcessor.cpp in Sources */, + 8BD887EA2FAC0EDE0045683F /* CACFDictionary.cpp in Sources */, + 8BD8883E2FAC0EDF0045683F /* AUBaseHelper.cpp in Sources */, + 8BD888232FAC0EDF0045683F /* CADebugger.cpp in Sources */, + 8BD887F72FAC0EDE0045683F /* CAAudioChannelLayout.cpp in Sources */, + 8BD887FA2FAC0EDE0045683F /* AUParamInfo.cpp in Sources */, + 8BD888182FAC0EDF0045683F /* CAPersistence.cpp in Sources */, + 8BD8880C2FAC0EDE0045683F /* CADebugPrintf.cpp in Sources */, + 8BD888412FAC0EDF0045683F /* AUTimestampGenerator.cpp in Sources */, + 8BD888142FAC0EDF0045683F /* CAStreamBasicDescription.cpp in Sources */, + 8BD887E42FAC0EDE0045683F /* CAAUMIDIMapManager.cpp in Sources */, + 8BD8880F2FAC0EDE0045683F /* CASettingsStorage.cpp in Sources */, + 8BD888342FAC0EDF0045683F /* AUOutputElement.cpp in Sources */, + 8BD887E02FAC0EDE0045683F /* CAGuard.cpp in Sources */, + 8BA05A6B0720730100365D66 /* Longhand.cpp in Sources */, + 8BD888222FAC0EDF0045683F /* CAMutex.cpp in Sources */, + 8BD8883B2FAC0EDF0045683F /* AUEffectBase.cpp in Sources */, + 8BD888202FAC0EDF0045683F /* CACFMachPort.cpp in Sources */, + 8BD8882F2FAC0EDF0045683F /* AUBase.cpp in Sources */, + 8BD887FB2FAC0EDE0045683F /* CASharedLibrary.cpp in Sources */, + 8BD887E22FAC0EDE0045683F /* CACFDistributedNotification.cpp in Sources */, + 8BD887E52FAC0EDE0045683F /* CAComponentDescription.cpp in Sources */, + 8BD887EC2FAC0EDE0045683F /* CACFString.cpp in Sources */, + 8BD8882C2FAC0EDF0045683F /* ComponentBase.cpp in Sources */, + 8BD8880D2FAC0EDE0045683F /* CARingBuffer.cpp in Sources */, + 8BD8882D2FAC0EDF0045683F /* AUScopeElement.cpp in Sources */, + 8BD8882A2FAC0EDF0045683F /* CAAudioUnit.cpp in Sources */, + 8BD888272FAC0EDF0045683F /* CACFArray.cpp in Sources */, + 8BD888242FAC0EDF0045683F /* CABundleLocker.cpp in Sources */, + 8BD888162FAC0EDF0045683F /* CAProcess.cpp in Sources */, + 8BD888042FAC0EDE0045683F /* CAStreamRangedDescription.cpp in Sources */, + 8BD888052FAC0EDE0045683F /* CAPThread.cpp in Sources */, + 8BD887C72FAC0EDE0045683F /* CAComponent.cpp in Sources */, + 8BD887DF2FAC0EDE0045683F /* CAAudioChannelLayoutObject.cpp in Sources */, + 8BD8881A2FAC0EDF0045683F /* CAAudioTimeStamp.cpp in Sources */, + 8BD888212FAC0EDF0045683F /* CABufferList.cpp in Sources */, + 8BD887FE2FAC0EDE0045683F /* CACFMessagePort.cpp in Sources */, + 8BD888082FAC0EDE0045683F /* CAVectorUnit.cpp in Sources */, + 8BD8883A2FAC0EDF0045683F /* AUInputElement.cpp in Sources */, + 8BD888422FAC0EDF0045683F /* AUBuffer.cpp in Sources */, + 8BD887E72FAC0EDE0045683F /* CADebugMacros.cpp in Sources */, + 8BD887C92FAC0EDE0045683F /* CACFNumber.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 089C167DFE841241C02AAC07 /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + 8BD888462FAC0F940045683F /* 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 = Longhand.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 = Longhand; + 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 = Longhand.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 = Longhand; + 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 "Longhand" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3E4BA244089833B7007656EC /* Debug */, + 3E4BA245089833B7007656EC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 3E4BA247089833B7007656EC /* Build configuration list for PBXProject "Longhand" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3E4BA248089833B7007656EC /* Debug */, + 3E4BA249089833B7007656EC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; +/* End XCConfigurationList section */ + }; + rootObject = 089C1669FE841209C02AAC07 /* Project object */; +} diff --git a/plugins/MacSignedAU/Longhand/Longhand.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/plugins/MacSignedAU/Longhand/Longhand.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..919434a62 --- /dev/null +++ b/plugins/MacSignedAU/Longhand/Longhand.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/plugins/MacSignedAU/Longhand/Longhand.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/plugins/MacSignedAU/Longhand/Longhand.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..18d981003 --- /dev/null +++ b/plugins/MacSignedAU/Longhand/Longhand.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/plugins/MacSignedAU/Longhand/Longhand.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacSignedAU/Longhand/Longhand.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 000000000..00f3fe9d8 Binary files /dev/null and b/plugins/MacSignedAU/Longhand/Longhand.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/plugins/MacSignedAU/Longhand/Longhand.xcodeproj/xcshareddata/xcschemes/Longhand.xcscheme b/plugins/MacSignedAU/Longhand/Longhand.xcodeproj/xcshareddata/xcschemes/Longhand.xcscheme new file mode 100644 index 000000000..ffea33103 --- /dev/null +++ b/plugins/MacSignedAU/Longhand/Longhand.xcodeproj/xcshareddata/xcschemes/Longhand.xcscheme @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/MacSignedAU/Longhand/Longhand.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist b/plugins/MacSignedAU/Longhand/Longhand.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 000000000..5398db6c5 --- /dev/null +++ b/plugins/MacSignedAU/Longhand/Longhand.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,22 @@ + + + + + SchemeUserState + + Longhand.xcscheme_^#shared#^_ + + orderHint + 0 + + + SuppressBuildableAutocreation + + 8D01CCC60486CAD60068D4B7 + + primary + + + + + diff --git a/plugins/MacSignedAU/Longhand/LonghandVersion.h b/plugins/MacSignedAU/Longhand/LonghandVersion.h new file mode 100755 index 000000000..fbdbf1147 --- /dev/null +++ b/plugins/MacSignedAU/Longhand/LonghandVersion.h @@ -0,0 +1,58 @@ +/* +* File: LonghandVersion.h +* +* Version: 1.0 +* +* Created: 4/29/26 +* +* Copyright: Copyright © 2026 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 __LonghandVersion_h__ +#define __LonghandVersion_h__ + + +#ifdef DEBUG + #define kLonghandVersion 0xFFFFFFFF +#else + #define kLonghandVersion 0x00010000 +#endif + +//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~// +#define Longhand_COMP_MANF 'Dthr' +#define Longhand_COMP_SUBTYPE 'lonh' +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// + +#endif + diff --git a/plugins/MacSignedAU/Longhand/en.lproj/InfoPlist.strings b/plugins/MacSignedAU/Longhand/en.lproj/InfoPlist.strings new file mode 100755 index 000000000..bd5365e11 Binary files /dev/null and b/plugins/MacSignedAU/Longhand/en.lproj/InfoPlist.strings differ diff --git a/plugins/MacSignedAU/Longhand/version.plist b/plugins/MacSignedAU/Longhand/version.plist new file mode 100755 index 000000000..11edf8a1b --- /dev/null +++ b/plugins/MacSignedAU/Longhand/version.plist @@ -0,0 +1,16 @@ + + + + + BuildVersion + 3 + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1.0 + ProjectName + ${EXECUTABLE_NAME} + SourceVersion + 590000 + + diff --git a/plugins/MacSignedAU/PearLiteEQ/PearLiteEQ.cpp b/plugins/MacSignedAU/PearLiteEQ/PearLiteEQ.cpp index 62b566516..03f9311d2 100755 --- a/plugins/MacSignedAU/PearLiteEQ/PearLiteEQ.cpp +++ b/plugins/MacSignedAU/PearLiteEQ/PearLiteEQ.cpp @@ -250,7 +250,7 @@ void PearLiteEQ::PearLiteEQKernel::Process( const Float32 *inSourceP, //begin 32 bit floating point dither int expon; frexpf((float)inputSampleL, &expon); fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; - inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62)); + inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 32 bit floating point dither *destP = inputSampleL; diff --git a/plugins/MacSignedAU/PearLiteEQ/PearLiteEQ.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacSignedAU/PearLiteEQ/PearLiteEQ.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate index 7a2fec149..df0205c3e 100644 Binary files a/plugins/MacSignedAU/PearLiteEQ/PearLiteEQ.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate and b/plugins/MacSignedAU/PearLiteEQ/PearLiteEQ.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/plugins/MacSignedAU/PunchyDeluxe/PunchyDeluxe.cpp b/plugins/MacSignedAU/PunchyDeluxe/PunchyDeluxe.cpp index 87f47ba4f..116def844 100755 --- a/plugins/MacSignedAU/PunchyDeluxe/PunchyDeluxe.cpp +++ b/plugins/MacSignedAU/PunchyDeluxe/PunchyDeluxe.cpp @@ -312,37 +312,47 @@ void PunchyDeluxe::PunchyDeluxeKernel::Process( const Float32 *inSourceP, } inputSample += band; inputSample *= drive; - inputSample = fmin(fmax(inputSample,-2.032610446872596),2.032610446872596); - long double X = inputSample * inputSample; - long double temp = inputSample * X; - inputSample -= (temp*0.125); temp *= X; - inputSample += (temp*0.0078125); temp *= X; - inputSample -= (temp*0.000244140625); temp *= X; - inputSample += (temp*0.000003814697265625); temp *= X; - inputSample -= (temp*0.0000000298023223876953125); temp *= X; - //purestsaturation: sine, except all the corrections + inputSample = fmin(fmax(inputSample,-M_PI_2),M_PI_2); + long double X = inputSample; X *= X; //long double for even + long double temp = inputSample * X; //the initial multiplies + inputSample -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSample += temp*0.00833333333333333333333333333333333; temp *= X; + inputSample -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSample += temp*0.00000275573192239858906525573192239; temp *= X; + inputSample -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSample += temp*0.00000000016059043836821614599392377; temp *= X; + inputSample -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSample += temp*0.00000000000000281145725434552076319; temp *= X; + inputSample -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSample += temp*0.00000000000000000001957294106339126; //retain mantissa of a long double increasing power function + //long double probably doesn't handle more than 36 digits or so } if (pad < 1.0) { inputSample *= pad; } - inputSample = fmin(fmax(inputSample,-2.032610446872596),2.032610446872596); - long double X = inputSample * inputSample; - long double temp = inputSample * X; - inputSample -= (temp*0.125); temp *= X; - inputSample += (temp*0.0078125); temp *= X; - inputSample -= (temp*0.000244140625); temp *= X; - inputSample += (temp*0.000003814697265625); temp *= X; - inputSample -= (temp*0.0000000298023223876953125); temp *= X; - //purestsaturation: sine, except all the corrections + inputSample = fmin(fmax(inputSample,-M_PI_2),M_PI_2); + long double X = inputSample; X *= X; //long double for even + long double temp = inputSample * X; //the initial multiplies + inputSample -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSample += temp*0.00833333333333333333333333333333333; temp *= X; + inputSample -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSample += temp*0.00000275573192239858906525573192239; temp *= X; + inputSample -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSample += temp*0.00000000016059043836821614599392377; temp *= X; + inputSample -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSample += temp*0.00000000000000281145725434552076319; temp *= X; + inputSample -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSample += temp*0.00000000000000000001957294106339126; //retain mantissa of a long double increasing power function + //long double probably doesn't handle more than 36 digits or so //begin 32 bit floating point dither int expon; frexpf((float)inputSample, &expon); fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; - inputSample += ((double(fpd)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62)); + inputSample += ((double(fpd)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 32 bit floating point dither *destP = inputSample; diff --git a/plugins/MacSignedAU/PunchyDeluxe/PunchyDeluxe.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacSignedAU/PunchyDeluxe/PunchyDeluxe.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate index b35447879..eb294dc67 100644 Binary files a/plugins/MacSignedAU/PunchyDeluxe/PunchyDeluxe.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate and b/plugins/MacSignedAU/PunchyDeluxe/PunchyDeluxe.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/plugins/MacSignedAU/PunchyGuitar/PunchyGuitar.cpp b/plugins/MacSignedAU/PunchyGuitar/PunchyGuitar.cpp index 54b30464b..98e303c6e 100755 --- a/plugins/MacSignedAU/PunchyGuitar/PunchyGuitar.cpp +++ b/plugins/MacSignedAU/PunchyGuitar/PunchyGuitar.cpp @@ -333,16 +333,21 @@ void PunchyGuitar::PunchyGuitarKernel::Process( const Float32 *inSourceP, } inputSample += (band*angG[9]); inputSample *= drive; - inputSample = fmin(fmax(inputSample,-2.032610446872596),2.032610446872596); - long double X = inputSample * inputSample; - long double temp = inputSample * X; - inputSample -= (temp*0.125); temp *= X; - inputSample += (temp*0.0078125); temp *= X; - inputSample -= (temp*0.000244140625); temp *= X; - inputSample += (temp*0.000003814697265625); temp *= X; - inputSample -= (temp*0.0000000298023223876953125); temp *= X; - //purestsaturation: sine, except all the corrections + inputSample = fmin(fmax(inputSample,-M_PI_2),M_PI_2); + long double X = inputSample; X *= X; //long double for even + long double temp = inputSample * X; //the initial multiplies + inputSample -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSample += temp*0.00833333333333333333333333333333333; temp *= X; + inputSample -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSample += temp*0.00000275573192239858906525573192239; temp *= X; + inputSample -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSample += temp*0.00000000016059043836821614599392377; temp *= X; + inputSample -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSample += temp*0.00000000000000281145725434552076319; temp *= X; + inputSample -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSample += temp*0.00000000000000000001957294106339126; //retain mantissa of a long double increasing power function + //long double probably doesn't handle more than 36 digits or so } if (gateroller < 1.0) @@ -373,7 +378,7 @@ void PunchyGuitar::PunchyGuitarKernel::Process( const Float32 *inSourceP, //begin 32 bit floating point dither int expon; frexpf((float)inputSample, &expon); fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; - inputSample += ((double(fpd)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62)); + inputSample += ((double(fpd)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 32 bit floating point dither *destP = inputSample; diff --git a/plugins/MacSignedAU/PunchyGuitar/PunchyGuitar.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacSignedAU/PunchyGuitar/PunchyGuitar.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate index de826aee8..acc3eea60 100644 Binary files a/plugins/MacSignedAU/PunchyGuitar/PunchyGuitar.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate and b/plugins/MacSignedAU/PunchyGuitar/PunchyGuitar.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/plugins/MacSignedAU/SoftClock3/SoftClock3.cpp b/plugins/MacSignedAU/SoftClock3/SoftClock3.cpp index 6706d4b95..b6b770261 100755 --- a/plugins/MacSignedAU/SoftClock3/SoftClock3.cpp +++ b/plugins/MacSignedAU/SoftClock3/SoftClock3.cpp @@ -436,10 +436,12 @@ OSStatus SoftClock3::ProcessBufferLists(AudioUnitRenderActionFlags & ioActionFl //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)); + inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-44l * 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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 32 bit stereo floating point dither *outputL = inputSampleL; diff --git a/plugins/MacSignedAU/SoftClock3/SoftClock3.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacSignedAU/SoftClock3/SoftClock3.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate index 5abd5e8c6..8ef0a78d7 100644 Binary files a/plugins/MacSignedAU/SoftClock3/SoftClock3.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate and b/plugins/MacSignedAU/SoftClock3/SoftClock3.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/plugins/MacSignedAU/X2Buss/X2Buss.cpp b/plugins/MacSignedAU/X2Buss/X2Buss.cpp index 78173fe54..7edb3b579 100755 --- a/plugins/MacSignedAU/X2Buss/X2Buss.cpp +++ b/plugins/MacSignedAU/X2Buss/X2Buss.cpp @@ -272,15 +272,14 @@ ComponentResult X2Buss::Reset(AudioUnitScope inScope, AudioUnitElement inElemen 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 + lastSampleL = 0.0; + wasPosClipL = false; + wasNegClipL = false; + lastSampleR = 0.0; + wasPosClipR = false; + wasNegClipR = false; + for (int x = 0; x < 17; x++) {intermediateL[x] = 0.0; intermediateR[x] = 0.0;} + for (int x = 0; x < 33; x++) {slewL[x] = 0.0; slewR[x] = 0.0;} inTrimA = 0.5; inTrimB = 0.5; @@ -305,8 +304,8 @@ OSStatus X2Buss::ProcessBufferLists(AudioUnitRenderActionFlags & ioActionFlags, 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; + int spacing = floor(overallscale); //should give us working basic scaling, usually 2 or 4 + if (spacing < 1) spacing = 1; if (spacing > 16) spacing = 16; double trebleGain = (GetParameter( kParam_A )-0.5)*2.0; trebleGain = 1.0+(trebleGain*fabs(trebleGain)*fabs(trebleGain)); @@ -428,9 +427,15 @@ OSStatus X2Buss::ProcessBufferLists(AudioUnitRenderActionFlags & ioActionFlags, double bezCThresh = pow(1.0-GetParameter( kParam_I ), 6.0) * 8.0; double bezRez = pow(1.0-GetParameter( kParam_I ), 12.360679774997898) / overallscale; + bezRez = fmin(fmax(bezRez,0.00001),1.0); + int stepped = 999999; if (bezRez > 0.000001) stepped = (int)(1.0/bezRez); + bezRez = 1.0 / stepped; + double bezTrim = 1.0-(bezRez*((double)stepped/(stepped+1.0))); 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); + stepped = 999999; if (sloRez > 0.000001) stepped = (int)(1.0/sloRez); + sloRez = 1.0 / stepped; + double sloTrim = 1.0-(sloRez*((double)stepped/(stepped+1.0))); //Dynamics2 inTrimA = inTrimB; inTrimB = GetParameter( kParam_J )*2.0; @@ -442,16 +447,6 @@ OSStatus X2Buss::ProcessBufferLists(AudioUnitRenderActionFlags & ioActionFlags, 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]; @@ -586,8 +581,8 @@ OSStatus X2Buss::ProcessBufferLists(AudioUnitRenderActionFlags & ioActionFlags, inputSampleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain); //fourth stage of three crossovers is the exponential filters - //SmoothEQ2 + //SmoothEQ2 if (bezCThresh > 0.0) { inputSampleL *= ((bezCThresh*0.5)+1.0); inputSampleR *= ((bezCThresh*0.5)+1.0); @@ -613,6 +608,7 @@ OSStatus X2Buss::ProcessBufferLists(AudioUnitRenderActionFlags & ioActionFlags, 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]; @@ -624,22 +620,21 @@ OSStatus X2Buss::ProcessBufferLists(AudioUnitRenderActionFlags & ioActionFlags, 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 X = bezCompF[bez_cycle]*bezTrim; + double CBAFL = bezCompF[bez_BL]+(bezCompF[bez_CL]*(1.0-X)*(1.0-X))+(bezCompF[bez_BL]*2.0*(1.0-X)*X)+(bezCompF[bez_AL]*X*X); + CBAFL *= 0.5; + X = bezCompS[bez_cycle]*sloTrim; + double CBASL = bezCompS[bez_BL]+(bezCompS[bez_CL]*(1.0-X)*(1.0-X))+(bezCompS[bez_BL]*2.0*(1.0-X)*X)+(bezCompS[bez_AL]*X*X); + CBASL *= 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; + X = bezCompF[bez_cycle]*bezTrim; + double CBAFR = bezCompF[bez_BR]+(bezCompF[bez_CR]*(1.0-X)*(1.0-X))+(bezCompF[bez_BR]*2.0*(1.0-X)*X)+(bezCompF[bez_AR]*X*X); + CBAFR *= 0.5; + X = bezCompS[bez_cycle]*sloTrim; + double CBASR = bezCompS[bez_BR]+(bezCompS[bez_CR]*(1.0-X)*(1.0-X))+(bezCompS[bez_BR]*2.0*(1.0-X)*X)+(bezCompS[bez_AR]*X*X); + CBASR *= 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)); @@ -647,94 +642,69 @@ OSStatus X2Buss::ProcessBufferLists(AudioUnitRenderActionFlags & ioActionFlags, 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 ClipOnly3 as a little, compressed chunk that can be dropped into code + double noise = 1.0-((double(fpdL)/UINT32_MAX)*0.076); + if (wasPosClipL == true) { //current will be over + if (inputSampleL0.9085097) {wasPosClipL=true;inputSampleL=(0.9085097*noise)+(lastSampleL*(1.0-noise));} + if (wasNegClipL == true) { //current will be -over + if (inputSampleL > lastSampleL) lastSampleL=(-0.9085097*noise)+(inputSampleL*(1.0-noise)); + else lastSampleL = -0.94; + } wasNegClipL = false; + if (inputSampleL<-0.9085097) {wasNegClipL=true;inputSampleL=(-0.9085097*noise)+(lastSampleL*(1.0-noise));} + slewL[spacing*2] = fabs(lastSampleL-inputSampleL); + for (int x = spacing*2; x > 0; x--) slewL[x-1] = slewL[x]; + intermediateL[spacing] = inputSampleL; inputSampleL = lastSampleL; + //latency is however many samples equals one 44.1k sample + for (int x = spacing; x > 0; x--) {intermediateL[x-1] = intermediateL[x];} lastSampleL = intermediateL[0]; + if (wasPosClipL || wasNegClipL) { + for (int x = spacing; x > 0; x--) lastSampleL += intermediateL[x]; + lastSampleL /= spacing; + } double finalSlew = 0.0; + for (int x = spacing*2; x >= 0; x--) if (finalSlew < slewL[x]) finalSlew = slewL[x]; + double postclip = 0.94 / (1.0+(finalSlew*1.3986013)); + if (inputSampleL > postclip) inputSampleL = postclip; if (inputSampleL < -postclip) inputSampleL = -postclip; - //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 + noise = 1.0-((double(fpdR)/UINT32_MAX)*0.076); + if (wasPosClipR == true) { //current will be over + if (inputSampleR0.9085097) {wasPosClipR=true;inputSampleR=(0.9085097*noise)+(lastSampleR*(1.0-noise));} + if (wasNegClipR == true) { //current will be -over + if (inputSampleR > lastSampleR) lastSampleR=(-0.9085097*noise)+(inputSampleR*(1.0-noise)); + else lastSampleR = -0.94; + } wasNegClipR = false; + if (inputSampleR<-0.9085097) {wasNegClipR=true;inputSampleR=(-0.9085097*noise)+(lastSampleR*(1.0-noise));} + slewR[spacing*2] = fabs(lastSampleR-inputSampleR); + for (int x = spacing*2; x > 0; x--) slewR[x-1] = slewR[x]; + intermediateR[spacing] = inputSampleR; inputSampleR = lastSampleR; + //latency is however many samples equals one 44.1k sample + for (int x = spacing; x > 0; x--) {intermediateR[x-1] = intermediateR[x];} lastSampleR = intermediateR[0]; + if (wasPosClipR || wasNegClipR) { + for (int x = spacing; x > 0; x--) lastSampleR += intermediateR[x]; + lastSampleR /= spacing; + } finalSlew = 0.0; + for (int x = spacing*2; x >= 0; x--) if (finalSlew < slewR[x]) finalSlew = slewR[x]; + postclip = 0.94 / (1.0+(finalSlew*1.3986013)); + if (inputSampleR > postclip) inputSampleR = postclip; if (inputSampleR < -postclip) inputSampleR = -postclip; + //end ClipOnly3 as a little, compressed chunk that can be dropped into code //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)); + inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-44l * 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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 32 bit stereo floating point dither *outputL = inputSampleL; diff --git a/plugins/MacSignedAU/X2Buss/X2Buss.h b/plugins/MacSignedAU/X2Buss/X2Buss.h index 44c66a82d..b55eeda34 100755 --- a/plugins/MacSignedAU/X2Buss/X2Buss.h +++ b/plugins/MacSignedAU/X2Buss/X2Buss.h @@ -193,22 +193,16 @@ public: 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 lastSampleL; + double intermediateL[18]; + double slewL[34]; + bool wasPosClipL; + bool wasNegClipL; + double lastSampleR; + double intermediateR[18]; + double slewR[34]; + bool wasPosClipR; + bool wasNegClipR; //Stereo ClipOnly3 double inTrimA; double inTrimB; 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 index 54f6b4131..cbeb1da48 100644 Binary files a/plugins/MacSignedAU/X2Buss/X2Buss.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate and b/plugins/MacSignedAU/X2Buss/X2Buss.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/plugins/MacSignedAU/kRockstar/kRockstar.cpp b/plugins/MacSignedAU/kRockstar/kRockstar.cpp index 797d755f4..c7184b41c 100755 --- a/plugins/MacSignedAU/kRockstar/kRockstar.cpp +++ b/plugins/MacSignedAU/kRockstar/kRockstar.cpp @@ -833,12 +833,12 @@ OSStatus kRockstar::ProcessBufferLists(AudioUnitRenderActionFlags & ioActionFla //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)); + inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); frexpf((float)inputSampleR, &expon); fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5; if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} - inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62)); + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 32 bit stereo floating point dither *outputL = inputSampleL; diff --git a/plugins/MacSignedAU/kRockstar/kRockstar.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacSignedAU/kRockstar/kRockstar.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate index 849fa0cf3..682898b23 100644 Binary files a/plugins/MacSignedAU/kRockstar/kRockstar.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate and b/plugins/MacSignedAU/kRockstar/kRockstar.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/plugins/MacSignedVST/BezEQ3/BezEQ3.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacSignedVST/BezEQ3/BezEQ3.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate index 36b5d0b99..fb2592a96 100755 Binary files a/plugins/MacSignedVST/BezEQ3/BezEQ3.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate and b/plugins/MacSignedVST/BezEQ3/BezEQ3.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/plugins/MacSignedVST/BezEQ3/BezEQ3.xcodeproj/xcshareddata/xcschemes/BezEQ3.xcscheme b/plugins/MacSignedVST/BezEQ3/BezEQ3.xcodeproj/xcshareddata/xcschemes/BezEQ3.xcscheme index be0a87b00..f1aa8adff 100644 --- a/plugins/MacSignedVST/BezEQ3/BezEQ3.xcodeproj/xcshareddata/xcschemes/BezEQ3.xcscheme +++ b/plugins/MacSignedVST/BezEQ3/BezEQ3.xcodeproj/xcshareddata/xcschemes/BezEQ3.xcscheme @@ -15,7 +15,7 @@ @@ -51,7 +51,7 @@ diff --git a/plugins/MacSignedVST/BezEQ3/source/BezEQ3Proc.cpp b/plugins/MacSignedVST/BezEQ3/source/BezEQ3Proc.cpp index fea1c054c..84c3a79bf 100755 --- a/plugins/MacSignedVST/BezEQ3/source/BezEQ3Proc.cpp +++ b/plugins/MacSignedVST/BezEQ3/source/BezEQ3Proc.cpp @@ -114,10 +114,12 @@ void BezEQ3::processReplacing(float **inputs, float **outputs, VstInt32 sampleFr //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)); + inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-44l * 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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 32 bit stereo floating point dither *out1 = inputSampleL; @@ -237,10 +239,12 @@ void BezEQ3::processDoubleReplacing(double **inputs, double **outputs, VstInt32 //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)); + //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 64 bit stereo floating point dither *out1 = inputSampleL; diff --git a/plugins/MacSignedVST/Density3/Density3.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacSignedVST/Density3/Density3.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate index 349a98bf9..3d1738e72 100755 Binary files a/plugins/MacSignedVST/Density3/Density3.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate and b/plugins/MacSignedVST/Density3/Density3.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/plugins/MacSignedVST/Density3/Density3.xcodeproj/xcshareddata/xcschemes/Density3.xcscheme b/plugins/MacSignedVST/Density3/Density3.xcodeproj/xcshareddata/xcschemes/Density3.xcscheme index 2dc4c9c47..cf3d11b5c 100644 --- a/plugins/MacSignedVST/Density3/Density3.xcodeproj/xcshareddata/xcschemes/Density3.xcscheme +++ b/plugins/MacSignedVST/Density3/Density3.xcodeproj/xcshareddata/xcschemes/Density3.xcscheme @@ -15,7 +15,7 @@ @@ -51,7 +51,7 @@ diff --git a/plugins/MacSignedVST/Density3/source/Density3Proc.cpp b/plugins/MacSignedVST/Density3/source/Density3Proc.cpp index dfd071162..fbe26ea32 100755 --- a/plugins/MacSignedVST/Density3/source/Density3Proc.cpp +++ b/plugins/MacSignedVST/Density3/source/Density3Proc.cpp @@ -95,10 +95,12 @@ void Density3::processReplacing(float **inputs, float **outputs, VstInt32 sample //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)); + inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-44l * 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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 32 bit stereo floating point dither *out1 = inputSampleL; @@ -199,10 +201,12 @@ void Density3::processDoubleReplacing(double **inputs, double **outputs, VstInt3 //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)); + //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 64 bit stereo floating point dither *out1 = inputSampleL; diff --git a/plugins/MacSignedVST/Dynamics3/Dynamics3.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacSignedVST/Dynamics3/Dynamics3.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate index b5f8a34f7..6aeb7b2ab 100755 Binary files a/plugins/MacSignedVST/Dynamics3/Dynamics3.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate and b/plugins/MacSignedVST/Dynamics3/Dynamics3.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/plugins/MacSignedVST/Dynamics3/Dynamics3.xcodeproj/xcshareddata/xcschemes/Dynamics3.xcscheme b/plugins/MacSignedVST/Dynamics3/Dynamics3.xcodeproj/xcshareddata/xcschemes/Dynamics3.xcscheme index ec9d145ca..68d0a396e 100644 --- a/plugins/MacSignedVST/Dynamics3/Dynamics3.xcodeproj/xcshareddata/xcschemes/Dynamics3.xcscheme +++ b/plugins/MacSignedVST/Dynamics3/Dynamics3.xcodeproj/xcshareddata/xcschemes/Dynamics3.xcscheme @@ -15,7 +15,7 @@ @@ -51,7 +51,7 @@ diff --git a/plugins/MacSignedVST/Dynamics3/source/Dynamics3.cpp b/plugins/MacSignedVST/Dynamics3/source/Dynamics3.cpp index 11696659e..a0d0d3673 100755 --- a/plugins/MacSignedVST/Dynamics3/source/Dynamics3.cpp +++ b/plugins/MacSignedVST/Dynamics3/source/Dynamics3.cpp @@ -12,10 +12,10 @@ AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new D Dynamics3::Dynamics3(audioMasterCallback audioMaster) : AudioEffectX(audioMaster, kNumPrograms, kNumParameters) { - A = 0.999; + A = 1.0; B = 0.382; C = 0.618; - D = 0.618; + D = 1.0; for (int x = 0; x < bez_total; x++) bezComp[x] = 0.0; //Dynamics3 @@ -104,7 +104,7 @@ void Dynamics3::getParameterName(VstInt32 index, char *text) { case kParamA: vst_strncpy (text, "Thresh", kVstMaxParamStrLen); break; case kParamB: vst_strncpy (text, "Attack", kVstMaxParamStrLen); break; case kParamC: vst_strncpy (text, "Release", kVstMaxParamStrLen); break; - case kParamD: vst_strncpy (text, "Ratio", kVstMaxParamStrLen); break; + case kParamD: vst_strncpy (text, "Dry/Wet", kVstMaxParamStrLen); break; default: break; // unknown parameter, shouldn't happen! } //this is our labels for displaying in the VST host } diff --git a/plugins/MacSignedVST/Dynamics3/source/Dynamics3Proc.cpp b/plugins/MacSignedVST/Dynamics3/source/Dynamics3Proc.cpp index 745d60f23..bc5779ed5 100755 --- a/plugins/MacSignedVST/Dynamics3/source/Dynamics3Proc.cpp +++ b/plugins/MacSignedVST/Dynamics3/source/Dynamics3Proc.cpp @@ -19,15 +19,17 @@ void Dynamics3::processReplacing(float **inputs, float **outputs, VstInt32 sampl overallscale *= getSampleRate(); //begin Dynamics3 - double bezThresh = pow(A+0.6180339887498949,2.0)*2.0; + double bezThresh = pow(A+0.6180339887498949,2.0)*1.6180339887498949; double sqrThresh = sqrt(bezThresh); double bezRez = fmax(pow((1.0-B)*0.5,4.0)/overallscale,0.0001); bezRez /= (2.0/pow(overallscale,0.5-((overallscale-1.0)*0.0375))); - double bezTrim = 1.0-pow(bezRez*0.5,1.0/(bezRez*0.5)); + int stepped = 999999; if (bezRez > 0.000001) stepped = (int)(1.0/bezRez); + bezRez = 1.0 / stepped; + double bezTrim = 1.0-(bezRez*((double)stepped/(stepped+1.0))); double sloRez = fmax(pow((1.0-C)*0.5,4.0)/overallscale,0.00001); sloRez /= (2.0/pow(overallscale,0.5-((overallscale-1.0)*0.0375))); - double bezRatio = 1.0-pow(1.0-D,1.6180339887498949); - if (bezThresh > 5.236) bezRatio = 1.0; + double bezCompDry = pow(1.0-D,1.6180339887498949); + if (bezThresh > 4.236) bezCompDry = 0.0; //end Dynamics3 while (--sampleFrames >= 0) @@ -46,23 +48,25 @@ void Dynamics3::processReplacing(float **inputs, float **outputs, VstInt32 sampl bezComp[bez_min] = fmax(bezComp[bez_min]-sloRez,ctrl); bezComp[bez_Ctrl] += (bezComp[bez_min] * bezRez); bezComp[bez_cycle] += bezRez; - if (bezComp[bez_cycle] > 1.0) {bezComp[bez_cycle] -= 1.0; + if (bezComp[bez_cycle] > 1.0) {bezComp[bez_cycle] = 0.0; bezComp[bez_C] = bezComp[bez_B]; bezComp[bez_B] = bezComp[bez_A]; bezComp[bez_A] = bezComp[bez_Ctrl]; bezComp[bez_Ctrl] = 0.0;} double X = bezComp[bez_cycle]*bezTrim; bezComp[bez_comp] = bezComp[bez_B]+(bezComp[bez_C]*(1.0-X)*(1.0-X))+(bezComp[bez_B]*2.0*(1.0-X)*X)+(bezComp[bez_A]*X*X); - bezComp[bez_comp] = ((1.0-(fmin(bezComp[bez_comp],1.0))));// /bezCeiling - inputSampleL = (drySampleL*bezRatio)+(inputSampleL*(1.0-bezRatio)*bezComp[bez_comp]*bezThresh); - inputSampleR = (drySampleR*bezRatio)+(inputSampleR*(1.0-bezRatio)*bezComp[bez_comp]*bezThresh); + bezComp[bez_comp] = ((1.0-(fmin(bezComp[bez_comp],1.0)))); + inputSampleL = (drySampleL*bezCompDry*(1.0-(bezComp[bez_comp]*(1.0-bezCompDry))))+(inputSampleL*(1.0-bezCompDry)*bezComp[bez_comp]*bezThresh); + inputSampleR = (drySampleR*bezCompDry*(1.0-(bezComp[bez_comp]*(1.0-bezCompDry))))+(inputSampleR*(1.0-bezCompDry)*bezComp[bez_comp]*bezThresh); //end Dynamics3 //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)); + inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-44l * 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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 32 bit stereo floating point dither *out1 = inputSampleL; @@ -87,15 +91,17 @@ void Dynamics3::processDoubleReplacing(double **inputs, double **outputs, VstInt overallscale *= getSampleRate(); //begin Dynamics3 - double bezThresh = pow(A+0.6180339887498949,2.0)*2.0; + double bezThresh = pow(A+0.6180339887498949,2.0)*1.6180339887498949; double sqrThresh = sqrt(bezThresh); double bezRez = fmax(pow((1.0-B)*0.5,4.0)/overallscale,0.0001); bezRez /= (2.0/pow(overallscale,0.5-((overallscale-1.0)*0.0375))); - double bezTrim = 1.0-pow(bezRez*0.5,1.0/(bezRez*0.5)); + int stepped = 999999; if (bezRez > 0.000001) stepped = (int)(1.0/bezRez); + bezRez = 1.0 / stepped; + double bezTrim = 1.0-(bezRez*((double)stepped/(stepped+1.0))); double sloRez = fmax(pow((1.0-C)*0.5,4.0)/overallscale,0.00001); sloRez /= (2.0/pow(overallscale,0.5-((overallscale-1.0)*0.0375))); - double bezRatio = 1.0-pow(1.0-D,1.6180339887498949); - if (bezThresh > 5.236) bezRatio = 1.0; + double bezCompDry = pow(1.0-D,1.6180339887498949); + if (bezThresh > 4.236) bezCompDry = 0.0; //end Dynamics3 while (--sampleFrames >= 0) @@ -114,23 +120,25 @@ void Dynamics3::processDoubleReplacing(double **inputs, double **outputs, VstInt bezComp[bez_min] = fmax(bezComp[bez_min]-sloRez,ctrl); bezComp[bez_Ctrl] += (bezComp[bez_min] * bezRez); bezComp[bez_cycle] += bezRez; - if (bezComp[bez_cycle] > 1.0) {bezComp[bez_cycle] -= 1.0; + if (bezComp[bez_cycle] > 1.0) {bezComp[bez_cycle] = 0.0; bezComp[bez_C] = bezComp[bez_B]; bezComp[bez_B] = bezComp[bez_A]; bezComp[bez_A] = bezComp[bez_Ctrl]; bezComp[bez_Ctrl] = 0.0;} double X = bezComp[bez_cycle]*bezTrim; bezComp[bez_comp] = bezComp[bez_B]+(bezComp[bez_C]*(1.0-X)*(1.0-X))+(bezComp[bez_B]*2.0*(1.0-X)*X)+(bezComp[bez_A]*X*X); - bezComp[bez_comp] = ((1.0-(fmin(bezComp[bez_comp],1.0))));// /bezCeiling - inputSampleL = (drySampleL*bezRatio)+(inputSampleL*(1.0-bezRatio)*bezComp[bez_comp]*bezThresh); - inputSampleR = (drySampleR*bezRatio)+(inputSampleR*(1.0-bezRatio)*bezComp[bez_comp]*bezThresh); + bezComp[bez_comp] = ((1.0-(fmin(bezComp[bez_comp],1.0)))); + inputSampleL = (drySampleL*bezCompDry*(1.0-(bezComp[bez_comp]*(1.0-bezCompDry))))+(inputSampleL*(1.0-bezCompDry)*bezComp[bez_comp]*bezThresh); + inputSampleR = (drySampleR*bezCompDry*(1.0-(bezComp[bez_comp]*(1.0-bezCompDry))))+(inputSampleR*(1.0-bezCompDry)*bezComp[bez_comp]*bezThresh); //end Dynamics3 //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)); + //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 64 bit stereo floating point dither *out1 = inputSampleL; diff --git a/plugins/MacSignedVST/LRConvolve3/LRConvolve3.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacSignedVST/LRConvolve3/LRConvolve3.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate index f98cd54f0..9359cac9f 100755 Binary files a/plugins/MacSignedVST/LRConvolve3/LRConvolve3.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate and b/plugins/MacSignedVST/LRConvolve3/LRConvolve3.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/plugins/MacSignedVST/LRConvolve3/LRConvolve3.xcodeproj/xcshareddata/xcschemes/LRConvolve3.xcscheme b/plugins/MacSignedVST/LRConvolve3/LRConvolve3.xcodeproj/xcshareddata/xcschemes/LRConvolve3.xcscheme index 8ce845f00..57faa4c67 100644 --- a/plugins/MacSignedVST/LRConvolve3/LRConvolve3.xcodeproj/xcshareddata/xcschemes/LRConvolve3.xcscheme +++ b/plugins/MacSignedVST/LRConvolve3/LRConvolve3.xcodeproj/xcshareddata/xcschemes/LRConvolve3.xcscheme @@ -15,7 +15,7 @@ @@ -51,7 +51,7 @@ diff --git a/plugins/MacSignedVST/LRConvolve3/source/LRConvolve3Proc.cpp b/plugins/MacSignedVST/LRConvolve3/source/LRConvolve3Proc.cpp index 62f8d41f9..8822b8b8c 100755 --- a/plugins/MacSignedVST/LRConvolve3/source/LRConvolve3Proc.cpp +++ b/plugins/MacSignedVST/LRConvolve3/source/LRConvolve3Proc.cpp @@ -36,17 +36,19 @@ void LRConvolve3::processReplacing(float **inputs, float **outputs, VstInt32 sam } if (iirSample < modulate) iirSample = modulate; modulate = (iirSample*smooth)+(modulate*(1.0-smooth)); - if (carrier > 0.0) carrier = sqrt(carrier/modulate)*modulate; - if (carrier < 0.0) carrier = -sqrt(carrier/modulate)*modulate; + if (carrier > 0.0 && modulate > 0.0) carrier = sqrt(carrier/modulate)*modulate; + if (carrier < 0.0 && modulate > 0.0) carrier = -sqrt(-carrier/modulate)*modulate; inputSampleL = inputSampleR = carrier; //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)); + inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-44l * 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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 32 bit stereo floating point dither *out1 = inputSampleL; @@ -88,17 +90,19 @@ void LRConvolve3::processDoubleReplacing(double **inputs, double **outputs, VstI } if (iirSample < modulate) iirSample = modulate; modulate = (iirSample*smooth)+(modulate*(1.0-smooth)); - if (carrier > 0.0) carrier = sqrt(carrier/modulate)*modulate; - if (carrier < 0.0) carrier = -sqrt(carrier/modulate)*modulate; + if (carrier > 0.0 && modulate > 0.0) carrier = sqrt(carrier/modulate)*modulate; + if (carrier < 0.0 && modulate > 0.0) carrier = -sqrt(-carrier/modulate)*modulate; inputSampleL = inputSampleR = carrier; //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)); + //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 64 bit stereo floating point dither *out1 = inputSampleL; diff --git a/plugins/MacSignedVST/Longhand/Longhand.xcodeproj/christopherjohnson.pbxuser b/plugins/MacSignedVST/Longhand/Longhand.xcodeproj/christopherjohnson.pbxuser new file mode 100755 index 000000000..1cf44f0a1 --- /dev/null +++ b/plugins/MacSignedVST/Longhand/Longhand.xcodeproj/christopherjohnson.pbxuser @@ -0,0 +1,108 @@ +// !$*UTF8*$! +{ + 089C1669FE841209C02AAC07 /* Project object */ = { + activeBuildConfigurationName = Release; + activeTarget = 8D01CCC60486CAD60068D4B7 /* Longhand */; + codeSenseManager = 8B02375F1D42B1C400E1E8C8 /* Code sense */; + perUserDictionary = { + PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = { + PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; + PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; + PBXFileTableDataSourceColumnWidthsKey = ( + 20, + 269, + 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 = 799701831; + PBXWorkspaceStateSaveDate = 799701831; + }; + sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */; + userBuildSettings = { + }; + }; + 2407DEB6089929BA00EB68BF /* Longhand.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {948, 2412}}"; + sepNavSelRange = "{4544, 0}"; + sepNavVisRange = "{3453, 1660}"; + sepNavWindowFrame = "{{12, 47}, {895, 831}}"; + }; + }; + 245463B80991757100464AD3 /* Longhand.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1110, 1206}}"; + sepNavSelRange = "{2446, 0}"; + sepNavVisRange = "{521, 1986}"; + sepNavWindowFrame = "{{20, 47}, {895, 831}}"; + }; + }; + 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {859, 20267}}"; + sepNavSelRange = "{10616, 0}"; + sepNavVisRange = "{9653, 2414}"; + sepNavWindowFrame = "{{15, 42}, {895, 831}}"; + }; + }; + 24D8286F09A914000093AEF8 /* LonghandProc.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {848, 3276}}"; + sepNavSelRange = "{1127, 1797}"; + sepNavVisRange = "{977, 2046}"; + sepNavWindowFrame = "{{521, 47}, {895, 831}}"; + }; + }; + 8B02375E1D42B1C400E1E8C8 /* Source Control */ = { + isa = PBXSourceControlManager; + fallbackIsa = XCSourceControlManager; + isSCMEnabled = 0; + scmConfiguration = { + repositoryNamesForRoots = { + "" = ""; + }; + }; + }; + 8B02375F1D42B1C400E1E8C8 /* Code sense */ = { + isa = PBXCodeSenseManager; + indexTemplatePath = ""; + }; + 8D01CCC60486CAD60068D4B7 /* Longhand */ = { + activeExec = 0; + }; +} diff --git a/plugins/MacSignedVST/Longhand/Longhand.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacSignedVST/Longhand/Longhand.xcodeproj/christopherjohnson.perspectivev3 new file mode 100755 index 000000000..d3a6f5741 --- /dev/null +++ b/plugins/MacSignedVST/Longhand/Longhand.xcodeproj/christopherjohnson.perspectivev3 @@ -0,0 +1,1503 @@ + + + + + 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, 448}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + + + GeometryConfiguration + + Frame + {{0, 0}, {202, 466}} + GroupTreeTableConfiguration + + MainColumn + 185 + + RubberWindowFrame + 725 281 715 507 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}, {508, 0}} + RubberWindowFrame + 725 281 715 507 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 0pt + + + Proportion + 461pt + Tabs + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA23EDF0692099D00951B8B + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{10, 27}, {508, 434}} + RubberWindowFrame + 725 281 715 507 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 + 508pt + + + Name + Project + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + XCModuleDock + PBXNavigatorGroup + XCDockableTabModule + XCDetailModule + PBXProjectFindModule + PBXCVSModule + PBXBuildResultsModule + + TableOfContents + + 8B9472B62FAA7C3400C74D02 + 1CA23ED40692098700951B8B + 8B9472B72FAA7C3400C74D02 + 8B0237581D42B1C400E1E8C8 + 8B9472B82FAA7C3400C74D02 + 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 + 799702068.00574398 + ToolbarConfigUserDefaultsMinorVersion + 2 + ToolbarDisplayMode + 1 + ToolbarIsVisible + + ToolbarSizeMode + 2 + Type + Perspectives + UpdateMessage + + WindowJustification + 5 + WindowOrderList + + 8B9472B92FAA7C3400C74D02 + /Users/christopherjohnson/Desktop/airwindows/plugins/MacVST/Longhand/Longhand.xcodeproj + + WindowString + 725 281 715 507 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/Longhand/Longhand.xcodeproj/project.pbxproj b/plugins/MacSignedVST/Longhand/Longhand.xcodeproj/project.pbxproj new file mode 100755 index 000000000..fba2d1338 --- /dev/null +++ b/plugins/MacSignedVST/Longhand/Longhand.xcodeproj/project.pbxproj @@ -0,0 +1,462 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 2407DEB9089929BA00EB68BF /* Longhand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2407DEB6089929BA00EB68BF /* Longhand.cpp */; }; + 245463B90991757100464AD3 /* Longhand.h in Headers */ = {isa = PBXBuildFile; fileRef = 245463B80991757100464AD3 /* Longhand.h */; }; + 24CFB70407E7A0220081BD57 /* PkgInfo in Resources */ = {isa = PBXBuildFile; fileRef = 24CFB70307E7A0220081BD57 /* PkgInfo */; }; + 24D8287009A914000093AEF8 /* LonghandProc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 24D8286F09A914000093AEF8 /* LonghandProc.cpp */; }; + 24D8287F09A9164A0093AEF8 /* xcode_vst_prefix.h in Headers */ = {isa = PBXBuildFile; fileRef = 24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */; }; + 8BD887312FAC07140045683F /* vstfxstore.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887252FAC07140045683F /* vstfxstore.h */; }; + 8BD887322FAC07140045683F /* aeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887262FAC07140045683F /* aeffect.h */; }; + 8BD887332FAC07140045683F /* aeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887272FAC07140045683F /* aeffectx.h */; }; + 8BD887342FAC07140045683F /* audioeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD8872B2FAC07140045683F /* audioeffectx.h */; }; + 8BD887352FAC07140045683F /* audioeffect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD8872C2FAC07140045683F /* audioeffect.cpp */; }; + 8BD887362FAC07140045683F /* audioeffectx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD8872D2FAC07140045683F /* audioeffectx.cpp */; }; + 8BD887372FAC07140045683F /* aeffeditor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD8872E2FAC07140045683F /* aeffeditor.h */; }; + 8BD887382FAC07140045683F /* vstplugmain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD8872F2FAC07140045683F /* vstplugmain.cpp */; }; + 8BD887392FAC07140045683F /* audioeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD887302FAC07140045683F /* audioeffect.h */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 2407DE920899296600EB68BF /* Longhand.vst */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Longhand.vst; sourceTree = BUILT_PRODUCTS_DIR; }; + 2407DEB6089929BA00EB68BF /* Longhand.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = Longhand.cpp; path = source/Longhand.cpp; sourceTree = ""; }; + 245463B80991757100464AD3 /* Longhand.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = Longhand.h; path = source/Longhand.h; sourceTree = ""; }; + 24CFB70307E7A0220081BD57 /* PkgInfo */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = PkgInfo; path = mac/PkgInfo; sourceTree = ""; }; + 24D8286F09A914000093AEF8 /* LonghandProc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = LonghandProc.cpp; path = source/LonghandProc.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; }; + 8BD887252FAC07140045683F /* vstfxstore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstfxstore.h; sourceTree = ""; }; + 8BD887262FAC07140045683F /* aeffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffect.h; sourceTree = ""; }; + 8BD887272FAC07140045683F /* aeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffectx.h; sourceTree = ""; }; + 8BD8872B2FAC07140045683F /* audioeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audioeffectx.h; sourceTree = ""; }; + 8BD8872C2FAC07140045683F /* audioeffect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffect.cpp; sourceTree = ""; }; + 8BD8872D2FAC07140045683F /* audioeffectx.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffectx.cpp; sourceTree = ""; }; + 8BD8872E2FAC07140045683F /* aeffeditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffeditor.h; sourceTree = ""; }; + 8BD8872F2FAC07140045683F /* vstplugmain.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstplugmain.cpp; sourceTree = ""; }; + 8BD887302FAC07140045683F /* 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 = ( + 8BD887222FAC07140045683F /* vstsdk2.4 */, + 2407DEB6089929BA00EB68BF /* Longhand.cpp */, + 24D8286F09A914000093AEF8 /* LonghandProc.cpp */, + 245463B80991757100464AD3 /* Longhand.h */, + ); + name = Source; + sourceTree = ""; + }; + 19C28FB4FE9D528D11CA2CBB /* Products */ = { + isa = PBXGroup; + children = ( + 2407DE920899296600EB68BF /* Longhand.vst */, + ); + name = Products; + sourceTree = ""; + }; + 8BD887222FAC07140045683F /* vstsdk2.4 */ = { + isa = PBXGroup; + children = ( + 8BD887232FAC07140045683F /* pluginterfaces */, + 8BD887282FAC07140045683F /* public.sdk */, + ); + name = vstsdk2.4; + path = ../../../../vstsdk2.4; + sourceTree = ""; + }; + 8BD887232FAC07140045683F /* pluginterfaces */ = { + isa = PBXGroup; + children = ( + 8BD887242FAC07140045683F /* vst2.x */, + ); + path = pluginterfaces; + sourceTree = ""; + }; + 8BD887242FAC07140045683F /* vst2.x */ = { + isa = PBXGroup; + children = ( + 8BD887252FAC07140045683F /* vstfxstore.h */, + 8BD887262FAC07140045683F /* aeffect.h */, + 8BD887272FAC07140045683F /* aeffectx.h */, + ); + path = vst2.x; + sourceTree = ""; + }; + 8BD887282FAC07140045683F /* public.sdk */ = { + isa = PBXGroup; + children = ( + 8BD887292FAC07140045683F /* source */, + ); + path = public.sdk; + sourceTree = ""; + }; + 8BD887292FAC07140045683F /* source */ = { + isa = PBXGroup; + children = ( + 8BD8872A2FAC07140045683F /* vst2.x */, + ); + path = source; + sourceTree = ""; + }; + 8BD8872A2FAC07140045683F /* vst2.x */ = { + isa = PBXGroup; + children = ( + 8BD8872B2FAC07140045683F /* audioeffectx.h */, + 8BD8872C2FAC07140045683F /* audioeffect.cpp */, + 8BD8872D2FAC07140045683F /* audioeffectx.cpp */, + 8BD8872E2FAC07140045683F /* aeffeditor.h */, + 8BD8872F2FAC07140045683F /* vstplugmain.cpp */, + 8BD887302FAC07140045683F /* audioeffect.h */, + ); + path = vst2.x; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 8D01CCC70486CAD60068D4B7 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 8BD887372FAC07140045683F /* aeffeditor.h in Headers */, + 245463B90991757100464AD3 /* Longhand.h in Headers */, + 8BD887392FAC07140045683F /* audioeffect.h in Headers */, + 8BD887322FAC07140045683F /* aeffect.h in Headers */, + 24D8287F09A9164A0093AEF8 /* xcode_vst_prefix.h in Headers */, + 8BD887342FAC07140045683F /* audioeffectx.h in Headers */, + 8BD887312FAC07140045683F /* vstfxstore.h in Headers */, + 8BD887332FAC07140045683F /* aeffectx.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 8D01CCC60486CAD60068D4B7 /* Longhand */ = { + isa = PBXNativeTarget; + buildConfigurationList = 24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "Longhand" */; + buildPhases = ( + 8D01CCC70486CAD60068D4B7 /* Headers */, + 8D01CCC90486CAD60068D4B7 /* Resources */, + 8D01CCCB0486CAD60068D4B7 /* Sources */, + 24CFB70807E7A07C0081BD57 /* Copy PkgInfo */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Longhand; + productInstallPath = "$(HOME)/Library/Bundles"; + productName = "FM-Chopper"; + productReference = 2407DE920899296600EB68BF /* Longhand.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 "Longhand" */; + compatibilityVersion = "Xcode 2.4"; + developmentRegion = en; + hasScannedForEncodings = 1; + knownRegions = ( + en, + de, + Base, + fr, + ja, + ); + mainGroup = 089C166AFE841209C02AAC07 /* FM-Chopper */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 8D01CCC60486CAD60068D4B7 /* Longhand */, + ); + }; +/* 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 = ( + 8BD887362FAC07140045683F /* audioeffectx.cpp in Sources */, + 2407DEB9089929BA00EB68BF /* Longhand.cpp in Sources */, + 8BD887352FAC07140045683F /* audioeffect.cpp in Sources */, + 8BD887382FAC07140045683F /* vstplugmain.cpp in Sources */, + 24D8287009A914000093AEF8 /* LonghandProc.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.Longhand; + PRODUCT_NAME = Longhand; + 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.Longhand; + PRODUCT_NAME = Longhand; + 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 "Longhand" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 24BEAAEE08919AE700E695F9 /* Debug */, + 24BEAAEF08919AE700E695F9 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 24BEAAF108919AE700E695F9 /* Build configuration list for PBXProject "Longhand" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 24BEAAF208919AE700E695F9 /* Debug */, + 24BEAAF308919AE700E695F9 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; +/* End XCConfigurationList section */ + }; + rootObject = 089C1669FE841209C02AAC07 /* Project object */; +} diff --git a/plugins/MacSignedVST/Longhand/Longhand.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/plugins/MacSignedVST/Longhand/Longhand.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100755 index 000000000..a80c03824 --- /dev/null +++ b/plugins/MacSignedVST/Longhand/Longhand.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/plugins/MacSignedVST/Longhand/Longhand.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/plugins/MacSignedVST/Longhand/Longhand.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..18d981003 --- /dev/null +++ b/plugins/MacSignedVST/Longhand/Longhand.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/plugins/MacSignedVST/Longhand/Longhand.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacSignedVST/Longhand/Longhand.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100755 index 000000000..6fc0714bf Binary files /dev/null and b/plugins/MacSignedVST/Longhand/Longhand.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/plugins/MacSignedVST/Longhand/Longhand.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacSignedVST/Longhand/Longhand.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100755 index 000000000..314de0ff8 Binary files /dev/null and b/plugins/MacSignedVST/Longhand/Longhand.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/plugins/MacSignedVST/Longhand/Longhand.xcodeproj/spiadmin.mode1v3 b/plugins/MacSignedVST/Longhand/Longhand.xcodeproj/spiadmin.mode1v3 new file mode 100755 index 000000000..c5723261d --- /dev/null +++ b/plugins/MacSignedVST/Longhand/Longhand.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/Longhand/Longhand.xcodeproj/spiadmin.pbxuser b/plugins/MacSignedVST/Longhand/Longhand.xcodeproj/spiadmin.pbxuser new file mode 100755 index 000000000..df947808e --- /dev/null +++ b/plugins/MacSignedVST/Longhand/Longhand.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/Longhand/Longhand.xcodeproj/xcshareddata/xcschemes/Longhand.xcscheme b/plugins/MacSignedVST/Longhand/Longhand.xcodeproj/xcshareddata/xcschemes/Longhand.xcscheme new file mode 100644 index 000000000..479423010 --- /dev/null +++ b/plugins/MacSignedVST/Longhand/Longhand.xcodeproj/xcshareddata/xcschemes/Longhand.xcscheme @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/MacSignedVST/Longhand/Longhand.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist b/plugins/MacSignedVST/Longhand/Longhand.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100755 index 000000000..87de35aa4 --- /dev/null +++ b/plugins/MacSignedVST/Longhand/Longhand.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,22 @@ + + + + + SchemeUserState + + Longhand.xcscheme_^#shared#^_ + + orderHint + 1 + + + SuppressBuildableAutocreation + + 8D01CCC60486CAD60068D4B7 + + primary + + + + + diff --git a/plugins/MacSignedVST/Longhand/Longhand.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist b/plugins/MacSignedVST/Longhand/Longhand.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100755 index 000000000..a7bdd62d4 --- /dev/null +++ b/plugins/MacSignedVST/Longhand/Longhand.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,22 @@ + + + + + SchemeUserState + + «PROJECTNAME».xcscheme + + orderHint + 0 + + + SuppressBuildableAutocreation + + 8D01CCC60486CAD60068D4B7 + + primary + + + + + diff --git a/plugins/MacSignedVST/Longhand/Longhand.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme b/plugins/MacSignedVST/Longhand/Longhand.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme new file mode 100755 index 000000000..0df2de4a3 --- /dev/null +++ b/plugins/MacSignedVST/Longhand/Longhand.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/MacSignedVST/Longhand/mac/Info.plist b/plugins/MacSignedVST/Longhand/mac/Info.plist new file mode 100755 index 000000000..0fba79330 --- /dev/null +++ b/plugins/MacSignedVST/Longhand/mac/Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + Longhand + CFBundleIconFile + + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + BNDL + CFBundleSignature + Dthr + CFBundleVersion + 1.0 + CSResourcesFileMapped + + + diff --git a/plugins/MacSignedVST/Longhand/mac/PkgInfo b/plugins/MacSignedVST/Longhand/mac/PkgInfo new file mode 100755 index 000000000..19a9cf67e --- /dev/null +++ b/plugins/MacSignedVST/Longhand/mac/PkgInfo @@ -0,0 +1 @@ +BNDL???? \ No newline at end of file diff --git a/plugins/MacSignedVST/Longhand/mac/xcode_vst_prefix.h b/plugins/MacSignedVST/Longhand/mac/xcode_vst_prefix.h new file mode 100755 index 000000000..eaf4c0b4b --- /dev/null +++ b/plugins/MacSignedVST/Longhand/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/Longhand/source/Longhand.cpp b/plugins/MacSignedVST/Longhand/source/Longhand.cpp new file mode 100755 index 000000000..9e6542f9e --- /dev/null +++ b/plugins/MacSignedVST/Longhand/source/Longhand.cpp @@ -0,0 +1,136 @@ +/* ======================================== + * Longhand - Longhand.h + * Copyright (c) airwindows, Airwindows uses the MIT license + * ======================================== */ + +#ifndef __Longhand_H +#include "Longhand.h" +#endif + +AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new Longhand(audioMaster);} + +Longhand::Longhand(audioMasterCallback audioMaster) : + AudioEffectX(audioMaster, kNumPrograms, kNumParameters) +{ + A = 0.445; + B = 1.0; + C = 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 +} + +Longhand::~Longhand() {} +VstInt32 Longhand::getVendorVersion () {return 1000;} +void Longhand::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);} +void Longhand::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 Longhand::getChunk (void** data, bool isPreset) +{ + float *chunkData = (float *)calloc(kNumParameters, sizeof(float)); + chunkData[0] = A; + chunkData[1] = B; + chunkData[2] = C; + /* 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 Longhand::setChunk (void* data, VstInt32 byteSize, bool isPreset) +{ + float *chunkData = (float *)data; + A = pinParameter(chunkData[0]); + B = pinParameter(chunkData[1]); + C = pinParameter(chunkData[2]); + /* 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 Longhand::setParameter(VstInt32 index, float value) { + switch (index) { + case kParamA: A = value; break; + case kParamB: B = value; break; + case kParamC: C = value; break; + default: throw; // unknown parameter, shouldn't happen! + } +} + +float Longhand::getParameter(VstInt32 index) { + switch (index) { + case kParamA: return A; break; + case kParamB: return B; break; + case kParamC: return C; 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 Longhand::getParameterName(VstInt32 index, char *text) { + switch (index) { + case kParamA: vst_strncpy (text, "Input", kVstMaxParamStrLen); break; + case kParamB: vst_strncpy (text, "Output", kVstMaxParamStrLen); break; + case kParamC: 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 Longhand::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; + default: break; // unknown parameter, shouldn't happen! + } //this displays the values and handles 'popups' where it's discrete choices +} + +void Longhand::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; + default: break; // unknown parameter, shouldn't happen! + } +} + +VstInt32 Longhand::canDo(char *text) +{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know + +bool Longhand::getEffectName(char* name) { + vst_strncpy(name, "Longhand", kVstMaxProductStrLen); return true; +} + +VstPlugCategory Longhand::getPlugCategory() {return kPlugCategEffect;} + +bool Longhand::getProductString(char* text) { + vst_strncpy (text, "airwindows Longhand", kVstMaxProductStrLen); return true; +} + +bool Longhand::getVendorString(char* text) { + vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true; +} diff --git a/plugins/MacSignedVST/Longhand/source/Longhand.h b/plugins/MacSignedVST/Longhand/source/Longhand.h new file mode 100755 index 000000000..56e996905 --- /dev/null +++ b/plugins/MacSignedVST/Longhand/source/Longhand.h @@ -0,0 +1,66 @@ +/* ======================================== + * Longhand - Longhand.h + * Created 8/12/11 by SPIAdmin + * Copyright (c) Airwindows, Airwindows uses the MIT license + * ======================================== */ + +#ifndef __Longhand_H +#define __Longhand_H + +#ifndef __audioeffect__ +#include "audioeffectx.h" +#endif + +#include +#include +#include + +enum { + kParamA =0, + kParamB =1, + kParamC =2, + kNumParameters = 3 +}; // + +const int kNumPrograms = 0; +const int kNumInputs = 2; +const int kNumOutputs = 2; +const unsigned long kUniqueId = 'lonh'; //Change this to what the AU identity is! + +class Longhand : + public AudioEffectX +{ +public: + Longhand(audioMasterCallback audioMaster); + ~Longhand(); + 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; + + uint32_t fpdL; + uint32_t fpdR; + //default stuff +}; + +#endif diff --git a/plugins/MacSignedVST/Longhand/source/LonghandProc.cpp b/plugins/MacSignedVST/Longhand/source/LonghandProc.cpp new file mode 100755 index 000000000..68d8125de --- /dev/null +++ b/plugins/MacSignedVST/Longhand/source/LonghandProc.cpp @@ -0,0 +1,181 @@ +/* ======================================== + * Longhand - Longhand.h + * Copyright (c) airwindows, Airwindows uses the MIT license + * ======================================== */ + +#ifndef __Longhand_H +#include "Longhand.h" +#endif + +void Longhand::processReplacing(float **inputs, float **outputs, VstInt32 sampleFrames) +{ + float* in1 = inputs[0]; + float* in2 = inputs[1]; + float* out1 = outputs[0]; + float* out2 = outputs[1]; + + double inputGain = pow(A,2.0)*7.72;//normalized input does not wavefold too far + double outputGain = B; + double wet = C; + + 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; + inputSampleL = fmin(fmax(inputSampleL,-1.0),1.0); + inputSampleR = fmin(fmax(inputSampleR,-1.0),1.0); + double drySampleL = inputSampleL; + double drySampleR = inputSampleR; + + if (inputGain != 1.0) { + inputSampleL *= inputGain; + inputSampleR *= inputGain; + drySampleL *= inputGain; + drySampleR *= inputGain; + } + + long double X = inputSampleL; X *= X; //long double for even + long double temp = inputSampleL * X; //the initial multiplies + inputSampleL -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleL += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleL -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleL += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleL -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleL += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleL -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleL += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleL -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleL += temp*0.00000000000000000001957294106339126; + X = inputSampleR; X *= X; //long double for even + temp = inputSampleR * X; //the initial multiplies + inputSampleR -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleR += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleR -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleR += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleR -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleR += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleR -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleR += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleR -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleR += temp*0.00000000000000000001957294106339126; + //retain mantissa of a long double increasing power function + //long double probably doesn't handle more than 36 digits or so + + if (outputGain != 1.0) { + inputSampleL *= outputGain; + inputSampleR *= outputGain; + } + + if (wet !=1.0) { + 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)) * 3.553e-44l * pow(2,expon+62)); + frexpf((float)inputSampleR, &expon); + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5; + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); + + *out1 = inputSampleL; + *out2 = inputSampleR; + + in1++; + in2++; + out1++; + out2++; + } +} + +void Longhand::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames) +{ + double* in1 = inputs[0]; + double* in2 = inputs[1]; + double* out1 = outputs[0]; + double* out2 = outputs[1]; + + double inputGain = pow(A,2.0)*7.72;//normalized input does not wavefold too far + double outputGain = B; + double wet = C; + + 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; + inputSampleL = fmin(fmax(inputSampleL,-1.0),1.0); + inputSampleR = fmin(fmax(inputSampleR,-1.0),1.0); + double drySampleL = inputSampleL; + double drySampleR = inputSampleR; + + if (inputGain != 1.0) { + inputSampleL *= inputGain; + inputSampleR *= inputGain; + drySampleL *= inputGain; + drySampleR *= inputGain; + } + + long double X = inputSampleL; X *= X; //long double for even + long double temp = inputSampleL * X; //the initial multiplies + inputSampleL -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleL += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleL -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleL += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleL -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleL += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleL -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleL += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleL -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleL += temp*0.00000000000000000001957294106339126; + X = inputSampleR; X *= X; //long double for even + temp = inputSampleR * X; //the initial multiplies + inputSampleR -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleR += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleR -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleR += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleR -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleR += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleR -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleR += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleR -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleR += temp*0.00000000000000000001957294106339126; + //retain mantissa of a long double increasing power function + //long double probably doesn't handle more than 36 digits or so + + if (outputGain != 1.0) { + inputSampleL *= outputGain; + inputSampleR *= outputGain; + } + + if (wet !=1.0) { + 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)) * 3.553e-44l * pow(2,expon+62)); + //frexp((double)inputSampleR, &expon); + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5; + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-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/PearLiteEQ/PearLiteEQ.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacSignedVST/PearLiteEQ/PearLiteEQ.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate index 71046fe52..ef9dc1134 100755 Binary files a/plugins/MacSignedVST/PearLiteEQ/PearLiteEQ.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate and b/plugins/MacSignedVST/PearLiteEQ/PearLiteEQ.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/plugins/MacSignedVST/PearLiteEQ/PearLiteEQ.xcodeproj/xcshareddata/xcschemes/PearLiteEQ.xcscheme b/plugins/MacSignedVST/PearLiteEQ/PearLiteEQ.xcodeproj/xcshareddata/xcschemes/PearLiteEQ.xcscheme index 84dd61188..4d8874e6a 100644 --- a/plugins/MacSignedVST/PearLiteEQ/PearLiteEQ.xcodeproj/xcshareddata/xcschemes/PearLiteEQ.xcscheme +++ b/plugins/MacSignedVST/PearLiteEQ/PearLiteEQ.xcodeproj/xcshareddata/xcschemes/PearLiteEQ.xcscheme @@ -15,7 +15,7 @@ @@ -51,7 +51,7 @@ diff --git a/plugins/MacSignedVST/PearLiteEQ/source/PearLiteEQProc.cpp b/plugins/MacSignedVST/PearLiteEQ/source/PearLiteEQProc.cpp index 2564fbf88..f28940034 100755 --- a/plugins/MacSignedVST/PearLiteEQ/source/PearLiteEQProc.cpp +++ b/plugins/MacSignedVST/PearLiteEQ/source/PearLiteEQProc.cpp @@ -73,10 +73,12 @@ void PearLiteEQ::processReplacing(float **inputs, float **outputs, VstInt32 samp //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)); + inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-44l * 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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 32 bit stereo floating point dither *out1 = inputSampleL; @@ -155,10 +157,12 @@ void PearLiteEQ::processDoubleReplacing(double **inputs, double **outputs, VstIn //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)); + //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 64 bit stereo floating point dither *out1 = inputSampleL; diff --git a/plugins/MacSignedVST/PunchyDeluxe/PunchyDeluxe.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacSignedVST/PunchyDeluxe/PunchyDeluxe.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate index 83f94cbcc..4a949e265 100755 Binary files a/plugins/MacSignedVST/PunchyDeluxe/PunchyDeluxe.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate and b/plugins/MacSignedVST/PunchyDeluxe/PunchyDeluxe.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/plugins/MacSignedVST/PunchyDeluxe/source/PunchyDeluxeProc.cpp b/plugins/MacSignedVST/PunchyDeluxe/source/PunchyDeluxeProc.cpp index 0eef3c796..1634c6d18 100755 --- a/plugins/MacSignedVST/PunchyDeluxe/source/PunchyDeluxeProc.cpp +++ b/plugins/MacSignedVST/PunchyDeluxe/source/PunchyDeluxeProc.cpp @@ -77,16 +77,19 @@ void PunchyDeluxe::processReplacing(float **inputs, float **outputs, VstInt32 sa } inputSampleL += band; inputSampleL *= drive; - inputSampleL = fmin(fmax(inputSampleL,-2.032610446872596),2.032610446872596); - long double X = inputSampleL * inputSampleL; - long double temp = inputSampleL * X; - inputSampleL -= (temp*0.125); temp *= X; - inputSampleL += (temp*0.0078125); temp *= X; - inputSampleL -= (temp*0.000244140625); temp *= X; - inputSampleL += (temp*0.000003814697265625); temp *= X; - inputSampleL -= (temp*0.0000000298023223876953125); temp *= X; - //purestsaturation: sine, except all the corrections - //retain mantissa of a long double increasing power function + inputSampleL = fmin(fmax(inputSampleL,-M_PI_2),M_PI_2); + long double X = inputSampleL; X *= X; //long double for even + long double temp = inputSampleL * X; //the initial multiplies + inputSampleL -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleL += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleL -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleL += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleL -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleL += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleL -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleL += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleL -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleL += temp*0.00000000000000000001957294106339126; fr = (0.92/overallscale)+(overallscale*0.01); band = inputSampleR; inputSampleR = 0.0; @@ -99,16 +102,21 @@ void PunchyDeluxe::processReplacing(float **inputs, float **outputs, VstInt32 sa } inputSampleR += band; inputSampleR *= drive; - inputSampleR = fmin(fmax(inputSampleR,-2.032610446872596),2.032610446872596); - X = inputSampleR * inputSampleR; - temp = inputSampleR * X; - inputSampleR -= (temp*0.125); temp *= X; - inputSampleR += (temp*0.0078125); temp *= X; - inputSampleR -= (temp*0.000244140625); temp *= X; - inputSampleR += (temp*0.000003814697265625); temp *= X; - inputSampleR -= (temp*0.0000000298023223876953125); temp *= X; - //purestsaturation: sine, except all the corrections + inputSampleR = fmin(fmax(inputSampleR,-M_PI_2),M_PI_2); + X = inputSampleR; X *= X; //long double for even + temp = inputSampleR * X; //the initial multiplies + inputSampleR -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleR += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleR -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleR += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleR -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleR += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleR -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleR += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleR -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleR += temp*0.00000000000000000001957294106339126; //retain mantissa of a long double increasing power function + //long double probably doesn't handle more than 36 digits or so } if (pad < 1.0) { @@ -116,16 +124,45 @@ void PunchyDeluxe::processReplacing(float **inputs, float **outputs, VstInt32 sa inputSampleR *= pad; } - inputSampleL = sin(fmin(fmax(inputSampleL,-M_PI),M_PI)); - inputSampleR = sin(fmin(fmax(inputSampleR,-M_PI),M_PI)); + inputSampleL = fmin(fmax(inputSampleL,-M_PI_2),M_PI_2); + inputSampleR = fmin(fmax(inputSampleR,-M_PI_2),M_PI_2); + + long double X = inputSampleL; X *= X; //long double for even + long double temp = inputSampleL * X; //the initial multiplies + inputSampleL -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleL += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleL -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleL += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleL -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleL += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleL -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleL += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleL -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleL += temp*0.00000000000000000001957294106339126; + X = inputSampleR; X *= X; //long double for even + temp = inputSampleR * X; //the initial multiplies + inputSampleR -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleR += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleR -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleR += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleR -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleR += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleR -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleR += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleR -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleR += temp*0.00000000000000000001957294106339126; + //retain mantissa of a long double increasing power function + //long double probably doesn't handle more than 36 digits or so //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)); + inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-44l * 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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 32 bit stereo floating point dither *out1 = inputSampleL; @@ -208,16 +245,19 @@ void PunchyDeluxe::processDoubleReplacing(double **inputs, double **outputs, Vst } inputSampleL += band; inputSampleL *= drive; - inputSampleL = fmin(fmax(inputSampleL,-2.032610446872596),2.032610446872596); - long double X = inputSampleL * inputSampleL; - long double temp = inputSampleL * X; - inputSampleL -= (temp*0.125); temp *= X; - inputSampleL += (temp*0.0078125); temp *= X; - inputSampleL -= (temp*0.000244140625); temp *= X; - inputSampleL += (temp*0.000003814697265625); temp *= X; - inputSampleL -= (temp*0.0000000298023223876953125); temp *= X; - //purestsaturation: sine, except all the corrections - //retain mantissa of a long double increasing power function + inputSampleL = fmin(fmax(inputSampleL,-M_PI_2),M_PI_2); + long double X = inputSampleL; X *= X; //long double for even + long double temp = inputSampleL * X; //the initial multiplies + inputSampleL -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleL += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleL -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleL += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleL -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleL += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleL -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleL += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleL -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleL += temp*0.00000000000000000001957294106339126; fr = (0.92/overallscale)+(overallscale*0.01); band = inputSampleR; inputSampleR = 0.0; @@ -230,16 +270,21 @@ void PunchyDeluxe::processDoubleReplacing(double **inputs, double **outputs, Vst } inputSampleR += band; inputSampleR *= drive; - inputSampleR = fmin(fmax(inputSampleR,-2.032610446872596),2.032610446872596); - X = inputSampleR * inputSampleR; - temp = inputSampleR * X; - inputSampleR -= (temp*0.125); temp *= X; - inputSampleR += (temp*0.0078125); temp *= X; - inputSampleR -= (temp*0.000244140625); temp *= X; - inputSampleR += (temp*0.000003814697265625); temp *= X; - inputSampleR -= (temp*0.0000000298023223876953125); temp *= X; - //purestsaturation: sine, except all the corrections + inputSampleR = fmin(fmax(inputSampleR,-M_PI_2),M_PI_2); + X = inputSampleR; X *= X; //long double for even + temp = inputSampleR * X; //the initial multiplies + inputSampleR -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleR += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleR -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleR += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleR -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleR += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleR -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleR += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleR -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleR += temp*0.00000000000000000001957294106339126; //retain mantissa of a long double increasing power function + //long double probably doesn't handle more than 36 digits or so } if (pad < 1.0) { @@ -247,16 +292,45 @@ void PunchyDeluxe::processDoubleReplacing(double **inputs, double **outputs, Vst inputSampleR *= pad; } - inputSampleL = sin(fmin(fmax(inputSampleL,-M_PI),M_PI)); - inputSampleR = sin(fmin(fmax(inputSampleR,-M_PI),M_PI)); + inputSampleL = fmin(fmax(inputSampleL,-M_PI_2),M_PI_2); + inputSampleR = fmin(fmax(inputSampleR,-M_PI_2),M_PI_2); + + long double X = inputSampleL; X *= X; //long double for even + long double temp = inputSampleL * X; //the initial multiplies + inputSampleL -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleL += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleL -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleL += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleL -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleL += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleL -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleL += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleL -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleL += temp*0.00000000000000000001957294106339126; + X = inputSampleR; X *= X; //long double for even + temp = inputSampleR * X; //the initial multiplies + inputSampleR -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleR += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleR -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleR += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleR -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleR += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleR -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleR += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleR -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleR += temp*0.00000000000000000001957294106339126; + //retain mantissa of a long double increasing power function + //long double probably doesn't handle more than 36 digits or so //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)); + //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 64 bit stereo floating point dither *out1 = inputSampleL; diff --git a/plugins/MacSignedVST/PunchyGuitar/PunchyGuitar.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacSignedVST/PunchyGuitar/PunchyGuitar.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate index adce129d5..c1ff159b7 100755 Binary files a/plugins/MacSignedVST/PunchyGuitar/PunchyGuitar.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate and b/plugins/MacSignedVST/PunchyGuitar/PunchyGuitar.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/plugins/MacSignedVST/PunchyGuitar/source/PunchyGuitarProc.cpp b/plugins/MacSignedVST/PunchyGuitar/source/PunchyGuitarProc.cpp index 1cffc39b1..5e3877c25 100755 --- a/plugins/MacSignedVST/PunchyGuitar/source/PunchyGuitarProc.cpp +++ b/plugins/MacSignedVST/PunchyGuitar/source/PunchyGuitarProc.cpp @@ -90,16 +90,19 @@ void PunchyGuitar::processReplacing(float **inputs, float **outputs, VstInt32 sa } inputSampleL += (band*angG[9]); inputSampleL *= drive; - inputSampleL = fmin(fmax(inputSampleL,-2.032610446872596),2.032610446872596); - long double X = inputSampleL * inputSampleL; - long double temp = inputSampleL * X; - inputSampleL -= (temp*0.125); temp *= X; - inputSampleL += (temp*0.0078125); temp *= X; - inputSampleL -= (temp*0.000244140625); temp *= X; - inputSampleL += (temp*0.000003814697265625); temp *= X; - inputSampleL -= (temp*0.0000000298023223876953125); temp *= X; - //purestsaturation: sine, except all the corrections - //retain mantissa of a long double increasing power function + inputSampleL = fmin(fmax(inputSampleL,-M_PI_2),M_PI_2); + long double X = inputSampleL; X *= X; //long double for even + long double temp = inputSampleL * X; //the initial multiplies + inputSampleL -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleL += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleL -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleL += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleL -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleL += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleL -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleL += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleL -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleL += temp*0.00000000000000000001957294106339126; } if (gaterollerL < 1.0) @@ -170,16 +173,21 @@ void PunchyGuitar::processReplacing(float **inputs, float **outputs, VstInt32 sa } inputSampleR += (band*angG[9]); inputSampleR *= drive; - inputSampleR = fmin(fmax(inputSampleR,-2.032610446872596),2.032610446872596); - long double X = inputSampleR * inputSampleR; - long double temp = inputSampleR * X; - inputSampleR -= (temp*0.125); temp *= X; - inputSampleR += (temp*0.0078125); temp *= X; - inputSampleR -= (temp*0.000244140625); temp *= X; - inputSampleR += (temp*0.000003814697265625); temp *= X; - inputSampleR -= (temp*0.0000000298023223876953125); temp *= X; - //purestsaturation: sine, except all the corrections + inputSampleR = fmin(fmax(inputSampleR,-M_PI_2),M_PI_2); + long double X = inputSampleR; X *= X; //long double for even + long double temp = inputSampleR * X; //the initial multiplies + inputSampleR -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleR += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleR -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleR += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleR -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleR += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleR -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleR += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleR -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleR += temp*0.00000000000000000001957294106339126; //retain mantissa of a long double increasing power function + //long double probably doesn't handle more than 36 digits or so } if (gaterollerR < 1.0) @@ -210,10 +218,12 @@ void PunchyGuitar::processReplacing(float **inputs, float **outputs, VstInt32 sa //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)); + inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-44l * 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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 32 bit stereo floating point dither *out1 = inputSampleL; @@ -309,16 +319,19 @@ void PunchyGuitar::processDoubleReplacing(double **inputs, double **outputs, Vst } inputSampleL += (band*angG[9]); inputSampleL *= drive; - inputSampleL = fmin(fmax(inputSampleL,-2.032610446872596),2.032610446872596); - long double X = inputSampleL * inputSampleL; - long double temp = inputSampleL * X; - inputSampleL -= (temp*0.125); temp *= X; - inputSampleL += (temp*0.0078125); temp *= X; - inputSampleL -= (temp*0.000244140625); temp *= X; - inputSampleL += (temp*0.000003814697265625); temp *= X; - inputSampleL -= (temp*0.0000000298023223876953125); temp *= X; - //purestsaturation: sine, except all the corrections - //retain mantissa of a long double increasing power function + inputSampleL = fmin(fmax(inputSampleL,-M_PI_2),M_PI_2); + long double X = inputSampleL; X *= X; //long double for even + long double temp = inputSampleL * X; //the initial multiplies + inputSampleL -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleL += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleL -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleL += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleL -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleL += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleL -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleL += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleL -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleL += temp*0.00000000000000000001957294106339126; } if (gaterollerL < 1.0) @@ -389,16 +402,21 @@ void PunchyGuitar::processDoubleReplacing(double **inputs, double **outputs, Vst } inputSampleR += (band*angG[9]); inputSampleR *= drive; - inputSampleR = fmin(fmax(inputSampleR,-2.032610446872596),2.032610446872596); - long double X = inputSampleR * inputSampleR; - long double temp = inputSampleR * X; - inputSampleR -= (temp*0.125); temp *= X; - inputSampleR += (temp*0.0078125); temp *= X; - inputSampleR -= (temp*0.000244140625); temp *= X; - inputSampleR += (temp*0.000003814697265625); temp *= X; - inputSampleR -= (temp*0.0000000298023223876953125); temp *= X; - //purestsaturation: sine, except all the corrections + inputSampleR = fmin(fmax(inputSampleR,-M_PI_2),M_PI_2); + long double X = inputSampleR; X *= X; //long double for even + long double temp = inputSampleR * X; //the initial multiplies + inputSampleR -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleR += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleR -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleR += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleR -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleR += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleR -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleR += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleR -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleR += temp*0.00000000000000000001957294106339126; //retain mantissa of a long double increasing power function + //long double probably doesn't handle more than 36 digits or so } if (gaterollerR < 1.0) @@ -429,10 +447,12 @@ void PunchyGuitar::processDoubleReplacing(double **inputs, double **outputs, Vst //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)); + //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 64 bit stereo floating point dither *out1 = inputSampleL; diff --git a/plugins/MacSignedVST/SoftClock3/SoftClock3.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacSignedVST/SoftClock3/SoftClock3.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate index 5355da4a0..aff1ae3a8 100755 Binary files a/plugins/MacSignedVST/SoftClock3/SoftClock3.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate and b/plugins/MacSignedVST/SoftClock3/SoftClock3.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/plugins/MacSignedVST/SoftClock3/SoftClock3.xcodeproj/xcshareddata/xcschemes/SoftClock3.xcscheme b/plugins/MacSignedVST/SoftClock3/SoftClock3.xcodeproj/xcshareddata/xcschemes/SoftClock3.xcscheme index ae257bb4f..d19e57f52 100644 --- a/plugins/MacSignedVST/SoftClock3/SoftClock3.xcodeproj/xcshareddata/xcschemes/SoftClock3.xcscheme +++ b/plugins/MacSignedVST/SoftClock3/SoftClock3.xcodeproj/xcshareddata/xcschemes/SoftClock3.xcscheme @@ -15,7 +15,7 @@ @@ -51,7 +51,7 @@ diff --git a/plugins/MacSignedVST/SoftClock3/source/SoftClock3Proc.cpp b/plugins/MacSignedVST/SoftClock3/source/SoftClock3Proc.cpp index 4efb92972..42f85ef3a 100755 --- a/plugins/MacSignedVST/SoftClock3/source/SoftClock3Proc.cpp +++ b/plugins/MacSignedVST/SoftClock3/source/SoftClock3Proc.cpp @@ -148,10 +148,12 @@ void SoftClock3::processReplacing(float **inputs, float **outputs, VstInt32 samp //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)); + inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-44l * 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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 32 bit stereo floating point dither *out1 = inputSampleL; @@ -305,10 +307,12 @@ void SoftClock3::processDoubleReplacing(double **inputs, double **outputs, VstIn //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)); + //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 64 bit stereo floating point dither *out1 = inputSampleL; 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 index 4ffb64ab0..08e935a0d 100755 Binary files a/plugins/MacSignedVST/X2Buss/X2Buss.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate and b/plugins/MacSignedVST/X2Buss/X2Buss.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/plugins/MacSignedVST/X2Buss/X2Buss.xcodeproj/xcshareddata/xcschemes/X2Buss.xcscheme b/plugins/MacSignedVST/X2Buss/X2Buss.xcodeproj/xcshareddata/xcschemes/X2Buss.xcscheme index a5a7956de..8a7b63df7 100644 --- a/plugins/MacSignedVST/X2Buss/X2Buss.xcodeproj/xcshareddata/xcschemes/X2Buss.xcscheme +++ b/plugins/MacSignedVST/X2Buss/X2Buss.xcodeproj/xcshareddata/xcschemes/X2Buss.xcscheme @@ -15,7 +15,7 @@ @@ -51,7 +51,7 @@ diff --git a/plugins/MacSignedVST/X2Buss/source/X2Buss.cpp b/plugins/MacSignedVST/X2Buss/source/X2Buss.cpp index 59b50e4ab..24eac3277 100755 --- a/plugins/MacSignedVST/X2Buss/source/X2Buss.cpp +++ b/plugins/MacSignedVST/X2Buss/source/X2Buss.cpp @@ -47,15 +47,14 @@ X2Buss::X2Buss(audioMasterCallback audioMaster) : 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 + lastSampleL = 0.0; + wasPosClipL = false; + wasNegClipL = false; + lastSampleR = 0.0; + wasPosClipR = false; + wasNegClipR = false; + for (int x = 0; x < 17; x++) {intermediateL[x] = 0.0; intermediateR[x] = 0.0;} + for (int x = 0; x < 33; x++) {slewL[x] = 0.0; slewR[x] = 0.0;} inTrimA = 0.5; inTrimB = 0.5; diff --git a/plugins/MacSignedVST/X2Buss/source/X2Buss.h b/plugins/MacSignedVST/X2Buss/source/X2Buss.h index 2a192358b..77b2f2a51 100755 --- a/plugins/MacSignedVST/X2Buss/source/X2Buss.h +++ b/plugins/MacSignedVST/X2Buss/source/X2Buss.h @@ -126,22 +126,16 @@ private: 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 lastSampleL; + double intermediateL[18]; + double slewL[34]; + bool wasPosClipL; + bool wasNegClipL; + double lastSampleR; + double intermediateR[18]; + double slewR[34]; + bool wasPosClipR; + bool wasNegClipR; //Stereo ClipOnly3 double inTrimA; double inTrimB; diff --git a/plugins/MacSignedVST/X2Buss/source/X2BussProc.cpp b/plugins/MacSignedVST/X2Buss/source/X2BussProc.cpp index d203aadb5..405edde94 100755 --- a/plugins/MacSignedVST/X2Buss/source/X2BussProc.cpp +++ b/plugins/MacSignedVST/X2Buss/source/X2BussProc.cpp @@ -141,9 +141,15 @@ void X2Buss::processReplacing(float **inputs, float **outputs, VstInt32 sampleFr double bezCThresh = pow(1.0-I, 6.0) * 8.0; double bezRez = pow(1.0-I, 12.360679774997898) / overallscale; + bezRez = fmin(fmax(bezRez,0.00001),1.0); + int stepped = 999999; if (bezRez > 0.000001) stepped = (int)(1.0/bezRez); + bezRez = 1.0 / stepped; + double bezTrim = 1.0-(bezRez*((double)stepped/(stepped+1.0))); 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); + stepped = 999999; if (sloRez > 0.000001) stepped = (int)(1.0/sloRez); + sloRez = 1.0 / stepped; + double sloTrim = 1.0-(sloRez*((double)stepped/(stepped+1.0))); //Dynamics2 inTrimA = inTrimB; inTrimB = J*2.0; @@ -155,17 +161,7 @@ void X2Buss::processReplacing(float **inputs, float **outputs, VstInt32 sampleFr 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]; @@ -300,8 +296,8 @@ void X2Buss::processReplacing(float **inputs, float **outputs, VstInt32 sampleFr inputSampleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain); //fourth stage of three crossovers is the exponential filters - //SmoothEQ2 + //SmoothEQ2 if (bezCThresh > 0.0) { inputSampleL *= ((bezCThresh*0.5)+1.0); inputSampleR *= ((bezCThresh*0.5)+1.0); @@ -327,6 +323,7 @@ void X2Buss::processReplacing(float **inputs, float **outputs, VstInt32 sampleFr 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]; @@ -338,22 +335,21 @@ void X2Buss::processReplacing(float **inputs, float **outputs, VstInt32 sampleFr 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 X = bezCompF[bez_cycle]*bezTrim; + double CBAFL = bezCompF[bez_BL]+(bezCompF[bez_CL]*(1.0-X)*(1.0-X))+(bezCompF[bez_BL]*2.0*(1.0-X)*X)+(bezCompF[bez_AL]*X*X); + CBAFL *= 0.5; + X = bezCompS[bez_cycle]*sloTrim; + double CBASL = bezCompS[bez_BL]+(bezCompS[bez_CL]*(1.0-X)*(1.0-X))+(bezCompS[bez_BL]*2.0*(1.0-X)*X)+(bezCompS[bez_AL]*X*X); + CBASL *= 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; + X = bezCompF[bez_cycle]*bezTrim; + double CBAFR = bezCompF[bez_BR]+(bezCompF[bez_CR]*(1.0-X)*(1.0-X))+(bezCompF[bez_BR]*2.0*(1.0-X)*X)+(bezCompF[bez_AR]*X*X); + CBAFR *= 0.5; + X = bezCompS[bez_cycle]*sloTrim; + double CBASR = bezCompS[bez_BR]+(bezCompS[bez_CR]*(1.0-X)*(1.0-X))+(bezCompS[bez_BR]*2.0*(1.0-X)*X)+(bezCompS[bez_AR]*X*X); + CBASR *= 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)); @@ -361,93 +357,69 @@ void X2Buss::processReplacing(float **inputs, float **outputs, VstInt32 sampleFr 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 ClipOnly3 as a little, compressed chunk that can be dropped into code + double noise = 1.0-((double(fpdL)/UINT32_MAX)*0.076); + if (wasPosClipL == true) { //current will be over + if (inputSampleL0.9085097) {wasPosClipL=true;inputSampleL=(0.9085097*noise)+(lastSampleL*(1.0-noise));} + if (wasNegClipL == true) { //current will be -over + if (inputSampleL > lastSampleL) lastSampleL=(-0.9085097*noise)+(inputSampleL*(1.0-noise)); + else lastSampleL = -0.94; + } wasNegClipL = false; + if (inputSampleL<-0.9085097) {wasNegClipL=true;inputSampleL=(-0.9085097*noise)+(lastSampleL*(1.0-noise));} + slewL[spacing*2] = fabs(lastSampleL-inputSampleL); + for (int x = spacing*2; x > 0; x--) slewL[x-1] = slewL[x]; + intermediateL[spacing] = inputSampleL; inputSampleL = lastSampleL; + //latency is however many samples equals one 44.1k sample + for (int x = spacing; x > 0; x--) {intermediateL[x-1] = intermediateL[x];} lastSampleL = intermediateL[0]; + if (wasPosClipL || wasNegClipL) { + for (int x = spacing; x > 0; x--) lastSampleL += intermediateL[x]; + lastSampleL /= spacing; + } double finalSlew = 0.0; + for (int x = spacing*2; x >= 0; x--) if (finalSlew < slewL[x]) finalSlew = slewL[x]; + double postclip = 0.94 / (1.0+(finalSlew*1.3986013)); + if (inputSampleL > postclip) inputSampleL = postclip; if (inputSampleL < -postclip) inputSampleL = -postclip; - //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 + noise = 1.0-((double(fpdR)/UINT32_MAX)*0.076); + if (wasPosClipR == true) { //current will be over + if (inputSampleR0.9085097) {wasPosClipR=true;inputSampleR=(0.9085097*noise)+(lastSampleR*(1.0-noise));} + if (wasNegClipR == true) { //current will be -over + if (inputSampleR > lastSampleR) lastSampleR=(-0.9085097*noise)+(inputSampleR*(1.0-noise)); + else lastSampleR = -0.94; + } wasNegClipR = false; + if (inputSampleR<-0.9085097) {wasNegClipR=true;inputSampleR=(-0.9085097*noise)+(lastSampleR*(1.0-noise));} + slewR[spacing*2] = fabs(lastSampleR-inputSampleR); + for (int x = spacing*2; x > 0; x--) slewR[x-1] = slewR[x]; + intermediateR[spacing] = inputSampleR; inputSampleR = lastSampleR; + //latency is however many samples equals one 44.1k sample + for (int x = spacing; x > 0; x--) {intermediateR[x-1] = intermediateR[x];} lastSampleR = intermediateR[0]; + if (wasPosClipR || wasNegClipR) { + for (int x = spacing; x > 0; x--) lastSampleR += intermediateR[x]; + lastSampleR /= spacing; + } finalSlew = 0.0; + for (int x = spacing*2; x >= 0; x--) if (finalSlew < slewR[x]) finalSlew = slewR[x]; + postclip = 0.94 / (1.0+(finalSlew*1.3986013)); + if (inputSampleR > postclip) inputSampleR = postclip; if (inputSampleR < -postclip) inputSampleR = -postclip; + //end ClipOnly3 as a little, compressed chunk that can be dropped into code //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)); + inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-44l * 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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 32 bit stereo floating point dither *out1 = inputSampleL; @@ -594,9 +566,15 @@ void X2Buss::processDoubleReplacing(double **inputs, double **outputs, VstInt32 double bezCThresh = pow(1.0-I, 6.0) * 8.0; double bezRez = pow(1.0-I, 12.360679774997898) / overallscale; + bezRez = fmin(fmax(bezRez,0.00001),1.0); + int stepped = 999999; if (bezRez > 0.000001) stepped = (int)(1.0/bezRez); + bezRez = 1.0 / stepped; + double bezTrim = 1.0-(bezRez*((double)stepped/(stepped+1.0))); 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); + stepped = 999999; if (sloRez > 0.000001) stepped = (int)(1.0/sloRez); + sloRez = 1.0 / stepped; + double sloTrim = 1.0-(sloRez*((double)stepped/(stepped+1.0))); //Dynamics2 inTrimA = inTrimB; inTrimB = J*2.0; @@ -753,8 +731,8 @@ void X2Buss::processDoubleReplacing(double **inputs, double **outputs, VstInt32 inputSampleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain); //fourth stage of three crossovers is the exponential filters - //SmoothEQ2 + //SmoothEQ2 if (bezCThresh > 0.0) { inputSampleL *= ((bezCThresh*0.5)+1.0); inputSampleR *= ((bezCThresh*0.5)+1.0); @@ -780,6 +758,7 @@ void X2Buss::processDoubleReplacing(double **inputs, double **outputs, VstInt32 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]; @@ -791,22 +770,21 @@ void X2Buss::processDoubleReplacing(double **inputs, double **outputs, VstInt32 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 X = bezCompF[bez_cycle]*bezTrim; + double CBAFL = bezCompF[bez_BL]+(bezCompF[bez_CL]*(1.0-X)*(1.0-X))+(bezCompF[bez_BL]*2.0*(1.0-X)*X)+(bezCompF[bez_AL]*X*X); + CBAFL *= 0.5; + X = bezCompS[bez_cycle]*sloTrim; + double CBASL = bezCompS[bez_BL]+(bezCompS[bez_CL]*(1.0-X)*(1.0-X))+(bezCompS[bez_BL]*2.0*(1.0-X)*X)+(bezCompS[bez_AL]*X*X); + CBASL *= 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; + X = bezCompF[bez_cycle]*bezTrim; + double CBAFR = bezCompF[bez_BR]+(bezCompF[bez_CR]*(1.0-X)*(1.0-X))+(bezCompF[bez_BR]*2.0*(1.0-X)*X)+(bezCompF[bez_AR]*X*X); + CBAFR *= 0.5; + X = bezCompS[bez_cycle]*sloTrim; + double CBASR = bezCompS[bez_BR]+(bezCompS[bez_CR]*(1.0-X)*(1.0-X))+(bezCompS[bez_BR]*2.0*(1.0-X)*X)+(bezCompS[bez_AR]*X*X); + CBASR *= 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)); @@ -814,94 +792,69 @@ void X2Buss::processDoubleReplacing(double **inputs, double **outputs, VstInt32 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 ClipOnly3 as a little, compressed chunk that can be dropped into code + double noise = 1.0-((double(fpdL)/UINT32_MAX)*0.076); + if (wasPosClipL == true) { //current will be over + if (inputSampleL0.9085097) {wasPosClipL=true;inputSampleL=(0.9085097*noise)+(lastSampleL*(1.0-noise));} + if (wasNegClipL == true) { //current will be -over + if (inputSampleL > lastSampleL) lastSampleL=(-0.9085097*noise)+(inputSampleL*(1.0-noise)); + else lastSampleL = -0.94; + } wasNegClipL = false; + if (inputSampleL<-0.9085097) {wasNegClipL=true;inputSampleL=(-0.9085097*noise)+(lastSampleL*(1.0-noise));} + slewL[spacing*2] = fabs(lastSampleL-inputSampleL); + for (int x = spacing*2; x > 0; x--) slewL[x-1] = slewL[x]; + intermediateL[spacing] = inputSampleL; inputSampleL = lastSampleL; + //latency is however many samples equals one 44.1k sample + for (int x = spacing; x > 0; x--) {intermediateL[x-1] = intermediateL[x];} lastSampleL = intermediateL[0]; + if (wasPosClipL || wasNegClipL) { + for (int x = spacing; x > 0; x--) lastSampleL += intermediateL[x]; + lastSampleL /= spacing; + } double finalSlew = 0.0; + for (int x = spacing*2; x >= 0; x--) if (finalSlew < slewL[x]) finalSlew = slewL[x]; + double postclip = 0.94 / (1.0+(finalSlew*1.3986013)); + if (inputSampleL > postclip) inputSampleL = postclip; if (inputSampleL < -postclip) inputSampleL = -postclip; - //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 + noise = 1.0-((double(fpdR)/UINT32_MAX)*0.076); + if (wasPosClipR == true) { //current will be over + if (inputSampleR0.9085097) {wasPosClipR=true;inputSampleR=(0.9085097*noise)+(lastSampleR*(1.0-noise));} + if (wasNegClipR == true) { //current will be -over + if (inputSampleR > lastSampleR) lastSampleR=(-0.9085097*noise)+(inputSampleR*(1.0-noise)); + else lastSampleR = -0.94; + } wasNegClipR = false; + if (inputSampleR<-0.9085097) {wasNegClipR=true;inputSampleR=(-0.9085097*noise)+(lastSampleR*(1.0-noise));} + slewR[spacing*2] = fabs(lastSampleR-inputSampleR); + for (int x = spacing*2; x > 0; x--) slewR[x-1] = slewR[x]; + intermediateR[spacing] = inputSampleR; inputSampleR = lastSampleR; + //latency is however many samples equals one 44.1k sample + for (int x = spacing; x > 0; x--) {intermediateR[x-1] = intermediateR[x];} lastSampleR = intermediateR[0]; + if (wasPosClipR || wasNegClipR) { + for (int x = spacing; x > 0; x--) lastSampleR += intermediateR[x]; + lastSampleR /= spacing; + } finalSlew = 0.0; + for (int x = spacing*2; x >= 0; x--) if (finalSlew < slewR[x]) finalSlew = slewR[x]; + postclip = 0.94 / (1.0+(finalSlew*1.3986013)); + if (inputSampleR > postclip) inputSampleR = postclip; if (inputSampleR < -postclip) inputSampleR = -postclip; + //end ClipOnly3 as a little, compressed chunk that can be dropped into code //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)); + //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 64 bit stereo floating point dither *out1 = inputSampleL; diff --git a/plugins/MacSignedVST/kRockstar/kRockstar.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacSignedVST/kRockstar/kRockstar.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate index a46f2eecf..5446ef595 100755 Binary files a/plugins/MacSignedVST/kRockstar/kRockstar.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate and b/plugins/MacSignedVST/kRockstar/kRockstar.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/plugins/MacSignedVST/kRockstar/kRockstar.xcodeproj/xcshareddata/xcschemes/kRockstar.xcscheme b/plugins/MacSignedVST/kRockstar/kRockstar.xcodeproj/xcshareddata/xcschemes/kRockstar.xcscheme index 63c1ff703..80b006b65 100644 --- a/plugins/MacSignedVST/kRockstar/kRockstar.xcodeproj/xcshareddata/xcschemes/kRockstar.xcscheme +++ b/plugins/MacSignedVST/kRockstar/kRockstar.xcodeproj/xcshareddata/xcschemes/kRockstar.xcscheme @@ -15,7 +15,7 @@ @@ -51,7 +51,7 @@ diff --git a/plugins/MacSignedVST/kRockstar/source/kRockstarProc.cpp b/plugins/MacSignedVST/kRockstar/source/kRockstarProc.cpp index 6b1685f7b..8865a8836 100755 --- a/plugins/MacSignedVST/kRockstar/source/kRockstarProc.cpp +++ b/plugins/MacSignedVST/kRockstar/source/kRockstarProc.cpp @@ -551,10 +551,12 @@ void kRockstar::processReplacing(float **inputs, float **outputs, VstInt32 sampl //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)); + inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-44l * 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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 32 bit stereo floating point dither *out1 = inputSampleL; @@ -1111,10 +1113,12 @@ void kRockstar::processDoubleReplacing(double **inputs, double **outputs, VstInt //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)); + //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 64 bit stereo floating point dither *out1 = inputSampleL; diff --git a/plugins/MacVST/BezEQ3/BezEQ3.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/BezEQ3/BezEQ3.xcodeproj/christopherjohnson.pbxuser index bf4917a1f..90a916139 100755 --- a/plugins/MacVST/BezEQ3/BezEQ3.xcodeproj/christopherjohnson.pbxuser +++ b/plugins/MacVST/BezEQ3/BezEQ3.xcodeproj/christopherjohnson.pbxuser @@ -49,8 +49,8 @@ PBXFileDataSource_Warnings_ColumnID, ); }; - PBXPerProjectTemplateStateSaveDate = 798140303; - PBXWorkspaceStateSaveDate = 798140303; + PBXPerProjectTemplateStateSaveDate = 799320623; + PBXWorkspaceStateSaveDate = 799320623; }; sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */; userBuildSettings = { @@ -82,10 +82,10 @@ }; 24D8286F09A914000093AEF8 /* BezEQ3Proc.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1118, 5904}}"; - sepNavSelRange = "{10134, 0}"; - sepNavVisRange = "{6764, 1841}"; - sepNavWindowFrame = "{{24, 58}, {1165, 817}}"; + sepNavIntBoundsRect = "{{0, 0}, {1118, 4572}}"; + sepNavSelRange = "{11420, 0}"; + sepNavVisRange = "{9870, 1780}"; + sepNavWindowFrame = "{{25, 61}, {1165, 817}}"; }; }; 8B02375E1D42B1C400E1E8C8 /* Source Control */ = { diff --git a/plugins/MacVST/BezEQ3/BezEQ3.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/BezEQ3/BezEQ3.xcodeproj/christopherjohnson.perspectivev3 index da1f8b4f1..06a3429ad 100755 --- a/plugins/MacVST/BezEQ3/BezEQ3.xcodeproj/christopherjohnson.perspectivev3 +++ b/plugins/MacVST/BezEQ3/BezEQ3.xcodeproj/christopherjohnson.perspectivev3 @@ -256,6 +256,8 @@ Layout + BecomeActive + ContentConfiguration PBXBottomSmartGroupGIDs @@ -321,7 +323,7 @@ 185 RubberWindowFrame - 34 365 810 487 0 0 1440 878 + 630 288 810 487 0 0 1440 878 Module PBXSmartGroupTreeModule @@ -360,7 +362,7 @@ Frame {{0, 0}, {603, 0}} RubberWindowFrame - 34 365 810 487 0 0 1440 878 + 630 288 810 487 0 0 1440 878 Module PBXNavigatorGroup @@ -384,6 +386,8 @@ Frame {{10, 27}, {603, 414}} + RubberWindowFrame + 630 288 810 487 0 0 1440 878 Module XCDetailModule @@ -438,8 +442,6 @@ Frame {{10, 27}, {603, 414}} - RubberWindowFrame - 34 365 810 487 0 0 1440 878 Module PBXBuildResultsModule @@ -467,11 +469,11 @@ TableOfContents - 8B4E193D2F92BCD200DAA5EC + 8B85FFB22FA4AA6300F0F89A 1CA23ED40692098700951B8B - 8B4E193E2F92BCD200DAA5EC + 8B85FFB32FA4AA6300F0F89A 8B0237581D42B1C400E1E8C8 - 8B4E193F2F92BCD200DAA5EC + 8B85FFB42FA4AA6300F0F89A 1CA23EDF0692099D00951B8B 1CA23EE00692099D00951B8B 1CA23EE10692099D00951B8B @@ -624,7 +626,7 @@ StatusbarIsVisible TimeStamp - 798145746.66488099 + 799320675.18154204 ToolbarConfigUserDefaultsMinorVersion 2 ToolbarDisplayMode @@ -641,11 +643,10 @@ 5 WindowOrderList - 8B4E19402F92BCD200DAA5EC - /Users/christopherjohnson/Desktop/BezEQ3/BezEQ3.xcodeproj + /Users/christopherjohnson/Desktop/airwindows/plugins/MacVST/BezEQ3/BezEQ3.xcodeproj WindowString - 34 365 810 487 0 0 1440 878 + 630 288 810 487 0 0 1440 878 WindowToolsV3 diff --git a/plugins/MacVST/BezEQ3/source/BezEQ3Proc.cpp b/plugins/MacVST/BezEQ3/source/BezEQ3Proc.cpp index fea1c054c..84c3a79bf 100755 --- a/plugins/MacVST/BezEQ3/source/BezEQ3Proc.cpp +++ b/plugins/MacVST/BezEQ3/source/BezEQ3Proc.cpp @@ -114,10 +114,12 @@ void BezEQ3::processReplacing(float **inputs, float **outputs, VstInt32 sampleFr //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)); + inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-44l * 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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 32 bit stereo floating point dither *out1 = inputSampleL; @@ -237,10 +239,12 @@ void BezEQ3::processDoubleReplacing(double **inputs, double **outputs, VstInt32 //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)); + //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 64 bit stereo floating point dither *out1 = inputSampleL; diff --git a/plugins/MacVST/Density3/Density3.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Density3/Density3.xcodeproj/christopherjohnson.pbxuser index 326bef8aa..731bc2556 100755 --- a/plugins/MacVST/Density3/Density3.xcodeproj/christopherjohnson.pbxuser +++ b/plugins/MacVST/Density3/Density3.xcodeproj/christopherjohnson.pbxuser @@ -49,8 +49,12 @@ PBXFileDataSource_Warnings_ColumnID, ); }; - PBXPerProjectTemplateStateSaveDate = 782679840; - PBXWorkspaceStateSaveDate = 782679840; + PBXPerProjectTemplateStateSaveDate = 799320997; + PBXWorkspaceStateSaveDate = 799320997; + }; + perUserProjectItems = { + 8B85FF8F2FA4AA0F00F0F89A /* PBXTextBookmark */ = 8B85FF8F2FA4AA0F00F0F89A /* PBXTextBookmark */; + 8B85FFCE2FA4AD1800F0F89A /* PBXTextBookmark */ = 8B85FFCE2FA4AD1800F0F89A /* PBXTextBookmark */; }; sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */; userBuildSettings = { @@ -82,9 +86,9 @@ }; 24D8286F09A914000093AEF8 /* Density3Proc.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1046, 4284}}"; + sepNavIntBoundsRect = "{{0, 0}, {804, 4140}}"; sepNavSelRange = "{443, 0}"; - sepNavVisRange = "{0, 1258}"; + sepNavVisRange = "{382, 115}"; sepNavWindowFrame = "{{56, 47}, {1093, 831}}"; }; }; @@ -102,6 +106,26 @@ isa = PBXCodeSenseManager; indexTemplatePath = ""; }; + 8B85FF8F2FA4AA0F00F0F89A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 24D8286F09A914000093AEF8 /* Density3Proc.cpp */; + name = "Density3Proc.cpp: 17"; + rLen = 0; + rLoc = 443; + rType = 0; + vrLen = 174; + vrLoc = 382; + }; + 8B85FFCE2FA4AD1800F0F89A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 24D8286F09A914000093AEF8 /* Density3Proc.cpp */; + name = "Density3Proc.cpp: 17"; + rLen = 0; + rLoc = 443; + rType = 0; + vrLen = 115; + vrLoc = 382; + }; 8D01CCC60486CAD60068D4B7 /* Density3 */ = { activeExec = 0; }; diff --git a/plugins/MacVST/Density3/Density3.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Density3/Density3.xcodeproj/christopherjohnson.perspectivev3 index 2e496c5a2..674629edc 100755 --- a/plugins/MacVST/Density3/Density3.xcodeproj/christopherjohnson.perspectivev3 +++ b/plugins/MacVST/Density3/Density3.xcodeproj/christopherjohnson.perspectivev3 @@ -256,6 +256,8 @@ Layout + BecomeActive + ContentConfiguration PBXBottomSmartGroupGIDs @@ -298,7 +300,7 @@ PBXSmartGroupTreeModuleOutlineStateSelectionKey - 5 + 6 4 0 @@ -337,7 +339,7 @@ PBXProjectModuleGUID 8B0237581D42B1C400E1E8C8 PBXProjectModuleLabel - Gain.h + Density3Proc.cpp PBXSplitModuleInNavigatorKey Split0 @@ -345,7 +347,15 @@ PBXProjectModuleGUID 8B0237591D42B1C400E1E8C8 PBXProjectModuleLabel - Gain.h + Density3Proc.cpp + _historyCapacity + 0 + bookmark + 8B85FFCE2FA4AD1800F0F89A + history + + 8B85FF8F2FA4AA0F00F0F89A + SplitCount 1 @@ -358,18 +368,18 @@ GeometryConfiguration Frame - {{0, 0}, {603, 0}} + {{0, 0}, {603, 117}} RubberWindowFrame 22 150 810 487 0 0 1440 878 Module PBXNavigatorGroup Proportion - 0pt + 117pt Proportion - 441pt + 324pt Tabs @@ -383,7 +393,9 @@ GeometryConfiguration Frame - {{10, 27}, {603, 414}} + {{10, 27}, {603, 297}} + RubberWindowFrame + 22 150 810 487 0 0 1440 878 Module XCDetailModule @@ -438,8 +450,6 @@ Frame {{10, 27}, {603, 414}} - RubberWindowFrame - 22 150 810 487 0 0 1440 878 Module PBXBuildResultsModule @@ -467,11 +477,11 @@ TableOfContents - 8B47CB222EA6C5A90014555E + 8B85FFCF2FA4AD1800F0F89A 1CA23ED40692098700951B8B - 8B47CB232EA6C5A90014555E + 8B85FFD02FA4AD1800F0F89A 8B0237581D42B1C400E1E8C8 - 8B47CB242EA6C5A90014555E + 8B85FFD12FA4AD1800F0F89A 1CA23EDF0692099D00951B8B 1CA23EE00692099D00951B8B 1CA23EE10692099D00951B8B @@ -624,7 +634,7 @@ StatusbarIsVisible TimeStamp - 782681513.00390005 + 799321368.55773795 ToolbarConfigUserDefaultsMinorVersion 2 ToolbarDisplayMode @@ -641,8 +651,7 @@ 5 WindowOrderList - 8B47CB252EA6C5A90014555E - /Users/christopherjohnson/Desktop/Density3/Density3.xcodeproj + /Users/christopherjohnson/Desktop/airwindows/plugins/MacVST/Density3/Density3.xcodeproj WindowString 22 150 810 487 0 0 1440 878 diff --git a/plugins/MacVST/Density3/source/Density3Proc.cpp b/plugins/MacVST/Density3/source/Density3Proc.cpp index dfd071162..fbe26ea32 100755 --- a/plugins/MacVST/Density3/source/Density3Proc.cpp +++ b/plugins/MacVST/Density3/source/Density3Proc.cpp @@ -95,10 +95,12 @@ void Density3::processReplacing(float **inputs, float **outputs, VstInt32 sample //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)); + inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-44l * 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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 32 bit stereo floating point dither *out1 = inputSampleL; @@ -199,10 +201,12 @@ void Density3::processDoubleReplacing(double **inputs, double **outputs, VstInt3 //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)); + //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 64 bit stereo floating point dither *out1 = inputSampleL; diff --git a/plugins/MacVST/Dynamics3/Dynamics3.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Dynamics3/Dynamics3.xcodeproj/christopherjohnson.pbxuser index 3a3991bf5..fa8013e63 100755 --- a/plugins/MacVST/Dynamics3/Dynamics3.xcodeproj/christopherjohnson.pbxuser +++ b/plugins/MacVST/Dynamics3/Dynamics3.xcodeproj/christopherjohnson.pbxuser @@ -49,8 +49,8 @@ PBXFileDataSource_Warnings_ColumnID, ); }; - PBXPerProjectTemplateStateSaveDate = 798156301; - PBXWorkspaceStateSaveDate = 798156301; + PBXPerProjectTemplateStateSaveDate = 799695474; + PBXWorkspaceStateSaveDate = 799695474; }; sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */; userBuildSettings = { @@ -58,9 +58,9 @@ }; 2407DEB6089929BA00EB68BF /* Dynamics3.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {948, 2664}}"; - sepNavSelRange = "{576, 0}"; - sepNavVisRange = "{3972, 1604}"; + sepNavIntBoundsRect = "{{0, 0}, {948, 2574}}"; + sepNavSelRange = "{500, 0}"; + sepNavVisRange = "{2713, 1624}"; sepNavWindowFrame = "{{12, 47}, {895, 831}}"; }; }; @@ -68,7 +68,7 @@ uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {1110, 1476}}"; sepNavSelRange = "{2691, 0}"; - sepNavVisRange = "{1316, 1437}"; + sepNavVisRange = "{370, 2057}"; sepNavWindowFrame = "{{20, 47}, {895, 831}}"; }; }; @@ -82,9 +82,9 @@ }; 24D8286F09A914000093AEF8 /* Dynamics3Proc.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1164, 2610}}"; - sepNavSelRange = "{5180, 0}"; - sepNavVisRange = "{3321, 2018}"; + sepNavIntBoundsRect = "{{0, 0}, {848, 3006}}"; + sepNavSelRange = "{2376, 10}"; + sepNavVisRange = "{0, 1441}"; sepNavWindowFrame = "{{31, 42}, {895, 831}}"; }; }; diff --git a/plugins/MacVST/Dynamics3/Dynamics3.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Dynamics3/Dynamics3.xcodeproj/christopherjohnson.perspectivev3 index 459d25887..c47a84f85 100755 --- a/plugins/MacVST/Dynamics3/Dynamics3.xcodeproj/christopherjohnson.perspectivev3 +++ b/plugins/MacVST/Dynamics3/Dynamics3.xcodeproj/christopherjohnson.perspectivev3 @@ -323,7 +323,7 @@ 185 RubberWindowFrame - 34 365 810 487 0 0 1440 878 + 27 340 810 487 0 0 1440 878 Module PBXSmartGroupTreeModule @@ -362,7 +362,7 @@ Frame {{0, 0}, {603, 0}} RubberWindowFrame - 34 365 810 487 0 0 1440 878 + 27 340 810 487 0 0 1440 878 Module PBXNavigatorGroup @@ -387,7 +387,7 @@ Frame {{10, 27}, {603, 414}} RubberWindowFrame - 34 365 810 487 0 0 1440 878 + 27 340 810 487 0 0 1440 878 Module XCDetailModule @@ -469,11 +469,11 @@ TableOfContents - 8BD498BA2F92E854006A3C78 + 8B9470D02FAA676300C74D02 1CA23ED40692098700951B8B - 8BD498BB2F92E854006A3C78 + 8B9470D12FAA676300C74D02 8B0237581D42B1C400E1E8C8 - 8BD498BC2F92E854006A3C78 + 8B9470D22FAA676300C74D02 1CA23EDF0692099D00951B8B 1CA23EE00692099D00951B8B 1CA23EE10692099D00951B8B @@ -626,7 +626,7 @@ StatusbarIsVisible TimeStamp - 798156884.53696704 + 799696739.80456197 ToolbarConfigUserDefaultsMinorVersion 2 ToolbarDisplayMode @@ -643,11 +643,10 @@ 5 WindowOrderList - 8BD498BD2F92E854006A3C78 - /Users/christopherjohnson/Desktop/Dynamics3/Dynamics3.xcodeproj + /Users/christopherjohnson/Desktop/airwindows/plugins/MacVST/Dynamics3/Dynamics3.xcodeproj WindowString - 34 365 810 487 0 0 1440 878 + 27 340 810 487 0 0 1440 878 WindowToolsV3 diff --git a/plugins/MacVST/Dynamics3/source/Dynamics3.cpp b/plugins/MacVST/Dynamics3/source/Dynamics3.cpp index 11696659e..a0d0d3673 100755 --- a/plugins/MacVST/Dynamics3/source/Dynamics3.cpp +++ b/plugins/MacVST/Dynamics3/source/Dynamics3.cpp @@ -12,10 +12,10 @@ AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new D Dynamics3::Dynamics3(audioMasterCallback audioMaster) : AudioEffectX(audioMaster, kNumPrograms, kNumParameters) { - A = 0.999; + A = 1.0; B = 0.382; C = 0.618; - D = 0.618; + D = 1.0; for (int x = 0; x < bez_total; x++) bezComp[x] = 0.0; //Dynamics3 @@ -104,7 +104,7 @@ void Dynamics3::getParameterName(VstInt32 index, char *text) { case kParamA: vst_strncpy (text, "Thresh", kVstMaxParamStrLen); break; case kParamB: vst_strncpy (text, "Attack", kVstMaxParamStrLen); break; case kParamC: vst_strncpy (text, "Release", kVstMaxParamStrLen); break; - case kParamD: vst_strncpy (text, "Ratio", kVstMaxParamStrLen); break; + case kParamD: vst_strncpy (text, "Dry/Wet", kVstMaxParamStrLen); break; default: break; // unknown parameter, shouldn't happen! } //this is our labels for displaying in the VST host } diff --git a/plugins/MacVST/Dynamics3/source/Dynamics3Proc.cpp b/plugins/MacVST/Dynamics3/source/Dynamics3Proc.cpp index 745d60f23..bc5779ed5 100755 --- a/plugins/MacVST/Dynamics3/source/Dynamics3Proc.cpp +++ b/plugins/MacVST/Dynamics3/source/Dynamics3Proc.cpp @@ -19,15 +19,17 @@ void Dynamics3::processReplacing(float **inputs, float **outputs, VstInt32 sampl overallscale *= getSampleRate(); //begin Dynamics3 - double bezThresh = pow(A+0.6180339887498949,2.0)*2.0; + double bezThresh = pow(A+0.6180339887498949,2.0)*1.6180339887498949; double sqrThresh = sqrt(bezThresh); double bezRez = fmax(pow((1.0-B)*0.5,4.0)/overallscale,0.0001); bezRez /= (2.0/pow(overallscale,0.5-((overallscale-1.0)*0.0375))); - double bezTrim = 1.0-pow(bezRez*0.5,1.0/(bezRez*0.5)); + int stepped = 999999; if (bezRez > 0.000001) stepped = (int)(1.0/bezRez); + bezRez = 1.0 / stepped; + double bezTrim = 1.0-(bezRez*((double)stepped/(stepped+1.0))); double sloRez = fmax(pow((1.0-C)*0.5,4.0)/overallscale,0.00001); sloRez /= (2.0/pow(overallscale,0.5-((overallscale-1.0)*0.0375))); - double bezRatio = 1.0-pow(1.0-D,1.6180339887498949); - if (bezThresh > 5.236) bezRatio = 1.0; + double bezCompDry = pow(1.0-D,1.6180339887498949); + if (bezThresh > 4.236) bezCompDry = 0.0; //end Dynamics3 while (--sampleFrames >= 0) @@ -46,23 +48,25 @@ void Dynamics3::processReplacing(float **inputs, float **outputs, VstInt32 sampl bezComp[bez_min] = fmax(bezComp[bez_min]-sloRez,ctrl); bezComp[bez_Ctrl] += (bezComp[bez_min] * bezRez); bezComp[bez_cycle] += bezRez; - if (bezComp[bez_cycle] > 1.0) {bezComp[bez_cycle] -= 1.0; + if (bezComp[bez_cycle] > 1.0) {bezComp[bez_cycle] = 0.0; bezComp[bez_C] = bezComp[bez_B]; bezComp[bez_B] = bezComp[bez_A]; bezComp[bez_A] = bezComp[bez_Ctrl]; bezComp[bez_Ctrl] = 0.0;} double X = bezComp[bez_cycle]*bezTrim; bezComp[bez_comp] = bezComp[bez_B]+(bezComp[bez_C]*(1.0-X)*(1.0-X))+(bezComp[bez_B]*2.0*(1.0-X)*X)+(bezComp[bez_A]*X*X); - bezComp[bez_comp] = ((1.0-(fmin(bezComp[bez_comp],1.0))));// /bezCeiling - inputSampleL = (drySampleL*bezRatio)+(inputSampleL*(1.0-bezRatio)*bezComp[bez_comp]*bezThresh); - inputSampleR = (drySampleR*bezRatio)+(inputSampleR*(1.0-bezRatio)*bezComp[bez_comp]*bezThresh); + bezComp[bez_comp] = ((1.0-(fmin(bezComp[bez_comp],1.0)))); + inputSampleL = (drySampleL*bezCompDry*(1.0-(bezComp[bez_comp]*(1.0-bezCompDry))))+(inputSampleL*(1.0-bezCompDry)*bezComp[bez_comp]*bezThresh); + inputSampleR = (drySampleR*bezCompDry*(1.0-(bezComp[bez_comp]*(1.0-bezCompDry))))+(inputSampleR*(1.0-bezCompDry)*bezComp[bez_comp]*bezThresh); //end Dynamics3 //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)); + inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-44l * 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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 32 bit stereo floating point dither *out1 = inputSampleL; @@ -87,15 +91,17 @@ void Dynamics3::processDoubleReplacing(double **inputs, double **outputs, VstInt overallscale *= getSampleRate(); //begin Dynamics3 - double bezThresh = pow(A+0.6180339887498949,2.0)*2.0; + double bezThresh = pow(A+0.6180339887498949,2.0)*1.6180339887498949; double sqrThresh = sqrt(bezThresh); double bezRez = fmax(pow((1.0-B)*0.5,4.0)/overallscale,0.0001); bezRez /= (2.0/pow(overallscale,0.5-((overallscale-1.0)*0.0375))); - double bezTrim = 1.0-pow(bezRez*0.5,1.0/(bezRez*0.5)); + int stepped = 999999; if (bezRez > 0.000001) stepped = (int)(1.0/bezRez); + bezRez = 1.0 / stepped; + double bezTrim = 1.0-(bezRez*((double)stepped/(stepped+1.0))); double sloRez = fmax(pow((1.0-C)*0.5,4.0)/overallscale,0.00001); sloRez /= (2.0/pow(overallscale,0.5-((overallscale-1.0)*0.0375))); - double bezRatio = 1.0-pow(1.0-D,1.6180339887498949); - if (bezThresh > 5.236) bezRatio = 1.0; + double bezCompDry = pow(1.0-D,1.6180339887498949); + if (bezThresh > 4.236) bezCompDry = 0.0; //end Dynamics3 while (--sampleFrames >= 0) @@ -114,23 +120,25 @@ void Dynamics3::processDoubleReplacing(double **inputs, double **outputs, VstInt bezComp[bez_min] = fmax(bezComp[bez_min]-sloRez,ctrl); bezComp[bez_Ctrl] += (bezComp[bez_min] * bezRez); bezComp[bez_cycle] += bezRez; - if (bezComp[bez_cycle] > 1.0) {bezComp[bez_cycle] -= 1.0; + if (bezComp[bez_cycle] > 1.0) {bezComp[bez_cycle] = 0.0; bezComp[bez_C] = bezComp[bez_B]; bezComp[bez_B] = bezComp[bez_A]; bezComp[bez_A] = bezComp[bez_Ctrl]; bezComp[bez_Ctrl] = 0.0;} double X = bezComp[bez_cycle]*bezTrim; bezComp[bez_comp] = bezComp[bez_B]+(bezComp[bez_C]*(1.0-X)*(1.0-X))+(bezComp[bez_B]*2.0*(1.0-X)*X)+(bezComp[bez_A]*X*X); - bezComp[bez_comp] = ((1.0-(fmin(bezComp[bez_comp],1.0))));// /bezCeiling - inputSampleL = (drySampleL*bezRatio)+(inputSampleL*(1.0-bezRatio)*bezComp[bez_comp]*bezThresh); - inputSampleR = (drySampleR*bezRatio)+(inputSampleR*(1.0-bezRatio)*bezComp[bez_comp]*bezThresh); + bezComp[bez_comp] = ((1.0-(fmin(bezComp[bez_comp],1.0)))); + inputSampleL = (drySampleL*bezCompDry*(1.0-(bezComp[bez_comp]*(1.0-bezCompDry))))+(inputSampleL*(1.0-bezCompDry)*bezComp[bez_comp]*bezThresh); + inputSampleR = (drySampleR*bezCompDry*(1.0-(bezComp[bez_comp]*(1.0-bezCompDry))))+(inputSampleR*(1.0-bezCompDry)*bezComp[bez_comp]*bezThresh); //end Dynamics3 //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)); + //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 64 bit stereo floating point dither *out1 = inputSampleL; diff --git a/plugins/MacVST/LRConvolve3/LRConvolve3.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/LRConvolve3/LRConvolve3.xcodeproj/christopherjohnson.pbxuser index 390d454c5..e70769592 100755 --- a/plugins/MacVST/LRConvolve3/LRConvolve3.xcodeproj/christopherjohnson.pbxuser +++ b/plugins/MacVST/LRConvolve3/LRConvolve3.xcodeproj/christopherjohnson.pbxuser @@ -49,8 +49,8 @@ PBXFileDataSource_Warnings_ColumnID, ); }; - PBXPerProjectTemplateStateSaveDate = 761175768; - PBXWorkspaceStateSaveDate = 761175768; + PBXPerProjectTemplateStateSaveDate = 799699035; + PBXWorkspaceStateSaveDate = 799699035; }; sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */; userBuildSettings = { @@ -82,10 +82,10 @@ }; 24D8286F09A914000093AEF8 /* LRConvolve3Proc.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {903, 2016}}"; - sepNavSelRange = "{2927, 0}"; - sepNavVisRange = "{2182, 1324}"; - sepNavWindowFrame = "{{18, 47}, {895, 831}}"; + sepNavIntBoundsRect = "{{0, 0}, {903, 2034}}"; + sepNavSelRange = "{3035, 0}"; + sepNavVisRange = "{925, 1383}"; + sepNavWindowFrame = "{{501, 47}, {895, 831}}"; }; }; 8B02375E1D42B1C400E1E8C8 /* Source Control */ = { diff --git a/plugins/MacVST/LRConvolve3/LRConvolve3.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/LRConvolve3/LRConvolve3.xcodeproj/christopherjohnson.perspectivev3 index 3e6a3fa8d..587140266 100755 --- a/plugins/MacVST/LRConvolve3/LRConvolve3.xcodeproj/christopherjohnson.perspectivev3 +++ b/plugins/MacVST/LRConvolve3/LRConvolve3.xcodeproj/christopherjohnson.perspectivev3 @@ -469,11 +469,11 @@ TableOfContents - 8BAB9AB32D5E9EDC0059C6F4 + 8B9471BC2FAA70F600C74D02 1CA23ED40692098700951B8B - 8BAB9AB42D5E9EDC0059C6F4 + 8B9471BD2FAA70F600C74D02 8B0237581D42B1C400E1E8C8 - 8BAB9AB52D5E9EDC0059C6F4 + 8B9471BE2FAA70F600C74D02 1CA23EDF0692099D00951B8B 1CA23EE00692099D00951B8B 1CA23EE10692099D00951B8B @@ -626,7 +626,7 @@ StatusbarIsVisible TimeStamp - 761176266.35270905 + 799699190.11691701 ToolbarConfigUserDefaultsMinorVersion 2 ToolbarDisplayMode @@ -643,7 +643,8 @@ 5 WindowOrderList - /Users/christopherjohnson/Desktop/LRConvolve3/LRConvolve3.xcodeproj + 8B9471BF2FAA70F600C74D02 + /Users/christopherjohnson/Desktop/airwindows/plugins/MacVST/LRConvolve3/LRConvolve3.xcodeproj WindowString 117 244 810 487 0 0 1440 878 diff --git a/plugins/MacVST/LRConvolve3/LRConvolve3.xcodeproj/project.pbxproj b/plugins/MacVST/LRConvolve3/LRConvolve3.xcodeproj/project.pbxproj index 52b8ccd96..ffce2171a 100755 --- a/plugins/MacVST/LRConvolve3/LRConvolve3.xcodeproj/project.pbxproj +++ b/plugins/MacVST/LRConvolve3/LRConvolve3.xcodeproj/project.pbxproj @@ -1894,7 +1894,7 @@ /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ - 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = { + 8D01CCC60486CAD60068D4B7 /* LRConvolve3 */ = { isa = PBXNativeTarget; buildConfigurationList = 24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "LRConvolve3" */; buildPhases = ( @@ -1947,7 +1947,7 @@ ); projectRoot = ""; targets = ( - 8D01CCC60486CAD60068D4B7 /* AudioUnit */, + 8D01CCC60486CAD60068D4B7 /* LRConvolve3 */, ); }; /* End PBXProject section */ diff --git a/plugins/MacVST/LRConvolve3/source/LRConvolve3Proc.cpp b/plugins/MacVST/LRConvolve3/source/LRConvolve3Proc.cpp index 62f8d41f9..8822b8b8c 100755 --- a/plugins/MacVST/LRConvolve3/source/LRConvolve3Proc.cpp +++ b/plugins/MacVST/LRConvolve3/source/LRConvolve3Proc.cpp @@ -36,17 +36,19 @@ void LRConvolve3::processReplacing(float **inputs, float **outputs, VstInt32 sam } if (iirSample < modulate) iirSample = modulate; modulate = (iirSample*smooth)+(modulate*(1.0-smooth)); - if (carrier > 0.0) carrier = sqrt(carrier/modulate)*modulate; - if (carrier < 0.0) carrier = -sqrt(carrier/modulate)*modulate; + if (carrier > 0.0 && modulate > 0.0) carrier = sqrt(carrier/modulate)*modulate; + if (carrier < 0.0 && modulate > 0.0) carrier = -sqrt(-carrier/modulate)*modulate; inputSampleL = inputSampleR = carrier; //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)); + inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-44l * 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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 32 bit stereo floating point dither *out1 = inputSampleL; @@ -88,17 +90,19 @@ void LRConvolve3::processDoubleReplacing(double **inputs, double **outputs, VstI } if (iirSample < modulate) iirSample = modulate; modulate = (iirSample*smooth)+(modulate*(1.0-smooth)); - if (carrier > 0.0) carrier = sqrt(carrier/modulate)*modulate; - if (carrier < 0.0) carrier = -sqrt(carrier/modulate)*modulate; + if (carrier > 0.0 && modulate > 0.0) carrier = sqrt(carrier/modulate)*modulate; + if (carrier < 0.0 && modulate > 0.0) carrier = -sqrt(-carrier/modulate)*modulate; inputSampleL = inputSampleR = carrier; //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)); + //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 64 bit stereo floating point dither *out1 = inputSampleL; diff --git a/plugins/MacVST/Longhand/Longhand.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Longhand/Longhand.xcodeproj/christopherjohnson.pbxuser new file mode 100755 index 000000000..1cf44f0a1 --- /dev/null +++ b/plugins/MacVST/Longhand/Longhand.xcodeproj/christopherjohnson.pbxuser @@ -0,0 +1,108 @@ +// !$*UTF8*$! +{ + 089C1669FE841209C02AAC07 /* Project object */ = { + activeBuildConfigurationName = Release; + activeTarget = 8D01CCC60486CAD60068D4B7 /* Longhand */; + codeSenseManager = 8B02375F1D42B1C400E1E8C8 /* Code sense */; + perUserDictionary = { + PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = { + PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; + PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; + PBXFileTableDataSourceColumnWidthsKey = ( + 20, + 269, + 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 = 799701831; + PBXWorkspaceStateSaveDate = 799701831; + }; + sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */; + userBuildSettings = { + }; + }; + 2407DEB6089929BA00EB68BF /* Longhand.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {948, 2412}}"; + sepNavSelRange = "{4544, 0}"; + sepNavVisRange = "{3453, 1660}"; + sepNavWindowFrame = "{{12, 47}, {895, 831}}"; + }; + }; + 245463B80991757100464AD3 /* Longhand.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1110, 1206}}"; + sepNavSelRange = "{2446, 0}"; + sepNavVisRange = "{521, 1986}"; + sepNavWindowFrame = "{{20, 47}, {895, 831}}"; + }; + }; + 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {859, 20267}}"; + sepNavSelRange = "{10616, 0}"; + sepNavVisRange = "{9653, 2414}"; + sepNavWindowFrame = "{{15, 42}, {895, 831}}"; + }; + }; + 24D8286F09A914000093AEF8 /* LonghandProc.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {848, 3276}}"; + sepNavSelRange = "{1127, 1797}"; + sepNavVisRange = "{977, 2046}"; + sepNavWindowFrame = "{{521, 47}, {895, 831}}"; + }; + }; + 8B02375E1D42B1C400E1E8C8 /* Source Control */ = { + isa = PBXSourceControlManager; + fallbackIsa = XCSourceControlManager; + isSCMEnabled = 0; + scmConfiguration = { + repositoryNamesForRoots = { + "" = ""; + }; + }; + }; + 8B02375F1D42B1C400E1E8C8 /* Code sense */ = { + isa = PBXCodeSenseManager; + indexTemplatePath = ""; + }; + 8D01CCC60486CAD60068D4B7 /* Longhand */ = { + activeExec = 0; + }; +} diff --git a/plugins/MacVST/Longhand/Longhand.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Longhand/Longhand.xcodeproj/christopherjohnson.perspectivev3 new file mode 100755 index 000000000..d3a6f5741 --- /dev/null +++ b/plugins/MacVST/Longhand/Longhand.xcodeproj/christopherjohnson.perspectivev3 @@ -0,0 +1,1503 @@ + + + + + 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, 448}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + + + GeometryConfiguration + + Frame + {{0, 0}, {202, 466}} + GroupTreeTableConfiguration + + MainColumn + 185 + + RubberWindowFrame + 725 281 715 507 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}, {508, 0}} + RubberWindowFrame + 725 281 715 507 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 0pt + + + Proportion + 461pt + Tabs + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA23EDF0692099D00951B8B + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{10, 27}, {508, 434}} + RubberWindowFrame + 725 281 715 507 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 + 508pt + + + Name + Project + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + XCModuleDock + PBXNavigatorGroup + XCDockableTabModule + XCDetailModule + PBXProjectFindModule + PBXCVSModule + PBXBuildResultsModule + + TableOfContents + + 8B9472B62FAA7C3400C74D02 + 1CA23ED40692098700951B8B + 8B9472B72FAA7C3400C74D02 + 8B0237581D42B1C400E1E8C8 + 8B9472B82FAA7C3400C74D02 + 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 + 799702068.00574398 + ToolbarConfigUserDefaultsMinorVersion + 2 + ToolbarDisplayMode + 1 + ToolbarIsVisible + + ToolbarSizeMode + 2 + Type + Perspectives + UpdateMessage + + WindowJustification + 5 + WindowOrderList + + 8B9472B92FAA7C3400C74D02 + /Users/christopherjohnson/Desktop/airwindows/plugins/MacVST/Longhand/Longhand.xcodeproj + + WindowString + 725 281 715 507 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/Longhand/Longhand.xcodeproj/project.pbxproj b/plugins/MacVST/Longhand/Longhand.xcodeproj/project.pbxproj new file mode 100755 index 000000000..9a37936c9 --- /dev/null +++ b/plugins/MacVST/Longhand/Longhand.xcodeproj/project.pbxproj @@ -0,0 +1,2201 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 42; + objects = { + +/* Begin PBXBuildFile section */ + 2407DEB9089929BA00EB68BF /* Longhand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2407DEB6089929BA00EB68BF /* Longhand.cpp */; }; + 245463B90991757100464AD3 /* Longhand.h in Headers */ = {isa = PBXBuildFile; fileRef = 245463B80991757100464AD3 /* Longhand.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 /* LonghandProc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 24D8286F09A914000093AEF8 /* LonghandProc.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 /* Longhand.vst */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Longhand.vst; sourceTree = BUILT_PRODUCTS_DIR; }; + 2407DEB6089929BA00EB68BF /* Longhand.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = Longhand.cpp; path = source/Longhand.cpp; sourceTree = ""; }; + 2434720A098313350063BBF1 /* QuickTime.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = /System/Library/Frameworks/QuickTime.framework; sourceTree = ""; }; + 245463B80991757100464AD3 /* Longhand.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = Longhand.h; path = source/Longhand.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 /* LonghandProc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = LonghandProc.cpp; path = source/LonghandProc.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 /* Longhand.cpp */, + 24D8286F09A914000093AEF8 /* LonghandProc.cpp */, + 245463B80991757100464AD3 /* Longhand.h */, + ); + name = Source; + sourceTree = ""; + }; + 19C28FB4FE9D528D11CA2CBB /* Products */ = { + isa = PBXGroup; + children = ( + 2407DE920899296600EB68BF /* Longhand.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 /* Longhand.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 /* Longhand */ = { + isa = PBXNativeTarget; + buildConfigurationList = 24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "Longhand" */; + buildPhases = ( + 8D01CCC70486CAD60068D4B7 /* Headers */, + 8D01CCC90486CAD60068D4B7 /* Resources */, + 8D01CCCB0486CAD60068D4B7 /* Sources */, + 8D01CCCF0486CAD60068D4B7 /* Rez */, + 24CFB70807E7A07C0081BD57 /* Copy PkgInfo */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Longhand; + productInstallPath = "$(HOME)/Library/Bundles"; + productName = "FM-Chopper"; + productReference = 2407DE920899296600EB68BF /* Longhand.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 "Longhand" */; + 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 /* Longhand */, + ); + }; +/* 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 /* Longhand.cpp in Sources */, + 24D8287009A914000093AEF8 /* LonghandProc.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 = Longhand; + 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 "Longhand" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 24BEAAEE08919AE700E695F9 /* Debug */, + 24BEAAEF08919AE700E695F9 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 24BEAAF108919AE700E695F9 /* Build configuration list for PBXProject "Longhand" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 24BEAAF208919AE700E695F9 /* Debug */, + 24BEAAF308919AE700E695F9 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; +/* End XCConfigurationList section */ + }; + rootObject = 089C1669FE841209C02AAC07 /* Project object */; +} diff --git a/plugins/MacVST/Longhand/Longhand.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/plugins/MacVST/Longhand/Longhand.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100755 index 000000000..a80c03824 --- /dev/null +++ b/plugins/MacVST/Longhand/Longhand.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/plugins/MacVST/Longhand/Longhand.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacVST/Longhand/Longhand.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100755 index 000000000..5c38f9460 Binary files /dev/null and b/plugins/MacVST/Longhand/Longhand.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/plugins/MacVST/Longhand/Longhand.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacVST/Longhand/Longhand.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100755 index 000000000..314de0ff8 Binary files /dev/null and b/plugins/MacVST/Longhand/Longhand.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/plugins/MacVST/Longhand/Longhand.xcodeproj/spiadmin.mode1v3 b/plugins/MacVST/Longhand/Longhand.xcodeproj/spiadmin.mode1v3 new file mode 100755 index 000000000..c5723261d --- /dev/null +++ b/plugins/MacVST/Longhand/Longhand.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/Longhand/Longhand.xcodeproj/spiadmin.pbxuser b/plugins/MacVST/Longhand/Longhand.xcodeproj/spiadmin.pbxuser new file mode 100755 index 000000000..df947808e --- /dev/null +++ b/plugins/MacVST/Longhand/Longhand.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/Longhand/Longhand.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme b/plugins/MacVST/Longhand/Longhand.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme new file mode 100755 index 000000000..8ee693f95 --- /dev/null +++ b/plugins/MacVST/Longhand/Longhand.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/MacVST/Longhand/Longhand.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist b/plugins/MacVST/Longhand/Longhand.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100755 index 000000000..5bccbcb4f --- /dev/null +++ b/plugins/MacVST/Longhand/Longhand.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,22 @@ + + + + + SchemeUserState + + Gain.xcscheme + + orderHint + 8 + + + SuppressBuildableAutocreation + + 8D01CCC60486CAD60068D4B7 + + primary + + + + + diff --git a/plugins/MacVST/Longhand/Longhand.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist b/plugins/MacVST/Longhand/Longhand.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100755 index 000000000..a7bdd62d4 --- /dev/null +++ b/plugins/MacVST/Longhand/Longhand.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,22 @@ + + + + + SchemeUserState + + «PROJECTNAME».xcscheme + + orderHint + 0 + + + SuppressBuildableAutocreation + + 8D01CCC60486CAD60068D4B7 + + primary + + + + + diff --git a/plugins/MacVST/Longhand/Longhand.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme b/plugins/MacVST/Longhand/Longhand.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme new file mode 100755 index 000000000..0df2de4a3 --- /dev/null +++ b/plugins/MacVST/Longhand/Longhand.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/MacVST/Longhand/mac/Info.plist b/plugins/MacVST/Longhand/mac/Info.plist new file mode 100755 index 000000000..95030c5af --- /dev/null +++ b/plugins/MacVST/Longhand/mac/Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + Longhand + CFBundleIconFile + + CFBundleIdentifier + com.airwindows.Longhand + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + BNDL + CFBundleSignature + Dthr + CFBundleVersion + 1.0 + CSResourcesFileMapped + + + diff --git a/plugins/MacVST/Longhand/mac/PkgInfo b/plugins/MacVST/Longhand/mac/PkgInfo new file mode 100755 index 000000000..19a9cf67e --- /dev/null +++ b/plugins/MacVST/Longhand/mac/PkgInfo @@ -0,0 +1 @@ +BNDL???? \ No newline at end of file diff --git a/plugins/MacVST/Longhand/mac/xcode_vst_prefix.h b/plugins/MacVST/Longhand/mac/xcode_vst_prefix.h new file mode 100755 index 000000000..eaf4c0b4b --- /dev/null +++ b/plugins/MacVST/Longhand/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/Longhand/source/Longhand.cpp b/plugins/MacVST/Longhand/source/Longhand.cpp new file mode 100755 index 000000000..9e6542f9e --- /dev/null +++ b/plugins/MacVST/Longhand/source/Longhand.cpp @@ -0,0 +1,136 @@ +/* ======================================== + * Longhand - Longhand.h + * Copyright (c) airwindows, Airwindows uses the MIT license + * ======================================== */ + +#ifndef __Longhand_H +#include "Longhand.h" +#endif + +AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new Longhand(audioMaster);} + +Longhand::Longhand(audioMasterCallback audioMaster) : + AudioEffectX(audioMaster, kNumPrograms, kNumParameters) +{ + A = 0.445; + B = 1.0; + C = 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 +} + +Longhand::~Longhand() {} +VstInt32 Longhand::getVendorVersion () {return 1000;} +void Longhand::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);} +void Longhand::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 Longhand::getChunk (void** data, bool isPreset) +{ + float *chunkData = (float *)calloc(kNumParameters, sizeof(float)); + chunkData[0] = A; + chunkData[1] = B; + chunkData[2] = C; + /* 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 Longhand::setChunk (void* data, VstInt32 byteSize, bool isPreset) +{ + float *chunkData = (float *)data; + A = pinParameter(chunkData[0]); + B = pinParameter(chunkData[1]); + C = pinParameter(chunkData[2]); + /* 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 Longhand::setParameter(VstInt32 index, float value) { + switch (index) { + case kParamA: A = value; break; + case kParamB: B = value; break; + case kParamC: C = value; break; + default: throw; // unknown parameter, shouldn't happen! + } +} + +float Longhand::getParameter(VstInt32 index) { + switch (index) { + case kParamA: return A; break; + case kParamB: return B; break; + case kParamC: return C; 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 Longhand::getParameterName(VstInt32 index, char *text) { + switch (index) { + case kParamA: vst_strncpy (text, "Input", kVstMaxParamStrLen); break; + case kParamB: vst_strncpy (text, "Output", kVstMaxParamStrLen); break; + case kParamC: 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 Longhand::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; + default: break; // unknown parameter, shouldn't happen! + } //this displays the values and handles 'popups' where it's discrete choices +} + +void Longhand::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; + default: break; // unknown parameter, shouldn't happen! + } +} + +VstInt32 Longhand::canDo(char *text) +{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know + +bool Longhand::getEffectName(char* name) { + vst_strncpy(name, "Longhand", kVstMaxProductStrLen); return true; +} + +VstPlugCategory Longhand::getPlugCategory() {return kPlugCategEffect;} + +bool Longhand::getProductString(char* text) { + vst_strncpy (text, "airwindows Longhand", kVstMaxProductStrLen); return true; +} + +bool Longhand::getVendorString(char* text) { + vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true; +} diff --git a/plugins/MacVST/Longhand/source/Longhand.h b/plugins/MacVST/Longhand/source/Longhand.h new file mode 100755 index 000000000..56e996905 --- /dev/null +++ b/plugins/MacVST/Longhand/source/Longhand.h @@ -0,0 +1,66 @@ +/* ======================================== + * Longhand - Longhand.h + * Created 8/12/11 by SPIAdmin + * Copyright (c) Airwindows, Airwindows uses the MIT license + * ======================================== */ + +#ifndef __Longhand_H +#define __Longhand_H + +#ifndef __audioeffect__ +#include "audioeffectx.h" +#endif + +#include +#include +#include + +enum { + kParamA =0, + kParamB =1, + kParamC =2, + kNumParameters = 3 +}; // + +const int kNumPrograms = 0; +const int kNumInputs = 2; +const int kNumOutputs = 2; +const unsigned long kUniqueId = 'lonh'; //Change this to what the AU identity is! + +class Longhand : + public AudioEffectX +{ +public: + Longhand(audioMasterCallback audioMaster); + ~Longhand(); + 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; + + uint32_t fpdL; + uint32_t fpdR; + //default stuff +}; + +#endif diff --git a/plugins/MacVST/Longhand/source/LonghandProc.cpp b/plugins/MacVST/Longhand/source/LonghandProc.cpp new file mode 100755 index 000000000..68d8125de --- /dev/null +++ b/plugins/MacVST/Longhand/source/LonghandProc.cpp @@ -0,0 +1,181 @@ +/* ======================================== + * Longhand - Longhand.h + * Copyright (c) airwindows, Airwindows uses the MIT license + * ======================================== */ + +#ifndef __Longhand_H +#include "Longhand.h" +#endif + +void Longhand::processReplacing(float **inputs, float **outputs, VstInt32 sampleFrames) +{ + float* in1 = inputs[0]; + float* in2 = inputs[1]; + float* out1 = outputs[0]; + float* out2 = outputs[1]; + + double inputGain = pow(A,2.0)*7.72;//normalized input does not wavefold too far + double outputGain = B; + double wet = C; + + 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; + inputSampleL = fmin(fmax(inputSampleL,-1.0),1.0); + inputSampleR = fmin(fmax(inputSampleR,-1.0),1.0); + double drySampleL = inputSampleL; + double drySampleR = inputSampleR; + + if (inputGain != 1.0) { + inputSampleL *= inputGain; + inputSampleR *= inputGain; + drySampleL *= inputGain; + drySampleR *= inputGain; + } + + long double X = inputSampleL; X *= X; //long double for even + long double temp = inputSampleL * X; //the initial multiplies + inputSampleL -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleL += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleL -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleL += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleL -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleL += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleL -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleL += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleL -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleL += temp*0.00000000000000000001957294106339126; + X = inputSampleR; X *= X; //long double for even + temp = inputSampleR * X; //the initial multiplies + inputSampleR -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleR += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleR -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleR += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleR -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleR += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleR -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleR += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleR -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleR += temp*0.00000000000000000001957294106339126; + //retain mantissa of a long double increasing power function + //long double probably doesn't handle more than 36 digits or so + + if (outputGain != 1.0) { + inputSampleL *= outputGain; + inputSampleR *= outputGain; + } + + if (wet !=1.0) { + 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)) * 3.553e-44l * pow(2,expon+62)); + frexpf((float)inputSampleR, &expon); + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5; + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); + + *out1 = inputSampleL; + *out2 = inputSampleR; + + in1++; + in2++; + out1++; + out2++; + } +} + +void Longhand::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames) +{ + double* in1 = inputs[0]; + double* in2 = inputs[1]; + double* out1 = outputs[0]; + double* out2 = outputs[1]; + + double inputGain = pow(A,2.0)*7.72;//normalized input does not wavefold too far + double outputGain = B; + double wet = C; + + 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; + inputSampleL = fmin(fmax(inputSampleL,-1.0),1.0); + inputSampleR = fmin(fmax(inputSampleR,-1.0),1.0); + double drySampleL = inputSampleL; + double drySampleR = inputSampleR; + + if (inputGain != 1.0) { + inputSampleL *= inputGain; + inputSampleR *= inputGain; + drySampleL *= inputGain; + drySampleR *= inputGain; + } + + long double X = inputSampleL; X *= X; //long double for even + long double temp = inputSampleL * X; //the initial multiplies + inputSampleL -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleL += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleL -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleL += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleL -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleL += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleL -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleL += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleL -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleL += temp*0.00000000000000000001957294106339126; + X = inputSampleR; X *= X; //long double for even + temp = inputSampleR * X; //the initial multiplies + inputSampleR -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleR += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleR -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleR += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleR -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleR += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleR -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleR += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleR -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleR += temp*0.00000000000000000001957294106339126; + //retain mantissa of a long double increasing power function + //long double probably doesn't handle more than 36 digits or so + + if (outputGain != 1.0) { + inputSampleL *= outputGain; + inputSampleR *= outputGain; + } + + if (wet !=1.0) { + 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)) * 3.553e-44l * pow(2,expon+62)); + //frexp((double)inputSampleR, &expon); + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5; + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-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/PearLiteEQ/PearLiteEQ.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/PearLiteEQ/PearLiteEQ.xcodeproj/christopherjohnson.pbxuser index 18fba56e3..291e71401 100755 --- a/plugins/MacVST/PearLiteEQ/PearLiteEQ.xcodeproj/christopherjohnson.pbxuser +++ b/plugins/MacVST/PearLiteEQ/PearLiteEQ.xcodeproj/christopherjohnson.pbxuser @@ -3,6 +3,8 @@ 089C1669FE841209C02AAC07 /* Project object */ = { activeBuildConfigurationName = Release; activeTarget = 8D01CCC60486CAD60068D4B7 /* PearLiteEQ */; + breakpoints = ( + ); codeSenseManager = 8B02375F1D42B1C400E1E8C8 /* Code sense */; perUserDictionary = { PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = { @@ -49,12 +51,12 @@ PBXFileDataSource_Warnings_ColumnID, ); }; - PBXPerProjectTemplateStateSaveDate = 781016155; - PBXWorkspaceStateSaveDate = 781016155; + PBXPerProjectTemplateStateSaveDate = 799699844; + PBXWorkspaceStateSaveDate = 799699844; }; perUserProjectItems = { - 8BDF8AFE2E8D5A1400833D3C /* PBXTextBookmark */ = 8BDF8AFE2E8D5A1400833D3C /* PBXTextBookmark */; - 8BDF8B662E8D5E4300833D3C /* PBXTextBookmark */ = 8BDF8B662E8D5E4300833D3C /* PBXTextBookmark */; + 8B8500CF2FA4B81A00F0F89A /* PBXTextBookmark */ = 8B8500CF2FA4B81A00F0F89A /* PBXTextBookmark */; + 8B9471F02FAA740A00C74D02 /* PBXTextBookmark */ = 8B9471F02FAA740A00C74D02 /* PBXTextBookmark */; }; sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */; userBuildSettings = { @@ -62,18 +64,18 @@ }; 2407DEB6089929BA00EB68BF /* PearLiteEQ.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {840, 2556}}"; + sepNavIntBoundsRect = "{{0, 0}, {831, 2826}}"; sepNavSelRange = "{604, 0}"; - sepNavVisRange = "{582, 143}"; - sepNavWindowFrame = "{{12, 47}, {895, 831}}"; + sepNavVisRange = "{600, 65}"; + sepNavWindowFrame = "{{748, 47}, {895, 831}}"; }; }; 245463B80991757100464AD3 /* PearLiteEQ.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1110, 2052}}"; - sepNavSelRange = "{3130, 0}"; - sepNavVisRange = "{0, 1147}"; - sepNavWindowFrame = "{{20, 47}, {895, 831}}"; + sepNavIntBoundsRect = "{{0, 0}, {1110, 2106}}"; + sepNavSelRange = "{2487, 645}"; + sepNavVisRange = "{2691, 501}"; + sepNavWindowFrame = "{{590, 47}, {895, 831}}"; }; }; 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = { @@ -86,10 +88,10 @@ }; 24D8286F09A914000093AEF8 /* PearLiteEQProc.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {957, 3960}}"; - sepNavSelRange = "{6427, 0}"; - sepNavVisRange = "{0, 1215}"; - sepNavWindowFrame = "{{31, 42}, {895, 831}}"; + sepNavIntBoundsRect = "{{0, 0}, {993, 3186}}"; + sepNavSelRange = "{3385, 0}"; + sepNavVisRange = "{1805, 1924}"; + sepNavWindowFrame = "{{49, 47}, {895, 831}}"; }; }; 8B02375E1D42B1C400E1E8C8 /* Source Control */ = { @@ -106,25 +108,25 @@ isa = PBXCodeSenseManager; indexTemplatePath = ""; }; - 8BDF8AFE2E8D5A1400833D3C /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 2407DEB6089929BA00EB68BF /* PearLiteEQ.cpp */; - name = "PearLiteEQ.cpp: 24"; - rLen = 0; - rLoc = 505; - rType = 0; - vrLen = 70; - vrLoc = 525; - }; - 8BDF8B662E8D5E4300833D3C /* PBXTextBookmark */ = { + 8B8500CF2FA4B81A00F0F89A /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 2407DEB6089929BA00EB68BF /* PearLiteEQ.cpp */; name = "PearLiteEQ.cpp: 25"; rLen = 0; rLoc = 604; rType = 0; - vrLen = 143; - vrLoc = 582; + vrLen = 125; + vrLoc = 600; + }; + 8B9471F02FAA740A00C74D02 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2407DEB6089929BA00EB68BF /* PearLiteEQ.cpp */; + name = "PearLiteEQ.cpp: 25"; + rLen = 0; + rLoc = 604; + rType = 0; + vrLen = 65; + vrLoc = 600; }; 8D01CCC60486CAD60068D4B7 /* PearLiteEQ */ = { activeExec = 0; diff --git a/plugins/MacVST/PearLiteEQ/PearLiteEQ.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/PearLiteEQ/PearLiteEQ.xcodeproj/christopherjohnson.perspectivev3 index e894fe1aa..00d9b08e2 100755 --- a/plugins/MacVST/PearLiteEQ/PearLiteEQ.xcodeproj/christopherjohnson.perspectivev3 +++ b/plugins/MacVST/PearLiteEQ/PearLiteEQ.xcodeproj/christopherjohnson.perspectivev3 @@ -256,6 +256,8 @@ Layout + BecomeActive + ContentConfiguration PBXBottomSmartGroupGIDs @@ -321,7 +323,7 @@ 185 RubberWindowFrame - 28 254 810 487 0 0 1440 878 + 16 362 810 487 0 0 1440 878 Module PBXSmartGroupTreeModule @@ -349,10 +351,10 @@ _historyCapacity 0 bookmark - 8BDF8B662E8D5E4300833D3C + 8B9471F02FAA740A00C74D02 history - 8BDF8AFE2E8D5A1400833D3C + 8B8500CF2FA4B81A00F0F89A SplitCount @@ -366,23 +368,21 @@ GeometryConfiguration Frame - {{0, 0}, {603, 117}} + {{0, 0}, {603, 69}} RubberWindowFrame - 28 254 810 487 0 0 1440 878 + 16 362 810 487 0 0 1440 878 Module PBXNavigatorGroup Proportion - 117pt + 69pt Proportion - 324pt + 372pt Tabs - BecomeActive - ContentConfiguration PBXProjectModuleGUID @@ -393,9 +393,9 @@ GeometryConfiguration Frame - {{10, 27}, {603, 297}} + {{10, 27}, {603, 345}} RubberWindowFrame - 28 254 810 487 0 0 1440 878 + 16 362 810 487 0 0 1440 878 Module XCDetailModule @@ -477,11 +477,11 @@ TableOfContents - 8BDF8B672E8D5E4300833D3C + 8B9471F12FAA740A00C74D02 1CA23ED40692098700951B8B - 8BDF8B682E8D5E4300833D3C + 8B9471F22FAA740A00C74D02 8B0237581D42B1C400E1E8C8 - 8BDF8B692E8D5E4300833D3C + 8B9471F32FAA740A00C74D02 1CA23EDF0692099D00951B8B 1CA23EE00692099D00951B8B 1CA23EE10692099D00951B8B @@ -518,7 +518,7 @@ Identifier perspective.debug IsVertical - 1 + Layout @@ -532,12 +532,12 @@ GeometryConfiguration Frame - {{0, 0}, {810, 0}} + {{0, 0}, {424, 270}} Module PBXDebugCLIModule Proportion - 0% + 270pt ContentConfiguration @@ -586,8 +586,6 @@ GeometryConfiguration - DebugConsoleDrawerSize - {100, 120} DebugConsoleVisible None DebugConsoleWindowFrame @@ -596,31 +594,53 @@ {{200, 200}, {500, 300}} Frame {{0, 7}, {810, 438}} + PBXDebugSessionStackFrameViewKey + + DebugVariablesTableConfiguration + + Name + 120 + Value + 85 + Summary + 185 + + Frame + {{395, 0}, {415, 213}} + Module PBXDebugSessionModule Proportion - 443pt + 438pt Name Debug ServiceClasses - XCModuleDock XCModuleDock PBXDebugCLIModule PBXDebugSessionModule - XCConsole + PBXDebugProcessAndThreadModule + PBXDebugProcessViewModule + PBXDebugThreadViewModule + PBXDebugStackFrameViewModule + PBXNavigatorGroup TableOfContents - 1CC8E6A5069209BD00BB180A - 1CC8E6A6069209BD00BB180A + 8B96298A2E9AB6B7000EAC04 1CCC7628064C1048000F2A68 1CCC7629064C1048000F2A68 - 1CC8E6A7069209BD00BB180A + 8B96298B2E9AB6B7000EAC04 + 8B96298C2E9AB6B7000EAC04 + 8B96298D2E9AB6B7000EAC04 + 8B96298E2E9AB6B7000EAC04 + 8B96298F2E9AB6B7000EAC04 + ToolbarConfigUserDefaultsMinorVersion + 2 ToolbarConfiguration xcode.toolbar.config.debugV3 @@ -634,7 +654,7 @@ StatusbarIsVisible TimeStamp - 781016643.49088705 + 799699978.17348897 ToolbarConfigUserDefaultsMinorVersion 2 ToolbarDisplayMode @@ -651,10 +671,11 @@ 5 WindowOrderList - /Users/christopherjohnson/Desktop/PearLiteEQ/PearLiteEQ.xcodeproj + 8B9471F42FAA740A00C74D02 + /Users/christopherjohnson/Desktop/airwindows/plugins/MacVST/PearLiteEQ/PearLiteEQ.xcodeproj WindowString - 28 254 810 487 0 0 1440 878 + 16 362 810 487 0 0 1440 878 WindowToolsV3 diff --git a/plugins/MacVST/PearLiteEQ/source/PearLiteEQProc.cpp b/plugins/MacVST/PearLiteEQ/source/PearLiteEQProc.cpp index 2564fbf88..f28940034 100755 --- a/plugins/MacVST/PearLiteEQ/source/PearLiteEQProc.cpp +++ b/plugins/MacVST/PearLiteEQ/source/PearLiteEQProc.cpp @@ -73,10 +73,12 @@ void PearLiteEQ::processReplacing(float **inputs, float **outputs, VstInt32 samp //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)); + inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-44l * 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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 32 bit stereo floating point dither *out1 = inputSampleL; @@ -155,10 +157,12 @@ void PearLiteEQ::processDoubleReplacing(double **inputs, double **outputs, VstIn //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)); + //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 64 bit stereo floating point dither *out1 = inputSampleL; diff --git a/plugins/MacVST/PunchyDeluxe/PunchyDeluxe.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/PunchyDeluxe/PunchyDeluxe.xcodeproj/christopherjohnson.pbxuser index 06a8207ec..4b529d561 100755 --- a/plugins/MacVST/PunchyDeluxe/PunchyDeluxe.xcodeproj/christopherjohnson.pbxuser +++ b/plugins/MacVST/PunchyDeluxe/PunchyDeluxe.xcodeproj/christopherjohnson.pbxuser @@ -49,14 +49,12 @@ PBXFileDataSource_Warnings_ColumnID, ); }; - PBXPerProjectTemplateStateSaveDate = 786872835; - PBXWorkspaceStateSaveDate = 786872835; + PBXPerProjectTemplateStateSaveDate = 799700887; + PBXWorkspaceStateSaveDate = 799700887; }; perUserProjectItems = { - 8BE3CB092EE6BA06004F72BD /* PBXBookmark */ = 8BE3CB092EE6BA06004F72BD /* PBXBookmark */; - 8BE3CB1C2EE6BA67004F72BD /* PBXBookmark */ = 8BE3CB1C2EE6BA67004F72BD /* PBXBookmark */; - 8BE3CB1D2EE6BA67004F72BD /* PBXTextBookmark */ = 8BE3CB1D2EE6BA67004F72BD /* PBXTextBookmark */; - 8BE3CB232EE6BA67004F72BD /* PBXTextBookmark */ = 8BE3CB232EE6BA67004F72BD /* PBXTextBookmark */; + 8B8501042FA4C24400F0F89A /* PBXTextBookmark */ = 8B8501042FA4C24400F0F89A /* PBXTextBookmark */; + 8B9472562FAA78C200C74D02 /* PBXTextBookmark */ = 8B9472562FAA78C200C74D02 /* PBXTextBookmark */; }; sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */; userBuildSettings = { @@ -88,10 +86,10 @@ }; 24D8286F09A914000093AEF8 /* PunchyDeluxeProc.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {554, 5382}}"; - sepNavSelRange = "{8990, 0}"; - sepNavVisRange = "{944, 196}"; - sepNavWindowFrame = "{{31, 68}, {1271, 805}}"; + sepNavIntBoundsRect = "{{0, 0}, {554, 7614}}"; + sepNavSelRange = "{14403, 0}"; + sepNavVisRange = "{1007, 133}"; + sepNavWindowFrame = "{{31, 41}, {952, 832}}"; }; }; 8B02375E1D42B1C400E1E8C8 /* Source Control */ = { @@ -108,33 +106,25 @@ isa = PBXCodeSenseManager; indexTemplatePath = ""; }; - 8BE3CB092EE6BA06004F72BD /* PBXBookmark */ = { - isa = PBXBookmark; - fRef = 24D8286F09A914000093AEF8 /* PunchyDeluxeProc.cpp */; - }; - 8BE3CB1C2EE6BA67004F72BD /* PBXBookmark */ = { - isa = PBXBookmark; - fRef = 24D8286F09A914000093AEF8 /* PunchyDeluxeProc.cpp */; - }; - 8BE3CB1D2EE6BA67004F72BD /* PBXTextBookmark */ = { + 8B8501042FA4C24400F0F89A /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 24D8286F09A914000093AEF8 /* PunchyDeluxeProc.cpp */; - name = "PunchyDeluxeProc.cpp: 253"; + name = "PunchyDeluxeProc.cpp: 255"; rLen = 0; - rLoc = 8990; + rLoc = 14403; rType = 0; - vrLen = 196; - vrLoc = 944; + vrLen = 157; + vrLoc = 983; }; - 8BE3CB232EE6BA67004F72BD /* PBXTextBookmark */ = { + 8B9472562FAA78C200C74D02 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 24D8286F09A914000093AEF8 /* PunchyDeluxeProc.cpp */; - name = "PunchyDeluxeProc.cpp: 112"; + name = "PunchyDeluxeProc.cpp: 325"; rLen = 0; - rLoc = 4124; + rLoc = 14403; rType = 0; - vrLen = 1755; - vrLoc = 2369; + vrLen = 133; + vrLoc = 1007; }; 8D01CCC60486CAD60068D4B7 /* PunchyDeluxe */ = { activeExec = 0; diff --git a/plugins/MacVST/PunchyDeluxe/PunchyDeluxe.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/PunchyDeluxe/PunchyDeluxe.xcodeproj/christopherjohnson.perspectivev3 index e30ff347e..a8849b15c 100755 --- a/plugins/MacVST/PunchyDeluxe/PunchyDeluxe.xcodeproj/christopherjohnson.perspectivev3 +++ b/plugins/MacVST/PunchyDeluxe/PunchyDeluxe.xcodeproj/christopherjohnson.perspectivev3 @@ -222,48 +222,7 @@ OpenEditors - - - Content - - PBXProjectModuleGUID - 8BE3CB212EE6BA67004F72BD - PBXProjectModuleLabel - PunchyDeluxeProc.cpp - PBXSplitModuleInNavigatorKey - - Split0 - - PBXProjectModuleGUID - 8BE3CB222EE6BA67004F72BD - PBXProjectModuleLabel - PunchyDeluxeProc.cpp - _historyCapacity - 0 - bookmark - 8BE3CB232EE6BA67004F72BD - history - - 8BE3CB092EE6BA06004F72BD - - - SplitCount - 1 - - StatusBarVisibility - - - Geometry - - Frame - {{0, 20}, {1271, 708}} - PBXModuleWindowStatusBarHidden2 - - RubberWindowFrame - 31 124 1271 749 0 0 1440 878 - - - + PerspectiveWidths 810 @@ -392,10 +351,10 @@ _historyCapacity 0 bookmark - 8BE3CB1D2EE6BA67004F72BD + 8B9472562FAA78C200C74D02 history - 8BE3CB1C2EE6BA67004F72BD + 8B8501042FA4C24400F0F89A SplitCount @@ -409,18 +368,18 @@ GeometryConfiguration Frame - {{0, 0}, {603, 132}} + {{0, 0}, {603, 102}} RubberWindowFrame 34 365 810 487 0 0 1440 878 Module PBXNavigatorGroup Proportion - 132pt + 102pt Proportion - 309pt + 339pt Tabs @@ -434,7 +393,7 @@ GeometryConfiguration Frame - {{10, 27}, {603, 282}} + {{10, 27}, {603, 312}} RubberWindowFrame 34 365 810 487 0 0 1440 878 @@ -518,11 +477,11 @@ TableOfContents - 8BE3CB1E2EE6BA67004F72BD + 8B9472292FAA779B00C74D02 1CA23ED40692098700951B8B - 8BE3CB1F2EE6BA67004F72BD + 8B94722A2FAA779B00C74D02 8B0237581D42B1C400E1E8C8 - 8BE3CB202EE6BA67004F72BD + 8B94722B2FAA779B00C74D02 1CA23EDF0692099D00951B8B 1CA23EE00692099D00951B8B 1CA23EE10692099D00951B8B @@ -675,7 +634,7 @@ StatusbarIsVisible TimeStamp - 786872935.10393405 + 799701186.30953097 ToolbarConfigUserDefaultsMinorVersion 2 ToolbarDisplayMode @@ -692,8 +651,8 @@ 5 WindowOrderList - /Users/christopherjohnson/Desktop/PunchyDeluxe/PunchyDeluxe.xcodeproj - 8BE3CB212EE6BA67004F72BD + 8B9472572FAA78C200C74D02 + /Users/christopherjohnson/Desktop/airwindows/plugins/MacVST/PunchyDeluxe/PunchyDeluxe.xcodeproj WindowString 34 365 810 487 0 0 1440 878 diff --git a/plugins/MacVST/PunchyDeluxe/source/PunchyDeluxeProc.cpp b/plugins/MacVST/PunchyDeluxe/source/PunchyDeluxeProc.cpp index 0eef3c796..1634c6d18 100755 --- a/plugins/MacVST/PunchyDeluxe/source/PunchyDeluxeProc.cpp +++ b/plugins/MacVST/PunchyDeluxe/source/PunchyDeluxeProc.cpp @@ -77,16 +77,19 @@ void PunchyDeluxe::processReplacing(float **inputs, float **outputs, VstInt32 sa } inputSampleL += band; inputSampleL *= drive; - inputSampleL = fmin(fmax(inputSampleL,-2.032610446872596),2.032610446872596); - long double X = inputSampleL * inputSampleL; - long double temp = inputSampleL * X; - inputSampleL -= (temp*0.125); temp *= X; - inputSampleL += (temp*0.0078125); temp *= X; - inputSampleL -= (temp*0.000244140625); temp *= X; - inputSampleL += (temp*0.000003814697265625); temp *= X; - inputSampleL -= (temp*0.0000000298023223876953125); temp *= X; - //purestsaturation: sine, except all the corrections - //retain mantissa of a long double increasing power function + inputSampleL = fmin(fmax(inputSampleL,-M_PI_2),M_PI_2); + long double X = inputSampleL; X *= X; //long double for even + long double temp = inputSampleL * X; //the initial multiplies + inputSampleL -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleL += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleL -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleL += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleL -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleL += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleL -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleL += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleL -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleL += temp*0.00000000000000000001957294106339126; fr = (0.92/overallscale)+(overallscale*0.01); band = inputSampleR; inputSampleR = 0.0; @@ -99,16 +102,21 @@ void PunchyDeluxe::processReplacing(float **inputs, float **outputs, VstInt32 sa } inputSampleR += band; inputSampleR *= drive; - inputSampleR = fmin(fmax(inputSampleR,-2.032610446872596),2.032610446872596); - X = inputSampleR * inputSampleR; - temp = inputSampleR * X; - inputSampleR -= (temp*0.125); temp *= X; - inputSampleR += (temp*0.0078125); temp *= X; - inputSampleR -= (temp*0.000244140625); temp *= X; - inputSampleR += (temp*0.000003814697265625); temp *= X; - inputSampleR -= (temp*0.0000000298023223876953125); temp *= X; - //purestsaturation: sine, except all the corrections + inputSampleR = fmin(fmax(inputSampleR,-M_PI_2),M_PI_2); + X = inputSampleR; X *= X; //long double for even + temp = inputSampleR * X; //the initial multiplies + inputSampleR -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleR += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleR -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleR += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleR -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleR += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleR -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleR += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleR -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleR += temp*0.00000000000000000001957294106339126; //retain mantissa of a long double increasing power function + //long double probably doesn't handle more than 36 digits or so } if (pad < 1.0) { @@ -116,16 +124,45 @@ void PunchyDeluxe::processReplacing(float **inputs, float **outputs, VstInt32 sa inputSampleR *= pad; } - inputSampleL = sin(fmin(fmax(inputSampleL,-M_PI),M_PI)); - inputSampleR = sin(fmin(fmax(inputSampleR,-M_PI),M_PI)); + inputSampleL = fmin(fmax(inputSampleL,-M_PI_2),M_PI_2); + inputSampleR = fmin(fmax(inputSampleR,-M_PI_2),M_PI_2); + + long double X = inputSampleL; X *= X; //long double for even + long double temp = inputSampleL * X; //the initial multiplies + inputSampleL -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleL += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleL -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleL += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleL -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleL += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleL -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleL += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleL -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleL += temp*0.00000000000000000001957294106339126; + X = inputSampleR; X *= X; //long double for even + temp = inputSampleR * X; //the initial multiplies + inputSampleR -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleR += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleR -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleR += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleR -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleR += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleR -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleR += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleR -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleR += temp*0.00000000000000000001957294106339126; + //retain mantissa of a long double increasing power function + //long double probably doesn't handle more than 36 digits or so //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)); + inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-44l * 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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 32 bit stereo floating point dither *out1 = inputSampleL; @@ -208,16 +245,19 @@ void PunchyDeluxe::processDoubleReplacing(double **inputs, double **outputs, Vst } inputSampleL += band; inputSampleL *= drive; - inputSampleL = fmin(fmax(inputSampleL,-2.032610446872596),2.032610446872596); - long double X = inputSampleL * inputSampleL; - long double temp = inputSampleL * X; - inputSampleL -= (temp*0.125); temp *= X; - inputSampleL += (temp*0.0078125); temp *= X; - inputSampleL -= (temp*0.000244140625); temp *= X; - inputSampleL += (temp*0.000003814697265625); temp *= X; - inputSampleL -= (temp*0.0000000298023223876953125); temp *= X; - //purestsaturation: sine, except all the corrections - //retain mantissa of a long double increasing power function + inputSampleL = fmin(fmax(inputSampleL,-M_PI_2),M_PI_2); + long double X = inputSampleL; X *= X; //long double for even + long double temp = inputSampleL * X; //the initial multiplies + inputSampleL -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleL += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleL -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleL += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleL -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleL += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleL -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleL += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleL -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleL += temp*0.00000000000000000001957294106339126; fr = (0.92/overallscale)+(overallscale*0.01); band = inputSampleR; inputSampleR = 0.0; @@ -230,16 +270,21 @@ void PunchyDeluxe::processDoubleReplacing(double **inputs, double **outputs, Vst } inputSampleR += band; inputSampleR *= drive; - inputSampleR = fmin(fmax(inputSampleR,-2.032610446872596),2.032610446872596); - X = inputSampleR * inputSampleR; - temp = inputSampleR * X; - inputSampleR -= (temp*0.125); temp *= X; - inputSampleR += (temp*0.0078125); temp *= X; - inputSampleR -= (temp*0.000244140625); temp *= X; - inputSampleR += (temp*0.000003814697265625); temp *= X; - inputSampleR -= (temp*0.0000000298023223876953125); temp *= X; - //purestsaturation: sine, except all the corrections + inputSampleR = fmin(fmax(inputSampleR,-M_PI_2),M_PI_2); + X = inputSampleR; X *= X; //long double for even + temp = inputSampleR * X; //the initial multiplies + inputSampleR -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleR += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleR -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleR += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleR -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleR += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleR -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleR += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleR -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleR += temp*0.00000000000000000001957294106339126; //retain mantissa of a long double increasing power function + //long double probably doesn't handle more than 36 digits or so } if (pad < 1.0) { @@ -247,16 +292,45 @@ void PunchyDeluxe::processDoubleReplacing(double **inputs, double **outputs, Vst inputSampleR *= pad; } - inputSampleL = sin(fmin(fmax(inputSampleL,-M_PI),M_PI)); - inputSampleR = sin(fmin(fmax(inputSampleR,-M_PI),M_PI)); + inputSampleL = fmin(fmax(inputSampleL,-M_PI_2),M_PI_2); + inputSampleR = fmin(fmax(inputSampleR,-M_PI_2),M_PI_2); + + long double X = inputSampleL; X *= X; //long double for even + long double temp = inputSampleL * X; //the initial multiplies + inputSampleL -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleL += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleL -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleL += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleL -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleL += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleL -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleL += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleL -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleL += temp*0.00000000000000000001957294106339126; + X = inputSampleR; X *= X; //long double for even + temp = inputSampleR * X; //the initial multiplies + inputSampleR -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleR += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleR -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleR += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleR -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleR += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleR -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleR += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleR -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleR += temp*0.00000000000000000001957294106339126; + //retain mantissa of a long double increasing power function + //long double probably doesn't handle more than 36 digits or so //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)); + //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 64 bit stereo floating point dither *out1 = inputSampleL; diff --git a/plugins/MacVST/PunchyGuitar/PunchyGuitar.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/PunchyGuitar/PunchyGuitar.xcodeproj/christopherjohnson.pbxuser index 922268379..3393ef545 100755 --- a/plugins/MacVST/PunchyGuitar/PunchyGuitar.xcodeproj/christopherjohnson.pbxuser +++ b/plugins/MacVST/PunchyGuitar/PunchyGuitar.xcodeproj/christopherjohnson.pbxuser @@ -49,12 +49,12 @@ PBXFileDataSource_Warnings_ColumnID, ); }; - PBXPerProjectTemplateStateSaveDate = 786872345; - PBXWorkspaceStateSaveDate = 786872345; + PBXPerProjectTemplateStateSaveDate = 799701823; + PBXWorkspaceStateSaveDate = 799701823; }; perUserProjectItems = { - 8B670B652E05E25600AB1898 /* PBXTextBookmark */ = 8B670B652E05E25600AB1898 /* PBXTextBookmark */; - 8BE3CAFB2EE6B956004F72BD /* PBXTextBookmark */ = 8BE3CAFB2EE6B956004F72BD /* PBXTextBookmark */; + 8B9472B22FAA7BFF00C74D02 /* PBXTextBookmark */ = 8B9472B22FAA7BFF00C74D02 /* PBXTextBookmark */; + 8B9472BC2FAA7C3800C74D02 /* PBXTextBookmark */ = 8B9472BC2FAA7C3800C74D02 /* PBXTextBookmark */; }; sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */; userBuildSettings = { @@ -86,10 +86,10 @@ }; 24D8286F09A914000093AEF8 /* PunchyGuitarProc.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {554, 8406}}"; - sepNavSelRange = "{14813, 0}"; - sepNavVisRange = "{976, 162}"; - sepNavWindowFrame = "{{-3, 65}, {1194, 813}}"; + sepNavIntBoundsRect = "{{0, 0}, {554, 9126}}"; + sepNavSelRange = "{16632, 0}"; + sepNavVisRange = "{1034, 104}"; + sepNavWindowFrame = "{{0, 38}, {1020, 840}}"; }; }; 8B02375E1D42B1C400E1E8C8 /* Source Control */ = { @@ -106,25 +106,25 @@ isa = PBXCodeSenseManager; indexTemplatePath = ""; }; - 8B670B652E05E25600AB1898 /* PBXTextBookmark */ = { + 8B9472B22FAA7BFF00C74D02 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 24D8286F09A914000093AEF8 /* PunchyGuitarProc.cpp */; - name = "PunchyGuitarProc.cpp: 365"; + name = "PunchyGuitarProc.cpp: 420"; rLen = 0; - rLoc = 14272; + rLoc = 16632; rType = 0; - vrLen = 203; - vrLoc = 935; + vrLen = 104; + vrLoc = 1034; }; - 8BE3CAFB2EE6B956004F72BD /* PBXTextBookmark */ = { + 8B9472BC2FAA7C3800C74D02 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 24D8286F09A914000093AEF8 /* PunchyGuitarProc.cpp */; - name = "PunchyGuitarProc.cpp: 402"; + name = "PunchyGuitarProc.cpp: 420"; rLen = 0; - rLoc = 14813; + rLoc = 16632; rType = 0; - vrLen = 162; - vrLoc = 976; + vrLen = 104; + vrLoc = 1034; }; 8D01CCC60486CAD60068D4B7 /* PunchyGuitar */ = { activeExec = 0; diff --git a/plugins/MacVST/PunchyGuitar/PunchyGuitar.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/PunchyGuitar/PunchyGuitar.xcodeproj/christopherjohnson.perspectivev3 index 09bcc911a..8bc0a3633 100755 --- a/plugins/MacVST/PunchyGuitar/PunchyGuitar.xcodeproj/christopherjohnson.perspectivev3 +++ b/plugins/MacVST/PunchyGuitar/PunchyGuitar.xcodeproj/christopherjohnson.perspectivev3 @@ -256,8 +256,6 @@ Layout - BecomeActive - ContentConfiguration PBXBottomSmartGroupGIDs @@ -351,10 +349,10 @@ _historyCapacity 0 bookmark - 8BE3CAFB2EE6B956004F72BD + 8B9472BC2FAA7C3800C74D02 history - 8B670B652E05E25600AB1898 + 8B9472B22FAA7BFF00C74D02 SplitCount @@ -368,18 +366,18 @@ GeometryConfiguration Frame - {{0, 0}, {603, 117}} + {{0, 0}, {603, 86}} RubberWindowFrame 40 330 810 487 0 0 1440 878 Module PBXNavigatorGroup Proportion - 117pt + 86pt Proportion - 324pt + 355pt Tabs @@ -393,9 +391,7 @@ GeometryConfiguration Frame - {{10, 27}, {603, 297}} - RubberWindowFrame - 40 330 810 487 0 0 1440 878 + {{10, 27}, {603, 328}} Module XCDetailModule @@ -449,7 +445,9 @@ GeometryConfiguration Frame - {{10, 27}, {603, 282}} + {{10, 27}, {603, 328}} + RubberWindowFrame + 40 330 810 487 0 0 1440 878 Module PBXBuildResultsModule @@ -477,11 +475,11 @@ TableOfContents - 8BE3CAFC2EE6B956004F72BD + 8B94728B2FAA7B4100C74D02 1CA23ED40692098700951B8B - 8BE3CAFD2EE6B956004F72BD + 8B94728C2FAA7B4100C74D02 8B0237581D42B1C400E1E8C8 - 8BE3CAFE2EE6B956004F72BD + 8B94728D2FAA7B4100C74D02 1CA23EDF0692099D00951B8B 1CA23EE00692099D00951B8B 1CA23EE10692099D00951B8B @@ -634,7 +632,7 @@ StatusbarIsVisible TimeStamp - 786872662.45649195 + 799702072.87783396 ToolbarConfigUserDefaultsMinorVersion 2 ToolbarDisplayMode @@ -651,7 +649,8 @@ 5 WindowOrderList - /Users/christopherjohnson/Desktop/PunchyGuitar/PunchyGuitar.xcodeproj + 8B9472BD2FAA7C3800C74D02 + /Users/christopherjohnson/Desktop/airwindows/plugins/MacVST/PunchyGuitar/PunchyGuitar.xcodeproj WindowString 40 330 810 487 0 0 1440 878 diff --git a/plugins/MacVST/PunchyGuitar/source/PunchyGuitarProc.cpp b/plugins/MacVST/PunchyGuitar/source/PunchyGuitarProc.cpp index 1cffc39b1..5e3877c25 100755 --- a/plugins/MacVST/PunchyGuitar/source/PunchyGuitarProc.cpp +++ b/plugins/MacVST/PunchyGuitar/source/PunchyGuitarProc.cpp @@ -90,16 +90,19 @@ void PunchyGuitar::processReplacing(float **inputs, float **outputs, VstInt32 sa } inputSampleL += (band*angG[9]); inputSampleL *= drive; - inputSampleL = fmin(fmax(inputSampleL,-2.032610446872596),2.032610446872596); - long double X = inputSampleL * inputSampleL; - long double temp = inputSampleL * X; - inputSampleL -= (temp*0.125); temp *= X; - inputSampleL += (temp*0.0078125); temp *= X; - inputSampleL -= (temp*0.000244140625); temp *= X; - inputSampleL += (temp*0.000003814697265625); temp *= X; - inputSampleL -= (temp*0.0000000298023223876953125); temp *= X; - //purestsaturation: sine, except all the corrections - //retain mantissa of a long double increasing power function + inputSampleL = fmin(fmax(inputSampleL,-M_PI_2),M_PI_2); + long double X = inputSampleL; X *= X; //long double for even + long double temp = inputSampleL * X; //the initial multiplies + inputSampleL -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleL += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleL -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleL += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleL -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleL += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleL -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleL += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleL -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleL += temp*0.00000000000000000001957294106339126; } if (gaterollerL < 1.0) @@ -170,16 +173,21 @@ void PunchyGuitar::processReplacing(float **inputs, float **outputs, VstInt32 sa } inputSampleR += (band*angG[9]); inputSampleR *= drive; - inputSampleR = fmin(fmax(inputSampleR,-2.032610446872596),2.032610446872596); - long double X = inputSampleR * inputSampleR; - long double temp = inputSampleR * X; - inputSampleR -= (temp*0.125); temp *= X; - inputSampleR += (temp*0.0078125); temp *= X; - inputSampleR -= (temp*0.000244140625); temp *= X; - inputSampleR += (temp*0.000003814697265625); temp *= X; - inputSampleR -= (temp*0.0000000298023223876953125); temp *= X; - //purestsaturation: sine, except all the corrections + inputSampleR = fmin(fmax(inputSampleR,-M_PI_2),M_PI_2); + long double X = inputSampleR; X *= X; //long double for even + long double temp = inputSampleR * X; //the initial multiplies + inputSampleR -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleR += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleR -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleR += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleR -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleR += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleR -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleR += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleR -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleR += temp*0.00000000000000000001957294106339126; //retain mantissa of a long double increasing power function + //long double probably doesn't handle more than 36 digits or so } if (gaterollerR < 1.0) @@ -210,10 +218,12 @@ void PunchyGuitar::processReplacing(float **inputs, float **outputs, VstInt32 sa //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)); + inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-44l * 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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 32 bit stereo floating point dither *out1 = inputSampleL; @@ -309,16 +319,19 @@ void PunchyGuitar::processDoubleReplacing(double **inputs, double **outputs, Vst } inputSampleL += (band*angG[9]); inputSampleL *= drive; - inputSampleL = fmin(fmax(inputSampleL,-2.032610446872596),2.032610446872596); - long double X = inputSampleL * inputSampleL; - long double temp = inputSampleL * X; - inputSampleL -= (temp*0.125); temp *= X; - inputSampleL += (temp*0.0078125); temp *= X; - inputSampleL -= (temp*0.000244140625); temp *= X; - inputSampleL += (temp*0.000003814697265625); temp *= X; - inputSampleL -= (temp*0.0000000298023223876953125); temp *= X; - //purestsaturation: sine, except all the corrections - //retain mantissa of a long double increasing power function + inputSampleL = fmin(fmax(inputSampleL,-M_PI_2),M_PI_2); + long double X = inputSampleL; X *= X; //long double for even + long double temp = inputSampleL * X; //the initial multiplies + inputSampleL -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleL += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleL -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleL += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleL -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleL += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleL -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleL += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleL -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleL += temp*0.00000000000000000001957294106339126; } if (gaterollerL < 1.0) @@ -389,16 +402,21 @@ void PunchyGuitar::processDoubleReplacing(double **inputs, double **outputs, Vst } inputSampleR += (band*angG[9]); inputSampleR *= drive; - inputSampleR = fmin(fmax(inputSampleR,-2.032610446872596),2.032610446872596); - long double X = inputSampleR * inputSampleR; - long double temp = inputSampleR * X; - inputSampleR -= (temp*0.125); temp *= X; - inputSampleR += (temp*0.0078125); temp *= X; - inputSampleR -= (temp*0.000244140625); temp *= X; - inputSampleR += (temp*0.000003814697265625); temp *= X; - inputSampleR -= (temp*0.0000000298023223876953125); temp *= X; - //purestsaturation: sine, except all the corrections + inputSampleR = fmin(fmax(inputSampleR,-M_PI_2),M_PI_2); + long double X = inputSampleR; X *= X; //long double for even + long double temp = inputSampleR * X; //the initial multiplies + inputSampleR -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleR += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleR -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleR += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleR -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleR += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleR -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleR += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleR -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleR += temp*0.00000000000000000001957294106339126; //retain mantissa of a long double increasing power function + //long double probably doesn't handle more than 36 digits or so } if (gaterollerR < 1.0) @@ -429,10 +447,12 @@ void PunchyGuitar::processDoubleReplacing(double **inputs, double **outputs, Vst //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)); + //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 64 bit stereo floating point dither *out1 = inputSampleL; diff --git a/plugins/MacVST/SoftClock3/SoftClock3.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/SoftClock3/SoftClock3.xcodeproj/christopherjohnson.pbxuser index 94b2d1000..6c9640b45 100755 --- a/plugins/MacVST/SoftClock3/SoftClock3.xcodeproj/christopherjohnson.pbxuser +++ b/plugins/MacVST/SoftClock3/SoftClock3.xcodeproj/christopherjohnson.pbxuser @@ -49,8 +49,8 @@ PBXFileDataSource_Warnings_ColumnID, ); }; - PBXPerProjectTemplateStateSaveDate = 789925293; - PBXWorkspaceStateSaveDate = 789925293; + PBXPerProjectTemplateStateSaveDate = 799702872; + PBXWorkspaceStateSaveDate = 799702872; }; sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */; userBuildSettings = { @@ -82,10 +82,10 @@ }; 24D8286F09A914000093AEF8 /* SoftClock3Proc.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1119, 5976}}"; - sepNavSelRange = "{14321, 0}"; - sepNavVisRange = "{13562, 1344}"; - sepNavWindowFrame = "{{6, 40}, {895, 831}}"; + sepNavIntBoundsRect = "{{0, 0}, {1119, 5922}}"; + sepNavSelRange = "{4289, 10}"; + sepNavVisRange = "{3837, 2388}"; + sepNavWindowFrame = "{{50, 61}, {1070, 806}}"; }; }; 8B02375E1D42B1C400E1E8C8 /* Source Control */ = { diff --git a/plugins/MacVST/SoftClock3/SoftClock3.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/SoftClock3/SoftClock3.xcodeproj/christopherjohnson.perspectivev3 index 386f568f6..507eb2e25 100755 --- a/plugins/MacVST/SoftClock3/SoftClock3.xcodeproj/christopherjohnson.perspectivev3 +++ b/plugins/MacVST/SoftClock3/SoftClock3.xcodeproj/christopherjohnson.perspectivev3 @@ -469,11 +469,11 @@ TableOfContents - 8B2C03462F15546E0045AF83 + 8B9472E92FAA7FF400C74D02 1CA23ED40692098700951B8B - 8B2C03472F15546E0045AF83 + 8B9472EA2FAA7FF400C74D02 8B0237581D42B1C400E1E8C8 - 8B2C03482F15546E0045AF83 + 8B9472EB2FAA7FF400C74D02 1CA23EDF0692099D00951B8B 1CA23EE00692099D00951B8B 1CA23EE10692099D00951B8B @@ -626,7 +626,7 @@ StatusbarIsVisible TimeStamp - 789927022.09251297 + 799703028.69355798 ToolbarConfigUserDefaultsMinorVersion 2 ToolbarDisplayMode @@ -643,8 +643,8 @@ 5 WindowOrderList - 8B2C03492F15546E0045AF83 - /Users/christopherjohnson/Desktop/SoftClock3/SoftClock3.xcodeproj + 8B9472EC2FAA7FF400C74D02 + /Users/christopherjohnson/Desktop/airwindows/plugins/MacVST/SoftClock3/SoftClock3.xcodeproj WindowString 34 365 810 487 0 0 1440 878 diff --git a/plugins/MacVST/SoftClock3/source/SoftClock3Proc.cpp b/plugins/MacVST/SoftClock3/source/SoftClock3Proc.cpp index 4efb92972..42f85ef3a 100755 --- a/plugins/MacVST/SoftClock3/source/SoftClock3Proc.cpp +++ b/plugins/MacVST/SoftClock3/source/SoftClock3Proc.cpp @@ -148,10 +148,12 @@ void SoftClock3::processReplacing(float **inputs, float **outputs, VstInt32 samp //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)); + inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-44l * 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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 32 bit stereo floating point dither *out1 = inputSampleL; @@ -305,10 +307,12 @@ void SoftClock3::processDoubleReplacing(double **inputs, double **outputs, VstIn //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)); + //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 64 bit stereo floating point dither *out1 = inputSampleL; diff --git a/plugins/MacVST/X2Buss/X2Buss.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/X2Buss/X2Buss.xcodeproj/christopherjohnson.pbxuser index 00c926107..62f662ba1 100755 --- a/plugins/MacVST/X2Buss/X2Buss.xcodeproj/christopherjohnson.pbxuser +++ b/plugins/MacVST/X2Buss/X2Buss.xcodeproj/christopherjohnson.pbxuser @@ -49,8 +49,8 @@ PBXFileDataSource_Warnings_ColumnID, ); }; - PBXPerProjectTemplateStateSaveDate = 783620271; - PBXWorkspaceStateSaveDate = 783620271; + PBXPerProjectTemplateStateSaveDate = 799776990; + PBXWorkspaceStateSaveDate = 799776990; }; sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */; userBuildSettings = { @@ -58,18 +58,18 @@ }; 2407DEB6089929BA00EB68BF /* X2Buss.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {848, 3528}}"; - sepNavSelRange = "{7889, 0}"; - sepNavVisRange = "{6703, 1806}"; - sepNavWindowFrame = "{{677, 47}, {895, 831}}"; + sepNavIntBoundsRect = "{{0, 0}, {948, 4104}}"; + sepNavSelRange = "{1284, 0}"; + sepNavVisRange = "{6477, 1879}"; + sepNavWindowFrame = "{{545, 47}, {895, 831}}"; }; }; 245463B80991757100464AD3 /* X2Buss.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1110, 2790}}"; - sepNavSelRange = "{2615, 0}"; - sepNavVisRange = "{3237, 642}"; - sepNavWindowFrame = "{{619, 47}, {895, 831}}"; + sepNavIntBoundsRect = "{{0, 0}, {1110, 2682}}"; + sepNavSelRange = "{3714, 0}"; + sepNavVisRange = "{732, 1926}"; + sepNavWindowFrame = "{{597, 47}, {895, 831}}"; }; }; 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = { @@ -82,10 +82,10 @@ }; 24D8286F09A914000093AEF8 /* X2BussProc.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1029, 22914}}"; - sepNavSelRange = "{37584, 0}"; - sepNavVisRange = "{40433, 1315}"; - sepNavWindowFrame = "{{498, 47}, {895, 831}}"; + sepNavIntBoundsRect = "{{0, 0}, {1191, 15516}}"; + sepNavSelRange = "{39804, 0}"; + sepNavVisRange = "{4106, 1738}"; + sepNavWindowFrame = "{{529, 47}, {895, 831}}"; }; }; 8B02375E1D42B1C400E1E8C8 /* Source Control */ = { diff --git a/plugins/MacVST/X2Buss/X2Buss.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/X2Buss/X2Buss.xcodeproj/christopherjohnson.perspectivev3 index f31d604c7..399f3cd67 100755 --- a/plugins/MacVST/X2Buss/X2Buss.xcodeproj/christopherjohnson.perspectivev3 +++ b/plugins/MacVST/X2Buss/X2Buss.xcodeproj/christopherjohnson.perspectivev3 @@ -323,7 +323,7 @@ 185 RubberWindowFrame - 620 311 810 487 0 0 1440 878 + 613 357 810 487 0 0 1440 878 Module PBXSmartGroupTreeModule @@ -362,7 +362,7 @@ Frame {{0, 0}, {603, 0}} RubberWindowFrame - 620 311 810 487 0 0 1440 878 + 613 357 810 487 0 0 1440 878 Module PBXNavigatorGroup @@ -387,7 +387,7 @@ Frame {{10, 27}, {603, 414}} RubberWindowFrame - 620 311 810 487 0 0 1440 878 + 613 357 810 487 0 0 1440 878 Module XCDetailModule @@ -469,11 +469,11 @@ TableOfContents - 8B5C9E842EB51CE1008B9860 + 8BDC293F2FABB7FB0079B94D 1CA23ED40692098700951B8B - 8B5C9E852EB51CE1008B9860 + 8BDC29402FABB7FB0079B94D 8B0237581D42B1C400E1E8C8 - 8B5C9E862EB51CE1008B9860 + 8BDC29412FABB7FB0079B94D 1CA23EDF0692099D00951B8B 1CA23EE00692099D00951B8B 1CA23EE10692099D00951B8B @@ -626,7 +626,7 @@ StatusbarIsVisible TimeStamp - 783621345.05743098 + 799782907.78940904 ToolbarConfigUserDefaultsMinorVersion 2 ToolbarDisplayMode @@ -643,10 +643,10 @@ 5 WindowOrderList - /Users/christopherjohnson/Desktop/X2Buss/X2Buss.xcodeproj + /Users/christopherjohnson/Desktop/airwindows/plugins/MacVST/X2Buss/X2Buss.xcodeproj WindowString - 620 311 810 487 0 0 1440 878 + 613 357 810 487 0 0 1440 878 WindowToolsV3 diff --git a/plugins/MacVST/X2Buss/source/X2Buss.cpp b/plugins/MacVST/X2Buss/source/X2Buss.cpp index 59b50e4ab..24eac3277 100755 --- a/plugins/MacVST/X2Buss/source/X2Buss.cpp +++ b/plugins/MacVST/X2Buss/source/X2Buss.cpp @@ -47,15 +47,14 @@ X2Buss::X2Buss(audioMasterCallback audioMaster) : 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 + lastSampleL = 0.0; + wasPosClipL = false; + wasNegClipL = false; + lastSampleR = 0.0; + wasPosClipR = false; + wasNegClipR = false; + for (int x = 0; x < 17; x++) {intermediateL[x] = 0.0; intermediateR[x] = 0.0;} + for (int x = 0; x < 33; x++) {slewL[x] = 0.0; slewR[x] = 0.0;} inTrimA = 0.5; inTrimB = 0.5; diff --git a/plugins/MacVST/X2Buss/source/X2Buss.h b/plugins/MacVST/X2Buss/source/X2Buss.h index 2a192358b..77b2f2a51 100755 --- a/plugins/MacVST/X2Buss/source/X2Buss.h +++ b/plugins/MacVST/X2Buss/source/X2Buss.h @@ -126,22 +126,16 @@ private: 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 lastSampleL; + double intermediateL[18]; + double slewL[34]; + bool wasPosClipL; + bool wasNegClipL; + double lastSampleR; + double intermediateR[18]; + double slewR[34]; + bool wasPosClipR; + bool wasNegClipR; //Stereo ClipOnly3 double inTrimA; double inTrimB; diff --git a/plugins/MacVST/X2Buss/source/X2BussProc.cpp b/plugins/MacVST/X2Buss/source/X2BussProc.cpp index d203aadb5..405edde94 100755 --- a/plugins/MacVST/X2Buss/source/X2BussProc.cpp +++ b/plugins/MacVST/X2Buss/source/X2BussProc.cpp @@ -141,9 +141,15 @@ void X2Buss::processReplacing(float **inputs, float **outputs, VstInt32 sampleFr double bezCThresh = pow(1.0-I, 6.0) * 8.0; double bezRez = pow(1.0-I, 12.360679774997898) / overallscale; + bezRez = fmin(fmax(bezRez,0.00001),1.0); + int stepped = 999999; if (bezRez > 0.000001) stepped = (int)(1.0/bezRez); + bezRez = 1.0 / stepped; + double bezTrim = 1.0-(bezRez*((double)stepped/(stepped+1.0))); 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); + stepped = 999999; if (sloRez > 0.000001) stepped = (int)(1.0/sloRez); + sloRez = 1.0 / stepped; + double sloTrim = 1.0-(sloRez*((double)stepped/(stepped+1.0))); //Dynamics2 inTrimA = inTrimB; inTrimB = J*2.0; @@ -155,17 +161,7 @@ void X2Buss::processReplacing(float **inputs, float **outputs, VstInt32 sampleFr 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]; @@ -300,8 +296,8 @@ void X2Buss::processReplacing(float **inputs, float **outputs, VstInt32 sampleFr inputSampleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain); //fourth stage of three crossovers is the exponential filters - //SmoothEQ2 + //SmoothEQ2 if (bezCThresh > 0.0) { inputSampleL *= ((bezCThresh*0.5)+1.0); inputSampleR *= ((bezCThresh*0.5)+1.0); @@ -327,6 +323,7 @@ void X2Buss::processReplacing(float **inputs, float **outputs, VstInt32 sampleFr 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]; @@ -338,22 +335,21 @@ void X2Buss::processReplacing(float **inputs, float **outputs, VstInt32 sampleFr 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 X = bezCompF[bez_cycle]*bezTrim; + double CBAFL = bezCompF[bez_BL]+(bezCompF[bez_CL]*(1.0-X)*(1.0-X))+(bezCompF[bez_BL]*2.0*(1.0-X)*X)+(bezCompF[bez_AL]*X*X); + CBAFL *= 0.5; + X = bezCompS[bez_cycle]*sloTrim; + double CBASL = bezCompS[bez_BL]+(bezCompS[bez_CL]*(1.0-X)*(1.0-X))+(bezCompS[bez_BL]*2.0*(1.0-X)*X)+(bezCompS[bez_AL]*X*X); + CBASL *= 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; + X = bezCompF[bez_cycle]*bezTrim; + double CBAFR = bezCompF[bez_BR]+(bezCompF[bez_CR]*(1.0-X)*(1.0-X))+(bezCompF[bez_BR]*2.0*(1.0-X)*X)+(bezCompF[bez_AR]*X*X); + CBAFR *= 0.5; + X = bezCompS[bez_cycle]*sloTrim; + double CBASR = bezCompS[bez_BR]+(bezCompS[bez_CR]*(1.0-X)*(1.0-X))+(bezCompS[bez_BR]*2.0*(1.0-X)*X)+(bezCompS[bez_AR]*X*X); + CBASR *= 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)); @@ -361,93 +357,69 @@ void X2Buss::processReplacing(float **inputs, float **outputs, VstInt32 sampleFr 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 ClipOnly3 as a little, compressed chunk that can be dropped into code + double noise = 1.0-((double(fpdL)/UINT32_MAX)*0.076); + if (wasPosClipL == true) { //current will be over + if (inputSampleL0.9085097) {wasPosClipL=true;inputSampleL=(0.9085097*noise)+(lastSampleL*(1.0-noise));} + if (wasNegClipL == true) { //current will be -over + if (inputSampleL > lastSampleL) lastSampleL=(-0.9085097*noise)+(inputSampleL*(1.0-noise)); + else lastSampleL = -0.94; + } wasNegClipL = false; + if (inputSampleL<-0.9085097) {wasNegClipL=true;inputSampleL=(-0.9085097*noise)+(lastSampleL*(1.0-noise));} + slewL[spacing*2] = fabs(lastSampleL-inputSampleL); + for (int x = spacing*2; x > 0; x--) slewL[x-1] = slewL[x]; + intermediateL[spacing] = inputSampleL; inputSampleL = lastSampleL; + //latency is however many samples equals one 44.1k sample + for (int x = spacing; x > 0; x--) {intermediateL[x-1] = intermediateL[x];} lastSampleL = intermediateL[0]; + if (wasPosClipL || wasNegClipL) { + for (int x = spacing; x > 0; x--) lastSampleL += intermediateL[x]; + lastSampleL /= spacing; + } double finalSlew = 0.0; + for (int x = spacing*2; x >= 0; x--) if (finalSlew < slewL[x]) finalSlew = slewL[x]; + double postclip = 0.94 / (1.0+(finalSlew*1.3986013)); + if (inputSampleL > postclip) inputSampleL = postclip; if (inputSampleL < -postclip) inputSampleL = -postclip; - //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 + noise = 1.0-((double(fpdR)/UINT32_MAX)*0.076); + if (wasPosClipR == true) { //current will be over + if (inputSampleR0.9085097) {wasPosClipR=true;inputSampleR=(0.9085097*noise)+(lastSampleR*(1.0-noise));} + if (wasNegClipR == true) { //current will be -over + if (inputSampleR > lastSampleR) lastSampleR=(-0.9085097*noise)+(inputSampleR*(1.0-noise)); + else lastSampleR = -0.94; + } wasNegClipR = false; + if (inputSampleR<-0.9085097) {wasNegClipR=true;inputSampleR=(-0.9085097*noise)+(lastSampleR*(1.0-noise));} + slewR[spacing*2] = fabs(lastSampleR-inputSampleR); + for (int x = spacing*2; x > 0; x--) slewR[x-1] = slewR[x]; + intermediateR[spacing] = inputSampleR; inputSampleR = lastSampleR; + //latency is however many samples equals one 44.1k sample + for (int x = spacing; x > 0; x--) {intermediateR[x-1] = intermediateR[x];} lastSampleR = intermediateR[0]; + if (wasPosClipR || wasNegClipR) { + for (int x = spacing; x > 0; x--) lastSampleR += intermediateR[x]; + lastSampleR /= spacing; + } finalSlew = 0.0; + for (int x = spacing*2; x >= 0; x--) if (finalSlew < slewR[x]) finalSlew = slewR[x]; + postclip = 0.94 / (1.0+(finalSlew*1.3986013)); + if (inputSampleR > postclip) inputSampleR = postclip; if (inputSampleR < -postclip) inputSampleR = -postclip; + //end ClipOnly3 as a little, compressed chunk that can be dropped into code //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)); + inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-44l * 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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 32 bit stereo floating point dither *out1 = inputSampleL; @@ -594,9 +566,15 @@ void X2Buss::processDoubleReplacing(double **inputs, double **outputs, VstInt32 double bezCThresh = pow(1.0-I, 6.0) * 8.0; double bezRez = pow(1.0-I, 12.360679774997898) / overallscale; + bezRez = fmin(fmax(bezRez,0.00001),1.0); + int stepped = 999999; if (bezRez > 0.000001) stepped = (int)(1.0/bezRez); + bezRez = 1.0 / stepped; + double bezTrim = 1.0-(bezRez*((double)stepped/(stepped+1.0))); 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); + stepped = 999999; if (sloRez > 0.000001) stepped = (int)(1.0/sloRez); + sloRez = 1.0 / stepped; + double sloTrim = 1.0-(sloRez*((double)stepped/(stepped+1.0))); //Dynamics2 inTrimA = inTrimB; inTrimB = J*2.0; @@ -753,8 +731,8 @@ void X2Buss::processDoubleReplacing(double **inputs, double **outputs, VstInt32 inputSampleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain); //fourth stage of three crossovers is the exponential filters - //SmoothEQ2 + //SmoothEQ2 if (bezCThresh > 0.0) { inputSampleL *= ((bezCThresh*0.5)+1.0); inputSampleR *= ((bezCThresh*0.5)+1.0); @@ -780,6 +758,7 @@ void X2Buss::processDoubleReplacing(double **inputs, double **outputs, VstInt32 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]; @@ -791,22 +770,21 @@ void X2Buss::processDoubleReplacing(double **inputs, double **outputs, VstInt32 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 X = bezCompF[bez_cycle]*bezTrim; + double CBAFL = bezCompF[bez_BL]+(bezCompF[bez_CL]*(1.0-X)*(1.0-X))+(bezCompF[bez_BL]*2.0*(1.0-X)*X)+(bezCompF[bez_AL]*X*X); + CBAFL *= 0.5; + X = bezCompS[bez_cycle]*sloTrim; + double CBASL = bezCompS[bez_BL]+(bezCompS[bez_CL]*(1.0-X)*(1.0-X))+(bezCompS[bez_BL]*2.0*(1.0-X)*X)+(bezCompS[bez_AL]*X*X); + CBASL *= 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; + X = bezCompF[bez_cycle]*bezTrim; + double CBAFR = bezCompF[bez_BR]+(bezCompF[bez_CR]*(1.0-X)*(1.0-X))+(bezCompF[bez_BR]*2.0*(1.0-X)*X)+(bezCompF[bez_AR]*X*X); + CBAFR *= 0.5; + X = bezCompS[bez_cycle]*sloTrim; + double CBASR = bezCompS[bez_BR]+(bezCompS[bez_CR]*(1.0-X)*(1.0-X))+(bezCompS[bez_BR]*2.0*(1.0-X)*X)+(bezCompS[bez_AR]*X*X); + CBASR *= 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)); @@ -814,94 +792,69 @@ void X2Buss::processDoubleReplacing(double **inputs, double **outputs, VstInt32 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 ClipOnly3 as a little, compressed chunk that can be dropped into code + double noise = 1.0-((double(fpdL)/UINT32_MAX)*0.076); + if (wasPosClipL == true) { //current will be over + if (inputSampleL0.9085097) {wasPosClipL=true;inputSampleL=(0.9085097*noise)+(lastSampleL*(1.0-noise));} + if (wasNegClipL == true) { //current will be -over + if (inputSampleL > lastSampleL) lastSampleL=(-0.9085097*noise)+(inputSampleL*(1.0-noise)); + else lastSampleL = -0.94; + } wasNegClipL = false; + if (inputSampleL<-0.9085097) {wasNegClipL=true;inputSampleL=(-0.9085097*noise)+(lastSampleL*(1.0-noise));} + slewL[spacing*2] = fabs(lastSampleL-inputSampleL); + for (int x = spacing*2; x > 0; x--) slewL[x-1] = slewL[x]; + intermediateL[spacing] = inputSampleL; inputSampleL = lastSampleL; + //latency is however many samples equals one 44.1k sample + for (int x = spacing; x > 0; x--) {intermediateL[x-1] = intermediateL[x];} lastSampleL = intermediateL[0]; + if (wasPosClipL || wasNegClipL) { + for (int x = spacing; x > 0; x--) lastSampleL += intermediateL[x]; + lastSampleL /= spacing; + } double finalSlew = 0.0; + for (int x = spacing*2; x >= 0; x--) if (finalSlew < slewL[x]) finalSlew = slewL[x]; + double postclip = 0.94 / (1.0+(finalSlew*1.3986013)); + if (inputSampleL > postclip) inputSampleL = postclip; if (inputSampleL < -postclip) inputSampleL = -postclip; - //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 + noise = 1.0-((double(fpdR)/UINT32_MAX)*0.076); + if (wasPosClipR == true) { //current will be over + if (inputSampleR0.9085097) {wasPosClipR=true;inputSampleR=(0.9085097*noise)+(lastSampleR*(1.0-noise));} + if (wasNegClipR == true) { //current will be -over + if (inputSampleR > lastSampleR) lastSampleR=(-0.9085097*noise)+(inputSampleR*(1.0-noise)); + else lastSampleR = -0.94; + } wasNegClipR = false; + if (inputSampleR<-0.9085097) {wasNegClipR=true;inputSampleR=(-0.9085097*noise)+(lastSampleR*(1.0-noise));} + slewR[spacing*2] = fabs(lastSampleR-inputSampleR); + for (int x = spacing*2; x > 0; x--) slewR[x-1] = slewR[x]; + intermediateR[spacing] = inputSampleR; inputSampleR = lastSampleR; + //latency is however many samples equals one 44.1k sample + for (int x = spacing; x > 0; x--) {intermediateR[x-1] = intermediateR[x];} lastSampleR = intermediateR[0]; + if (wasPosClipR || wasNegClipR) { + for (int x = spacing; x > 0; x--) lastSampleR += intermediateR[x]; + lastSampleR /= spacing; + } finalSlew = 0.0; + for (int x = spacing*2; x >= 0; x--) if (finalSlew < slewR[x]) finalSlew = slewR[x]; + postclip = 0.94 / (1.0+(finalSlew*1.3986013)); + if (inputSampleR > postclip) inputSampleR = postclip; if (inputSampleR < -postclip) inputSampleR = -postclip; + //end ClipOnly3 as a little, compressed chunk that can be dropped into code //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)); + //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 64 bit stereo floating point dither *out1 = inputSampleL; diff --git a/plugins/MacVST/kRockstar/kRockstar.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/kRockstar/kRockstar.xcodeproj/christopherjohnson.pbxuser index 10a90718e..8e458799d 100755 --- a/plugins/MacVST/kRockstar/kRockstar.xcodeproj/christopherjohnson.pbxuser +++ b/plugins/MacVST/kRockstar/kRockstar.xcodeproj/christopherjohnson.pbxuser @@ -49,8 +49,8 @@ PBXFileDataSource_Warnings_ColumnID, ); }; - PBXPerProjectTemplateStateSaveDate = 798137653; - PBXWorkspaceStateSaveDate = 798137653; + PBXPerProjectTemplateStateSaveDate = 799697137; + PBXWorkspaceStateSaveDate = 799697137; }; sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */; userBuildSettings = { @@ -82,9 +82,9 @@ }; 24D8286F09A914000093AEF8 /* kRockstarProc.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1326, 20502}}"; - sepNavSelRange = "{6692, 0}"; - sepNavVisRange = "{5964, 1875}"; + sepNavIntBoundsRect = "{{0, 0}, {1029, 20790}}"; + sepNavSelRange = "{22292, 0}"; + sepNavVisRange = "{1112, 1461}"; sepNavWindowFrame = "{{4, 47}, {895, 831}}"; }; }; diff --git a/plugins/MacVST/kRockstar/kRockstar.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/kRockstar/kRockstar.xcodeproj/christopherjohnson.perspectivev3 index ab5ec4494..2e39479dc 100755 --- a/plugins/MacVST/kRockstar/kRockstar.xcodeproj/christopherjohnson.perspectivev3 +++ b/plugins/MacVST/kRockstar/kRockstar.xcodeproj/christopherjohnson.perspectivev3 @@ -469,11 +469,11 @@ TableOfContents - 8B4E18BE2F92A1E500DAA5EC + 8B9471042FAA693000C74D02 1CA23ED40692098700951B8B - 8B4E18BF2F92A1E500DAA5EC + 8B9471052FAA693000C74D02 8B0237581D42B1C400E1E8C8 - 8B4E18C02F92A1E500DAA5EC + 8B9471062FAA693000C74D02 1CA23EDF0692099D00951B8B 1CA23EE00692099D00951B8B 1CA23EE10692099D00951B8B @@ -626,7 +626,7 @@ StatusbarIsVisible TimeStamp - 798138853.28046 + 799697200.70879495 ToolbarConfigUserDefaultsMinorVersion 2 ToolbarDisplayMode @@ -643,8 +643,7 @@ 5 WindowOrderList - 8B4E18C12F92A1E500DAA5EC - /Users/christopherjohnson/Desktop/kRockstar/kRockstar.xcodeproj + /Users/christopherjohnson/Desktop/airwindows/plugins/MacVST/kRockstar/kRockstar.xcodeproj WindowString 85 233 669 549 0 0 1440 878 diff --git a/plugins/MacVST/kRockstar/kRockstar.xcodeproj/project.pbxproj b/plugins/MacVST/kRockstar/kRockstar.xcodeproj/project.pbxproj index c98e422ff..8bcb0d31c 100755 --- a/plugins/MacVST/kRockstar/kRockstar.xcodeproj/project.pbxproj +++ b/plugins/MacVST/kRockstar/kRockstar.xcodeproj/project.pbxproj @@ -1894,7 +1894,7 @@ /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ - 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = { + 8D01CCC60486CAD60068D4B7 /* kRockstar */ = { isa = PBXNativeTarget; buildConfigurationList = 24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "kRockstar" */; buildPhases = ( @@ -1947,7 +1947,7 @@ ); projectRoot = ""; targets = ( - 8D01CCC60486CAD60068D4B7 /* AudioUnit */, + 8D01CCC60486CAD60068D4B7 /* kRockstar */, ); }; /* End PBXProject section */ diff --git a/plugins/MacVST/kRockstar/source/kRockstarProc.cpp b/plugins/MacVST/kRockstar/source/kRockstarProc.cpp index 6b1685f7b..8865a8836 100755 --- a/plugins/MacVST/kRockstar/source/kRockstarProc.cpp +++ b/plugins/MacVST/kRockstar/source/kRockstarProc.cpp @@ -551,10 +551,12 @@ void kRockstar::processReplacing(float **inputs, float **outputs, VstInt32 sampl //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)); + inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-44l * 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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 32 bit stereo floating point dither *out1 = inputSampleL; @@ -1111,10 +1113,12 @@ void kRockstar::processDoubleReplacing(double **inputs, double **outputs, VstInt //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)); + //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 64 bit stereo floating point dither *out1 = inputSampleL; diff --git a/plugins/WinVST/BezEQ3/BezEQ3Proc.cpp b/plugins/WinVST/BezEQ3/BezEQ3Proc.cpp index fea1c054c..84c3a79bf 100755 --- a/plugins/WinVST/BezEQ3/BezEQ3Proc.cpp +++ b/plugins/WinVST/BezEQ3/BezEQ3Proc.cpp @@ -114,10 +114,12 @@ void BezEQ3::processReplacing(float **inputs, float **outputs, VstInt32 sampleFr //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)); + inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-44l * 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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 32 bit stereo floating point dither *out1 = inputSampleL; @@ -237,10 +239,12 @@ void BezEQ3::processDoubleReplacing(double **inputs, double **outputs, VstInt32 //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)); + //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 64 bit stereo floating point dither *out1 = inputSampleL; diff --git a/plugins/WinVST/Density3/Density3Proc.cpp b/plugins/WinVST/Density3/Density3Proc.cpp index dfd071162..fbe26ea32 100755 --- a/plugins/WinVST/Density3/Density3Proc.cpp +++ b/plugins/WinVST/Density3/Density3Proc.cpp @@ -95,10 +95,12 @@ void Density3::processReplacing(float **inputs, float **outputs, VstInt32 sample //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)); + inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-44l * 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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 32 bit stereo floating point dither *out1 = inputSampleL; @@ -199,10 +201,12 @@ void Density3::processDoubleReplacing(double **inputs, double **outputs, VstInt3 //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)); + //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 64 bit stereo floating point dither *out1 = inputSampleL; diff --git a/plugins/WinVST/Dynamics3/Dynamics3.cpp b/plugins/WinVST/Dynamics3/Dynamics3.cpp index 11696659e..a0d0d3673 100755 --- a/plugins/WinVST/Dynamics3/Dynamics3.cpp +++ b/plugins/WinVST/Dynamics3/Dynamics3.cpp @@ -12,10 +12,10 @@ AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new D Dynamics3::Dynamics3(audioMasterCallback audioMaster) : AudioEffectX(audioMaster, kNumPrograms, kNumParameters) { - A = 0.999; + A = 1.0; B = 0.382; C = 0.618; - D = 0.618; + D = 1.0; for (int x = 0; x < bez_total; x++) bezComp[x] = 0.0; //Dynamics3 @@ -104,7 +104,7 @@ void Dynamics3::getParameterName(VstInt32 index, char *text) { case kParamA: vst_strncpy (text, "Thresh", kVstMaxParamStrLen); break; case kParamB: vst_strncpy (text, "Attack", kVstMaxParamStrLen); break; case kParamC: vst_strncpy (text, "Release", kVstMaxParamStrLen); break; - case kParamD: vst_strncpy (text, "Ratio", kVstMaxParamStrLen); break; + case kParamD: vst_strncpy (text, "Dry/Wet", kVstMaxParamStrLen); break; default: break; // unknown parameter, shouldn't happen! } //this is our labels for displaying in the VST host } diff --git a/plugins/WinVST/Dynamics3/Dynamics3Proc.cpp b/plugins/WinVST/Dynamics3/Dynamics3Proc.cpp index 745d60f23..bc5779ed5 100755 --- a/plugins/WinVST/Dynamics3/Dynamics3Proc.cpp +++ b/plugins/WinVST/Dynamics3/Dynamics3Proc.cpp @@ -19,15 +19,17 @@ void Dynamics3::processReplacing(float **inputs, float **outputs, VstInt32 sampl overallscale *= getSampleRate(); //begin Dynamics3 - double bezThresh = pow(A+0.6180339887498949,2.0)*2.0; + double bezThresh = pow(A+0.6180339887498949,2.0)*1.6180339887498949; double sqrThresh = sqrt(bezThresh); double bezRez = fmax(pow((1.0-B)*0.5,4.0)/overallscale,0.0001); bezRez /= (2.0/pow(overallscale,0.5-((overallscale-1.0)*0.0375))); - double bezTrim = 1.0-pow(bezRez*0.5,1.0/(bezRez*0.5)); + int stepped = 999999; if (bezRez > 0.000001) stepped = (int)(1.0/bezRez); + bezRez = 1.0 / stepped; + double bezTrim = 1.0-(bezRez*((double)stepped/(stepped+1.0))); double sloRez = fmax(pow((1.0-C)*0.5,4.0)/overallscale,0.00001); sloRez /= (2.0/pow(overallscale,0.5-((overallscale-1.0)*0.0375))); - double bezRatio = 1.0-pow(1.0-D,1.6180339887498949); - if (bezThresh > 5.236) bezRatio = 1.0; + double bezCompDry = pow(1.0-D,1.6180339887498949); + if (bezThresh > 4.236) bezCompDry = 0.0; //end Dynamics3 while (--sampleFrames >= 0) @@ -46,23 +48,25 @@ void Dynamics3::processReplacing(float **inputs, float **outputs, VstInt32 sampl bezComp[bez_min] = fmax(bezComp[bez_min]-sloRez,ctrl); bezComp[bez_Ctrl] += (bezComp[bez_min] * bezRez); bezComp[bez_cycle] += bezRez; - if (bezComp[bez_cycle] > 1.0) {bezComp[bez_cycle] -= 1.0; + if (bezComp[bez_cycle] > 1.0) {bezComp[bez_cycle] = 0.0; bezComp[bez_C] = bezComp[bez_B]; bezComp[bez_B] = bezComp[bez_A]; bezComp[bez_A] = bezComp[bez_Ctrl]; bezComp[bez_Ctrl] = 0.0;} double X = bezComp[bez_cycle]*bezTrim; bezComp[bez_comp] = bezComp[bez_B]+(bezComp[bez_C]*(1.0-X)*(1.0-X))+(bezComp[bez_B]*2.0*(1.0-X)*X)+(bezComp[bez_A]*X*X); - bezComp[bez_comp] = ((1.0-(fmin(bezComp[bez_comp],1.0))));// /bezCeiling - inputSampleL = (drySampleL*bezRatio)+(inputSampleL*(1.0-bezRatio)*bezComp[bez_comp]*bezThresh); - inputSampleR = (drySampleR*bezRatio)+(inputSampleR*(1.0-bezRatio)*bezComp[bez_comp]*bezThresh); + bezComp[bez_comp] = ((1.0-(fmin(bezComp[bez_comp],1.0)))); + inputSampleL = (drySampleL*bezCompDry*(1.0-(bezComp[bez_comp]*(1.0-bezCompDry))))+(inputSampleL*(1.0-bezCompDry)*bezComp[bez_comp]*bezThresh); + inputSampleR = (drySampleR*bezCompDry*(1.0-(bezComp[bez_comp]*(1.0-bezCompDry))))+(inputSampleR*(1.0-bezCompDry)*bezComp[bez_comp]*bezThresh); //end Dynamics3 //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)); + inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-44l * 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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 32 bit stereo floating point dither *out1 = inputSampleL; @@ -87,15 +91,17 @@ void Dynamics3::processDoubleReplacing(double **inputs, double **outputs, VstInt overallscale *= getSampleRate(); //begin Dynamics3 - double bezThresh = pow(A+0.6180339887498949,2.0)*2.0; + double bezThresh = pow(A+0.6180339887498949,2.0)*1.6180339887498949; double sqrThresh = sqrt(bezThresh); double bezRez = fmax(pow((1.0-B)*0.5,4.0)/overallscale,0.0001); bezRez /= (2.0/pow(overallscale,0.5-((overallscale-1.0)*0.0375))); - double bezTrim = 1.0-pow(bezRez*0.5,1.0/(bezRez*0.5)); + int stepped = 999999; if (bezRez > 0.000001) stepped = (int)(1.0/bezRez); + bezRez = 1.0 / stepped; + double bezTrim = 1.0-(bezRez*((double)stepped/(stepped+1.0))); double sloRez = fmax(pow((1.0-C)*0.5,4.0)/overallscale,0.00001); sloRez /= (2.0/pow(overallscale,0.5-((overallscale-1.0)*0.0375))); - double bezRatio = 1.0-pow(1.0-D,1.6180339887498949); - if (bezThresh > 5.236) bezRatio = 1.0; + double bezCompDry = pow(1.0-D,1.6180339887498949); + if (bezThresh > 4.236) bezCompDry = 0.0; //end Dynamics3 while (--sampleFrames >= 0) @@ -114,23 +120,25 @@ void Dynamics3::processDoubleReplacing(double **inputs, double **outputs, VstInt bezComp[bez_min] = fmax(bezComp[bez_min]-sloRez,ctrl); bezComp[bez_Ctrl] += (bezComp[bez_min] * bezRez); bezComp[bez_cycle] += bezRez; - if (bezComp[bez_cycle] > 1.0) {bezComp[bez_cycle] -= 1.0; + if (bezComp[bez_cycle] > 1.0) {bezComp[bez_cycle] = 0.0; bezComp[bez_C] = bezComp[bez_B]; bezComp[bez_B] = bezComp[bez_A]; bezComp[bez_A] = bezComp[bez_Ctrl]; bezComp[bez_Ctrl] = 0.0;} double X = bezComp[bez_cycle]*bezTrim; bezComp[bez_comp] = bezComp[bez_B]+(bezComp[bez_C]*(1.0-X)*(1.0-X))+(bezComp[bez_B]*2.0*(1.0-X)*X)+(bezComp[bez_A]*X*X); - bezComp[bez_comp] = ((1.0-(fmin(bezComp[bez_comp],1.0))));// /bezCeiling - inputSampleL = (drySampleL*bezRatio)+(inputSampleL*(1.0-bezRatio)*bezComp[bez_comp]*bezThresh); - inputSampleR = (drySampleR*bezRatio)+(inputSampleR*(1.0-bezRatio)*bezComp[bez_comp]*bezThresh); + bezComp[bez_comp] = ((1.0-(fmin(bezComp[bez_comp],1.0)))); + inputSampleL = (drySampleL*bezCompDry*(1.0-(bezComp[bez_comp]*(1.0-bezCompDry))))+(inputSampleL*(1.0-bezCompDry)*bezComp[bez_comp]*bezThresh); + inputSampleR = (drySampleR*bezCompDry*(1.0-(bezComp[bez_comp]*(1.0-bezCompDry))))+(inputSampleR*(1.0-bezCompDry)*bezComp[bez_comp]*bezThresh); //end Dynamics3 //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)); + //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 64 bit stereo floating point dither *out1 = inputSampleL; diff --git a/plugins/WinVST/LRConvolve3/LRConvolve3Proc.cpp b/plugins/WinVST/LRConvolve3/LRConvolve3Proc.cpp index 62f8d41f9..8822b8b8c 100755 --- a/plugins/WinVST/LRConvolve3/LRConvolve3Proc.cpp +++ b/plugins/WinVST/LRConvolve3/LRConvolve3Proc.cpp @@ -36,17 +36,19 @@ void LRConvolve3::processReplacing(float **inputs, float **outputs, VstInt32 sam } if (iirSample < modulate) iirSample = modulate; modulate = (iirSample*smooth)+(modulate*(1.0-smooth)); - if (carrier > 0.0) carrier = sqrt(carrier/modulate)*modulate; - if (carrier < 0.0) carrier = -sqrt(carrier/modulate)*modulate; + if (carrier > 0.0 && modulate > 0.0) carrier = sqrt(carrier/modulate)*modulate; + if (carrier < 0.0 && modulate > 0.0) carrier = -sqrt(-carrier/modulate)*modulate; inputSampleL = inputSampleR = carrier; //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)); + inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-44l * 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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 32 bit stereo floating point dither *out1 = inputSampleL; @@ -88,17 +90,19 @@ void LRConvolve3::processDoubleReplacing(double **inputs, double **outputs, VstI } if (iirSample < modulate) iirSample = modulate; modulate = (iirSample*smooth)+(modulate*(1.0-smooth)); - if (carrier > 0.0) carrier = sqrt(carrier/modulate)*modulate; - if (carrier < 0.0) carrier = -sqrt(carrier/modulate)*modulate; + if (carrier > 0.0 && modulate > 0.0) carrier = sqrt(carrier/modulate)*modulate; + if (carrier < 0.0 && modulate > 0.0) carrier = -sqrt(-carrier/modulate)*modulate; inputSampleL = inputSampleR = carrier; //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)); + //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 64 bit stereo floating point dither *out1 = inputSampleL; diff --git a/plugins/WinVST/Longhand/.vs/Console4Channel64/v14/.suo b/plugins/WinVST/Longhand/.vs/Console4Channel64/v14/.suo new file mode 100755 index 000000000..777b84637 Binary files /dev/null and b/plugins/WinVST/Longhand/.vs/Console4Channel64/v14/.suo differ diff --git a/plugins/WinVST/Longhand/.vs/VSTProject/v14/.suo b/plugins/WinVST/Longhand/.vs/VSTProject/v14/.suo new file mode 100755 index 000000000..b97221dd2 Binary files /dev/null and b/plugins/WinVST/Longhand/.vs/VSTProject/v14/.suo differ diff --git a/plugins/WinVST/Longhand/Longhand.cpp b/plugins/WinVST/Longhand/Longhand.cpp new file mode 100755 index 000000000..9e6542f9e --- /dev/null +++ b/plugins/WinVST/Longhand/Longhand.cpp @@ -0,0 +1,136 @@ +/* ======================================== + * Longhand - Longhand.h + * Copyright (c) airwindows, Airwindows uses the MIT license + * ======================================== */ + +#ifndef __Longhand_H +#include "Longhand.h" +#endif + +AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new Longhand(audioMaster);} + +Longhand::Longhand(audioMasterCallback audioMaster) : + AudioEffectX(audioMaster, kNumPrograms, kNumParameters) +{ + A = 0.445; + B = 1.0; + C = 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 +} + +Longhand::~Longhand() {} +VstInt32 Longhand::getVendorVersion () {return 1000;} +void Longhand::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);} +void Longhand::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 Longhand::getChunk (void** data, bool isPreset) +{ + float *chunkData = (float *)calloc(kNumParameters, sizeof(float)); + chunkData[0] = A; + chunkData[1] = B; + chunkData[2] = C; + /* 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 Longhand::setChunk (void* data, VstInt32 byteSize, bool isPreset) +{ + float *chunkData = (float *)data; + A = pinParameter(chunkData[0]); + B = pinParameter(chunkData[1]); + C = pinParameter(chunkData[2]); + /* 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 Longhand::setParameter(VstInt32 index, float value) { + switch (index) { + case kParamA: A = value; break; + case kParamB: B = value; break; + case kParamC: C = value; break; + default: throw; // unknown parameter, shouldn't happen! + } +} + +float Longhand::getParameter(VstInt32 index) { + switch (index) { + case kParamA: return A; break; + case kParamB: return B; break; + case kParamC: return C; 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 Longhand::getParameterName(VstInt32 index, char *text) { + switch (index) { + case kParamA: vst_strncpy (text, "Input", kVstMaxParamStrLen); break; + case kParamB: vst_strncpy (text, "Output", kVstMaxParamStrLen); break; + case kParamC: 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 Longhand::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; + default: break; // unknown parameter, shouldn't happen! + } //this displays the values and handles 'popups' where it's discrete choices +} + +void Longhand::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; + default: break; // unknown parameter, shouldn't happen! + } +} + +VstInt32 Longhand::canDo(char *text) +{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know + +bool Longhand::getEffectName(char* name) { + vst_strncpy(name, "Longhand", kVstMaxProductStrLen); return true; +} + +VstPlugCategory Longhand::getPlugCategory() {return kPlugCategEffect;} + +bool Longhand::getProductString(char* text) { + vst_strncpy (text, "airwindows Longhand", kVstMaxProductStrLen); return true; +} + +bool Longhand::getVendorString(char* text) { + vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true; +} diff --git a/plugins/WinVST/Longhand/Longhand.h b/plugins/WinVST/Longhand/Longhand.h new file mode 100755 index 000000000..56e996905 --- /dev/null +++ b/plugins/WinVST/Longhand/Longhand.h @@ -0,0 +1,66 @@ +/* ======================================== + * Longhand - Longhand.h + * Created 8/12/11 by SPIAdmin + * Copyright (c) Airwindows, Airwindows uses the MIT license + * ======================================== */ + +#ifndef __Longhand_H +#define __Longhand_H + +#ifndef __audioeffect__ +#include "audioeffectx.h" +#endif + +#include +#include +#include + +enum { + kParamA =0, + kParamB =1, + kParamC =2, + kNumParameters = 3 +}; // + +const int kNumPrograms = 0; +const int kNumInputs = 2; +const int kNumOutputs = 2; +const unsigned long kUniqueId = 'lonh'; //Change this to what the AU identity is! + +class Longhand : + public AudioEffectX +{ +public: + Longhand(audioMasterCallback audioMaster); + ~Longhand(); + 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; + + uint32_t fpdL; + uint32_t fpdR; + //default stuff +}; + +#endif diff --git a/plugins/WinVST/Longhand/LonghandProc.cpp b/plugins/WinVST/Longhand/LonghandProc.cpp new file mode 100755 index 000000000..68d8125de --- /dev/null +++ b/plugins/WinVST/Longhand/LonghandProc.cpp @@ -0,0 +1,181 @@ +/* ======================================== + * Longhand - Longhand.h + * Copyright (c) airwindows, Airwindows uses the MIT license + * ======================================== */ + +#ifndef __Longhand_H +#include "Longhand.h" +#endif + +void Longhand::processReplacing(float **inputs, float **outputs, VstInt32 sampleFrames) +{ + float* in1 = inputs[0]; + float* in2 = inputs[1]; + float* out1 = outputs[0]; + float* out2 = outputs[1]; + + double inputGain = pow(A,2.0)*7.72;//normalized input does not wavefold too far + double outputGain = B; + double wet = C; + + 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; + inputSampleL = fmin(fmax(inputSampleL,-1.0),1.0); + inputSampleR = fmin(fmax(inputSampleR,-1.0),1.0); + double drySampleL = inputSampleL; + double drySampleR = inputSampleR; + + if (inputGain != 1.0) { + inputSampleL *= inputGain; + inputSampleR *= inputGain; + drySampleL *= inputGain; + drySampleR *= inputGain; + } + + long double X = inputSampleL; X *= X; //long double for even + long double temp = inputSampleL * X; //the initial multiplies + inputSampleL -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleL += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleL -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleL += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleL -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleL += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleL -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleL += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleL -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleL += temp*0.00000000000000000001957294106339126; + X = inputSampleR; X *= X; //long double for even + temp = inputSampleR * X; //the initial multiplies + inputSampleR -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleR += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleR -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleR += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleR -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleR += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleR -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleR += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleR -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleR += temp*0.00000000000000000001957294106339126; + //retain mantissa of a long double increasing power function + //long double probably doesn't handle more than 36 digits or so + + if (outputGain != 1.0) { + inputSampleL *= outputGain; + inputSampleR *= outputGain; + } + + if (wet !=1.0) { + 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)) * 3.553e-44l * pow(2,expon+62)); + frexpf((float)inputSampleR, &expon); + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5; + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); + + *out1 = inputSampleL; + *out2 = inputSampleR; + + in1++; + in2++; + out1++; + out2++; + } +} + +void Longhand::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames) +{ + double* in1 = inputs[0]; + double* in2 = inputs[1]; + double* out1 = outputs[0]; + double* out2 = outputs[1]; + + double inputGain = pow(A,2.0)*7.72;//normalized input does not wavefold too far + double outputGain = B; + double wet = C; + + 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; + inputSampleL = fmin(fmax(inputSampleL,-1.0),1.0); + inputSampleR = fmin(fmax(inputSampleR,-1.0),1.0); + double drySampleL = inputSampleL; + double drySampleR = inputSampleR; + + if (inputGain != 1.0) { + inputSampleL *= inputGain; + inputSampleR *= inputGain; + drySampleL *= inputGain; + drySampleR *= inputGain; + } + + long double X = inputSampleL; X *= X; //long double for even + long double temp = inputSampleL * X; //the initial multiplies + inputSampleL -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleL += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleL -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleL += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleL -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleL += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleL -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleL += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleL -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleL += temp*0.00000000000000000001957294106339126; + X = inputSampleR; X *= X; //long double for even + temp = inputSampleR * X; //the initial multiplies + inputSampleR -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleR += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleR -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleR += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleR -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleR += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleR -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleR += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleR -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleR += temp*0.00000000000000000001957294106339126; + //retain mantissa of a long double increasing power function + //long double probably doesn't handle more than 36 digits or so + + if (outputGain != 1.0) { + inputSampleL *= outputGain; + inputSampleR *= outputGain; + } + + if (wet !=1.0) { + 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)) * 3.553e-44l * pow(2,expon+62)); + //frexp((double)inputSampleR, &expon); + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5; + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-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/Longhand/VSTProject.sln b/plugins/WinVST/Longhand/VSTProject.sln new file mode 100755 index 000000000..694b42443 --- /dev/null +++ b/plugins/WinVST/Longhand/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/Longhand/VSTProject.vcxproj b/plugins/WinVST/Longhand/VSTProject.vcxproj new file mode 100755 index 000000000..5128ca0c3 --- /dev/null +++ b/plugins/WinVST/Longhand/VSTProject.vcxproj @@ -0,0 +1,183 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + + + + + + + + + + + + + + {16F7AB3C-1AE0-4574-B60C-7B4DED82938C} + VSTProject + 8.1 + Longhand64 + + + + 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/Longhand/VSTProject.vcxproj.filters b/plugins/WinVST/Longhand/VSTProject.vcxproj.filters new file mode 100755 index 000000000..207969d07 --- /dev/null +++ b/plugins/WinVST/Longhand/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/Longhand/VSTProject.vcxproj.user b/plugins/WinVST/Longhand/VSTProject.vcxproj.user new file mode 100755 index 000000000..221626789 --- /dev/null +++ b/plugins/WinVST/Longhand/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/Longhand/vstplug.def b/plugins/WinVST/Longhand/vstplug.def new file mode 100755 index 000000000..5bf499aa2 --- /dev/null +++ b/plugins/WinVST/Longhand/vstplug.def @@ -0,0 +1,3 @@ +EXPORTS + VSTPluginMain + main=VSTPluginMain \ No newline at end of file diff --git a/plugins/WinVST/PearLiteEQ/PearLiteEQProc.cpp b/plugins/WinVST/PearLiteEQ/PearLiteEQProc.cpp index 2564fbf88..f28940034 100755 --- a/plugins/WinVST/PearLiteEQ/PearLiteEQProc.cpp +++ b/plugins/WinVST/PearLiteEQ/PearLiteEQProc.cpp @@ -73,10 +73,12 @@ void PearLiteEQ::processReplacing(float **inputs, float **outputs, VstInt32 samp //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)); + inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-44l * 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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 32 bit stereo floating point dither *out1 = inputSampleL; @@ -155,10 +157,12 @@ void PearLiteEQ::processDoubleReplacing(double **inputs, double **outputs, VstIn //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)); + //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 64 bit stereo floating point dither *out1 = inputSampleL; diff --git a/plugins/WinVST/PunchyDeluxe/PunchyDeluxeProc.cpp b/plugins/WinVST/PunchyDeluxe/PunchyDeluxeProc.cpp index 0eef3c796..1634c6d18 100755 --- a/plugins/WinVST/PunchyDeluxe/PunchyDeluxeProc.cpp +++ b/plugins/WinVST/PunchyDeluxe/PunchyDeluxeProc.cpp @@ -77,16 +77,19 @@ void PunchyDeluxe::processReplacing(float **inputs, float **outputs, VstInt32 sa } inputSampleL += band; inputSampleL *= drive; - inputSampleL = fmin(fmax(inputSampleL,-2.032610446872596),2.032610446872596); - long double X = inputSampleL * inputSampleL; - long double temp = inputSampleL * X; - inputSampleL -= (temp*0.125); temp *= X; - inputSampleL += (temp*0.0078125); temp *= X; - inputSampleL -= (temp*0.000244140625); temp *= X; - inputSampleL += (temp*0.000003814697265625); temp *= X; - inputSampleL -= (temp*0.0000000298023223876953125); temp *= X; - //purestsaturation: sine, except all the corrections - //retain mantissa of a long double increasing power function + inputSampleL = fmin(fmax(inputSampleL,-M_PI_2),M_PI_2); + long double X = inputSampleL; X *= X; //long double for even + long double temp = inputSampleL * X; //the initial multiplies + inputSampleL -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleL += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleL -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleL += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleL -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleL += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleL -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleL += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleL -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleL += temp*0.00000000000000000001957294106339126; fr = (0.92/overallscale)+(overallscale*0.01); band = inputSampleR; inputSampleR = 0.0; @@ -99,16 +102,21 @@ void PunchyDeluxe::processReplacing(float **inputs, float **outputs, VstInt32 sa } inputSampleR += band; inputSampleR *= drive; - inputSampleR = fmin(fmax(inputSampleR,-2.032610446872596),2.032610446872596); - X = inputSampleR * inputSampleR; - temp = inputSampleR * X; - inputSampleR -= (temp*0.125); temp *= X; - inputSampleR += (temp*0.0078125); temp *= X; - inputSampleR -= (temp*0.000244140625); temp *= X; - inputSampleR += (temp*0.000003814697265625); temp *= X; - inputSampleR -= (temp*0.0000000298023223876953125); temp *= X; - //purestsaturation: sine, except all the corrections + inputSampleR = fmin(fmax(inputSampleR,-M_PI_2),M_PI_2); + X = inputSampleR; X *= X; //long double for even + temp = inputSampleR * X; //the initial multiplies + inputSampleR -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleR += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleR -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleR += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleR -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleR += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleR -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleR += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleR -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleR += temp*0.00000000000000000001957294106339126; //retain mantissa of a long double increasing power function + //long double probably doesn't handle more than 36 digits or so } if (pad < 1.0) { @@ -116,16 +124,45 @@ void PunchyDeluxe::processReplacing(float **inputs, float **outputs, VstInt32 sa inputSampleR *= pad; } - inputSampleL = sin(fmin(fmax(inputSampleL,-M_PI),M_PI)); - inputSampleR = sin(fmin(fmax(inputSampleR,-M_PI),M_PI)); + inputSampleL = fmin(fmax(inputSampleL,-M_PI_2),M_PI_2); + inputSampleR = fmin(fmax(inputSampleR,-M_PI_2),M_PI_2); + + long double X = inputSampleL; X *= X; //long double for even + long double temp = inputSampleL * X; //the initial multiplies + inputSampleL -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleL += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleL -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleL += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleL -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleL += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleL -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleL += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleL -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleL += temp*0.00000000000000000001957294106339126; + X = inputSampleR; X *= X; //long double for even + temp = inputSampleR * X; //the initial multiplies + inputSampleR -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleR += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleR -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleR += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleR -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleR += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleR -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleR += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleR -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleR += temp*0.00000000000000000001957294106339126; + //retain mantissa of a long double increasing power function + //long double probably doesn't handle more than 36 digits or so //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)); + inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-44l * 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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 32 bit stereo floating point dither *out1 = inputSampleL; @@ -208,16 +245,19 @@ void PunchyDeluxe::processDoubleReplacing(double **inputs, double **outputs, Vst } inputSampleL += band; inputSampleL *= drive; - inputSampleL = fmin(fmax(inputSampleL,-2.032610446872596),2.032610446872596); - long double X = inputSampleL * inputSampleL; - long double temp = inputSampleL * X; - inputSampleL -= (temp*0.125); temp *= X; - inputSampleL += (temp*0.0078125); temp *= X; - inputSampleL -= (temp*0.000244140625); temp *= X; - inputSampleL += (temp*0.000003814697265625); temp *= X; - inputSampleL -= (temp*0.0000000298023223876953125); temp *= X; - //purestsaturation: sine, except all the corrections - //retain mantissa of a long double increasing power function + inputSampleL = fmin(fmax(inputSampleL,-M_PI_2),M_PI_2); + long double X = inputSampleL; X *= X; //long double for even + long double temp = inputSampleL * X; //the initial multiplies + inputSampleL -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleL += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleL -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleL += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleL -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleL += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleL -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleL += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleL -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleL += temp*0.00000000000000000001957294106339126; fr = (0.92/overallscale)+(overallscale*0.01); band = inputSampleR; inputSampleR = 0.0; @@ -230,16 +270,21 @@ void PunchyDeluxe::processDoubleReplacing(double **inputs, double **outputs, Vst } inputSampleR += band; inputSampleR *= drive; - inputSampleR = fmin(fmax(inputSampleR,-2.032610446872596),2.032610446872596); - X = inputSampleR * inputSampleR; - temp = inputSampleR * X; - inputSampleR -= (temp*0.125); temp *= X; - inputSampleR += (temp*0.0078125); temp *= X; - inputSampleR -= (temp*0.000244140625); temp *= X; - inputSampleR += (temp*0.000003814697265625); temp *= X; - inputSampleR -= (temp*0.0000000298023223876953125); temp *= X; - //purestsaturation: sine, except all the corrections + inputSampleR = fmin(fmax(inputSampleR,-M_PI_2),M_PI_2); + X = inputSampleR; X *= X; //long double for even + temp = inputSampleR * X; //the initial multiplies + inputSampleR -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleR += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleR -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleR += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleR -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleR += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleR -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleR += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleR -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleR += temp*0.00000000000000000001957294106339126; //retain mantissa of a long double increasing power function + //long double probably doesn't handle more than 36 digits or so } if (pad < 1.0) { @@ -247,16 +292,45 @@ void PunchyDeluxe::processDoubleReplacing(double **inputs, double **outputs, Vst inputSampleR *= pad; } - inputSampleL = sin(fmin(fmax(inputSampleL,-M_PI),M_PI)); - inputSampleR = sin(fmin(fmax(inputSampleR,-M_PI),M_PI)); + inputSampleL = fmin(fmax(inputSampleL,-M_PI_2),M_PI_2); + inputSampleR = fmin(fmax(inputSampleR,-M_PI_2),M_PI_2); + + long double X = inputSampleL; X *= X; //long double for even + long double temp = inputSampleL * X; //the initial multiplies + inputSampleL -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleL += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleL -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleL += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleL -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleL += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleL -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleL += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleL -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleL += temp*0.00000000000000000001957294106339126; + X = inputSampleR; X *= X; //long double for even + temp = inputSampleR * X; //the initial multiplies + inputSampleR -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleR += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleR -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleR += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleR -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleR += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleR -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleR += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleR -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleR += temp*0.00000000000000000001957294106339126; + //retain mantissa of a long double increasing power function + //long double probably doesn't handle more than 36 digits or so //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)); + //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 64 bit stereo floating point dither *out1 = inputSampleL; diff --git a/plugins/WinVST/PunchyGuitar/PunchyGuitarProc.cpp b/plugins/WinVST/PunchyGuitar/PunchyGuitarProc.cpp index 1cffc39b1..5e3877c25 100755 --- a/plugins/WinVST/PunchyGuitar/PunchyGuitarProc.cpp +++ b/plugins/WinVST/PunchyGuitar/PunchyGuitarProc.cpp @@ -90,16 +90,19 @@ void PunchyGuitar::processReplacing(float **inputs, float **outputs, VstInt32 sa } inputSampleL += (band*angG[9]); inputSampleL *= drive; - inputSampleL = fmin(fmax(inputSampleL,-2.032610446872596),2.032610446872596); - long double X = inputSampleL * inputSampleL; - long double temp = inputSampleL * X; - inputSampleL -= (temp*0.125); temp *= X; - inputSampleL += (temp*0.0078125); temp *= X; - inputSampleL -= (temp*0.000244140625); temp *= X; - inputSampleL += (temp*0.000003814697265625); temp *= X; - inputSampleL -= (temp*0.0000000298023223876953125); temp *= X; - //purestsaturation: sine, except all the corrections - //retain mantissa of a long double increasing power function + inputSampleL = fmin(fmax(inputSampleL,-M_PI_2),M_PI_2); + long double X = inputSampleL; X *= X; //long double for even + long double temp = inputSampleL * X; //the initial multiplies + inputSampleL -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleL += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleL -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleL += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleL -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleL += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleL -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleL += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleL -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleL += temp*0.00000000000000000001957294106339126; } if (gaterollerL < 1.0) @@ -170,16 +173,21 @@ void PunchyGuitar::processReplacing(float **inputs, float **outputs, VstInt32 sa } inputSampleR += (band*angG[9]); inputSampleR *= drive; - inputSampleR = fmin(fmax(inputSampleR,-2.032610446872596),2.032610446872596); - long double X = inputSampleR * inputSampleR; - long double temp = inputSampleR * X; - inputSampleR -= (temp*0.125); temp *= X; - inputSampleR += (temp*0.0078125); temp *= X; - inputSampleR -= (temp*0.000244140625); temp *= X; - inputSampleR += (temp*0.000003814697265625); temp *= X; - inputSampleR -= (temp*0.0000000298023223876953125); temp *= X; - //purestsaturation: sine, except all the corrections + inputSampleR = fmin(fmax(inputSampleR,-M_PI_2),M_PI_2); + long double X = inputSampleR; X *= X; //long double for even + long double temp = inputSampleR * X; //the initial multiplies + inputSampleR -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleR += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleR -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleR += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleR -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleR += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleR -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleR += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleR -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleR += temp*0.00000000000000000001957294106339126; //retain mantissa of a long double increasing power function + //long double probably doesn't handle more than 36 digits or so } if (gaterollerR < 1.0) @@ -210,10 +218,12 @@ void PunchyGuitar::processReplacing(float **inputs, float **outputs, VstInt32 sa //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)); + inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-44l * 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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 32 bit stereo floating point dither *out1 = inputSampleL; @@ -309,16 +319,19 @@ void PunchyGuitar::processDoubleReplacing(double **inputs, double **outputs, Vst } inputSampleL += (band*angG[9]); inputSampleL *= drive; - inputSampleL = fmin(fmax(inputSampleL,-2.032610446872596),2.032610446872596); - long double X = inputSampleL * inputSampleL; - long double temp = inputSampleL * X; - inputSampleL -= (temp*0.125); temp *= X; - inputSampleL += (temp*0.0078125); temp *= X; - inputSampleL -= (temp*0.000244140625); temp *= X; - inputSampleL += (temp*0.000003814697265625); temp *= X; - inputSampleL -= (temp*0.0000000298023223876953125); temp *= X; - //purestsaturation: sine, except all the corrections - //retain mantissa of a long double increasing power function + inputSampleL = fmin(fmax(inputSampleL,-M_PI_2),M_PI_2); + long double X = inputSampleL; X *= X; //long double for even + long double temp = inputSampleL * X; //the initial multiplies + inputSampleL -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleL += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleL -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleL += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleL -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleL += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleL -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleL += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleL -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleL += temp*0.00000000000000000001957294106339126; } if (gaterollerL < 1.0) @@ -389,16 +402,21 @@ void PunchyGuitar::processDoubleReplacing(double **inputs, double **outputs, Vst } inputSampleR += (band*angG[9]); inputSampleR *= drive; - inputSampleR = fmin(fmax(inputSampleR,-2.032610446872596),2.032610446872596); - long double X = inputSampleR * inputSampleR; - long double temp = inputSampleR * X; - inputSampleR -= (temp*0.125); temp *= X; - inputSampleR += (temp*0.0078125); temp *= X; - inputSampleR -= (temp*0.000244140625); temp *= X; - inputSampleR += (temp*0.000003814697265625); temp *= X; - inputSampleR -= (temp*0.0000000298023223876953125); temp *= X; - //purestsaturation: sine, except all the corrections + inputSampleR = fmin(fmax(inputSampleR,-M_PI_2),M_PI_2); + long double X = inputSampleR; X *= X; //long double for even + long double temp = inputSampleR * X; //the initial multiplies + inputSampleR -= temp*0.16666666666666666666666666666666666; temp *= X; + inputSampleR += temp*0.00833333333333333333333333333333333; temp *= X; + inputSampleR -= temp*0.00019841269841269841269841269841269; temp *= X; + inputSampleR += temp*0.00000275573192239858906525573192239; temp *= X; + inputSampleR -= temp*0.00000002505210838544171877521083854; temp *= X; + inputSampleR += temp*0.00000000016059043836821614599392377; temp *= X; + inputSampleR -= temp*0.00000000000076471637318198164759011; temp *= X; + inputSampleR += temp*0.00000000000000281145725434552076319; temp *= X; + inputSampleR -= temp*0.00000000000000000822063524662432971; temp *= X; + inputSampleR += temp*0.00000000000000000001957294106339126; //retain mantissa of a long double increasing power function + //long double probably doesn't handle more than 36 digits or so } if (gaterollerR < 1.0) @@ -429,10 +447,12 @@ void PunchyGuitar::processDoubleReplacing(double **inputs, double **outputs, Vst //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)); + //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 64 bit stereo floating point dither *out1 = inputSampleL; diff --git a/plugins/WinVST/SoftClock3/SoftClock3Proc.cpp b/plugins/WinVST/SoftClock3/SoftClock3Proc.cpp index 4efb92972..42f85ef3a 100755 --- a/plugins/WinVST/SoftClock3/SoftClock3Proc.cpp +++ b/plugins/WinVST/SoftClock3/SoftClock3Proc.cpp @@ -148,10 +148,12 @@ void SoftClock3::processReplacing(float **inputs, float **outputs, VstInt32 samp //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)); + inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-44l * 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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 32 bit stereo floating point dither *out1 = inputSampleL; @@ -305,10 +307,12 @@ void SoftClock3::processDoubleReplacing(double **inputs, double **outputs, VstIn //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)); + //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 64 bit stereo floating point dither *out1 = inputSampleL; diff --git a/plugins/WinVST/X2Buss/X2Buss.cpp b/plugins/WinVST/X2Buss/X2Buss.cpp index 59b50e4ab..24eac3277 100755 --- a/plugins/WinVST/X2Buss/X2Buss.cpp +++ b/plugins/WinVST/X2Buss/X2Buss.cpp @@ -47,15 +47,14 @@ X2Buss::X2Buss(audioMasterCallback audioMaster) : 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 + lastSampleL = 0.0; + wasPosClipL = false; + wasNegClipL = false; + lastSampleR = 0.0; + wasPosClipR = false; + wasNegClipR = false; + for (int x = 0; x < 17; x++) {intermediateL[x] = 0.0; intermediateR[x] = 0.0;} + for (int x = 0; x < 33; x++) {slewL[x] = 0.0; slewR[x] = 0.0;} inTrimA = 0.5; inTrimB = 0.5; diff --git a/plugins/WinVST/X2Buss/X2Buss.h b/plugins/WinVST/X2Buss/X2Buss.h index 2a192358b..77b2f2a51 100755 --- a/plugins/WinVST/X2Buss/X2Buss.h +++ b/plugins/WinVST/X2Buss/X2Buss.h @@ -126,22 +126,16 @@ private: 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 lastSampleL; + double intermediateL[18]; + double slewL[34]; + bool wasPosClipL; + bool wasNegClipL; + double lastSampleR; + double intermediateR[18]; + double slewR[34]; + bool wasPosClipR; + bool wasNegClipR; //Stereo ClipOnly3 double inTrimA; double inTrimB; diff --git a/plugins/WinVST/X2Buss/X2BussProc.cpp b/plugins/WinVST/X2Buss/X2BussProc.cpp index d203aadb5..405edde94 100755 --- a/plugins/WinVST/X2Buss/X2BussProc.cpp +++ b/plugins/WinVST/X2Buss/X2BussProc.cpp @@ -141,9 +141,15 @@ void X2Buss::processReplacing(float **inputs, float **outputs, VstInt32 sampleFr double bezCThresh = pow(1.0-I, 6.0) * 8.0; double bezRez = pow(1.0-I, 12.360679774997898) / overallscale; + bezRez = fmin(fmax(bezRez,0.00001),1.0); + int stepped = 999999; if (bezRez > 0.000001) stepped = (int)(1.0/bezRez); + bezRez = 1.0 / stepped; + double bezTrim = 1.0-(bezRez*((double)stepped/(stepped+1.0))); 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); + stepped = 999999; if (sloRez > 0.000001) stepped = (int)(1.0/sloRez); + sloRez = 1.0 / stepped; + double sloTrim = 1.0-(sloRez*((double)stepped/(stepped+1.0))); //Dynamics2 inTrimA = inTrimB; inTrimB = J*2.0; @@ -155,17 +161,7 @@ void X2Buss::processReplacing(float **inputs, float **outputs, VstInt32 sampleFr 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]; @@ -300,8 +296,8 @@ void X2Buss::processReplacing(float **inputs, float **outputs, VstInt32 sampleFr inputSampleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain); //fourth stage of three crossovers is the exponential filters - //SmoothEQ2 + //SmoothEQ2 if (bezCThresh > 0.0) { inputSampleL *= ((bezCThresh*0.5)+1.0); inputSampleR *= ((bezCThresh*0.5)+1.0); @@ -327,6 +323,7 @@ void X2Buss::processReplacing(float **inputs, float **outputs, VstInt32 sampleFr 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]; @@ -338,22 +335,21 @@ void X2Buss::processReplacing(float **inputs, float **outputs, VstInt32 sampleFr 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 X = bezCompF[bez_cycle]*bezTrim; + double CBAFL = bezCompF[bez_BL]+(bezCompF[bez_CL]*(1.0-X)*(1.0-X))+(bezCompF[bez_BL]*2.0*(1.0-X)*X)+(bezCompF[bez_AL]*X*X); + CBAFL *= 0.5; + X = bezCompS[bez_cycle]*sloTrim; + double CBASL = bezCompS[bez_BL]+(bezCompS[bez_CL]*(1.0-X)*(1.0-X))+(bezCompS[bez_BL]*2.0*(1.0-X)*X)+(bezCompS[bez_AL]*X*X); + CBASL *= 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; + X = bezCompF[bez_cycle]*bezTrim; + double CBAFR = bezCompF[bez_BR]+(bezCompF[bez_CR]*(1.0-X)*(1.0-X))+(bezCompF[bez_BR]*2.0*(1.0-X)*X)+(bezCompF[bez_AR]*X*X); + CBAFR *= 0.5; + X = bezCompS[bez_cycle]*sloTrim; + double CBASR = bezCompS[bez_BR]+(bezCompS[bez_CR]*(1.0-X)*(1.0-X))+(bezCompS[bez_BR]*2.0*(1.0-X)*X)+(bezCompS[bez_AR]*X*X); + CBASR *= 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)); @@ -361,93 +357,69 @@ void X2Buss::processReplacing(float **inputs, float **outputs, VstInt32 sampleFr 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 ClipOnly3 as a little, compressed chunk that can be dropped into code + double noise = 1.0-((double(fpdL)/UINT32_MAX)*0.076); + if (wasPosClipL == true) { //current will be over + if (inputSampleL0.9085097) {wasPosClipL=true;inputSampleL=(0.9085097*noise)+(lastSampleL*(1.0-noise));} + if (wasNegClipL == true) { //current will be -over + if (inputSampleL > lastSampleL) lastSampleL=(-0.9085097*noise)+(inputSampleL*(1.0-noise)); + else lastSampleL = -0.94; + } wasNegClipL = false; + if (inputSampleL<-0.9085097) {wasNegClipL=true;inputSampleL=(-0.9085097*noise)+(lastSampleL*(1.0-noise));} + slewL[spacing*2] = fabs(lastSampleL-inputSampleL); + for (int x = spacing*2; x > 0; x--) slewL[x-1] = slewL[x]; + intermediateL[spacing] = inputSampleL; inputSampleL = lastSampleL; + //latency is however many samples equals one 44.1k sample + for (int x = spacing; x > 0; x--) {intermediateL[x-1] = intermediateL[x];} lastSampleL = intermediateL[0]; + if (wasPosClipL || wasNegClipL) { + for (int x = spacing; x > 0; x--) lastSampleL += intermediateL[x]; + lastSampleL /= spacing; + } double finalSlew = 0.0; + for (int x = spacing*2; x >= 0; x--) if (finalSlew < slewL[x]) finalSlew = slewL[x]; + double postclip = 0.94 / (1.0+(finalSlew*1.3986013)); + if (inputSampleL > postclip) inputSampleL = postclip; if (inputSampleL < -postclip) inputSampleL = -postclip; - //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 + noise = 1.0-((double(fpdR)/UINT32_MAX)*0.076); + if (wasPosClipR == true) { //current will be over + if (inputSampleR0.9085097) {wasPosClipR=true;inputSampleR=(0.9085097*noise)+(lastSampleR*(1.0-noise));} + if (wasNegClipR == true) { //current will be -over + if (inputSampleR > lastSampleR) lastSampleR=(-0.9085097*noise)+(inputSampleR*(1.0-noise)); + else lastSampleR = -0.94; + } wasNegClipR = false; + if (inputSampleR<-0.9085097) {wasNegClipR=true;inputSampleR=(-0.9085097*noise)+(lastSampleR*(1.0-noise));} + slewR[spacing*2] = fabs(lastSampleR-inputSampleR); + for (int x = spacing*2; x > 0; x--) slewR[x-1] = slewR[x]; + intermediateR[spacing] = inputSampleR; inputSampleR = lastSampleR; + //latency is however many samples equals one 44.1k sample + for (int x = spacing; x > 0; x--) {intermediateR[x-1] = intermediateR[x];} lastSampleR = intermediateR[0]; + if (wasPosClipR || wasNegClipR) { + for (int x = spacing; x > 0; x--) lastSampleR += intermediateR[x]; + lastSampleR /= spacing; + } finalSlew = 0.0; + for (int x = spacing*2; x >= 0; x--) if (finalSlew < slewR[x]) finalSlew = slewR[x]; + postclip = 0.94 / (1.0+(finalSlew*1.3986013)); + if (inputSampleR > postclip) inputSampleR = postclip; if (inputSampleR < -postclip) inputSampleR = -postclip; + //end ClipOnly3 as a little, compressed chunk that can be dropped into code //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)); + inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-44l * 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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 32 bit stereo floating point dither *out1 = inputSampleL; @@ -594,9 +566,15 @@ void X2Buss::processDoubleReplacing(double **inputs, double **outputs, VstInt32 double bezCThresh = pow(1.0-I, 6.0) * 8.0; double bezRez = pow(1.0-I, 12.360679774997898) / overallscale; + bezRez = fmin(fmax(bezRez,0.00001),1.0); + int stepped = 999999; if (bezRez > 0.000001) stepped = (int)(1.0/bezRez); + bezRez = 1.0 / stepped; + double bezTrim = 1.0-(bezRez*((double)stepped/(stepped+1.0))); 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); + stepped = 999999; if (sloRez > 0.000001) stepped = (int)(1.0/sloRez); + sloRez = 1.0 / stepped; + double sloTrim = 1.0-(sloRez*((double)stepped/(stepped+1.0))); //Dynamics2 inTrimA = inTrimB; inTrimB = J*2.0; @@ -753,8 +731,8 @@ void X2Buss::processDoubleReplacing(double **inputs, double **outputs, VstInt32 inputSampleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain); //fourth stage of three crossovers is the exponential filters - //SmoothEQ2 + //SmoothEQ2 if (bezCThresh > 0.0) { inputSampleL *= ((bezCThresh*0.5)+1.0); inputSampleR *= ((bezCThresh*0.5)+1.0); @@ -780,6 +758,7 @@ void X2Buss::processDoubleReplacing(double **inputs, double **outputs, VstInt32 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]; @@ -791,22 +770,21 @@ void X2Buss::processDoubleReplacing(double **inputs, double **outputs, VstInt32 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 X = bezCompF[bez_cycle]*bezTrim; + double CBAFL = bezCompF[bez_BL]+(bezCompF[bez_CL]*(1.0-X)*(1.0-X))+(bezCompF[bez_BL]*2.0*(1.0-X)*X)+(bezCompF[bez_AL]*X*X); + CBAFL *= 0.5; + X = bezCompS[bez_cycle]*sloTrim; + double CBASL = bezCompS[bez_BL]+(bezCompS[bez_CL]*(1.0-X)*(1.0-X))+(bezCompS[bez_BL]*2.0*(1.0-X)*X)+(bezCompS[bez_AL]*X*X); + CBASL *= 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; + X = bezCompF[bez_cycle]*bezTrim; + double CBAFR = bezCompF[bez_BR]+(bezCompF[bez_CR]*(1.0-X)*(1.0-X))+(bezCompF[bez_BR]*2.0*(1.0-X)*X)+(bezCompF[bez_AR]*X*X); + CBAFR *= 0.5; + X = bezCompS[bez_cycle]*sloTrim; + double CBASR = bezCompS[bez_BR]+(bezCompS[bez_CR]*(1.0-X)*(1.0-X))+(bezCompS[bez_BR]*2.0*(1.0-X)*X)+(bezCompS[bez_AR]*X*X); + CBASR *= 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)); @@ -814,94 +792,69 @@ void X2Buss::processDoubleReplacing(double **inputs, double **outputs, VstInt32 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 ClipOnly3 as a little, compressed chunk that can be dropped into code + double noise = 1.0-((double(fpdL)/UINT32_MAX)*0.076); + if (wasPosClipL == true) { //current will be over + if (inputSampleL0.9085097) {wasPosClipL=true;inputSampleL=(0.9085097*noise)+(lastSampleL*(1.0-noise));} + if (wasNegClipL == true) { //current will be -over + if (inputSampleL > lastSampleL) lastSampleL=(-0.9085097*noise)+(inputSampleL*(1.0-noise)); + else lastSampleL = -0.94; + } wasNegClipL = false; + if (inputSampleL<-0.9085097) {wasNegClipL=true;inputSampleL=(-0.9085097*noise)+(lastSampleL*(1.0-noise));} + slewL[spacing*2] = fabs(lastSampleL-inputSampleL); + for (int x = spacing*2; x > 0; x--) slewL[x-1] = slewL[x]; + intermediateL[spacing] = inputSampleL; inputSampleL = lastSampleL; + //latency is however many samples equals one 44.1k sample + for (int x = spacing; x > 0; x--) {intermediateL[x-1] = intermediateL[x];} lastSampleL = intermediateL[0]; + if (wasPosClipL || wasNegClipL) { + for (int x = spacing; x > 0; x--) lastSampleL += intermediateL[x]; + lastSampleL /= spacing; + } double finalSlew = 0.0; + for (int x = spacing*2; x >= 0; x--) if (finalSlew < slewL[x]) finalSlew = slewL[x]; + double postclip = 0.94 / (1.0+(finalSlew*1.3986013)); + if (inputSampleL > postclip) inputSampleL = postclip; if (inputSampleL < -postclip) inputSampleL = -postclip; - //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 + noise = 1.0-((double(fpdR)/UINT32_MAX)*0.076); + if (wasPosClipR == true) { //current will be over + if (inputSampleR0.9085097) {wasPosClipR=true;inputSampleR=(0.9085097*noise)+(lastSampleR*(1.0-noise));} + if (wasNegClipR == true) { //current will be -over + if (inputSampleR > lastSampleR) lastSampleR=(-0.9085097*noise)+(inputSampleR*(1.0-noise)); + else lastSampleR = -0.94; + } wasNegClipR = false; + if (inputSampleR<-0.9085097) {wasNegClipR=true;inputSampleR=(-0.9085097*noise)+(lastSampleR*(1.0-noise));} + slewR[spacing*2] = fabs(lastSampleR-inputSampleR); + for (int x = spacing*2; x > 0; x--) slewR[x-1] = slewR[x]; + intermediateR[spacing] = inputSampleR; inputSampleR = lastSampleR; + //latency is however many samples equals one 44.1k sample + for (int x = spacing; x > 0; x--) {intermediateR[x-1] = intermediateR[x];} lastSampleR = intermediateR[0]; + if (wasPosClipR || wasNegClipR) { + for (int x = spacing; x > 0; x--) lastSampleR += intermediateR[x]; + lastSampleR /= spacing; + } finalSlew = 0.0; + for (int x = spacing*2; x >= 0; x--) if (finalSlew < slewR[x]) finalSlew = slewR[x]; + postclip = 0.94 / (1.0+(finalSlew*1.3986013)); + if (inputSampleR > postclip) inputSampleR = postclip; if (inputSampleR < -postclip) inputSampleR = -postclip; + //end ClipOnly3 as a little, compressed chunk that can be dropped into code //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)); + //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 64 bit stereo floating point dither *out1 = inputSampleL; diff --git a/plugins/WinVST/kRockstar/kRockstarProc.cpp b/plugins/WinVST/kRockstar/kRockstarProc.cpp index 6b1685f7b..8865a8836 100755 --- a/plugins/WinVST/kRockstar/kRockstarProc.cpp +++ b/plugins/WinVST/kRockstar/kRockstarProc.cpp @@ -551,10 +551,12 @@ void kRockstar::processReplacing(float **inputs, float **outputs, VstInt32 sampl //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)); + inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-44l * 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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 32 bit stereo floating point dither *out1 = inputSampleL; @@ -1111,10 +1113,12 @@ void kRockstar::processDoubleReplacing(double **inputs, double **outputs, VstInt //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)); + //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 3.553e-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)); + if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) { + fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;} + //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 3.553e-44l * pow(2,expon+62)); //end 64 bit stereo floating point dither *out1 = inputSampleL; diff --git a/what.txt b/what.txt index 0b76d5cb6..64babdd4f 100644 --- a/what.txt +++ b/what.txt @@ -28,7 +28,8 @@ Baxandall2 is Baxandall, extended and made more powerful.[coll=] Baxandall3 is for new tone colors.[coll=Latest] Beam is a wordlength reducer that tries to heighten sonority.[coll=] BezEQ is a strange, alien three-band shelving EQ.[coll=] -BezEQ2 is a unique, subtle three-band shelving EQ.[coll=Latest] +BezEQ2 is a unique, subtle three-band shelving EQ.[coll=] +BezEQ3 refines the concept into four vivid, unified bands.[coll=Latest] BeziComp is a radical compressor that eliminates aliasing![coll=Basic,Recommended,Latest] BigAmp is a very flexible amplike thing with a taste for the bizarre.[coll=Latest] Biquad is the Airwindows implementation of a biquad filter.[coll=]