mirror of
https://github.com/airwindows/airwindows.git
synced 2026-05-15 14:16:00 -06:00
BezEQ3
This commit is contained in:
parent
6df9b9832d
commit
2335148573
187 changed files with 18065 additions and 1931 deletions
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
136
plugins/LinuxVST/src/Longhand/Longhand.cpp
Executable file
136
plugins/LinuxVST/src/Longhand/Longhand.cpp
Executable file
|
|
@ -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;
|
||||
}
|
||||
66
plugins/LinuxVST/src/Longhand/Longhand.h
Executable file
66
plugins/LinuxVST/src/Longhand/Longhand.h
Executable file
|
|
@ -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 <set>
|
||||
#include <string>
|
||||
#include <math.h>
|
||||
|
||||
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
|
||||
181
plugins/LinuxVST/src/Longhand/LonghandProc.cpp
Executable file
181
plugins/LinuxVST/src/Longhand/LonghandProc.cpp
Executable file
|
|
@ -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++;
|
||||
}
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
@ -156,16 +162,6 @@ void X2Buss::processReplacing(float **inputs, float **outputs, VstInt32 sampleFr
|
|||
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 (inputSampleL<lastSampleL) lastSampleL=(0.9085097*noise)+(inputSampleL*(1.0-noise));
|
||||
else lastSampleL = 0.94; //~-0.2dB to nearly match ClipOnly and ClipOnly2
|
||||
} wasPosClipL = false;
|
||||
if (inputSampleL>0.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 (inputSampleR<lastSampleR) lastSampleR=(0.9085097*noise)+(inputSampleR*(1.0-noise));
|
||||
else lastSampleR = 0.94; //~-0.2dB to nearly match ClipOnly and ClipOnly2
|
||||
} wasPosClipR = false;
|
||||
if (inputSampleR>0.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 (inputSampleL<lastSampleL) lastSampleL=(0.9085097*noise)+(inputSampleL*(1.0-noise));
|
||||
else lastSampleL = 0.94; //~-0.2dB to nearly match ClipOnly and ClipOnly2
|
||||
} wasPosClipL = false;
|
||||
if (inputSampleL>0.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 (inputSampleR<lastSampleR) lastSampleR=(0.9085097*noise)+(inputSampleR*(1.0-noise));
|
||||
else lastSampleR = 0.94; //~-0.2dB to nearly match ClipOnly and ClipOnly2
|
||||
} wasPosClipR = false;
|
||||
if (inputSampleR>0.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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -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;
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -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;
|
||||
|
|
|
|||
Binary file not shown.
47
plugins/MacSignedAU/Longhand/Info.plist
Executable file
47
plugins/MacSignedAU/Longhand/Info.plist
Executable file
|
|
@ -0,0 +1,47 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>AudioComponents</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>description</key>
|
||||
<string>${PRODUCT_NAME:identifier} AU</string>
|
||||
<key>factoryFunction</key>
|
||||
<string>${PRODUCT_NAME:identifier}Factory</string>
|
||||
<key>manufacturer</key>
|
||||
<string>Dthr</string>
|
||||
<key>name</key>
|
||||
<string>Airwindows: ${PRODUCT_NAME:identifier}</string>
|
||||
<key>subtype</key>
|
||||
<string>lonh</string>
|
||||
<key>type</key>
|
||||
<string>aufx</string>
|
||||
<key>version</key>
|
||||
<integer>65536</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>${EXECUTABLE_NAME}</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string></string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>${PROJECTNAMEASIDENTIFIER}</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>BNDL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>DthX</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
<key>CSResourcesFileMapped</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
245
plugins/MacSignedAU/Longhand/Longhand.cpp
Executable file
245
plugins/MacSignedAU/Longhand/Longhand.cpp
Executable file
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
2
plugins/MacSignedAU/Longhand/Longhand.exp
Executable file
2
plugins/MacSignedAU/Longhand/Longhand.exp
Executable file
|
|
@ -0,0 +1,2 @@
|
|||
_LonghandEntry
|
||||
_LonghandFactory
|
||||
140
plugins/MacSignedAU/Longhand/Longhand.h
Executable file
140
plugins/MacSignedAU/Longhand/Longhand.h
Executable file
|
|
@ -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
|
||||
61
plugins/MacSignedAU/Longhand/Longhand.r
Executable file
61
plugins/MacSignedAU/Longhand/Longhand.r
Executable file
|
|
@ -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 <AudioUnit/AudioUnit.r>
|
||||
|
||||
#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"
|
||||
1358
plugins/MacSignedAU/Longhand/Longhand.xcodeproj/christopherjohnson.mode1v3
Executable file
1358
plugins/MacSignedAU/Longhand/Longhand.xcodeproj/christopherjohnson.mode1v3
Executable file
File diff suppressed because it is too large
Load diff
137
plugins/MacSignedAU/Longhand/Longhand.xcodeproj/christopherjohnson.pbxuser
Executable file
137
plugins/MacSignedAU/Longhand/Longhand.xcodeproj/christopherjohnson.pbxuser
Executable file
|
|
@ -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;
|
||||
};
|
||||
}
|
||||
1507
plugins/MacSignedAU/Longhand/Longhand.xcodeproj/christopherjohnson.perspectivev3
Executable file
1507
plugins/MacSignedAU/Longhand/Longhand.xcodeproj/christopherjohnson.perspectivev3
Executable file
File diff suppressed because it is too large
Load diff
965
plugins/MacSignedAU/Longhand/Longhand.xcodeproj/project.pbxproj
Executable file
965
plugins/MacSignedAU/Longhand/Longhand.xcodeproj/project.pbxproj
Executable file
|
|
@ -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 = "<absolute>"; };
|
||||
8BA05A660720730100365D66 /* Longhand.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Longhand.cpp; sourceTree = "<group>"; };
|
||||
8BA05A670720730100365D66 /* Longhand.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = Longhand.exp; sourceTree = "<group>"; };
|
||||
8BA05A680720730100365D66 /* Longhand.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = Longhand.r; sourceTree = "<group>"; };
|
||||
8BA05A690720730100365D66 /* LonghandVersion.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = LonghandVersion.h; sourceTree = "<group>"; };
|
||||
8BA05AF9072074E100365D66 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = /System/Library/Frameworks/AudioToolbox.framework; sourceTree = "<absolute>"; };
|
||||
8BA05AFA072074E100365D66 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = /System/Library/Frameworks/AudioUnit.framework; sourceTree = "<absolute>"; };
|
||||
8BA05B01072074F900365D66 /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = /System/Library/Frameworks/CoreServices.framework; sourceTree = "<absolute>"; };
|
||||
8BC6025B073B072D006C4272 /* Longhand.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Longhand.h; sourceTree = "<group>"; };
|
||||
8BD8873C2FAC0EDE0045683F /* CAExtAudioFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAExtAudioFile.h; sourceTree = "<group>"; };
|
||||
8BD8873D2FAC0EDE0045683F /* CACFMachPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMachPort.h; sourceTree = "<group>"; };
|
||||
8BD8873E2FAC0EDE0045683F /* CABool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABool.h; sourceTree = "<group>"; };
|
||||
8BD8873F2FAC0EDE0045683F /* CAComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponent.cpp; sourceTree = "<group>"; };
|
||||
8BD887402FAC0EDE0045683F /* CADebugger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugger.h; sourceTree = "<group>"; };
|
||||
8BD887412FAC0EDE0045683F /* CACFNumber.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFNumber.cpp; sourceTree = "<group>"; };
|
||||
8BD887422FAC0EDE0045683F /* CAGuard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAGuard.h; sourceTree = "<group>"; };
|
||||
8BD887432FAC0EDE0045683F /* CAAtomic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomic.h; sourceTree = "<group>"; };
|
||||
8BD887442FAC0EDE0045683F /* CAStreamBasicDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamBasicDescription.h; sourceTree = "<group>"; };
|
||||
8BD887452FAC0EDE0045683F /* CACFObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFObject.h; sourceTree = "<group>"; };
|
||||
8BD887462FAC0EDE0045683F /* CAStreamRangedDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamRangedDescription.h; sourceTree = "<group>"; };
|
||||
8BD887472FAC0EDE0045683F /* CATokenMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATokenMap.h; sourceTree = "<group>"; };
|
||||
8BD887482FAC0EDE0045683F /* CAComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponent.h; sourceTree = "<group>"; };
|
||||
8BD887492FAC0EDE0045683F /* CAAudioBufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioBufferList.h; sourceTree = "<group>"; };
|
||||
8BD8874A2FAC0EDE0045683F /* CAAudioUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnit.h; sourceTree = "<group>"; };
|
||||
8BD8874B2FAC0EDE0045683F /* CAAUParameter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUParameter.h; sourceTree = "<group>"; };
|
||||
8BD8874C2FAC0EDE0045683F /* CAException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAException.h; sourceTree = "<group>"; };
|
||||
8BD8874D2FAC0EDE0045683F /* CAAUProcessor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUProcessor.cpp; sourceTree = "<group>"; };
|
||||
8BD8874E2FAC0EDE0045683F /* CAAUProcessor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUProcessor.h; sourceTree = "<group>"; };
|
||||
8BD8874F2FAC0EDE0045683F /* CAProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAProcess.h; sourceTree = "<group>"; };
|
||||
8BD887502FAC0EDE0045683F /* CACFDictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDictionary.h; sourceTree = "<group>"; };
|
||||
8BD887512FAC0EDE0045683F /* CAPThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPThread.h; sourceTree = "<group>"; };
|
||||
8BD887522FAC0EDE0045683F /* CAAUParameter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUParameter.cpp; sourceTree = "<group>"; };
|
||||
8BD887532FAC0EDE0045683F /* CAAudioTimeStamp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioTimeStamp.h; sourceTree = "<group>"; };
|
||||
8BD887542FAC0EDE0045683F /* CAFilePathUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAFilePathUtils.cpp; sourceTree = "<group>"; };
|
||||
8BD887552FAC0EDE0045683F /* CAAudioValueRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioValueRange.h; sourceTree = "<group>"; };
|
||||
8BD887562FAC0EDE0045683F /* CAVectorUnitTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnitTypes.h; sourceTree = "<group>"; };
|
||||
8BD887572FAC0EDE0045683F /* CAAudioChannelLayoutObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayoutObject.cpp; sourceTree = "<group>"; };
|
||||
8BD887582FAC0EDE0045683F /* CAGuard.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAGuard.cpp; sourceTree = "<group>"; };
|
||||
8BD887592FAC0EDE0045683F /* CACFNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFNumber.h; sourceTree = "<group>"; };
|
||||
8BD8875A2FAC0EDE0045683F /* CACFDistributedNotification.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDistributedNotification.cpp; sourceTree = "<group>"; };
|
||||
8BD8875B2FAC0EDE0045683F /* CACFString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFString.h; sourceTree = "<group>"; };
|
||||
8BD8875C2FAC0EDE0045683F /* CAAUMIDIMapManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMapManager.cpp; sourceTree = "<group>"; };
|
||||
8BD8875D2FAC0EDE0045683F /* CAComponentDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponentDescription.cpp; sourceTree = "<group>"; };
|
||||
8BD8875E2FAC0EDE0045683F /* CAHostTimeBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAHostTimeBase.h; sourceTree = "<group>"; };
|
||||
8BD8875F2FAC0EDE0045683F /* CADebugMacros.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugMacros.cpp; sourceTree = "<group>"; };
|
||||
8BD887602FAC0EDE0045683F /* CAAudioFileFormats.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioFileFormats.h; sourceTree = "<group>"; };
|
||||
8BD887612FAC0EDE0045683F /* CAAUMIDIMapManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMapManager.h; sourceTree = "<group>"; };
|
||||
8BD887622FAC0EDE0045683F /* CACFDictionary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDictionary.cpp; sourceTree = "<group>"; };
|
||||
8BD887632FAC0EDE0045683F /* CAMutex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMutex.h; sourceTree = "<group>"; };
|
||||
8BD887642FAC0EDE0045683F /* CACFString.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFString.cpp; sourceTree = "<group>"; };
|
||||
8BD887652FAC0EDE0045683F /* CASettingsStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASettingsStorage.h; sourceTree = "<group>"; };
|
||||
8BD887662FAC0EDE0045683F /* CADebugPrintf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugPrintf.h; sourceTree = "<group>"; };
|
||||
8BD887672FAC0EDE0045683F /* CAXException.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAXException.cpp; sourceTree = "<group>"; };
|
||||
8BD887682FAC0EDE0045683F /* CAAUMIDIMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMap.h; sourceTree = "<group>"; };
|
||||
8BD887692FAC0EDE0045683F /* AUParamInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUParamInfo.h; sourceTree = "<group>"; };
|
||||
8BD8876A2FAC0EDE0045683F /* CABitOperations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABitOperations.h; sourceTree = "<group>"; };
|
||||
8BD8876B2FAC0EDE0045683F /* CACFPreferences.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFPreferences.cpp; sourceTree = "<group>"; };
|
||||
8BD8876C2FAC0EDE0045683F /* CABundleLocker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABundleLocker.h; sourceTree = "<group>"; };
|
||||
8BD8876D2FAC0EDE0045683F /* CAPropertyAddress.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPropertyAddress.h; sourceTree = "<group>"; };
|
||||
8BD8876E2FAC0EDE0045683F /* CAXException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAXException.h; sourceTree = "<group>"; };
|
||||
8BD8876F2FAC0EDE0045683F /* CAAudioChannelLayout.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayout.cpp; sourceTree = "<group>"; };
|
||||
8BD887702FAC0EDE0045683F /* CAThreadSafeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAThreadSafeList.h; sourceTree = "<group>"; };
|
||||
8BD887712FAC0EDE0045683F /* CAAudioUnitOutputCapturer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnitOutputCapturer.h; sourceTree = "<group>"; };
|
||||
8BD887722FAC0EDE0045683F /* AUParamInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUParamInfo.cpp; sourceTree = "<group>"; };
|
||||
8BD887732FAC0EDE0045683F /* CASharedLibrary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASharedLibrary.cpp; sourceTree = "<group>"; };
|
||||
8BD887742FAC0EDE0045683F /* CAAUMIDIMap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMap.cpp; sourceTree = "<group>"; };
|
||||
8BD887752FAC0EDE0045683F /* CALogMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CALogMacros.h; sourceTree = "<group>"; };
|
||||
8BD887762FAC0EDE0045683F /* CACFMessagePort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMessagePort.cpp; sourceTree = "<group>"; };
|
||||
8BD887772FAC0EDE0045683F /* CARingBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CARingBuffer.h; sourceTree = "<group>"; };
|
||||
8BD887782FAC0EDE0045683F /* AUOutputBL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputBL.cpp; sourceTree = "<group>"; };
|
||||
8BD887792FAC0EDE0045683F /* CABufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABufferList.h; sourceTree = "<group>"; };
|
||||
8BD8877A2FAC0EDE0045683F /* CASharedLibrary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASharedLibrary.h; sourceTree = "<group>"; };
|
||||
8BD8877B2FAC0EDE0045683F /* CACFData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFData.h; sourceTree = "<group>"; };
|
||||
8BD8877C2FAC0EDE0045683F /* CAStreamRangedDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamRangedDescription.cpp; sourceTree = "<group>"; };
|
||||
8BD8877D2FAC0EDE0045683F /* CAPThread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPThread.cpp; sourceTree = "<group>"; };
|
||||
8BD8877E2FAC0EDE0045683F /* CAAutoDisposer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAutoDisposer.h; sourceTree = "<group>"; };
|
||||
8BD8877F2FAC0EDE0045683F /* CACFPreferences.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPreferences.h; sourceTree = "<group>"; };
|
||||
8BD887802FAC0EDE0045683F /* CAVectorUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAVectorUnit.cpp; sourceTree = "<group>"; };
|
||||
8BD887812FAC0EDE0045683F /* CAComponentDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponentDescription.h; sourceTree = "<group>"; };
|
||||
8BD887822FAC0EDE0045683F /* CADebugMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugMacros.h; sourceTree = "<group>"; };
|
||||
8BD887832FAC0EDE0045683F /* AUOutputBL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputBL.h; sourceTree = "<group>"; };
|
||||
8BD887842FAC0EDE0045683F /* CADebugPrintf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugPrintf.cpp; sourceTree = "<group>"; };
|
||||
8BD887852FAC0EDE0045683F /* CARingBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CARingBuffer.cpp; sourceTree = "<group>"; };
|
||||
8BD887862FAC0EDE0045683F /* CACFPlugIn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPlugIn.h; sourceTree = "<group>"; };
|
||||
8BD887872FAC0EDE0045683F /* CASettingsStorage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASettingsStorage.cpp; sourceTree = "<group>"; };
|
||||
8BD887882FAC0EDE0045683F /* CAMixMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMixMap.h; sourceTree = "<group>"; };
|
||||
8BD887892FAC0EDE0045683F /* CACFDistributedNotification.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDistributedNotification.h; sourceTree = "<group>"; };
|
||||
8BD8878A2FAC0EDE0045683F /* CAFilePathUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAFilePathUtils.h; sourceTree = "<group>"; };
|
||||
8BD8878B2FAC0EDE0045683F /* CATink.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATink.h; sourceTree = "<group>"; };
|
||||
8BD8878C2FAC0EDE0045683F /* CAStreamBasicDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamBasicDescription.cpp; sourceTree = "<group>"; };
|
||||
8BD8878D2FAC0EDE0045683F /* CAAudioChannelLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioChannelLayout.h; sourceTree = "<group>"; };
|
||||
8BD8878E2FAC0EDE0045683F /* CAProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAProcess.cpp; sourceTree = "<group>"; };
|
||||
8BD8878F2FAC0EDE0045683F /* CAHostTimeBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAHostTimeBase.cpp; sourceTree = "<group>"; };
|
||||
8BD887902FAC0EDE0045683F /* CAPersistence.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPersistence.cpp; sourceTree = "<group>"; };
|
||||
8BD887912FAC0EDE0045683F /* CAAudioBufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioBufferList.cpp; sourceTree = "<group>"; };
|
||||
8BD887922FAC0EDE0045683F /* CAAudioTimeStamp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioTimeStamp.cpp; sourceTree = "<group>"; };
|
||||
8BD887932FAC0EDE0045683F /* CAVectorUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnit.h; sourceTree = "<group>"; };
|
||||
8BD887942FAC0EDE0045683F /* CAByteOrder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAByteOrder.h; sourceTree = "<group>"; };
|
||||
8BD887952FAC0EDE0045683F /* CACFArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFArray.h; sourceTree = "<group>"; };
|
||||
8BD887962FAC0EDE0045683F /* CAAtomicStack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomicStack.h; sourceTree = "<group>"; };
|
||||
8BD887972FAC0EDE0045683F /* CAReferenceCounted.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAReferenceCounted.h; sourceTree = "<group>"; };
|
||||
8BD887982FAC0EDE0045683F /* CACFMachPort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMachPort.cpp; sourceTree = "<group>"; };
|
||||
8BD887992FAC0EDE0045683F /* CABufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABufferList.cpp; sourceTree = "<group>"; };
|
||||
8BD8879A2FAC0EDE0045683F /* CAMutex.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAMutex.cpp; sourceTree = "<group>"; };
|
||||
8BD8879B2FAC0EDE0045683F /* CADebugger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugger.cpp; sourceTree = "<group>"; };
|
||||
8BD8879C2FAC0EDE0045683F /* CABundleLocker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABundleLocker.cpp; sourceTree = "<group>"; };
|
||||
8BD8879D2FAC0EDE0045683F /* CAAudioFileFormats.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioFileFormats.cpp; sourceTree = "<group>"; };
|
||||
8BD8879E2FAC0EDE0045683F /* CAMath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMath.h; sourceTree = "<group>"; };
|
||||
8BD8879F2FAC0EDE0045683F /* CACFArray.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFArray.cpp; sourceTree = "<group>"; };
|
||||
8BD887A02FAC0EDE0045683F /* CACFMessagePort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMessagePort.h; sourceTree = "<group>"; };
|
||||
8BD887A12FAC0EDE0045683F /* CAAudioValueRange.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioValueRange.cpp; sourceTree = "<group>"; };
|
||||
8BD887A22FAC0EDE0045683F /* CAAudioUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioUnit.cpp; sourceTree = "<group>"; };
|
||||
8BD887A62FAC0EDE0045683F /* AUViewLocalizedStringKeys.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUViewLocalizedStringKeys.h; sourceTree = "<group>"; };
|
||||
8BD887A82FAC0EDE0045683F /* ComponentBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ComponentBase.cpp; sourceTree = "<group>"; };
|
||||
8BD887A92FAC0EDE0045683F /* AUScopeElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUScopeElement.cpp; sourceTree = "<group>"; };
|
||||
8BD887AA2FAC0EDE0045683F /* ComponentBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ComponentBase.h; sourceTree = "<group>"; };
|
||||
8BD887AB2FAC0EDE0045683F /* AUBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBase.cpp; sourceTree = "<group>"; };
|
||||
8BD887AC2FAC0EDE0045683F /* AUInputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputElement.h; sourceTree = "<group>"; };
|
||||
8BD887AD2FAC0EDE0045683F /* AUBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBase.h; sourceTree = "<group>"; };
|
||||
8BD887AE2FAC0EDE0045683F /* AUPlugInDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUPlugInDispatch.h; sourceTree = "<group>"; };
|
||||
8BD887AF2FAC0EDE0045683F /* AUDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUDispatch.h; sourceTree = "<group>"; };
|
||||
8BD887B02FAC0EDE0045683F /* AUOutputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputElement.cpp; sourceTree = "<group>"; };
|
||||
8BD887B12FAC0EDE0045683F /* AUResources.r */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; path = AUResources.r; sourceTree = "<group>"; };
|
||||
8BD887B22FAC0EDE0045683F /* AUPlugInDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUPlugInDispatch.cpp; sourceTree = "<group>"; };
|
||||
8BD887B32FAC0EDE0045683F /* AUOutputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputElement.h; sourceTree = "<group>"; };
|
||||
8BD887B42FAC0EDE0045683F /* AUDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUDispatch.cpp; sourceTree = "<group>"; };
|
||||
8BD887B52FAC0EDE0045683F /* AUScopeElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUScopeElement.h; sourceTree = "<group>"; };
|
||||
8BD887B62FAC0EDE0045683F /* AUInputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUInputElement.cpp; sourceTree = "<group>"; };
|
||||
8BD887B82FAC0EDE0045683F /* AUEffectBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUEffectBase.cpp; sourceTree = "<group>"; };
|
||||
8BD887B92FAC0EDE0045683F /* AUEffectBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUEffectBase.h; sourceTree = "<group>"; };
|
||||
8BD887BB2FAC0EDE0045683F /* AUTimestampGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUTimestampGenerator.h; sourceTree = "<group>"; };
|
||||
8BD887BC2FAC0EDE0045683F /* AUBaseHelper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBaseHelper.cpp; sourceTree = "<group>"; };
|
||||
8BD887BD2FAC0EDE0045683F /* AUSilentTimeout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUSilentTimeout.h; sourceTree = "<group>"; };
|
||||
8BD887BE2FAC0EDE0045683F /* AUInputFormatConverter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputFormatConverter.h; sourceTree = "<group>"; };
|
||||
8BD887BF2FAC0EDE0045683F /* AUTimestampGenerator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUTimestampGenerator.cpp; sourceTree = "<group>"; };
|
||||
8BD887C02FAC0EDE0045683F /* AUBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBuffer.cpp; sourceTree = "<group>"; };
|
||||
8BD887C12FAC0EDE0045683F /* AUMIDIDefs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUMIDIDefs.h; sourceTree = "<group>"; };
|
||||
8BD887C22FAC0EDE0045683F /* AUBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBuffer.h; sourceTree = "<group>"; };
|
||||
8BD887C32FAC0EDE0045683F /* AUBaseHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBaseHelper.h; sourceTree = "<group>"; };
|
||||
8BD888462FAC0F940045683F /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
|
||||
8D01CCD20486CAD60068D4B7 /* 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 = "<group>";
|
||||
};
|
||||
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B5C7FBF076FB2C200A15F61 /* CoreAudio.framework */,
|
||||
8BA05B01072074F900365D66 /* CoreServices.framework */,
|
||||
8BA05AF9072074E100365D66 /* AudioToolbox.framework */,
|
||||
8BA05AFA072074E100365D66 /* AudioUnit.framework */,
|
||||
);
|
||||
name = "External Frameworks and Libraries";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
089C167CFE841241C02AAC07 /* Resources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8D01CCD10486CAD60068D4B7 /* Info.plist */,
|
||||
089C167DFE841241C02AAC07 /* InfoPlist.strings */,
|
||||
);
|
||||
name = Resources;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
08FB77ADFE841716C02AAC07 /* Source */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BD8873A2FAC0EDE0045683F /* CA_SDK */,
|
||||
8BA05A56072072A900365D66 /* AU Source */,
|
||||
);
|
||||
name = Source;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
19C28FB4FE9D528D11CA2CBB /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8D01CCD20486CAD60068D4B7 /* Longhand.component */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
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 = "<group>";
|
||||
};
|
||||
8BD8873A2FAC0EDE0045683F /* CA_SDK */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BD8873B2FAC0EDE0045683F /* PublicUtility */,
|
||||
8BD887A32FAC0EDE0045683F /* AudioUnits */,
|
||||
);
|
||||
name = CA_SDK;
|
||||
path = ../../../../CA_SDK;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
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 = "<group>";
|
||||
};
|
||||
8BD887A32FAC0EDE0045683F /* AudioUnits */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BD887A42FAC0EDE0045683F /* AUPublic */,
|
||||
);
|
||||
path = AudioUnits;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BD887A42FAC0EDE0045683F /* AUPublic */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BD887A52FAC0EDE0045683F /* AUViewBase */,
|
||||
8BD887A72FAC0EDE0045683F /* AUBase */,
|
||||
8BD887B72FAC0EDE0045683F /* OtherBases */,
|
||||
8BD887BA2FAC0EDE0045683F /* Utility */,
|
||||
);
|
||||
path = AUPublic;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BD887A52FAC0EDE0045683F /* AUViewBase */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BD887A62FAC0EDE0045683F /* AUViewLocalizedStringKeys.h */,
|
||||
);
|
||||
path = AUViewBase;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
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 = "<group>";
|
||||
};
|
||||
8BD887B72FAC0EDE0045683F /* OtherBases */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BD887B82FAC0EDE0045683F /* AUEffectBase.cpp */,
|
||||
8BD887B92FAC0EDE0045683F /* AUEffectBase.h */,
|
||||
);
|
||||
path = OtherBases;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
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 = "<group>";
|
||||
};
|
||||
/* 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 = "<group>";
|
||||
};
|
||||
/* End PBXVariantGroup section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
3E4BA244089833B7007656EC /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ARCHS = "$(ARCHS_STANDARD)";
|
||||
CLANG_ENABLE_OBJC_WEAK = YES;
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Developer ID Application";
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
DEAD_CODE_STRIPPING = YES;
|
||||
DEVELOPMENT_TEAM = "";
|
||||
"DEVELOPMENT_TEAM[sdk=macosx*]" = 9BMAKYA76W;
|
||||
EXPORTED_SYMBOLS_FILE = 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 */;
|
||||
}
|
||||
7
plugins/MacSignedAU/Longhand/Longhand.xcodeproj/project.xcworkspace/contents.xcworkspacedata
generated
Normal file
7
plugins/MacSignedAU/Longhand/Longhand.xcodeproj/project.xcworkspace/contents.xcworkspacedata
generated
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Workspace
|
||||
version = "1.0">
|
||||
<FileRef
|
||||
location = "self:">
|
||||
</FileRef>
|
||||
</Workspace>
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>IDEDidComputeMac32BitWarning</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
Binary file not shown.
|
|
@ -0,0 +1,67 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1420"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "8D01CCC60486CAD60068D4B7"
|
||||
BuildableName = "Longhand.component"
|
||||
BlueprintName = "Longhand"
|
||||
ReferencedContainer = "container:Longhand.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
<Testables>
|
||||
</Testables>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "Release"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
allowLocationSimulation = "YES">
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "8D01CCC60486CAD60068D4B7"
|
||||
BuildableName = "Longhand.component"
|
||||
BlueprintName = "Longhand"
|
||||
ReferencedContainer = "container:Longhand.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>SchemeUserState</key>
|
||||
<dict>
|
||||
<key>Longhand.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>SuppressBuildableAutocreation</key>
|
||||
<dict>
|
||||
<key>8D01CCC60486CAD60068D4B7</key>
|
||||
<dict>
|
||||
<key>primary</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
58
plugins/MacSignedAU/Longhand/LonghandVersion.h
Executable file
58
plugins/MacSignedAU/Longhand/LonghandVersion.h
Executable file
|
|
@ -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
|
||||
|
||||
BIN
plugins/MacSignedAU/Longhand/en.lproj/InfoPlist.strings
Executable file
BIN
plugins/MacSignedAU/Longhand/en.lproj/InfoPlist.strings
Executable file
Binary file not shown.
16
plugins/MacSignedAU/Longhand/version.plist
Executable file
16
plugins/MacSignedAU/Longhand/version.plist
Executable file
|
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>BuildVersion</key>
|
||||
<string>3</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
<key>ProjectName</key>
|
||||
<string>${EXECUTABLE_NAME}</string>
|
||||
<key>SourceVersion</key>
|
||||
<string>590000</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
@ -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;
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -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;
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -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;
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -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;
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -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 (inputSampleL<lastSampleL) lastSampleL=(0.9085097*noise)+(inputSampleL*(1.0-noise));
|
||||
else lastSampleL = 0.94; //~-0.2dB to nearly match ClipOnly and ClipOnly2
|
||||
} wasPosClipL = false;
|
||||
if (inputSampleL>0.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 (inputSampleR<lastSampleR) lastSampleR=(0.9085097*noise)+(inputSampleR*(1.0-noise));
|
||||
else lastSampleR = 0.94; //~-0.2dB to nearly match ClipOnly and ClipOnly2
|
||||
} wasPosClipR = false;
|
||||
if (inputSampleR>0.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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -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;
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
|
|
@ -15,7 +15,7 @@
|
|||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "8D01CCC60486CAD60068D4B7"
|
||||
BuildableName = "Gain.vst"
|
||||
BuildableName = "BezEQ3.vst"
|
||||
BlueprintName = "BezEQ3"
|
||||
ReferencedContainer = "container:BezEQ3.xcodeproj">
|
||||
</BuildableReference>
|
||||
|
|
@ -51,7 +51,7 @@
|
|||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "8D01CCC60486CAD60068D4B7"
|
||||
BuildableName = "Gain.vst"
|
||||
BuildableName = "BezEQ3.vst"
|
||||
BlueprintName = "BezEQ3"
|
||||
ReferencedContainer = "container:BezEQ3.xcodeproj">
|
||||
</BuildableReference>
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -15,7 +15,7 @@
|
|||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "8D01CCC60486CAD60068D4B7"
|
||||
BuildableName = "Gain.vst"
|
||||
BuildableName = "Density3.vst"
|
||||
BlueprintName = "Density3"
|
||||
ReferencedContainer = "container:Density3.xcodeproj">
|
||||
</BuildableReference>
|
||||
|
|
@ -51,7 +51,7 @@
|
|||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "8D01CCC60486CAD60068D4B7"
|
||||
BuildableName = "Gain.vst"
|
||||
BuildableName = "Density3.vst"
|
||||
BlueprintName = "Density3"
|
||||
ReferencedContainer = "container:Density3.xcodeproj">
|
||||
</BuildableReference>
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -15,7 +15,7 @@
|
|||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "8D01CCC60486CAD60068D4B7"
|
||||
BuildableName = "Gain.vst"
|
||||
BuildableName = "Dynamics3.vst"
|
||||
BlueprintName = "Dynamics3"
|
||||
ReferencedContainer = "container:Dynamics3.xcodeproj">
|
||||
</BuildableReference>
|
||||
|
|
@ -51,7 +51,7 @@
|
|||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "8D01CCC60486CAD60068D4B7"
|
||||
BuildableName = "Gain.vst"
|
||||
BuildableName = "Dynamics3.vst"
|
||||
BlueprintName = "Dynamics3"
|
||||
ReferencedContainer = "container:Dynamics3.xcodeproj">
|
||||
</BuildableReference>
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -15,7 +15,7 @@
|
|||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "8D01CCC60486CAD60068D4B7"
|
||||
BuildableName = "Gain.vst"
|
||||
BuildableName = "LRConvolve3.vst"
|
||||
BlueprintName = "LRConvolve3"
|
||||
ReferencedContainer = "container:LRConvolve3.xcodeproj">
|
||||
</BuildableReference>
|
||||
|
|
@ -51,7 +51,7 @@
|
|||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "8D01CCC60486CAD60068D4B7"
|
||||
BuildableName = "Gain.vst"
|
||||
BuildableName = "LRConvolve3.vst"
|
||||
BlueprintName = "LRConvolve3"
|
||||
ReferencedContainer = "container:LRConvolve3.xcodeproj">
|
||||
</BuildableReference>
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
108
plugins/MacSignedVST/Longhand/Longhand.xcodeproj/christopherjohnson.pbxuser
Executable file
108
plugins/MacSignedVST/Longhand/Longhand.xcodeproj/christopherjohnson.pbxuser
Executable file
|
|
@ -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;
|
||||
};
|
||||
}
|
||||
1503
plugins/MacSignedVST/Longhand/Longhand.xcodeproj/christopherjohnson.perspectivev3
Executable file
1503
plugins/MacSignedVST/Longhand/Longhand.xcodeproj/christopherjohnson.perspectivev3
Executable file
File diff suppressed because it is too large
Load diff
462
plugins/MacSignedVST/Longhand/Longhand.xcodeproj/project.pbxproj
Executable file
462
plugins/MacSignedVST/Longhand/Longhand.xcodeproj/project.pbxproj
Executable file
|
|
@ -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 = "<group>"; };
|
||||
245463B80991757100464AD3 /* Longhand.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = Longhand.h; path = source/Longhand.h; sourceTree = "<group>"; };
|
||||
24CFB70307E7A0220081BD57 /* PkgInfo */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = PkgInfo; path = mac/PkgInfo; sourceTree = "<group>"; };
|
||||
24D8286F09A914000093AEF8 /* LonghandProc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = LonghandProc.cpp; path = source/LonghandProc.cpp; sourceTree = "<group>"; };
|
||||
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 = "<group>"; };
|
||||
8BD887262FAC07140045683F /* aeffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffect.h; sourceTree = "<group>"; };
|
||||
8BD887272FAC07140045683F /* aeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffectx.h; sourceTree = "<group>"; };
|
||||
8BD8872B2FAC07140045683F /* audioeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audioeffectx.h; sourceTree = "<group>"; };
|
||||
8BD8872C2FAC07140045683F /* audioeffect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffect.cpp; sourceTree = "<group>"; };
|
||||
8BD8872D2FAC07140045683F /* audioeffectx.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffectx.cpp; sourceTree = "<group>"; };
|
||||
8BD8872E2FAC07140045683F /* aeffeditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffeditor.h; sourceTree = "<group>"; };
|
||||
8BD8872F2FAC07140045683F /* vstplugmain.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstplugmain.cpp; sourceTree = "<group>"; };
|
||||
8BD887302FAC07140045683F /* audioeffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audioeffect.h; sourceTree = "<group>"; };
|
||||
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = mac/Info.plist; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
089C166AFE841209C02AAC07 /* FM-Chopper */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
19C28FB4FE9D528D11CA2CBB /* Products */,
|
||||
089C167CFE841241C02AAC07 /* Resources */,
|
||||
08FB77ADFE841716C02AAC07 /* Source */,
|
||||
);
|
||||
name = "FM-Chopper";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
089C167CFE841241C02AAC07 /* Resources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */,
|
||||
24CFB70307E7A0220081BD57 /* PkgInfo */,
|
||||
8D01CCD10486CAD60068D4B7 /* Info.plist */,
|
||||
);
|
||||
name = Resources;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
08FB77ADFE841716C02AAC07 /* Source */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BD887222FAC07140045683F /* vstsdk2.4 */,
|
||||
2407DEB6089929BA00EB68BF /* Longhand.cpp */,
|
||||
24D8286F09A914000093AEF8 /* LonghandProc.cpp */,
|
||||
245463B80991757100464AD3 /* Longhand.h */,
|
||||
);
|
||||
name = Source;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
19C28FB4FE9D528D11CA2CBB /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
2407DE920899296600EB68BF /* Longhand.vst */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BD887222FAC07140045683F /* vstsdk2.4 */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BD887232FAC07140045683F /* pluginterfaces */,
|
||||
8BD887282FAC07140045683F /* public.sdk */,
|
||||
);
|
||||
name = vstsdk2.4;
|
||||
path = ../../../../vstsdk2.4;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BD887232FAC07140045683F /* pluginterfaces */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BD887242FAC07140045683F /* vst2.x */,
|
||||
);
|
||||
path = pluginterfaces;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BD887242FAC07140045683F /* vst2.x */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BD887252FAC07140045683F /* vstfxstore.h */,
|
||||
8BD887262FAC07140045683F /* aeffect.h */,
|
||||
8BD887272FAC07140045683F /* aeffectx.h */,
|
||||
);
|
||||
path = vst2.x;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BD887282FAC07140045683F /* public.sdk */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BD887292FAC07140045683F /* source */,
|
||||
);
|
||||
path = public.sdk;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BD887292FAC07140045683F /* source */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BD8872A2FAC07140045683F /* vst2.x */,
|
||||
);
|
||||
path = source;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
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 = "<group>";
|
||||
};
|
||||
/* 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 */;
|
||||
}
|
||||
7
plugins/MacSignedVST/Longhand/Longhand.xcodeproj/project.xcworkspace/contents.xcworkspacedata
generated
Executable file
7
plugins/MacSignedVST/Longhand/Longhand.xcodeproj/project.xcworkspace/contents.xcworkspacedata
generated
Executable file
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Workspace
|
||||
version = "1.0">
|
||||
<FileRef
|
||||
location = "self:Sample.xcodeproj">
|
||||
</FileRef>
|
||||
</Workspace>
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>IDEDidComputeMac32BitWarning</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
Binary file not shown.
Binary file not shown.
1372
plugins/MacSignedVST/Longhand/Longhand.xcodeproj/spiadmin.mode1v3
Executable file
1372
plugins/MacSignedVST/Longhand/Longhand.xcodeproj/spiadmin.mode1v3
Executable file
File diff suppressed because it is too large
Load diff
143
plugins/MacSignedVST/Longhand/Longhand.xcodeproj/spiadmin.pbxuser
Executable file
143
plugins/MacSignedVST/Longhand/Longhand.xcodeproj/spiadmin.pbxuser
Executable file
|
|
@ -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 = "";
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,67 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1420"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "8D01CCC60486CAD60068D4B7"
|
||||
BuildableName = "Gain.vst"
|
||||
BlueprintName = "Longhand"
|
||||
ReferencedContainer = "container:Longhand.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
<Testables>
|
||||
</Testables>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "Release"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
allowLocationSimulation = "YES">
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "8D01CCC60486CAD60068D4B7"
|
||||
BuildableName = "Gain.vst"
|
||||
BlueprintName = "Longhand"
|
||||
ReferencedContainer = "container:Longhand.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>SchemeUserState</key>
|
||||
<dict>
|
||||
<key>Longhand.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>SuppressBuildableAutocreation</key>
|
||||
<dict>
|
||||
<key>8D01CCC60486CAD60068D4B7</key>
|
||||
<dict>
|
||||
<key>primary</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>SchemeUserState</key>
|
||||
<dict>
|
||||
<key>«PROJECTNAME».xcscheme</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>SuppressBuildableAutocreation</key>
|
||||
<dict>
|
||||
<key>8D01CCC60486CAD60068D4B7</key>
|
||||
<dict>
|
||||
<key>primary</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "8D01CCC60486CAD60068D4B7"
|
||||
BuildableName = "«PROJECTNAME».vst"
|
||||
BlueprintName = "«PROJECTNAME»"
|
||||
ReferencedContainer = "container:Sample.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.GDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.GDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
buildConfiguration = "Debug">
|
||||
<Testables>
|
||||
</Testables>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.GDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.GDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
buildConfiguration = "Debug"
|
||||
debugDocumentVersioning = "YES"
|
||||
allowLocationSimulation = "YES">
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
buildConfiguration = "Release"
|
||||
debugDocumentVersioning = "YES">
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
||||
24
plugins/MacSignedVST/Longhand/mac/Info.plist
Executable file
24
plugins/MacSignedVST/Longhand/mac/Info.plist
Executable file
|
|
@ -0,0 +1,24 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>Longhand</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string></string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>BNDL</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>Dthr</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
<key>CSResourcesFileMapped</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
1
plugins/MacSignedVST/Longhand/mac/PkgInfo
Executable file
1
plugins/MacSignedVST/Longhand/mac/PkgInfo
Executable file
|
|
@ -0,0 +1 @@
|
|||
BNDL????
|
||||
17
plugins/MacSignedVST/Longhand/mac/xcode_vst_prefix.h
Executable file
17
plugins/MacSignedVST/Longhand/mac/xcode_vst_prefix.h
Executable file
|
|
@ -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 <AvailabilityMacros.h>
|
||||
136
plugins/MacSignedVST/Longhand/source/Longhand.cpp
Executable file
136
plugins/MacSignedVST/Longhand/source/Longhand.cpp
Executable file
|
|
@ -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;
|
||||
}
|
||||
66
plugins/MacSignedVST/Longhand/source/Longhand.h
Executable file
66
plugins/MacSignedVST/Longhand/source/Longhand.h
Executable file
|
|
@ -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 <set>
|
||||
#include <string>
|
||||
#include <math.h>
|
||||
|
||||
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
|
||||
181
plugins/MacSignedVST/Longhand/source/LonghandProc.cpp
Executable file
181
plugins/MacSignedVST/Longhand/source/LonghandProc.cpp
Executable file
|
|
@ -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++;
|
||||
}
|
||||
}
|
||||
Binary file not shown.
|
|
@ -15,7 +15,7 @@
|
|||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "8D01CCC60486CAD60068D4B7"
|
||||
BuildableName = "Gain.vst"
|
||||
BuildableName = "PearLiteEQ.vst"
|
||||
BlueprintName = "PearLiteEQ"
|
||||
ReferencedContainer = "container:PearLiteEQ.xcodeproj">
|
||||
</BuildableReference>
|
||||
|
|
@ -51,7 +51,7 @@
|
|||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "8D01CCC60486CAD60068D4B7"
|
||||
BuildableName = "Gain.vst"
|
||||
BuildableName = "PearLiteEQ.vst"
|
||||
BlueprintName = "PearLiteEQ"
|
||||
ReferencedContainer = "container:PearLiteEQ.xcodeproj">
|
||||
</BuildableReference>
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -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;
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -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;
|
||||
|
|
|
|||
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue