Acceleration through Aura

This commit is contained in:
airwindows 2022-02-28 01:18:26 -05:00
parent 04dc83d844
commit 2032a0aa1b
492 changed files with 4458 additions and 4078 deletions

1
.gitignore vendored
View file

@ -1 +1,2 @@
.DS_Store .DS_Store
build/

View file

@ -155,11 +155,11 @@ void Apicolypse::processReplacing(float **inputs, float **outputs, VstInt32 samp
} }
//otherwise we leave it untouched by the overdrive stuff //otherwise we leave it untouched by the overdrive stuff
randy = ((rand()/(double)RAND_MAX)*0.033); randy = ((double(fpd)/UINT32_MAX)*0.033);
inputSampleL = ((inputSampleL*(1-randy))+(lastSampleL*randy)) * outlevel; inputSampleL = ((inputSampleL*(1-randy))+(lastSampleL*randy)) * outlevel;
lastSampleL = inputSampleL; lastSampleL = inputSampleL;
randy = ((rand()/(double)RAND_MAX)*0.033); randy = ((double(fpd)/UINT32_MAX)*0.033);
inputSampleR = ((inputSampleR*(1-randy))+(lastSampleR*randy)) * outlevel; inputSampleR = ((inputSampleR*(1-randy))+(lastSampleR*randy)) * outlevel;
lastSampleR = inputSampleR; lastSampleR = inputSampleR;
@ -331,22 +331,22 @@ void Apicolypse::processDoubleReplacing(double **inputs, double **outputs, VstIn
} }
//otherwise we leave it untouched by the overdrive stuff //otherwise we leave it untouched by the overdrive stuff
randy = ((rand()/(double)RAND_MAX)*0.033); randy = ((double(fpd)/UINT32_MAX)*0.033);
inputSampleL = ((inputSampleL*(1-randy))+(lastSampleL*randy)) * outlevel; inputSampleL = ((inputSampleL*(1-randy))+(lastSampleL*randy)) * outlevel;
lastSampleL = inputSampleL; lastSampleL = inputSampleL;
randy = ((rand()/(double)RAND_MAX)*0.033); randy = ((double(fpd)/UINT32_MAX)*0.033);
inputSampleR = ((inputSampleR*(1-randy))+(lastSampleR*randy)) * outlevel; inputSampleR = ((inputSampleR*(1-randy))+(lastSampleR*randy)) * outlevel;
lastSampleR = inputSampleR; lastSampleR = inputSampleR;
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -172,12 +172,12 @@ void AverMatrix::processDoubleReplacing(double **inputs, double **outputs, VstIn
//wet can be negative, in which case dry is always full volume and they cancel //wet can be negative, in which case dry is always full volume and they cancel
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -195,7 +195,7 @@ void BassAmp::processReplacing(float **inputs, float **outputs, VstInt32 sampleF
LataLowpass += LataHalfwayLowpass; //and combined them. Now we make sub-octaves LataLowpass += LataHalfwayLowpass; //and combined them. Now we make sub-octaves
RataLowpass += RataHalfwayLowpass; //and combined them. Now we make sub-octaves RataLowpass += RataHalfwayLowpass; //and combined them. Now we make sub-octaves
double randy = (rand()/(double)RAND_MAX)*0.0555; //0 to 1 the noise, may not be needed double randy = (double(fpd)/UINT32_MAX)*0.0555; //0 to 1 the noise, may not be needed
switch (bflip) switch (bflip)
{ {
@ -362,12 +362,13 @@ void BassAmp::processReplacing(float **inputs, float **outputs, VstInt32 sampleF
//begin 32 bit stereo floating point dither //begin 32 bit stereo floating point dither
int expon; frexpf((float)LinputSample, &expon); int expon; frexpf((float)LinputSample, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
LinputSample += ((double(fpd)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62)); LinputSample += ((double(fpdL)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
frexpf((float)RinputSample, &expon); frexpf((float)RinputSample, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
RinputSample += ((double(fpd)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62)); RinputSample += ((double(fpdR)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
//end 32 bit stereo floating point dither //end 32 bit stereo floating point dither
*out1 = LinputSample; *out1 = LinputSample;
*out2 = RinputSample; *out2 = RinputSample;
@ -567,7 +568,7 @@ void BassAmp::processDoubleReplacing(double **inputs, double **outputs, VstInt32
LataLowpass += LataHalfwayLowpass; //and combined them. Now we make sub-octaves LataLowpass += LataHalfwayLowpass; //and combined them. Now we make sub-octaves
RataLowpass += RataHalfwayLowpass; //and combined them. Now we make sub-octaves RataLowpass += RataHalfwayLowpass; //and combined them. Now we make sub-octaves
double randy = (rand()/(double)RAND_MAX)*0.0555; //0 to 1 the noise, may not be needed double randy = (double(fpd)/UINT32_MAX)*0.0555; //0 to 1 the noise, may not be needed
switch (bflip) switch (bflip)
{ {
@ -733,12 +734,12 @@ void BassAmp::processDoubleReplacing(double **inputs, double **outputs, VstInt32
//apply stored up tiny corrections //apply stored up tiny corrections
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)LinputSample, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
LinputSample += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)RinputSample, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
RinputSample += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = LinputSample; *out1 = LinputSample;

View file

@ -637,12 +637,12 @@ void BassDrive::processDoubleReplacing(double **inputs, double **outputs, VstInt
flip = !flip; flip = !flip;
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -57,7 +57,7 @@ void BassKit::processReplacing(float **inputs, float **outputs, VstInt32 sampleF
{if (WasNegative){SubOctave = !SubOctave;} WasNegative = false;} {if (WasNegative){SubOctave = !SubOctave;} WasNegative = false;}
else {WasNegative = true;} else {WasNegative = true;}
//set up polarities for sub-bass version //set up polarities for sub-bass version
randy = (rand()/(double)RAND_MAX)*fuzz; //0 to 1 the noise, may not be needed randy = (double(fpd)/UINT32_MAX)*fuzz; //0 to 1 the noise, may not be needed
invrandy = (1.0-randy); invrandy = (1.0-randy);
randy /= 2.0; randy /= 2.0;
//set up the noise //set up the noise
@ -239,7 +239,7 @@ void BassKit::processDoubleReplacing(double **inputs, double **outputs, VstInt32
{if (WasNegative){SubOctave = !SubOctave;} WasNegative = false;} {if (WasNegative){SubOctave = !SubOctave;} WasNegative = false;}
else {WasNegative = true;} else {WasNegative = true;}
//set up polarities for sub-bass version //set up polarities for sub-bass version
randy = (rand()/(double)RAND_MAX)*fuzz; //0 to 1 the noise, may not be needed randy = (double(fpd)/UINT32_MAX)*fuzz; //0 to 1 the noise, may not be needed
invrandy = (1.0-randy); invrandy = (1.0-randy);
randy /= 2.0; randy /= 2.0;
//set up the noise //set up the noise

View file

@ -263,12 +263,12 @@ void Baxandall::processDoubleReplacing(double **inputs, double **outputs, VstInt
//amplitude aspect //amplitude aspect
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -303,12 +303,12 @@ void Biquad::processDoubleReplacing(double **inputs, double **outputs, VstInt32
} }
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -413,12 +413,12 @@ void Biquad2::processDoubleReplacing(double **inputs, double **outputs, VstInt32
} }
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -286,12 +286,12 @@ void BiquadDouble::processDoubleReplacing(double **inputs, double **outputs, Vst
} }
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -294,12 +294,12 @@ void BiquadOneHalf::processDoubleReplacing(double **inputs, double **outputs, Vs
} }
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -309,12 +309,12 @@ void BiquadTriple::processDoubleReplacing(double **inputs, double **outputs, Vst
} }
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -205,12 +205,12 @@ void BrassRider::processDoubleReplacing(double **inputs, double **outputs, VstIn
inputSampleR = (drySampleR * (1.0-wet)) + (drySampleR * clamp * wet * 16.0); inputSampleR = (drySampleR * (1.0-wet)) + (drySampleR * clamp * wet * 16.0);
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -653,12 +653,12 @@ void BrightAmbience::processDoubleReplacing(double **inputs, double **outputs, V
gcount--; gcount--;
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -125,12 +125,12 @@ void BrightAmbience2::processDoubleReplacing(double **inputs, double **outputs,
//Dry/Wet control, defaults to the last slider //Dry/Wet control, defaults to the last slider
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -41,7 +41,7 @@ void BuildATPDF::processReplacing(float **inputs, float **outputs, VstInt32 samp
bL[9] = bL[8]; bL[8] = bL[7]; bL[7] = bL[6]; bL[6] = bL[5]; bL[9] = bL[8]; bL[8] = bL[7]; bL[7] = bL[6]; bL[6] = bL[5];
bL[5] = bL[4]; bL[4] = bL[3]; bL[3] = bL[2]; bL[2] = bL[1]; bL[5] = bL[4]; bL[4] = bL[3]; bL[3] = bL[2]; bL[2] = bL[1];
bL[1] = bL[0]; bL[0] = (rand()/(double)RAND_MAX); bL[1] = bL[0]; bL[0] = (double(fpd)/UINT32_MAX);
currentDither = (bL[0] * f[0]); currentDither = (bL[0] * f[0]);
currentDither += (bL[1] * f[1]); currentDither += (bL[1] * f[1]);
@ -58,7 +58,7 @@ void BuildATPDF::processReplacing(float **inputs, float **outputs, VstInt32 samp
bR[9] = bR[8]; bR[8] = bR[7]; bR[7] = bR[6]; bR[6] = bR[5]; bR[9] = bR[8]; bR[8] = bR[7]; bR[7] = bR[6]; bR[6] = bR[5];
bR[5] = bR[4]; bR[4] = bR[3]; bR[3] = bR[2]; bR[2] = bR[1]; bR[5] = bR[4]; bR[4] = bR[3]; bR[3] = bR[2]; bR[2] = bR[1];
bR[1] = bR[0]; bR[0] = (rand()/(double)RAND_MAX); bR[1] = bR[0]; bR[0] = (double(fpd)/UINT32_MAX);
currentDither = (bR[0] * f[0]); currentDither = (bR[0] * f[0]);
currentDither += (bR[1] * f[1]); currentDither += (bR[1] * f[1]);
@ -122,7 +122,7 @@ void BuildATPDF::processDoubleReplacing(double **inputs, double **outputs, VstIn
bL[9] = bL[8]; bL[8] = bL[7]; bL[7] = bL[6]; bL[6] = bL[5]; bL[9] = bL[8]; bL[8] = bL[7]; bL[7] = bL[6]; bL[6] = bL[5];
bL[5] = bL[4]; bL[4] = bL[3]; bL[3] = bL[2]; bL[2] = bL[1]; bL[5] = bL[4]; bL[4] = bL[3]; bL[3] = bL[2]; bL[2] = bL[1];
bL[1] = bL[0]; bL[0] = (rand()/(double)RAND_MAX); bL[1] = bL[0]; bL[0] = (double(fpd)/UINT32_MAX);
currentDither = (bL[0] * f[0]); currentDither = (bL[0] * f[0]);
currentDither += (bL[1] * f[1]); currentDither += (bL[1] * f[1]);
@ -139,7 +139,7 @@ void BuildATPDF::processDoubleReplacing(double **inputs, double **outputs, VstIn
bR[9] = bR[8]; bR[8] = bR[7]; bR[7] = bR[6]; bR[6] = bR[5]; bR[9] = bR[8]; bR[8] = bR[7]; bR[7] = bR[6]; bR[6] = bR[5];
bR[5] = bR[4]; bR[4] = bR[3]; bR[3] = bR[2]; bR[2] = bR[1]; bR[5] = bR[4]; bR[4] = bR[3]; bR[3] = bR[2]; bR[2] = bR[1];
bR[1] = bR[0]; bR[0] = (rand()/(double)RAND_MAX); bR[1] = bR[0]; bR[0] = (double(fpd)/UINT32_MAX);
currentDither = (bR[0] * f[0]); currentDither = (bR[0] * f[0]);
currentDither += (bR[1] * f[1]); currentDither += (bR[1] * f[1]);
@ -158,6 +158,11 @@ void BuildATPDF::processDoubleReplacing(double **inputs, double **outputs, VstIn
inputSampleL /= 8388608.0; inputSampleL /= 8388608.0;
inputSampleR /= 8388608.0; inputSampleR /= 8388608.0;
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
//pseudorandom number updater
*out1 = inputSampleL; *out1 = inputSampleL;
*out2 = inputSampleR; *out2 = inputSampleR;

View file

@ -160,11 +160,11 @@ void Calibre::processReplacing(float **inputs, float **outputs, VstInt32 sampleF
//otherwise we leave it untouched by the overdrive stuff //otherwise we leave it untouched by the overdrive stuff
randy = ((rand()/(double)RAND_MAX)*0.042); randy = ((double(fpd)/UINT32_MAX)*0.042);
inputSampleL = ((inputSampleL*(1-randy))+(lastSampleL*randy)) * outlevel; inputSampleL = ((inputSampleL*(1-randy))+(lastSampleL*randy)) * outlevel;
lastSampleL = inputSampleL; lastSampleL = inputSampleL;
randy = ((rand()/(double)RAND_MAX)*0.042); randy = ((double(fpd)/UINT32_MAX)*0.042);
inputSampleR = ((inputSampleR*(1-randy))+(lastSampleR*randy)) * outlevel; inputSampleR = ((inputSampleR*(1-randy))+(lastSampleR*randy)) * outlevel;
lastSampleR = inputSampleR; lastSampleR = inputSampleR;
@ -341,22 +341,21 @@ void Calibre::processDoubleReplacing(double **inputs, double **outputs, VstInt32
//otherwise we leave it untouched by the overdrive stuff //otherwise we leave it untouched by the overdrive stuff
randy = ((rand()/(double)RAND_MAX)*0.042); randy = ((double(fpd)/UINT32_MAX)*0.042);
inputSampleL = ((inputSampleL*(1-randy))+(lastSampleL*randy)) * outlevel; inputSampleL = ((inputSampleL*(1-randy))+(lastSampleL*randy)) * outlevel;
lastSampleL = inputSampleL; lastSampleL = inputSampleL;
randy = ((rand()/(double)RAND_MAX)*0.042); randy = ((double(fpd)/UINT32_MAX)*0.042);
inputSampleR = ((inputSampleR*(1-randy))+(lastSampleR*randy)) * outlevel; inputSampleR = ((inputSampleR*(1-randy))+(lastSampleR*randy)) * outlevel;
lastSampleR = inputSampleR; lastSampleR = inputSampleR;
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -315,12 +315,12 @@ void Capacitor2::processDoubleReplacing(double **inputs, double **outputs, VstIn
inputSampleR = (drySampleR * (1.0-wet)) + (inputSampleR * nonLinTrim * wet); inputSampleR = (drySampleR * (1.0-wet)) + (inputSampleR * nonLinTrim * wet);
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -201,12 +201,12 @@ void Channel7::processDoubleReplacing(double **inputs, double **outputs, VstInt3
} }
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -249,12 +249,12 @@ void Channel8::processDoubleReplacing(double **inputs, double **outputs, VstInt3
} }
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -96,7 +96,7 @@ void ChromeOxide::processReplacing(float **inputs, float **outputs, VstInt32 sam
bridgerectifier = inputSampleL; bridgerectifier = inputSampleL;
//insanity check //insanity check
randy = bias+((rand()/(double)RAND_MAX)*noise); randy = bias+((double(fpd)/UINT32_MAX)*noise);
if ((randy >= 0.0)&&(randy < 1.0)) bridgerectifier = (inputSampleL * randy)+(secondSampleL * (1.0-randy)); if ((randy >= 0.0)&&(randy < 1.0)) bridgerectifier = (inputSampleL * randy)+(secondSampleL * (1.0-randy));
if ((randy >= 1.0)&&(randy < 2.0)) bridgerectifier = (secondSampleL * (randy-1.0))+(thirdSampleL * (2.0-randy)); if ((randy >= 1.0)&&(randy < 2.0)) bridgerectifier = (secondSampleL * (randy-1.0))+(thirdSampleL * (2.0-randy));
if ((randy >= 2.0)&&(randy < 3.0)) bridgerectifier = (thirdSampleL * (randy-2.0))+(fourthSampleL * (3.0-randy)); if ((randy >= 2.0)&&(randy < 3.0)) bridgerectifier = (thirdSampleL * (randy-2.0))+(fourthSampleL * (3.0-randy));
@ -112,7 +112,7 @@ void ChromeOxide::processReplacing(float **inputs, float **outputs, VstInt32 sam
bridgerectifier = inputSampleR; bridgerectifier = inputSampleR;
//insanity check //insanity check
randy = bias+((rand()/(double)RAND_MAX)*noise); randy = bias+((double(fpd)/UINT32_MAX)*noise);
if ((randy >= 0.0)&&(randy < 1.0)) bridgerectifier = (inputSampleR * randy)+(secondSampleR * (1.0-randy)); if ((randy >= 0.0)&&(randy < 1.0)) bridgerectifier = (inputSampleR * randy)+(secondSampleR * (1.0-randy));
if ((randy >= 1.0)&&(randy < 2.0)) bridgerectifier = (secondSampleR * (randy-1.0))+(thirdSampleR * (2.0-randy)); if ((randy >= 1.0)&&(randy < 2.0)) bridgerectifier = (secondSampleR * (randy-1.0))+(thirdSampleR * (2.0-randy));
if ((randy >= 2.0)&&(randy < 3.0)) bridgerectifier = (thirdSampleR * (randy-2.0))+(fourthSampleR * (3.0-randy)); if ((randy >= 2.0)&&(randy < 3.0)) bridgerectifier = (thirdSampleR * (randy-2.0))+(fourthSampleR * (3.0-randy));
@ -257,7 +257,7 @@ void ChromeOxide::processDoubleReplacing(double **inputs, double **outputs, VstI
bridgerectifier = inputSampleL; bridgerectifier = inputSampleL;
//insanity check //insanity check
randy = bias+((rand()/(double)RAND_MAX)*noise); randy = bias+((double(fpd)/UINT32_MAX)*noise);
if ((randy >= 0.0)&&(randy < 1.0)) bridgerectifier = (inputSampleL * randy)+(secondSampleL * (1.0-randy)); if ((randy >= 0.0)&&(randy < 1.0)) bridgerectifier = (inputSampleL * randy)+(secondSampleL * (1.0-randy));
if ((randy >= 1.0)&&(randy < 2.0)) bridgerectifier = (secondSampleL * (randy-1.0))+(thirdSampleL * (2.0-randy)); if ((randy >= 1.0)&&(randy < 2.0)) bridgerectifier = (secondSampleL * (randy-1.0))+(thirdSampleL * (2.0-randy));
if ((randy >= 2.0)&&(randy < 3.0)) bridgerectifier = (thirdSampleL * (randy-2.0))+(fourthSampleL * (3.0-randy)); if ((randy >= 2.0)&&(randy < 3.0)) bridgerectifier = (thirdSampleL * (randy-2.0))+(fourthSampleL * (3.0-randy));
@ -273,7 +273,7 @@ void ChromeOxide::processDoubleReplacing(double **inputs, double **outputs, VstI
bridgerectifier = inputSampleR; bridgerectifier = inputSampleR;
//insanity check //insanity check
randy = bias+((rand()/(double)RAND_MAX)*noise); randy = bias+((double(fpd)/UINT32_MAX)*noise);
if ((randy >= 0.0)&&(randy < 1.0)) bridgerectifier = (inputSampleR * randy)+(secondSampleR * (1.0-randy)); if ((randy >= 0.0)&&(randy < 1.0)) bridgerectifier = (inputSampleR * randy)+(secondSampleR * (1.0-randy));
if ((randy >= 1.0)&&(randy < 2.0)) bridgerectifier = (secondSampleR * (randy-1.0))+(thirdSampleR * (2.0-randy)); if ((randy >= 1.0)&&(randy < 2.0)) bridgerectifier = (secondSampleR * (randy-1.0))+(thirdSampleR * (2.0-randy));
if ((randy >= 2.0)&&(randy < 3.0)) bridgerectifier = (thirdSampleR * (randy-2.0))+(fourthSampleR * (3.0-randy)); if ((randy >= 2.0)&&(randy < 3.0)) bridgerectifier = (thirdSampleR * (randy-2.0))+(fourthSampleR * (3.0-randy));
@ -312,12 +312,12 @@ void ChromeOxide::processDoubleReplacing(double **inputs, double **outputs, VstI
//that simple. //that simple.
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -158,11 +158,11 @@ void Cider::processReplacing(float **inputs, float **outputs, VstInt32 sampleFra
} }
//otherwise we leave it untouched by the overdrive stuff //otherwise we leave it untouched by the overdrive stuff
randy = ((rand()/(double)RAND_MAX)*0.057); randy = ((double(fpd)/UINT32_MAX)*0.057);
inputSampleL = ((inputSampleL*(1-randy))+(lastSampleL*randy)) * outlevel; inputSampleL = ((inputSampleL*(1-randy))+(lastSampleL*randy)) * outlevel;
lastSampleL = inputSampleL; lastSampleL = inputSampleL;
randy = ((rand()/(double)RAND_MAX)*0.057); randy = ((double(fpd)/UINT32_MAX)*0.057);
inputSampleR = ((inputSampleR*(1-randy))+(lastSampleR*randy)) * outlevel; inputSampleR = ((inputSampleR*(1-randy))+(lastSampleR*randy)) * outlevel;
lastSampleR = inputSampleR; lastSampleR = inputSampleR;
@ -337,22 +337,22 @@ void Cider::processDoubleReplacing(double **inputs, double **outputs, VstInt32 s
} }
//otherwise we leave it untouched by the overdrive stuff //otherwise we leave it untouched by the overdrive stuff
randy = ((rand()/(double)RAND_MAX)*0.057); randy = ((double(fpd)/UINT32_MAX)*0.057);
inputSampleL = ((inputSampleL*(1-randy))+(lastSampleL*randy)) * outlevel; inputSampleL = ((inputSampleL*(1-randy))+(lastSampleL*randy)) * outlevel;
lastSampleL = inputSampleL; lastSampleL = inputSampleL;
randy = ((rand()/(double)RAND_MAX)*0.057); randy = ((double(fpd)/UINT32_MAX)*0.057);
inputSampleR = ((inputSampleR*(1-randy))+(lastSampleR*randy)) * outlevel; inputSampleR = ((inputSampleR*(1-randy))+(lastSampleR*randy)) * outlevel;
lastSampleR = inputSampleR; lastSampleR = inputSampleR;
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -157,12 +157,12 @@ void Coils::processDoubleReplacing(double **inputs, double **outputs, VstInt32 s
} }
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -119,7 +119,7 @@ void Compresaturator::processReplacing(float **inputs, float **outputs, VstInt32
//begin pad L //begin pad L
padFactorL += dL[dCount]; padFactorL += dL[dCount];
double randy = (rand()/(double)RAND_MAX); double randy = (double(fpd)/UINT32_MAX);
if ((targetWidth*randy) > lastWidthL) { if ((targetWidth*randy) > lastWidthL) {
//we are expanding the buffer so we don't remove this trailing sample //we are expanding the buffer so we don't remove this trailing sample
lastWidthL += 1; lastWidthL += 1;
@ -140,7 +140,7 @@ void Compresaturator::processReplacing(float **inputs, float **outputs, VstInt32
//begin pad R //begin pad R
padFactorR += dR[dCount]; padFactorR += dR[dCount];
randy = (rand()/(double)RAND_MAX); randy = (double(fpd)/UINT32_MAX);
if ((targetWidth*randy) > lastWidthR) { if ((targetWidth*randy) > lastWidthR) {
//we are expanding the buffer so we don't remove this trailing sample //we are expanding the buffer so we don't remove this trailing sample
lastWidthR += 1; lastWidthR += 1;
@ -171,11 +171,11 @@ void Compresaturator::processReplacing(float **inputs, float **outputs, VstInt32
//begin 32 bit stereo floating point dither //begin 32 bit stereo floating point dither
int expon; frexpf((float)inputSampleL, &expon); int expon; frexpf((float)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += static_cast<int32_t>(fpd) * 5.960464655174751e-36L * pow(2,expon+62); inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
frexpf((float)inputSampleR, &expon); frexpf((float)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += static_cast<int32_t>(fpd) * 5.960464655174751e-36L * pow(2,expon+62); inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
//end 32 bit stereo floating point dither //end 32 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;
@ -258,7 +258,7 @@ void Compresaturator::processDoubleReplacing(double **inputs, double **outputs,
//we now have a big buffer to draw from, which is always positive amount of overspill //we now have a big buffer to draw from, which is always positive amount of overspill
padFactorL += dL[dCount]; padFactorL += dL[dCount];
double randy = (rand()/(double)RAND_MAX); double randy = (double(fpd)/UINT32_MAX);
if ((targetWidth*randy) > lastWidthL) { if ((targetWidth*randy) > lastWidthL) {
//we are expanding the buffer so we don't remove this trailing sample //we are expanding the buffer so we don't remove this trailing sample
lastWidthL += 1; lastWidthL += 1;
@ -319,7 +319,7 @@ void Compresaturator::processDoubleReplacing(double **inputs, double **outputs,
//we now have a big buffer to draw from, which is always positive amount of overspill //we now have a big buffer to draw from, which is always positive amount of overspill
padFactorR += dR[dCount]; padFactorR += dR[dCount];
randy = (rand()/(double)RAND_MAX); randy = (double(fpd)/UINT32_MAX);
if ((targetWidth*randy) > lastWidthR) { if ((targetWidth*randy) > lastWidthR) {
//we are expanding the buffer so we don't remove this trailing sample //we are expanding the buffer so we don't remove this trailing sample
lastWidthR += 1; lastWidthR += 1;
@ -351,12 +351,12 @@ void Compresaturator::processDoubleReplacing(double **inputs, double **outputs,
} }
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += static_cast<int32_t>(fpd) * 1.110223024625156e-44L * pow(2,expon+62); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += static_cast<int32_t>(fpd) * 1.110223024625156e-44L * pow(2,expon+62); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -103,12 +103,12 @@ void Console6Buss::processDoubleReplacing(double **inputs, double **outputs, Vst
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -103,12 +103,12 @@ void Console6Channel::processDoubleReplacing(double **inputs, double **outputs,
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -143,12 +143,12 @@ void Crystal::processReplacing(float **inputs, float **outputs, VstInt32 sampleF
//because it introduces a point where the saturation 'curve' changes from straight to curved. //because it introduces a point where the saturation 'curve' changes from straight to curved.
//People don't like these discontinuities, but you can use them for effect or to grit up the sound. //People don't like these discontinuities, but you can use them for effect or to grit up the sound.
randy = ((rand()/(double)RAND_MAX)*0.022); randy = ((double(fpd)/UINT32_MAX)*0.022);
bridgerectifier = ((inputSampleL*(1-randy))+(lastSampleL*randy)) * outlevel; bridgerectifier = ((inputSampleL*(1-randy))+(lastSampleL*randy)) * outlevel;
lastSampleL = inputSampleL; lastSampleL = inputSampleL;
inputSampleL = bridgerectifier; //applies a tiny 'fuzz' to highs: from original Crystal. inputSampleL = bridgerectifier; //applies a tiny 'fuzz' to highs: from original Crystal.
randy = ((rand()/(double)RAND_MAX)*0.022); randy = ((double(fpd)/UINT32_MAX)*0.022);
bridgerectifier = ((inputSampleR*(1-randy))+(lastSampleR*randy)) * outlevel; bridgerectifier = ((inputSampleR*(1-randy))+(lastSampleR*randy)) * outlevel;
lastSampleR = inputSampleR; lastSampleR = inputSampleR;
inputSampleR = bridgerectifier; //applies a tiny 'fuzz' to highs: from original Crystal. inputSampleR = bridgerectifier; //applies a tiny 'fuzz' to highs: from original Crystal.
@ -312,12 +312,12 @@ void Crystal::processDoubleReplacing(double **inputs, double **outputs, VstInt32
//because it introduces a point where the saturation 'curve' changes from straight to curved. //because it introduces a point where the saturation 'curve' changes from straight to curved.
//People don't like these discontinuities, but you can use them for effect or to grit up the sound. //People don't like these discontinuities, but you can use them for effect or to grit up the sound.
randy = ((rand()/(double)RAND_MAX)*0.022); randy = ((double(fpd)/UINT32_MAX)*0.022);
bridgerectifier = ((inputSampleL*(1-randy))+(lastSampleL*randy)) * outlevel; bridgerectifier = ((inputSampleL*(1-randy))+(lastSampleL*randy)) * outlevel;
lastSampleL = inputSampleL; lastSampleL = inputSampleL;
inputSampleL = bridgerectifier; //applies a tiny 'fuzz' to highs: from original Crystal. inputSampleL = bridgerectifier; //applies a tiny 'fuzz' to highs: from original Crystal.
randy = ((rand()/(double)RAND_MAX)*0.022); randy = ((double(fpd)/UINT32_MAX)*0.022);
bridgerectifier = ((inputSampleR*(1-randy))+(lastSampleR*randy)) * outlevel; bridgerectifier = ((inputSampleR*(1-randy))+(lastSampleR*randy)) * outlevel;
lastSampleR = inputSampleR; lastSampleR = inputSampleR;
inputSampleR = bridgerectifier; //applies a tiny 'fuzz' to highs: from original Crystal. inputSampleR = bridgerectifier; //applies a tiny 'fuzz' to highs: from original Crystal.

View file

@ -193,12 +193,12 @@ void DeBess::processDoubleReplacing(double **inputs, double **outputs, VstInt32
//sense monitoring //sense monitoring
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -251,12 +251,12 @@ void DeHiss::processDoubleReplacing(double **inputs, double **outputs, VstInt32
} }
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -345,12 +345,12 @@ void DeRez2::processDoubleReplacing(double **inputs, double **outputs, VstInt32
lastSampleR = drySampleR; lastSampleR = drySampleR;
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -41,22 +41,22 @@ void Deckwrecka::processReplacing(float **inputs, float **outputs, VstInt32 samp
bflip++; bflip++;
if (bflip < 1 || bflip > 3) bflip = 1; if (bflip < 1 || bflip > 3) bflip = 1;
randyL = (rand()/(double)RAND_MAX); randyL = (double(fpd)/UINT32_MAX);
randyL += (rand()/(double)RAND_MAX); randyL += (double(fpd)/UINT32_MAX);
randyL += (rand()/(double)RAND_MAX); randyL += (double(fpd)/UINT32_MAX);
randyL += (rand()/(double)RAND_MAX); randyL += (double(fpd)/UINT32_MAX);
randyL += (rand()/(double)RAND_MAX); randyL += (double(fpd)/UINT32_MAX);
randyL += (rand()/(double)RAND_MAX); randyL += (double(fpd)/UINT32_MAX);
randyL /= 6.0; randyL /= 6.0;
randyL *= wreck; //0 to 1 the noise, may not be needed randyL *= wreck; //0 to 1 the noise, may not be needed
//set up the noise //set up the noise
randyR = (rand()/(double)RAND_MAX); randyR = (double(fpd)/UINT32_MAX);
randyR += (rand()/(double)RAND_MAX); randyR += (double(fpd)/UINT32_MAX);
randyR += (rand()/(double)RAND_MAX); randyR += (double(fpd)/UINT32_MAX);
randyR += (rand()/(double)RAND_MAX); randyR += (double(fpd)/UINT32_MAX);
randyR += (rand()/(double)RAND_MAX); randyR += (double(fpd)/UINT32_MAX);
randyR += (rand()/(double)RAND_MAX); randyR += (double(fpd)/UINT32_MAX);
randyR /= 6.0; randyR /= 6.0;
randyR *= wreck; //0 to 1 the noise, may not be needed randyR *= wreck; //0 to 1 the noise, may not be needed
//set up the noise //set up the noise
@ -226,22 +226,22 @@ void Deckwrecka::processDoubleReplacing(double **inputs, double **outputs, VstIn
bflip++; bflip++;
if (bflip < 1 || bflip > 3) bflip = 1; if (bflip < 1 || bflip > 3) bflip = 1;
randyL = (rand()/(double)RAND_MAX); randyL = (double(fpd)/UINT32_MAX);
randyL += (rand()/(double)RAND_MAX); randyL += (double(fpd)/UINT32_MAX);
randyL += (rand()/(double)RAND_MAX); randyL += (double(fpd)/UINT32_MAX);
randyL += (rand()/(double)RAND_MAX); randyL += (double(fpd)/UINT32_MAX);
randyL += (rand()/(double)RAND_MAX); randyL += (double(fpd)/UINT32_MAX);
randyL += (rand()/(double)RAND_MAX); randyL += (double(fpd)/UINT32_MAX);
randyL /= 6.0; randyL /= 6.0;
randyL *= wreck; //0 to 1 the noise, may not be needed randyL *= wreck; //0 to 1 the noise, may not be needed
//set up the noise //set up the noise
randyR = (rand()/(double)RAND_MAX); randyR = (double(fpd)/UINT32_MAX);
randyR += (rand()/(double)RAND_MAX); randyR += (double(fpd)/UINT32_MAX);
randyR += (rand()/(double)RAND_MAX); randyR += (double(fpd)/UINT32_MAX);
randyR += (rand()/(double)RAND_MAX); randyR += (double(fpd)/UINT32_MAX);
randyR += (rand()/(double)RAND_MAX); randyR += (double(fpd)/UINT32_MAX);
randyR += (rand()/(double)RAND_MAX); randyR += (double(fpd)/UINT32_MAX);
randyR /= 6.0; randyR /= 6.0;
randyR *= wreck; //0 to 1 the noise, may not be needed randyR *= wreck; //0 to 1 the noise, may not be needed
//set up the noise //set up the noise
@ -359,12 +359,12 @@ void Deckwrecka::processDoubleReplacing(double **inputs, double **outputs, VstIn
inputSampleR += (HeadBumpR * wreck); inputSampleR += (HeadBumpR * wreck);
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -191,12 +191,12 @@ void DigitalBlack::processDoubleReplacing(double **inputs, double **outputs, Vst
} }
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -231,12 +231,12 @@ void Distortion::processDoubleReplacing(double **inputs, double **outputs, VstIn
} }
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -70,34 +70,34 @@ void Ditherbox::processReplacing(float **inputs, float **outputs, VstInt32 sampl
break; break;
case 2: case 2:
inputSampleL += (rand()/(double)RAND_MAX); inputSampleL += (double(fpd)/UINT32_MAX);
inputSampleL -= 0.5; inputSampleL -= 0.5;
inputSampleL = floor(inputSampleL); inputSampleL = floor(inputSampleL);
inputSampleR += (rand()/(double)RAND_MAX); inputSampleR += (double(fpd)/UINT32_MAX);
inputSampleR -= 0.5; inputSampleR -= 0.5;
inputSampleR = floor(inputSampleR); inputSampleR = floor(inputSampleR);
//flat dither //flat dither
break; break;
case 3: case 3:
inputSampleL += (rand()/(double)RAND_MAX); inputSampleL += (double(fpd)/UINT32_MAX);
inputSampleL += (rand()/(double)RAND_MAX); inputSampleL += (double(fpd)/UINT32_MAX);
inputSampleL -= 1.0; inputSampleL -= 1.0;
inputSampleL = floor(inputSampleL); inputSampleL = floor(inputSampleL);
inputSampleR += (rand()/(double)RAND_MAX); inputSampleR += (double(fpd)/UINT32_MAX);
inputSampleR += (rand()/(double)RAND_MAX); inputSampleR += (double(fpd)/UINT32_MAX);
inputSampleR -= 1.0; inputSampleR -= 1.0;
inputSampleR = floor(inputSampleR); inputSampleR = floor(inputSampleR);
//TPDF dither //TPDF dither
break; break;
case 4: case 4:
currentDitherL = (rand()/(double)RAND_MAX); currentDitherL = (double(fpd)/UINT32_MAX);
inputSampleL += currentDitherL; inputSampleL += currentDitherL;
inputSampleL -= lastSampleL; inputSampleL -= lastSampleL;
inputSampleL = floor(inputSampleL); inputSampleL = floor(inputSampleL);
lastSampleL = currentDitherL; lastSampleL = currentDitherL;
currentDitherR = (rand()/(double)RAND_MAX); currentDitherR = (double(fpd)/UINT32_MAX);
inputSampleR += currentDitherR; inputSampleR += currentDitherR;
inputSampleR -= lastSampleR; inputSampleR -= lastSampleR;
inputSampleR = floor(inputSampleR); inputSampleR = floor(inputSampleR);
@ -108,7 +108,7 @@ void Ditherbox::processReplacing(float **inputs, float **outputs, VstInt32 sampl
case 5: case 5:
nsL[9] = nsL[8]; nsL[8] = nsL[7]; nsL[7] = nsL[6]; nsL[6] = nsL[5]; nsL[9] = nsL[8]; nsL[8] = nsL[7]; nsL[7] = nsL[6]; nsL[6] = nsL[5];
nsL[5] = nsL[4]; nsL[4] = nsL[3]; nsL[3] = nsL[2]; nsL[2] = nsL[1]; nsL[5] = nsL[4]; nsL[4] = nsL[3]; nsL[3] = nsL[2]; nsL[2] = nsL[1];
nsL[1] = nsL[0]; nsL[0] = (rand()/(double)RAND_MAX); nsL[1] = nsL[0]; nsL[0] = (double(fpd)/UINT32_MAX);
currentDitherL = (nsL[0] * 0.061); currentDitherL = (nsL[0] * 0.061);
currentDitherL -= (nsL[1] * 0.11); currentDitherL -= (nsL[1] * 0.11);
@ -131,7 +131,7 @@ void Ditherbox::processReplacing(float **inputs, float **outputs, VstInt32 sampl
nsR[9] = nsR[8]; nsR[8] = nsR[7]; nsR[7] = nsR[6]; nsR[6] = nsR[5]; nsR[9] = nsR[8]; nsR[8] = nsR[7]; nsR[7] = nsR[6]; nsR[6] = nsR[5];
nsR[5] = nsR[4]; nsR[4] = nsR[3]; nsR[3] = nsR[2]; nsR[2] = nsR[1]; nsR[5] = nsR[4]; nsR[4] = nsR[3]; nsR[3] = nsR[2]; nsR[2] = nsR[1];
nsR[1] = nsR[0]; nsR[0] = (rand()/(double)RAND_MAX); nsR[1] = nsR[0]; nsR[0] = (double(fpd)/UINT32_MAX);
currentDitherR = (nsR[0] * 0.061); currentDitherR = (nsR[0] * 0.061);
currentDitherR -= (nsR[1] * 0.11); currentDitherR -= (nsR[1] * 0.11);
@ -156,8 +156,8 @@ void Ditherbox::processReplacing(float **inputs, float **outputs, VstInt32 sampl
break; break;
case 6: case 6:
currentDitherL = (rand()/(double)RAND_MAX); currentDitherL = (double(fpd)/UINT32_MAX);
currentDitherR = (rand()/(double)RAND_MAX); currentDitherR = (double(fpd)/UINT32_MAX);
inputSampleL += currentDitherL; inputSampleL += currentDitherL;
inputSampleR += currentDitherR; inputSampleR += currentDitherR;
@ -202,37 +202,37 @@ void Ditherbox::processReplacing(float **inputs, float **outputs, VstInt32 sampl
break; break;
case 8: case 8:
absSample = ((rand()/(double)RAND_MAX) - 0.5); absSample = ((double(fpd)/UINT32_MAX) - 0.5);
nsL[0] += absSample; nsL[0] /= 2; absSample -= nsL[0]; nsL[0] += absSample; nsL[0] /= 2; absSample -= nsL[0];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[1] += absSample; nsL[1] /= 2; absSample -= nsL[1]; nsL[1] += absSample; nsL[1] /= 2; absSample -= nsL[1];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[2] += absSample; nsL[2] /= 2; absSample -= nsL[2]; nsL[2] += absSample; nsL[2] /= 2; absSample -= nsL[2];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[3] += absSample; nsL[3] /= 2; absSample -= nsL[3]; nsL[3] += absSample; nsL[3] /= 2; absSample -= nsL[3];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[4] += absSample; nsL[4] /= 2; absSample -= nsL[4]; nsL[4] += absSample; nsL[4] /= 2; absSample -= nsL[4];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[5] += absSample; nsL[5] /= 2; absSample -= nsL[5]; nsL[5] += absSample; nsL[5] /= 2; absSample -= nsL[5];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[6] += absSample; nsL[6] /= 2; absSample -= nsL[6]; nsL[6] += absSample; nsL[6] /= 2; absSample -= nsL[6];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[7] += absSample; nsL[7] /= 2; absSample -= nsL[7]; nsL[7] += absSample; nsL[7] /= 2; absSample -= nsL[7];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[8] += absSample; nsL[8] /= 2; absSample -= nsL[8]; nsL[8] += absSample; nsL[8] /= 2; absSample -= nsL[8];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[9] += absSample; nsL[9] /= 2; absSample -= nsL[9]; nsL[9] += absSample; nsL[9] /= 2; absSample -= nsL[9];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[10] += absSample; nsL[10] /= 2; absSample -= nsL[10]; nsL[10] += absSample; nsL[10] /= 2; absSample -= nsL[10];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[11] += absSample; nsL[11] /= 2; absSample -= nsL[11]; nsL[11] += absSample; nsL[11] /= 2; absSample -= nsL[11];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[12] += absSample; nsL[12] /= 2; absSample -= nsL[12]; nsL[12] += absSample; nsL[12] /= 2; absSample -= nsL[12];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[13] += absSample; nsL[13] /= 2; absSample -= nsL[13]; nsL[13] += absSample; nsL[13] /= 2; absSample -= nsL[13];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[14] += absSample; nsL[14] /= 2; absSample -= nsL[14]; nsL[14] += absSample; nsL[14] /= 2; absSample -= nsL[14];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[15] += absSample; nsL[15] /= 2; absSample -= nsL[15]; nsL[15] += absSample; nsL[15] /= 2; absSample -= nsL[15];
//install noise and then shape it //install noise and then shape it
absSample += inputSampleL; absSample += inputSampleL;
@ -249,37 +249,37 @@ void Ditherbox::processReplacing(float **inputs, float **outputs, VstInt32 sampl
//TenNines dither L //TenNines dither L
absSample = ((rand()/(double)RAND_MAX) - 0.5); absSample = ((double(fpd)/UINT32_MAX) - 0.5);
nsR[0] += absSample; nsR[0] /= 2; absSample -= nsR[0]; nsR[0] += absSample; nsR[0] /= 2; absSample -= nsR[0];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[1] += absSample; nsR[1] /= 2; absSample -= nsR[1]; nsR[1] += absSample; nsR[1] /= 2; absSample -= nsR[1];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[2] += absSample; nsR[2] /= 2; absSample -= nsR[2]; nsR[2] += absSample; nsR[2] /= 2; absSample -= nsR[2];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[3] += absSample; nsR[3] /= 2; absSample -= nsR[3]; nsR[3] += absSample; nsR[3] /= 2; absSample -= nsR[3];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[4] += absSample; nsR[4] /= 2; absSample -= nsR[4]; nsR[4] += absSample; nsR[4] /= 2; absSample -= nsR[4];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[5] += absSample; nsR[5] /= 2; absSample -= nsR[5]; nsR[5] += absSample; nsR[5] /= 2; absSample -= nsR[5];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[6] += absSample; nsR[6] /= 2; absSample -= nsR[6]; nsR[6] += absSample; nsR[6] /= 2; absSample -= nsR[6];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[7] += absSample; nsR[7] /= 2; absSample -= nsR[7]; nsR[7] += absSample; nsR[7] /= 2; absSample -= nsR[7];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[8] += absSample; nsR[8] /= 2; absSample -= nsR[8]; nsR[8] += absSample; nsR[8] /= 2; absSample -= nsR[8];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[9] += absSample; nsR[9] /= 2; absSample -= nsR[9]; nsR[9] += absSample; nsR[9] /= 2; absSample -= nsR[9];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[10] += absSample; nsR[10] /= 2; absSample -= nsR[10]; nsR[10] += absSample; nsR[10] /= 2; absSample -= nsR[10];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[11] += absSample; nsR[11] /= 2; absSample -= nsR[11]; nsR[11] += absSample; nsR[11] /= 2; absSample -= nsR[11];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[12] += absSample; nsR[12] /= 2; absSample -= nsR[12]; nsR[12] += absSample; nsR[12] /= 2; absSample -= nsR[12];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[13] += absSample; nsR[13] /= 2; absSample -= nsR[13]; nsR[13] += absSample; nsR[13] /= 2; absSample -= nsR[13];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[14] += absSample; nsR[14] /= 2; absSample -= nsR[14]; nsR[14] += absSample; nsR[14] /= 2; absSample -= nsR[14];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[15] += absSample; nsR[15] /= 2; absSample -= nsR[15]; nsR[15] += absSample; nsR[15] /= 2; absSample -= nsR[15];
//install noise and then shape it //install noise and then shape it
absSample += inputSampleR; absSample += inputSampleR;
@ -303,7 +303,7 @@ void Ditherbox::processReplacing(float **inputs, float **outputs, VstInt32 sampl
if (inputSampleR < 0) inputSampleR -= 0.383; if (inputSampleR < 0) inputSampleR -= 0.383;
//adjusting to permit more information drug outta the noisefloor //adjusting to permit more information drug outta the noisefloor
contingentRnd = (((rand()/(double)RAND_MAX)+(rand()/(double)RAND_MAX))-1.0) * randyConstant; //produce TPDF dist, scale contingentRnd = (((double(fpd)/UINT32_MAX)+(double(fpd)/UINT32_MAX))-1.0) * randyConstant; //produce TPDF dist, scale
contingentRnd -= contingentErrL*omegaConstant; //include err contingentRnd -= contingentErrL*omegaConstant; //include err
absSample = fabs(inputSampleL); absSample = fabs(inputSampleL);
contingentErrL = absSample - floor(absSample); //get next err contingentErrL = absSample - floor(absSample); //get next err
@ -317,7 +317,7 @@ void Ditherbox::processReplacing(float **inputs, float **outputs, VstInt32 sampl
//Contingent Dither //Contingent Dither
inputSampleL = floor(inputSampleL); inputSampleL = floor(inputSampleL);
contingentRnd = (((rand()/(double)RAND_MAX)+(rand()/(double)RAND_MAX))-1.0) * randyConstant; //produce TPDF dist, scale contingentRnd = (((double(fpd)/UINT32_MAX)+(double(fpd)/UINT32_MAX))-1.0) * randyConstant; //produce TPDF dist, scale
contingentRnd -= contingentErrR*omegaConstant; //include err contingentRnd -= contingentErrR*omegaConstant; //include err
absSample = fabs(inputSampleR); absSample = fabs(inputSampleR);
contingentErrR = absSample - floor(absSample); //get next err contingentErrR = absSample - floor(absSample); //get next err
@ -339,11 +339,11 @@ void Ditherbox::processReplacing(float **inputs, float **outputs, VstInt32 sampl
case 10: //this one is the original Naturalize case 10: //this one is the original Naturalize
if (inputSampleL > 0) inputSampleL += (0.3333333333); if (inputSampleL > 0) inputSampleL += (0.3333333333);
if (inputSampleL < 0) inputSampleL -= (0.3333333333); if (inputSampleL < 0) inputSampleL -= (0.3333333333);
inputSampleL += (rand()/(double)RAND_MAX)*0.6666666666; inputSampleL += (double(fpd)/UINT32_MAX)*0.6666666666;
if (inputSampleR > 0) inputSampleR += (0.3333333333); if (inputSampleR > 0) inputSampleR += (0.3333333333);
if (inputSampleR < 0) inputSampleR -= (0.3333333333); if (inputSampleR < 0) inputSampleR -= (0.3333333333);
inputSampleR += (rand()/(double)RAND_MAX)*0.6666666666; inputSampleR += (double(fpd)/UINT32_MAX)*0.6666666666;
//begin L //begin L
benfordize = floor(inputSampleL); benfordize = floor(inputSampleL);
@ -965,7 +965,11 @@ void Ditherbox::processReplacing(float **inputs, float **outputs, VstInt32 sampl
noiseShapingL += inputSampleL - drySampleL; noiseShapingL += inputSampleL - drySampleL;
noiseShapingR += inputSampleR - drySampleR; noiseShapingR += inputSampleR - drySampleR;
} }
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
//pseudorandom number updater
*out1 = inputSampleL; *out1 = inputSampleL;
*out2 = inputSampleR; *out2 = inputSampleR;
@ -1039,34 +1043,34 @@ void Ditherbox::processDoubleReplacing(double **inputs, double **outputs, VstInt
break; break;
case 2: case 2:
inputSampleL += (rand()/(double)RAND_MAX); inputSampleL += (double(fpd)/UINT32_MAX);
inputSampleL -= 0.5; inputSampleL -= 0.5;
inputSampleL = floor(inputSampleL); inputSampleL = floor(inputSampleL);
inputSampleR += (rand()/(double)RAND_MAX); inputSampleR += (double(fpd)/UINT32_MAX);
inputSampleR -= 0.5; inputSampleR -= 0.5;
inputSampleR = floor(inputSampleR); inputSampleR = floor(inputSampleR);
//flat dither //flat dither
break; break;
case 3: case 3:
inputSampleL += (rand()/(double)RAND_MAX); inputSampleL += (double(fpd)/UINT32_MAX);
inputSampleL += (rand()/(double)RAND_MAX); inputSampleL += (double(fpd)/UINT32_MAX);
inputSampleL -= 1.0; inputSampleL -= 1.0;
inputSampleL = floor(inputSampleL); inputSampleL = floor(inputSampleL);
inputSampleR += (rand()/(double)RAND_MAX); inputSampleR += (double(fpd)/UINT32_MAX);
inputSampleR += (rand()/(double)RAND_MAX); inputSampleR += (double(fpd)/UINT32_MAX);
inputSampleR -= 1.0; inputSampleR -= 1.0;
inputSampleR = floor(inputSampleR); inputSampleR = floor(inputSampleR);
//TPDF dither //TPDF dither
break; break;
case 4: case 4:
currentDitherL = (rand()/(double)RAND_MAX); currentDitherL = (double(fpd)/UINT32_MAX);
inputSampleL += currentDitherL; inputSampleL += currentDitherL;
inputSampleL -= lastSampleL; inputSampleL -= lastSampleL;
inputSampleL = floor(inputSampleL); inputSampleL = floor(inputSampleL);
lastSampleL = currentDitherL; lastSampleL = currentDitherL;
currentDitherR = (rand()/(double)RAND_MAX); currentDitherR = (double(fpd)/UINT32_MAX);
inputSampleR += currentDitherR; inputSampleR += currentDitherR;
inputSampleR -= lastSampleR; inputSampleR -= lastSampleR;
inputSampleR = floor(inputSampleR); inputSampleR = floor(inputSampleR);
@ -1077,7 +1081,7 @@ void Ditherbox::processDoubleReplacing(double **inputs, double **outputs, VstInt
case 5: case 5:
nsL[9] = nsL[8]; nsL[8] = nsL[7]; nsL[7] = nsL[6]; nsL[6] = nsL[5]; nsL[9] = nsL[8]; nsL[8] = nsL[7]; nsL[7] = nsL[6]; nsL[6] = nsL[5];
nsL[5] = nsL[4]; nsL[4] = nsL[3]; nsL[3] = nsL[2]; nsL[2] = nsL[1]; nsL[5] = nsL[4]; nsL[4] = nsL[3]; nsL[3] = nsL[2]; nsL[2] = nsL[1];
nsL[1] = nsL[0]; nsL[0] = (rand()/(double)RAND_MAX); nsL[1] = nsL[0]; nsL[0] = (double(fpd)/UINT32_MAX);
currentDitherL = (nsL[0] * 0.061); currentDitherL = (nsL[0] * 0.061);
currentDitherL -= (nsL[1] * 0.11); currentDitherL -= (nsL[1] * 0.11);
@ -1100,7 +1104,7 @@ void Ditherbox::processDoubleReplacing(double **inputs, double **outputs, VstInt
nsR[9] = nsR[8]; nsR[8] = nsR[7]; nsR[7] = nsR[6]; nsR[6] = nsR[5]; nsR[9] = nsR[8]; nsR[8] = nsR[7]; nsR[7] = nsR[6]; nsR[6] = nsR[5];
nsR[5] = nsR[4]; nsR[4] = nsR[3]; nsR[3] = nsR[2]; nsR[2] = nsR[1]; nsR[5] = nsR[4]; nsR[4] = nsR[3]; nsR[3] = nsR[2]; nsR[2] = nsR[1];
nsR[1] = nsR[0]; nsR[0] = (rand()/(double)RAND_MAX); nsR[1] = nsR[0]; nsR[0] = (double(fpd)/UINT32_MAX);
currentDitherR = (nsR[0] * 0.061); currentDitherR = (nsR[0] * 0.061);
currentDitherR -= (nsR[1] * 0.11); currentDitherR -= (nsR[1] * 0.11);
@ -1124,8 +1128,8 @@ void Ditherbox::processDoubleReplacing(double **inputs, double **outputs, VstInt
break; break;
case 6: case 6:
currentDitherL = (rand()/(double)RAND_MAX); currentDitherL = (double(fpd)/UINT32_MAX);
currentDitherR = (rand()/(double)RAND_MAX); currentDitherR = (double(fpd)/UINT32_MAX);
inputSampleL += currentDitherL; inputSampleL += currentDitherL;
inputSampleR += currentDitherR; inputSampleR += currentDitherR;
@ -1170,37 +1174,37 @@ void Ditherbox::processDoubleReplacing(double **inputs, double **outputs, VstInt
break; break;
case 8: case 8:
absSample = ((rand()/(double)RAND_MAX) - 0.5); absSample = ((double(fpd)/UINT32_MAX) - 0.5);
nsL[0] += absSample; nsL[0] /= 2; absSample -= nsL[0]; nsL[0] += absSample; nsL[0] /= 2; absSample -= nsL[0];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[1] += absSample; nsL[1] /= 2; absSample -= nsL[1]; nsL[1] += absSample; nsL[1] /= 2; absSample -= nsL[1];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[2] += absSample; nsL[2] /= 2; absSample -= nsL[2]; nsL[2] += absSample; nsL[2] /= 2; absSample -= nsL[2];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[3] += absSample; nsL[3] /= 2; absSample -= nsL[3]; nsL[3] += absSample; nsL[3] /= 2; absSample -= nsL[3];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[4] += absSample; nsL[4] /= 2; absSample -= nsL[4]; nsL[4] += absSample; nsL[4] /= 2; absSample -= nsL[4];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[5] += absSample; nsL[5] /= 2; absSample -= nsL[5]; nsL[5] += absSample; nsL[5] /= 2; absSample -= nsL[5];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[6] += absSample; nsL[6] /= 2; absSample -= nsL[6]; nsL[6] += absSample; nsL[6] /= 2; absSample -= nsL[6];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[7] += absSample; nsL[7] /= 2; absSample -= nsL[7]; nsL[7] += absSample; nsL[7] /= 2; absSample -= nsL[7];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[8] += absSample; nsL[8] /= 2; absSample -= nsL[8]; nsL[8] += absSample; nsL[8] /= 2; absSample -= nsL[8];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[9] += absSample; nsL[9] /= 2; absSample -= nsL[9]; nsL[9] += absSample; nsL[9] /= 2; absSample -= nsL[9];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[10] += absSample; nsL[10] /= 2; absSample -= nsL[10]; nsL[10] += absSample; nsL[10] /= 2; absSample -= nsL[10];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[11] += absSample; nsL[11] /= 2; absSample -= nsL[11]; nsL[11] += absSample; nsL[11] /= 2; absSample -= nsL[11];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[12] += absSample; nsL[12] /= 2; absSample -= nsL[12]; nsL[12] += absSample; nsL[12] /= 2; absSample -= nsL[12];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[13] += absSample; nsL[13] /= 2; absSample -= nsL[13]; nsL[13] += absSample; nsL[13] /= 2; absSample -= nsL[13];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[14] += absSample; nsL[14] /= 2; absSample -= nsL[14]; nsL[14] += absSample; nsL[14] /= 2; absSample -= nsL[14];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[15] += absSample; nsL[15] /= 2; absSample -= nsL[15]; nsL[15] += absSample; nsL[15] /= 2; absSample -= nsL[15];
//install noise and then shape it //install noise and then shape it
absSample += inputSampleL; absSample += inputSampleL;
@ -1217,37 +1221,37 @@ void Ditherbox::processDoubleReplacing(double **inputs, double **outputs, VstInt
//TenNines dither L //TenNines dither L
absSample = ((rand()/(double)RAND_MAX) - 0.5); absSample = ((double(fpd)/UINT32_MAX) - 0.5);
nsR[0] += absSample; nsR[0] /= 2; absSample -= nsR[0]; nsR[0] += absSample; nsR[0] /= 2; absSample -= nsR[0];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[1] += absSample; nsR[1] /= 2; absSample -= nsR[1]; nsR[1] += absSample; nsR[1] /= 2; absSample -= nsR[1];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[2] += absSample; nsR[2] /= 2; absSample -= nsR[2]; nsR[2] += absSample; nsR[2] /= 2; absSample -= nsR[2];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[3] += absSample; nsR[3] /= 2; absSample -= nsR[3]; nsR[3] += absSample; nsR[3] /= 2; absSample -= nsR[3];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[4] += absSample; nsR[4] /= 2; absSample -= nsR[4]; nsR[4] += absSample; nsR[4] /= 2; absSample -= nsR[4];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[5] += absSample; nsR[5] /= 2; absSample -= nsR[5]; nsR[5] += absSample; nsR[5] /= 2; absSample -= nsR[5];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[6] += absSample; nsR[6] /= 2; absSample -= nsR[6]; nsR[6] += absSample; nsR[6] /= 2; absSample -= nsR[6];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[7] += absSample; nsR[7] /= 2; absSample -= nsR[7]; nsR[7] += absSample; nsR[7] /= 2; absSample -= nsR[7];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[8] += absSample; nsR[8] /= 2; absSample -= nsR[8]; nsR[8] += absSample; nsR[8] /= 2; absSample -= nsR[8];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[9] += absSample; nsR[9] /= 2; absSample -= nsR[9]; nsR[9] += absSample; nsR[9] /= 2; absSample -= nsR[9];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[10] += absSample; nsR[10] /= 2; absSample -= nsR[10]; nsR[10] += absSample; nsR[10] /= 2; absSample -= nsR[10];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[11] += absSample; nsR[11] /= 2; absSample -= nsR[11]; nsR[11] += absSample; nsR[11] /= 2; absSample -= nsR[11];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[12] += absSample; nsR[12] /= 2; absSample -= nsR[12]; nsR[12] += absSample; nsR[12] /= 2; absSample -= nsR[12];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[13] += absSample; nsR[13] /= 2; absSample -= nsR[13]; nsR[13] += absSample; nsR[13] /= 2; absSample -= nsR[13];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[14] += absSample; nsR[14] /= 2; absSample -= nsR[14]; nsR[14] += absSample; nsR[14] /= 2; absSample -= nsR[14];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[15] += absSample; nsR[15] /= 2; absSample -= nsR[15]; nsR[15] += absSample; nsR[15] /= 2; absSample -= nsR[15];
//install noise and then shape it //install noise and then shape it
absSample += inputSampleR; absSample += inputSampleR;
@ -1271,7 +1275,7 @@ void Ditherbox::processDoubleReplacing(double **inputs, double **outputs, VstInt
if (inputSampleR < 0) inputSampleR -= 0.383; if (inputSampleR < 0) inputSampleR -= 0.383;
//adjusting to permit more information drug outta the noisefloor //adjusting to permit more information drug outta the noisefloor
contingentRnd = (((rand()/(double)RAND_MAX)+(rand()/(double)RAND_MAX))-1.0) * randyConstant; //produce TPDF dist, scale contingentRnd = (((double(fpd)/UINT32_MAX)+(double(fpd)/UINT32_MAX))-1.0) * randyConstant; //produce TPDF dist, scale
contingentRnd -= contingentErrL*omegaConstant; //include err contingentRnd -= contingentErrL*omegaConstant; //include err
absSample = fabs(inputSampleL); absSample = fabs(inputSampleL);
contingentErrL = absSample - floor(absSample); //get next err contingentErrL = absSample - floor(absSample); //get next err
@ -1285,7 +1289,7 @@ void Ditherbox::processDoubleReplacing(double **inputs, double **outputs, VstInt
//Contingent Dither //Contingent Dither
inputSampleL = floor(inputSampleL); inputSampleL = floor(inputSampleL);
contingentRnd = (((rand()/(double)RAND_MAX)+(rand()/(double)RAND_MAX))-1.0) * randyConstant; //produce TPDF dist, scale contingentRnd = (((double(fpd)/UINT32_MAX)+(double(fpd)/UINT32_MAX))-1.0) * randyConstant; //produce TPDF dist, scale
contingentRnd -= contingentErrR*omegaConstant; //include err contingentRnd -= contingentErrR*omegaConstant; //include err
absSample = fabs(inputSampleR); absSample = fabs(inputSampleR);
contingentErrR = absSample - floor(absSample); //get next err contingentErrR = absSample - floor(absSample); //get next err
@ -1307,11 +1311,11 @@ void Ditherbox::processDoubleReplacing(double **inputs, double **outputs, VstInt
case 10: //this one is the original Naturalize case 10: //this one is the original Naturalize
if (inputSampleL > 0) inputSampleL += (0.3333333333); if (inputSampleL > 0) inputSampleL += (0.3333333333);
if (inputSampleL < 0) inputSampleL -= (0.3333333333); if (inputSampleL < 0) inputSampleL -= (0.3333333333);
inputSampleL += (rand()/(double)RAND_MAX)*0.6666666666; inputSampleL += (double(fpd)/UINT32_MAX)*0.6666666666;
if (inputSampleR > 0) inputSampleR += (0.3333333333); if (inputSampleR > 0) inputSampleR += (0.3333333333);
if (inputSampleR < 0) inputSampleR -= (0.3333333333); if (inputSampleR < 0) inputSampleR -= (0.3333333333);
inputSampleR += (rand()/(double)RAND_MAX)*0.6666666666; inputSampleR += (double(fpd)/UINT32_MAX)*0.6666666666;
//begin L //begin L
benfordize = floor(inputSampleL); benfordize = floor(inputSampleL);
@ -1934,6 +1938,10 @@ void Ditherbox::processDoubleReplacing(double **inputs, double **outputs, VstInt
noiseShapingR += inputSampleR - drySampleR; noiseShapingR += inputSampleR - drySampleR;
} }
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
//pseudorandom number updater
*out1 = inputSampleL; *out1 = inputSampleL;
*out2 = inputSampleR; *out2 = inputSampleR;

View file

@ -33,7 +33,7 @@ void DoublePaul::processReplacing(float **inputs, float **outputs, VstInt32 samp
bL[9] = bL[8]; bL[8] = bL[7]; bL[7] = bL[6]; bL[6] = bL[5]; bL[9] = bL[8]; bL[8] = bL[7]; bL[7] = bL[6]; bL[6] = bL[5];
bL[5] = bL[4]; bL[4] = bL[3]; bL[3] = bL[2]; bL[2] = bL[1]; bL[5] = bL[4]; bL[4] = bL[3]; bL[3] = bL[2]; bL[2] = bL[1];
bL[1] = bL[0]; bL[0] = (rand()/(double)RAND_MAX); bL[1] = bL[0]; bL[0] = (double(fpd)/UINT32_MAX);
currentDitherL = (bL[0] * 0.061); currentDitherL = (bL[0] * 0.061);
currentDitherL -= (bL[1] * 0.11); currentDitherL -= (bL[1] * 0.11);
@ -56,7 +56,7 @@ void DoublePaul::processReplacing(float **inputs, float **outputs, VstInt32 samp
bR[9] = bR[8]; bR[8] = bR[7]; bR[7] = bR[6]; bR[6] = bR[5]; bR[9] = bR[8]; bR[8] = bR[7]; bR[7] = bR[6]; bR[6] = bR[5];
bR[5] = bR[4]; bR[4] = bR[3]; bR[3] = bR[2]; bR[2] = bR[1]; bR[5] = bR[4]; bR[4] = bR[3]; bR[3] = bR[2]; bR[2] = bR[1];
bR[1] = bR[0]; bR[0] = (rand()/(double)RAND_MAX); bR[1] = bR[0]; bR[0] = (double(fpd)/UINT32_MAX);
currentDitherR = (bR[0] * 0.061); currentDitherR = (bR[0] * 0.061);
currentDitherR -= (bR[1] * 0.11); currentDitherR -= (bR[1] * 0.11);
@ -80,6 +80,10 @@ void DoublePaul::processReplacing(float **inputs, float **outputs, VstInt32 samp
inputSampleL /= 8388608.0; inputSampleL /= 8388608.0;
inputSampleR /= 8388608.0; inputSampleR /= 8388608.0;
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
//pseudorandom number updater
*out1 = inputSampleL; *out1 = inputSampleL;
*out2 = inputSampleR; *out2 = inputSampleR;
@ -116,7 +120,7 @@ void DoublePaul::processDoubleReplacing(double **inputs, double **outputs, VstIn
bL[9] = bL[8]; bL[8] = bL[7]; bL[7] = bL[6]; bL[6] = bL[5]; bL[9] = bL[8]; bL[8] = bL[7]; bL[7] = bL[6]; bL[6] = bL[5];
bL[5] = bL[4]; bL[4] = bL[3]; bL[3] = bL[2]; bL[2] = bL[1]; bL[5] = bL[4]; bL[4] = bL[3]; bL[3] = bL[2]; bL[2] = bL[1];
bL[1] = bL[0]; bL[0] = (rand()/(double)RAND_MAX); bL[1] = bL[0]; bL[0] = (double(fpd)/UINT32_MAX);
currentDitherL = (bL[0] * 0.061); currentDitherL = (bL[0] * 0.061);
currentDitherL -= (bL[1] * 0.11); currentDitherL -= (bL[1] * 0.11);
@ -139,7 +143,7 @@ void DoublePaul::processDoubleReplacing(double **inputs, double **outputs, VstIn
bR[9] = bR[8]; bR[8] = bR[7]; bR[7] = bR[6]; bR[6] = bR[5]; bR[9] = bR[8]; bR[8] = bR[7]; bR[7] = bR[6]; bR[6] = bR[5];
bR[5] = bR[4]; bR[4] = bR[3]; bR[3] = bR[2]; bR[2] = bR[1]; bR[5] = bR[4]; bR[4] = bR[3]; bR[3] = bR[2]; bR[2] = bR[1];
bR[1] = bR[0]; bR[0] = (rand()/(double)RAND_MAX); bR[1] = bR[0]; bR[0] = (double(fpd)/UINT32_MAX);
currentDitherR = (bR[0] * 0.061); currentDitherR = (bR[0] * 0.061);
currentDitherR -= (bR[1] * 0.11); currentDitherR -= (bR[1] * 0.11);
@ -163,6 +167,10 @@ void DoublePaul::processDoubleReplacing(double **inputs, double **outputs, VstIn
inputSampleL /= 8388608.0; inputSampleL /= 8388608.0;
inputSampleR /= 8388608.0; inputSampleR /= 8388608.0;
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
//pseudorandom number updater
*out1 = inputSampleL; *out1 = inputSampleL;
*out2 = inputSampleR; *out2 = inputSampleR;

View file

@ -155,7 +155,7 @@ void DubCenter::processReplacing(float **inputs, float **outputs, VstInt32 sampl
{if (WasNegative){SubOctave = !SubOctave;} WasNegative = false;} {if (WasNegative){SubOctave = !SubOctave;} WasNegative = false;}
else {WasNegative = true;} else {WasNegative = true;}
//set up polarities for sub-bass version //set up polarities for sub-bass version
randy = (rand()/(double)RAND_MAX)*fuzz; //0 to 1 the noise, may not be needed randy = (double(fpd)/UINT32_MAX)*fuzz; //0 to 1 the noise, may not be needed
invrandy = (1.0-randy); invrandy = (1.0-randy);
randy /= 2.0; randy /= 2.0;
//set up the noise //set up the noise
@ -438,7 +438,7 @@ void DubCenter::processDoubleReplacing(double **inputs, double **outputs, VstInt
{if (WasNegative){SubOctave = !SubOctave;} WasNegative = false;} {if (WasNegative){SubOctave = !SubOctave;} WasNegative = false;}
else {WasNegative = true;} else {WasNegative = true;}
//set up polarities for sub-bass version //set up polarities for sub-bass version
randy = (rand()/(double)RAND_MAX)*fuzz; //0 to 1 the noise, may not be needed randy = (double(fpd)/UINT32_MAX)*fuzz; //0 to 1 the noise, may not be needed
invrandy = (1.0-randy); invrandy = (1.0-randy);
randy /= 2.0; randy /= 2.0;
//set up the noise //set up the noise

View file

@ -194,11 +194,11 @@ void DubSub::processReplacing(float **inputs, float **outputs, VstInt32 sampleFr
else {WasNegativeR = true;} else {WasNegativeR = true;}
//set up polarities for sub-bass version //set up polarities for sub-bass version
randyL = (rand()/(double)RAND_MAX)*fuzz; //0 to 1 the noise, may not be needed randyL = (double(fpd)/UINT32_MAX)*fuzz; //0 to 1 the noise, may not be needed
invrandyL = (1.0-randyL); invrandyL = (1.0-randyL);
randyL /= 2.0; randyL /= 2.0;
randyR = (rand()/(double)RAND_MAX)*fuzz; //0 to 1 the noise, may not be needed randyR = (double(fpd)/UINT32_MAX)*fuzz; //0 to 1 the noise, may not be needed
invrandyR = (1.0-randyR); invrandyR = (1.0-randyR);
randyR /= 2.0; randyR /= 2.0;
//set up the noise //set up the noise
@ -597,11 +597,11 @@ void DubSub::processDoubleReplacing(double **inputs, double **outputs, VstInt32
else {WasNegativeR = true;} else {WasNegativeR = true;}
//set up polarities for sub-bass version //set up polarities for sub-bass version
randyL = (rand()/(double)RAND_MAX)*fuzz; //0 to 1 the noise, may not be needed randyL = (double(fpd)/UINT32_MAX)*fuzz; //0 to 1 the noise, may not be needed
invrandyL = (1.0-randyL); invrandyL = (1.0-randyL);
randyL /= 2.0; randyL /= 2.0;
randyR = (rand()/(double)RAND_MAX)*fuzz; //0 to 1 the noise, may not be needed randyR = (double(fpd)/UINT32_MAX)*fuzz; //0 to 1 the noise, may not be needed
invrandyR = (1.0-randyR); invrandyR = (1.0-randyR);
randyR /= 2.0; randyR /= 2.0;
//set up the noise //set up the noise

View file

@ -83,12 +83,12 @@ void Dyno::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sa
//dyno is the one that tries to raise peak energy //dyno is the one that tries to raise peak energy
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -258,12 +258,12 @@ void Elation::processReplacing(float **inputs, float **outputs, VstInt32 sampleF
flip = !flip; flip = !flip;
randy = ((rand()/(double)RAND_MAX)*0.054); randy = ((double(fpd)/UINT32_MAX)*0.054);
outputSample = ((((inputSampleL*(1-randy))+(lastSampleL*randy))*wet)+(drySampleL*(1.0-wet))) * outlevel; outputSample = ((((inputSampleL*(1-randy))+(lastSampleL*randy))*wet)+(drySampleL*(1.0-wet))) * outlevel;
lastSampleL = inputSampleL; lastSampleL = inputSampleL;
inputSampleL = outputSample; inputSampleL = outputSample;
randy = ((rand()/(double)RAND_MAX)*0.054); randy = ((double(fpd)/UINT32_MAX)*0.054);
outputSample = ((((inputSampleR*(1-randy))+(lastSampleR*randy))*wet)+(drySampleR*(1.0-wet))) * outlevel; outputSample = ((((inputSampleR*(1-randy))+(lastSampleR*randy))*wet)+(drySampleR*(1.0-wet))) * outlevel;
lastSampleR = inputSampleR; lastSampleR = inputSampleR;
inputSampleR = outputSample; inputSampleR = outputSample;
@ -538,23 +538,23 @@ void Elation::processDoubleReplacing(double **inputs, double **outputs, VstInt32
flip = !flip; flip = !flip;
randy = ((rand()/(double)RAND_MAX)*0.054); randy = ((double(fpd)/UINT32_MAX)*0.054);
outputSample = ((((inputSampleL*(1-randy))+(lastSampleL*randy))*wet)+(drySampleL*(1.0-wet))) * outlevel; outputSample = ((((inputSampleL*(1-randy))+(lastSampleL*randy))*wet)+(drySampleL*(1.0-wet))) * outlevel;
lastSampleL = inputSampleL; lastSampleL = inputSampleL;
inputSampleL = outputSample; inputSampleL = outputSample;
randy = ((rand()/(double)RAND_MAX)*0.054); randy = ((double(fpd)/UINT32_MAX)*0.054);
outputSample = ((((inputSampleR*(1-randy))+(lastSampleR*randy))*wet)+(drySampleR*(1.0-wet))) * outlevel; outputSample = ((((inputSampleR*(1-randy))+(lastSampleR*randy))*wet)+(drySampleR*(1.0-wet))) * outlevel;
lastSampleR = inputSampleR; lastSampleR = inputSampleR;
inputSampleR = outputSample; inputSampleR = outputSample;
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -103,12 +103,12 @@ void Facet::processDoubleReplacing(double **inputs, double **outputs, VstInt32 s
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -265,12 +265,12 @@ void Focus::processDoubleReplacing(double **inputs, double **outputs, VstInt32 s
} }
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -55,7 +55,7 @@ void FromTape::processReplacing(float **inputs, float **outputs, VstInt32 sample
inputSampleR *= inputgain; inputSampleR *= inputgain;
} }
randy = (rand()/(double)RAND_MAX) * SoftenControl; //for soften randy = (double(fpd)/UINT32_MAX) * SoftenControl; //for soften
invrandy = (1.0-randy); invrandy = (1.0-randy);
randy /= 2.0; randy /= 2.0;
//we've set up so that we dial in the amount of the alt sections (in pairs) with invrandy being the source section //we've set up so that we dial in the amount of the alt sections (in pairs) with invrandy being the source section
@ -252,7 +252,7 @@ void FromTape::processDoubleReplacing(double **inputs, double **outputs, VstInt3
inputSampleR *= inputgain; inputSampleR *= inputgain;
} }
randy = (rand()/(double)RAND_MAX) * SoftenControl; //for soften randy = (double(fpd)/UINT32_MAX) * SoftenControl; //for soften
invrandy = (1.0-randy); invrandy = (1.0-randy);
randy /= 2.0; randy /= 2.0;
//we've set up so that we dial in the amount of the alt sections (in pairs) with invrandy being the source section //we've set up so that we dial in the amount of the alt sections (in pairs) with invrandy being the source section

View file

@ -623,12 +623,12 @@ void GlitchShifter::processDoubleReplacing(double **inputs, double **outputs, Vs
//this plugin can throw insane outputs so we'll put in a hard clip //this plugin can throw insane outputs so we'll put in a hard clip
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -219,12 +219,12 @@ void Gringer::processDoubleReplacing(double **inputs, double **outputs, VstInt32
//amplitude aspect //amplitude aspect
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -261,12 +261,12 @@ void Highpass2::processDoubleReplacing(double **inputs, double **outputs, VstInt
fpFlip = !fpFlip; fpFlip = !fpFlip;
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -209,12 +209,12 @@ void Infrasonic::processDoubleReplacing(double **inputs, double **outputs, VstIn
biquadE[12] = biquadE[11]; biquadE[11] = inputSampleR; inputSampleR = outSampleR; biquadE[14] = biquadE[13]; biquadE[13] = inputSampleR; //DF1 right biquadE[12] = biquadE[11]; biquadE[11] = inputSampleR; inputSampleR = outSampleR; biquadE[14] = biquadE[13]; biquadE[13] = inputSampleR; //DF1 right
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -163,12 +163,12 @@ void Interstage::processDoubleReplacing(double **inputs, double **outputs, VstIn
lastSampleR = inputSampleR; lastSampleR = inputSampleR;
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -76,7 +76,7 @@ void IronOxide5::processReplacing(float **inputs, float **outputs, VstInt32 samp
drySampleL = inputSampleL; drySampleL = inputSampleL;
drySampleR = inputSampleR; drySampleR = inputSampleR;
flutterrandy = (rand()/(double)RAND_MAX); flutterrandy = (double(fpd)/UINT32_MAX);
//part of flutter section //part of flutter section
//now we've got a random flutter, so we're messing with the pitch before tape effects go on //now we've got a random flutter, so we're messing with the pitch before tape effects go on
if (fstoredcount < 0 || fstoredcount > 30) {fstoredcount = 30;} if (fstoredcount < 0 || fstoredcount > 30) {fstoredcount = 30;}
@ -347,7 +347,7 @@ void IronOxide5::processReplacing(float **inputs, float **outputs, VstInt32 samp
else inputSampleR = -bridgerectifierR; else inputSampleR = -bridgerectifierR;
//second stage of overdrive to prevent overs and allow bloody loud extremeness //second stage of overdrive to prevent overs and allow bloody loud extremeness
randy = (0.55 + tempRandy + ((rand()/(double)RAND_MAX)*tempRandy))*noise; //0 to 2 randy = (0.55 + tempRandy + ((double(fpd)/UINT32_MAX)*tempRandy))*noise; //0 to 2
inputSampleL *= (1.0 - randy); inputSampleL *= (1.0 - randy);
inputSampleL += (prevInputSampleL*randy); inputSampleL += (prevInputSampleL*randy);
@ -471,7 +471,7 @@ void IronOxide5::processDoubleReplacing(double **inputs, double **outputs, VstIn
drySampleL = inputSampleL; drySampleL = inputSampleL;
drySampleR = inputSampleR; drySampleR = inputSampleR;
flutterrandy = (rand()/(double)RAND_MAX); flutterrandy = (double(fpd)/UINT32_MAX);
//part of flutter section //part of flutter section
//now we've got a random flutter, so we're messing with the pitch before tape effects go on //now we've got a random flutter, so we're messing with the pitch before tape effects go on
if (fstoredcount < 0 || fstoredcount > 30) {fstoredcount = 30;} if (fstoredcount < 0 || fstoredcount > 30) {fstoredcount = 30;}
@ -742,7 +742,7 @@ void IronOxide5::processDoubleReplacing(double **inputs, double **outputs, VstIn
else inputSampleR = -bridgerectifierR; else inputSampleR = -bridgerectifierR;
//second stage of overdrive to prevent overs and allow bloody loud extremeness //second stage of overdrive to prevent overs and allow bloody loud extremeness
randy = (0.55 + tempRandy + ((rand()/(double)RAND_MAX)*tempRandy))*noise; //0 to 2 randy = (0.55 + tempRandy + ((double(fpd)/UINT32_MAX)*tempRandy))*noise; //0 to 2
inputSampleL *= (1.0 - randy); inputSampleL *= (1.0 - randy);
inputSampleL += (prevInputSampleL*randy); inputSampleL += (prevInputSampleL*randy);

View file

@ -229,12 +229,12 @@ void Isolator::processDoubleReplacing(double **inputs, double **outputs, VstInt3
} }
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -262,12 +262,12 @@ void Lowpass2::processDoubleReplacing(double **inputs, double **outputs, VstInt3
fpFlip = !fpFlip; fpFlip = !fpFlip;
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -160,11 +160,11 @@ void Luxor::processReplacing(float **inputs, float **outputs, VstInt32 sampleFra
} }
//otherwise we leave it untouched by the overdrive stuff //otherwise we leave it untouched by the overdrive stuff
randy = ((rand()/(double)RAND_MAX)*0.031); randy = ((double(fpd)/UINT32_MAX)*0.031);
inputSampleL = ((inputSampleL*(1-randy))+(lastSampleL*randy)) * outlevel; inputSampleL = ((inputSampleL*(1-randy))+(lastSampleL*randy)) * outlevel;
lastSampleL = inputSampleL; lastSampleL = inputSampleL;
randy = ((rand()/(double)RAND_MAX)*0.031); randy = ((double(fpd)/UINT32_MAX)*0.031);
inputSampleR = ((inputSampleR*(1-randy))+(lastSampleR*randy)) * outlevel; inputSampleR = ((inputSampleR*(1-randy))+(lastSampleR*randy)) * outlevel;
lastSampleR = inputSampleR; lastSampleR = inputSampleR;
@ -341,22 +341,22 @@ void Luxor::processDoubleReplacing(double **inputs, double **outputs, VstInt32 s
} }
//otherwise we leave it untouched by the overdrive stuff //otherwise we leave it untouched by the overdrive stuff
randy = ((rand()/(double)RAND_MAX)*0.031); randy = ((double(fpd)/UINT32_MAX)*0.031);
inputSampleL = ((inputSampleL*(1-randy))+(lastSampleL*randy)) * outlevel; inputSampleL = ((inputSampleL*(1-randy))+(lastSampleL*randy)) * outlevel;
lastSampleL = inputSampleL; lastSampleL = inputSampleL;
randy = ((rand()/(double)RAND_MAX)*0.031); randy = ((double(fpd)/UINT32_MAX)*0.031);
inputSampleR = ((inputSampleR*(1-randy))+(lastSampleR*randy)) * outlevel; inputSampleR = ((inputSampleR*(1-randy))+(lastSampleR*randy)) * outlevel;
lastSampleR = inputSampleR; lastSampleR = inputSampleR;
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -91,12 +91,12 @@ void MoNoam::processDoubleReplacing(double **inputs, double **outputs, VstInt32
if (processing == kBYPASS) {inputSampleL = *in1; inputSampleR = *in2;} if (processing == kBYPASS) {inputSampleL = *in1; inputSampleR = *in2;}
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -83,12 +83,12 @@ void Mojo::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sa
//mojo is the one that flattens WAAAAY out very softly before wavefolding //mojo is the one that flattens WAAAAY out very softly before wavefolding
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -36,11 +36,11 @@ void NaturalizeDither::processReplacing(float **inputs, float **outputs, VstInt3
if (inputSampleL > 0) inputSampleL += (0.3333333333); if (inputSampleL > 0) inputSampleL += (0.3333333333);
if (inputSampleL < 0) inputSampleL -= (0.3333333333); if (inputSampleL < 0) inputSampleL -= (0.3333333333);
inputSampleL += (rand()/(double)RAND_MAX)*0.6666666666; inputSampleL += (double(fpd)/UINT32_MAX)*0.6666666666;
if (inputSampleR > 0) inputSampleR += (0.3333333333); if (inputSampleR > 0) inputSampleR += (0.3333333333);
if (inputSampleR < 0) inputSampleR -= (0.3333333333); if (inputSampleR < 0) inputSampleR -= (0.3333333333);
inputSampleR += (rand()/(double)RAND_MAX)*0.6666666666; inputSampleR += (double(fpd)/UINT32_MAX)*0.6666666666;
//begin L //begin L
benfordize = floor(inputSampleL); benfordize = floor(inputSampleL);
@ -195,6 +195,10 @@ void NaturalizeDither::processReplacing(float **inputs, float **outputs, VstInt3
inputSampleL /= 8388608.0; inputSampleL /= 8388608.0;
inputSampleR /= 8388608.0; inputSampleR /= 8388608.0;
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
//pseudorandom number updater
*out1 = inputSampleL; *out1 = inputSampleL;
*out2 = inputSampleR; *out2 = inputSampleR;
@ -234,11 +238,11 @@ void NaturalizeDither::processDoubleReplacing(double **inputs, double **outputs,
if (inputSampleL > 0) inputSampleL += (0.3333333333); if (inputSampleL > 0) inputSampleL += (0.3333333333);
if (inputSampleL < 0) inputSampleL -= (0.3333333333); if (inputSampleL < 0) inputSampleL -= (0.3333333333);
inputSampleL += (rand()/(double)RAND_MAX)*0.6666666666; inputSampleL += (double(fpd)/UINT32_MAX)*0.6666666666;
if (inputSampleR > 0) inputSampleR += (0.3333333333); if (inputSampleR > 0) inputSampleR += (0.3333333333);
if (inputSampleR < 0) inputSampleR -= (0.3333333333); if (inputSampleR < 0) inputSampleR -= (0.3333333333);
inputSampleR += (rand()/(double)RAND_MAX)*0.6666666666; inputSampleR += (double(fpd)/UINT32_MAX)*0.6666666666;
//begin L //begin L
benfordize = floor(inputSampleL); benfordize = floor(inputSampleL);
@ -393,6 +397,10 @@ void NaturalizeDither::processDoubleReplacing(double **inputs, double **outputs,
inputSampleL /= 8388608.0; inputSampleL /= 8388608.0;
inputSampleR /= 8388608.0; inputSampleR /= 8388608.0;
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
//pseudorandom number updater
*out1 = inputSampleL; *out1 = inputSampleL;
*out2 = inputSampleR; *out2 = inputSampleR;

View file

@ -156,11 +156,11 @@ void Neverland::processReplacing(float **inputs, float **outputs, VstInt32 sampl
inputSampleR += (bR[33] * (0.00555223929714115 - (0.00030319367948553*fabs(bR[33])))); inputSampleR += (bR[33] * (0.00555223929714115 - (0.00030319367948553*fabs(bR[33]))));
//we apply the first samples of the Neve impulse- dynamically adjusted. //we apply the first samples of the Neve impulse- dynamically adjusted.
} }
randy = ((rand()/(double)RAND_MAX)*0.034); randy = ((double(fpd)/UINT32_MAX)*0.034);
inputSampleL = ((inputSampleL*(1-randy))+(lastSampleL*randy)) * outlevel; inputSampleL = ((inputSampleL*(1-randy))+(lastSampleL*randy)) * outlevel;
lastSampleL = inputSampleL; lastSampleL = inputSampleL;
randy = ((rand()/(double)RAND_MAX)*0.034); randy = ((double(fpd)/UINT32_MAX)*0.034);
inputSampleR = ((inputSampleR*(1-randy))+(lastSampleR*randy)) * outlevel; inputSampleR = ((inputSampleR*(1-randy))+(lastSampleR*randy)) * outlevel;
lastSampleR = inputSampleR; lastSampleR = inputSampleR;
@ -332,22 +332,22 @@ void Neverland::processDoubleReplacing(double **inputs, double **outputs, VstInt
inputSampleR += (bR[33] * (0.00555223929714115 - (0.00030319367948553*fabs(bR[33])))); inputSampleR += (bR[33] * (0.00555223929714115 - (0.00030319367948553*fabs(bR[33]))));
//we apply the first samples of the Neve impulse- dynamically adjusted. //we apply the first samples of the Neve impulse- dynamically adjusted.
} }
randy = ((rand()/(double)RAND_MAX)*0.034); randy = ((double(fpd)/UINT32_MAX)*0.034);
inputSampleL = ((inputSampleL*(1-randy))+(lastSampleL*randy)) * outlevel; inputSampleL = ((inputSampleL*(1-randy))+(lastSampleL*randy)) * outlevel;
lastSampleL = inputSampleL; lastSampleL = inputSampleL;
randy = ((rand()/(double)RAND_MAX)*0.034); randy = ((double(fpd)/UINT32_MAX)*0.034);
inputSampleR = ((inputSampleR*(1-randy))+(lastSampleR*randy)) * outlevel; inputSampleR = ((inputSampleR*(1-randy))+(lastSampleR*randy)) * outlevel;
lastSampleR = inputSampleR; lastSampleR = inputSampleR;
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -2028,12 +2028,12 @@ void Nikola::processDoubleReplacing(double **inputs, double **outputs, VstInt32
} }
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -43,10 +43,10 @@ void NodeDither::processReplacing(float **inputs, float **outputs, VstInt32 samp
if (gcount < 0 || gcount > 2450) {gcount = 2450;} if (gcount < 0 || gcount > 2450) {gcount = 2450;}
currentDitherL = (rand()/(double)RAND_MAX); currentDitherL = (double(fpd)/UINT32_MAX);
inputSampleL += currentDitherL; inputSampleL += currentDitherL;
currentDitherR = (rand()/(double)RAND_MAX); currentDitherR = (double(fpd)/UINT32_MAX);
inputSampleR += currentDitherR; inputSampleR += currentDitherR;
if (phase == 1) { if (phase == 1) {
@ -71,6 +71,10 @@ void NodeDither::processReplacing(float **inputs, float **outputs, VstInt32 samp
inputSampleL /= 8388608.0; inputSampleL /= 8388608.0;
inputSampleR /= 8388608.0; inputSampleR /= 8388608.0;
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
//pseudorandom number updater
*out1 = inputSampleL; *out1 = inputSampleL;
*out2 = inputSampleR; *out2 = inputSampleR;
@ -117,10 +121,10 @@ void NodeDither::processDoubleReplacing(double **inputs, double **outputs, VstIn
if (gcount < 0 || gcount > 2450) {gcount = 2450;} if (gcount < 0 || gcount > 2450) {gcount = 2450;}
currentDitherL = (rand()/(double)RAND_MAX); currentDitherL = (double(fpd)/UINT32_MAX);
inputSampleL += currentDitherL; inputSampleL += currentDitherL;
currentDitherR = (rand()/(double)RAND_MAX); currentDitherR = (double(fpd)/UINT32_MAX);
inputSampleR += currentDitherR; inputSampleR += currentDitherR;
if (phase == 1) { if (phase == 1) {
@ -145,6 +149,10 @@ void NodeDither::processDoubleReplacing(double **inputs, double **outputs, VstIn
inputSampleL /= 8388608.0; inputSampleL /= 8388608.0;
inputSampleR /= 8388608.0; inputSampleR /= 8388608.0;
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
//pseudorandom number updater
*out1 = inputSampleL; *out1 = inputSampleL;
*out2 = inputSampleR; *out2 = inputSampleR;

View file

@ -118,12 +118,12 @@ void Noise::processReplacing(float **inputs, float **outputs, VstInt32 sampleFra
if (surgeL<fabs(inputSampleL)) if (surgeL<fabs(inputSampleL))
{ {
surgeL += (rand()/(double)RAND_MAX)*(fabs(inputSampleL)-surgeL); surgeL += (double(fpd)/UINT32_MAX)*(fabs(inputSampleL)-surgeL);
if (surgeL > 1.0) surgeL = 1.0; if (surgeL > 1.0) surgeL = 1.0;
} }
else else
{ {
surgeL -= ((rand()/(double)RAND_MAX)*(surgeL-fabs(inputSampleL))*decay); surgeL -= ((double(fpd)/UINT32_MAX)*(surgeL-fabs(inputSampleL))*decay);
if (surgeL < 0.0) surgeL = 0.0; if (surgeL < 0.0) surgeL = 0.0;
} }
@ -134,12 +134,12 @@ void Noise::processReplacing(float **inputs, float **outputs, VstInt32 sampleFra
if (surgeR<fabs(inputSampleR)) if (surgeR<fabs(inputSampleR))
{ {
surgeR += (rand()/(double)RAND_MAX)*(fabs(inputSampleR)-surgeR); surgeR += (double(fpd)/UINT32_MAX)*(fabs(inputSampleR)-surgeR);
if (surgeR > 1.0) surgeR = 1.0; if (surgeR > 1.0) surgeR = 1.0;
} }
else else
{ {
surgeR -= ((rand()/(double)RAND_MAX)*(surgeR-fabs(inputSampleR))*decay); surgeR -= ((double(fpd)/UINT32_MAX)*(surgeR-fabs(inputSampleR))*decay);
if (surgeR < 0.0) surgeR = 0.0; if (surgeR < 0.0) surgeR = 0.0;
} }
@ -173,10 +173,10 @@ void Noise::processReplacing(float **inputs, float **outputs, VstInt32 sampleFra
} }
if (flipL) noiseAL += (rand()/(double)RAND_MAX); if (flipL) noiseAL += (double(fpd)/UINT32_MAX);
else noiseAL -= (rand()/(double)RAND_MAX); else noiseAL -= (double(fpd)/UINT32_MAX);
if (flipR) noiseAR += (rand()/(double)RAND_MAX); if (flipR) noiseAR += (double(fpd)/UINT32_MAX);
else noiseAR -= (rand()/(double)RAND_MAX); else noiseAR -= (double(fpd)/UINT32_MAX);
if (filterflip) if (filterflip)
{ {
@ -388,12 +388,12 @@ void Noise::processDoubleReplacing(double **inputs, double **outputs, VstInt32 s
if (surgeL<fabs(inputSampleL)) if (surgeL<fabs(inputSampleL))
{ {
surgeL += (rand()/(double)RAND_MAX)*(fabs(inputSampleL)-surgeL); surgeL += (double(fpd)/UINT32_MAX)*(fabs(inputSampleL)-surgeL);
if (surgeL > 1.0) surgeL = 1.0; if (surgeL > 1.0) surgeL = 1.0;
} }
else else
{ {
surgeL -= ((rand()/(double)RAND_MAX)*(surgeL-fabs(inputSampleL))*decay); surgeL -= ((double(fpd)/UINT32_MAX)*(surgeL-fabs(inputSampleL))*decay);
if (surgeL < 0.0) surgeL = 0.0; if (surgeL < 0.0) surgeL = 0.0;
} }
@ -404,12 +404,12 @@ void Noise::processDoubleReplacing(double **inputs, double **outputs, VstInt32 s
if (surgeR<fabs(inputSampleR)) if (surgeR<fabs(inputSampleR))
{ {
surgeR += (rand()/(double)RAND_MAX)*(fabs(inputSampleR)-surgeR); surgeR += (double(fpd)/UINT32_MAX)*(fabs(inputSampleR)-surgeR);
if (surgeR > 1.0) surgeR = 1.0; if (surgeR > 1.0) surgeR = 1.0;
} }
else else
{ {
surgeR -= ((rand()/(double)RAND_MAX)*(surgeR-fabs(inputSampleR))*decay); surgeR -= ((double(fpd)/UINT32_MAX)*(surgeR-fabs(inputSampleR))*decay);
if (surgeR < 0.0) surgeR = 0.0; if (surgeR < 0.0) surgeR = 0.0;
} }
@ -443,10 +443,10 @@ void Noise::processDoubleReplacing(double **inputs, double **outputs, VstInt32 s
} }
if (flipL) noiseAL += (rand()/(double)RAND_MAX); if (flipL) noiseAL += (double(fpd)/UINT32_MAX);
else noiseAL -= (rand()/(double)RAND_MAX); else noiseAL -= (double(fpd)/UINT32_MAX);
if (flipR) noiseAR += (rand()/(double)RAND_MAX); if (flipR) noiseAR += (double(fpd)/UINT32_MAX);
else noiseAR -= (rand()/(double)RAND_MAX); else noiseAR -= (double(fpd)/UINT32_MAX);
if (filterflip) if (filterflip)
{ {

View file

@ -42,8 +42,8 @@ void PaulDither::processReplacing(float **inputs, float **outputs, VstInt32 samp
inputSampleR *= scaleFactor; inputSampleR *= scaleFactor;
//0-1 is now one bit, now we dither //0-1 is now one bit, now we dither
currentDitherL = (rand()/(double)RAND_MAX); currentDitherL = (double(fpd)/UINT32_MAX);
currentDitherR = (rand()/(double)RAND_MAX); currentDitherR = (double(fpd)/UINT32_MAX);
inputSampleL += currentDitherL; inputSampleL += currentDitherL;
inputSampleR += currentDitherR; inputSampleR += currentDitherR;
@ -69,6 +69,10 @@ void PaulDither::processReplacing(float **inputs, float **outputs, VstInt32 samp
inputSampleL /= outScale; inputSampleL /= outScale;
inputSampleR /= outScale; inputSampleR /= outScale;
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
//pseudorandom number updater
*out1 = inputSampleL; *out1 = inputSampleL;
*out2 = inputSampleR; *out2 = inputSampleR;
@ -114,8 +118,8 @@ void PaulDither::processDoubleReplacing(double **inputs, double **outputs, VstIn
inputSampleR *= scaleFactor; inputSampleR *= scaleFactor;
//0-1 is now one bit, now we dither //0-1 is now one bit, now we dither
currentDitherL = (rand()/(double)RAND_MAX); currentDitherL = (double(fpd)/UINT32_MAX);
currentDitherR = (rand()/(double)RAND_MAX); currentDitherR = (double(fpd)/UINT32_MAX);
inputSampleL += currentDitherL; inputSampleL += currentDitherL;
inputSampleR += currentDitherR; inputSampleR += currentDitherR;
@ -141,6 +145,10 @@ void PaulDither::processDoubleReplacing(double **inputs, double **outputs, VstIn
inputSampleL /= outScale; inputSampleL /= outScale;
inputSampleR /= outScale; inputSampleR /= outScale;
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
//pseudorandom number updater
*out1 = inputSampleL; *out1 = inputSampleL;
*out2 = inputSampleR; *out2 = inputSampleR;

View file

@ -46,34 +46,34 @@ void PaulWide::processReplacing(float **inputs, float **outputs, VstInt32 sample
//away from the previous one - this gives you the triangular PDF and the //away from the previous one - this gives you the triangular PDF and the
//filtering in one go :-) //filtering in one go :-)
double currentDither = (rand()/(double)RAND_MAX); double currentDither = (double(fpd)/UINT32_MAX);
double ditherL = currentDither; double ditherL = currentDither;
ditherL -= previousDitherL; ditherL -= previousDitherL;
previousDitherL = currentDither; previousDitherL = currentDither;
//TPDF: two 0-1 random noises //TPDF: two 0-1 random noises
currentDither = (rand()/(double)RAND_MAX); currentDither = (double(fpd)/UINT32_MAX);
double ditherR = currentDither; double ditherR = currentDither;
ditherR -= previousDitherR; ditherR -= previousDitherR;
previousDitherR = currentDither; previousDitherR = currentDither;
//TPDF: two 0-1 random noises //TPDF: two 0-1 random noises
if (fabs(ditherL-ditherR) < 0.5) { if (fabs(ditherL-ditherR) < 0.5) {
currentDither = (rand()/(double)RAND_MAX); currentDither = (double(fpd)/UINT32_MAX);
ditherL = currentDither; ditherL = currentDither;
ditherL -= previousDitherL; ditherL -= previousDitherL;
previousDitherL = currentDither; previousDitherL = currentDither;
} }
if (fabs(ditherL-ditherR) < 0.5) { if (fabs(ditherL-ditherR) < 0.5) {
currentDither = (rand()/(double)RAND_MAX); currentDither = (double(fpd)/UINT32_MAX);
ditherR = currentDither; ditherR = currentDither;
ditherR -= previousDitherR; ditherR -= previousDitherR;
previousDitherR = currentDither; previousDitherR = currentDither;
} }
if (fabs(ditherL-ditherR) < 0.5) { if (fabs(ditherL-ditherR) < 0.5) {
currentDither = (rand()/(double)RAND_MAX); currentDither = (double(fpd)/UINT32_MAX);
ditherL = currentDither; ditherL = currentDither;
ditherL -= previousDitherL; ditherL -= previousDitherL;
previousDitherL = currentDither; previousDitherL = currentDither;
@ -85,6 +85,10 @@ void PaulWide::processReplacing(float **inputs, float **outputs, VstInt32 sample
inputSampleL /= outScale; inputSampleL /= outScale;
inputSampleR /= outScale; inputSampleR /= outScale;
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
//pseudorandom number updater
*out1 = inputSampleL; *out1 = inputSampleL;
*out2 = inputSampleR; *out2 = inputSampleR;
@ -134,34 +138,34 @@ void PaulWide::processDoubleReplacing(double **inputs, double **outputs, VstInt3
//away from the previous one - this gives you the triangular PDF and the //away from the previous one - this gives you the triangular PDF and the
//filtering in one go :-) //filtering in one go :-)
double currentDither = (rand()/(double)RAND_MAX); double currentDither = (double(fpd)/UINT32_MAX);
double ditherL = currentDither; double ditherL = currentDither;
ditherL -= previousDitherL; ditherL -= previousDitherL;
previousDitherL = currentDither; previousDitherL = currentDither;
//TPDF: two 0-1 random noises //TPDF: two 0-1 random noises
currentDither = (rand()/(double)RAND_MAX); currentDither = (double(fpd)/UINT32_MAX);
double ditherR = currentDither; double ditherR = currentDither;
ditherR -= previousDitherR; ditherR -= previousDitherR;
previousDitherR = currentDither; previousDitherR = currentDither;
//TPDF: two 0-1 random noises //TPDF: two 0-1 random noises
if (fabs(ditherL-ditherR) < 0.5) { if (fabs(ditherL-ditherR) < 0.5) {
currentDither = (rand()/(double)RAND_MAX); currentDither = (double(fpd)/UINT32_MAX);
ditherL = currentDither; ditherL = currentDither;
ditherL -= previousDitherL; ditherL -= previousDitherL;
previousDitherL = currentDither; previousDitherL = currentDither;
} }
if (fabs(ditherL-ditherR) < 0.5) { if (fabs(ditherL-ditherR) < 0.5) {
currentDither = (rand()/(double)RAND_MAX); currentDither = (double(fpd)/UINT32_MAX);
ditherR = currentDither; ditherR = currentDither;
ditherR -= previousDitherR; ditherR -= previousDitherR;
previousDitherR = currentDither; previousDitherR = currentDither;
} }
if (fabs(ditherL-ditherR) < 0.5) { if (fabs(ditherL-ditherR) < 0.5) {
currentDither = (rand()/(double)RAND_MAX); currentDither = (double(fpd)/UINT32_MAX);
ditherL = currentDither; ditherL = currentDither;
ditherL -= previousDitherL; ditherL -= previousDitherL;
previousDitherL = currentDither; previousDitherL = currentDither;
@ -173,6 +177,10 @@ void PaulWide::processDoubleReplacing(double **inputs, double **outputs, VstInt3
inputSampleL /= outScale; inputSampleL /= outScale;
inputSampleR /= outScale; inputSampleR /= outScale;
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
//pseudorandom number updater
*out1 = inputSampleL; *out1 = inputSampleL;
*out2 = inputSampleR; *out2 = inputSampleR;

View file

@ -267,12 +267,12 @@ void PeaksOnly::processDoubleReplacing(double **inputs, double **outputs, VstInt
inputSampleR *= 0.63679; //scale it to 0dB output at full blast inputSampleR *= 0.63679; //scale it to 0dB output at full blast
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -18339,12 +18339,12 @@ void PocketVerbs::processDoubleReplacing(double **inputs, double **outputs, VstI
//here we combine the tanks with the dry signal //here we combine the tanks with the dry signal
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -307,12 +307,12 @@ void Podcast::processDoubleReplacing(double **inputs, double **outputs, VstInt32
if (inputSampleR < -0.999) inputSampleR = -0.999; if (inputSampleR < -0.999) inputSampleR = -0.999;
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -640,12 +640,12 @@ void PodcastDeluxe::processDoubleReplacing(double **inputs, double **outputs, Vs
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -127,12 +127,12 @@ void PowerSag2::processDoubleReplacing(double **inputs, double **outputs, VstInt
inputSampleR = drySampleR - (difference * wet); inputSampleR = drySampleR - (difference * wet);
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -158,11 +158,11 @@ void Precious::processReplacing(float **inputs, float **outputs, VstInt32 sample
} }
//otherwise we leave it untouched by the overdrive stuff //otherwise we leave it untouched by the overdrive stuff
randy = ((rand()/(double)RAND_MAX)*0.017); randy = ((double(fpd)/UINT32_MAX)*0.017);
inputSampleL = ((inputSampleL*(1-randy))+(lastSampleL*randy)) * outlevel; inputSampleL = ((inputSampleL*(1-randy))+(lastSampleL*randy)) * outlevel;
lastSampleL = inputSampleL; lastSampleL = inputSampleL;
randy = ((rand()/(double)RAND_MAX)*0.017); randy = ((double(fpd)/UINT32_MAX)*0.017);
inputSampleR = ((inputSampleR*(1-randy))+(lastSampleR*randy)) * outlevel; inputSampleR = ((inputSampleR*(1-randy))+(lastSampleR*randy)) * outlevel;
lastSampleR = inputSampleR; lastSampleR = inputSampleR;
@ -337,22 +337,22 @@ void Precious::processDoubleReplacing(double **inputs, double **outputs, VstInt3
} }
//otherwise we leave it untouched by the overdrive stuff //otherwise we leave it untouched by the overdrive stuff
randy = ((rand()/(double)RAND_MAX)*0.017); randy = ((double(fpd)/UINT32_MAX)*0.017);
inputSampleL = ((inputSampleL*(1-randy))+(lastSampleL*randy)) * outlevel; inputSampleL = ((inputSampleL*(1-randy))+(lastSampleL*randy)) * outlevel;
lastSampleL = inputSampleL; lastSampleL = inputSampleL;
randy = ((rand()/(double)RAND_MAX)*0.017); randy = ((double(fpd)/UINT32_MAX)*0.017);
inputSampleR = ((inputSampleR*(1-randy))+(lastSampleR*randy)) * outlevel; inputSampleR = ((inputSampleR*(1-randy))+(lastSampleR*randy)) * outlevel;
lastSampleR = inputSampleR; lastSampleR = inputSampleR;
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -199,12 +199,12 @@ void PurestAir::processDoubleReplacing(double **inputs, double **outputs, VstInt
} }
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -99,12 +99,12 @@ void Recurve::processDoubleReplacing(double **inputs, double **outputs, VstInt32
//iron bar so people can play with this as a loudenator //iron bar so people can play with this as a loudenator
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -137,12 +137,12 @@ void Remap::processDoubleReplacing(double **inputs, double **outputs, VstInt32 s
} }
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -579,12 +579,12 @@ void ResEQ::processDoubleReplacing(double **inputs, double **outputs, VstInt32 s
} }
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -135,12 +135,12 @@ void Slew3::processDoubleReplacing(double **inputs, double **outputs, VstInt32 s
//end R //end R
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -293,12 +293,12 @@ void Smooth::processDoubleReplacing(double **inputs, double **outputs, VstInt32
} }
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -127,12 +127,12 @@ void SoftGate::processDoubleReplacing(double **inputs, double **outputs, VstInt3
} }
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -51,7 +51,7 @@ void SpatializeDither::processReplacing(float **inputs, float **outputs, VstInt3
if (inputSampleR < 0) inputSampleR -= 0.383; if (inputSampleR < 0) inputSampleR -= 0.383;
//adjusting to permit more information drug outta the noisefloor //adjusting to permit more information drug outta the noisefloor
contingentRnd = (((rand()/(double)RAND_MAX)+(rand()/(double)RAND_MAX))-1.0) * randyConstant; //produce TPDF dist, scale contingentRnd = (((double(fpd)/UINT32_MAX)+(double(fpd)/UINT32_MAX))-1.0) * randyConstant; //produce TPDF dist, scale
contingentRnd -= contingentErrL*omegaConstant; //include err contingentRnd -= contingentErrL*omegaConstant; //include err
absSample = fabs(inputSampleL); absSample = fabs(inputSampleL);
contingentErrL = absSample - floor(absSample); //get next err contingentErrL = absSample - floor(absSample); //get next err
@ -65,7 +65,7 @@ void SpatializeDither::processReplacing(float **inputs, float **outputs, VstInt3
//Contingent Dither //Contingent Dither
inputSampleL = floor(inputSampleL); inputSampleL = floor(inputSampleL);
contingentRnd = (((rand()/(double)RAND_MAX)+(rand()/(double)RAND_MAX))-1.0) * randyConstant; //produce TPDF dist, scale contingentRnd = (((double(fpd)/UINT32_MAX)+(double(fpd)/UINT32_MAX))-1.0) * randyConstant; //produce TPDF dist, scale
contingentRnd -= contingentErrR*omegaConstant; //include err contingentRnd -= contingentErrR*omegaConstant; //include err
absSample = fabs(inputSampleR); absSample = fabs(inputSampleR);
contingentErrR = absSample - floor(absSample); //get next err contingentErrR = absSample - floor(absSample); //get next err
@ -88,6 +88,10 @@ void SpatializeDither::processReplacing(float **inputs, float **outputs, VstInt3
inputSampleL /= outScale; inputSampleL /= outScale;
inputSampleR /= outScale; inputSampleR /= outScale;
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
//pseudorandom number updater
*out1 = inputSampleL; *out1 = inputSampleL;
*out2 = inputSampleR; *out2 = inputSampleR;
@ -142,7 +146,7 @@ void SpatializeDither::processDoubleReplacing(double **inputs, double **outputs,
if (inputSampleR < 0) inputSampleR -= 0.383; if (inputSampleR < 0) inputSampleR -= 0.383;
//adjusting to permit more information drug outta the noisefloor //adjusting to permit more information drug outta the noisefloor
contingentRnd = (((rand()/(double)RAND_MAX)+(rand()/(double)RAND_MAX))-1.0) * randyConstant; //produce TPDF dist, scale contingentRnd = (((double(fpd)/UINT32_MAX)+(double(fpd)/UINT32_MAX))-1.0) * randyConstant; //produce TPDF dist, scale
contingentRnd -= contingentErrL*omegaConstant; //include err contingentRnd -= contingentErrL*omegaConstant; //include err
absSample = fabs(inputSampleL); absSample = fabs(inputSampleL);
contingentErrL = absSample - floor(absSample); //get next err contingentErrL = absSample - floor(absSample); //get next err
@ -156,7 +160,7 @@ void SpatializeDither::processDoubleReplacing(double **inputs, double **outputs,
//Contingent Dither //Contingent Dither
inputSampleL = floor(inputSampleL); inputSampleL = floor(inputSampleL);
contingentRnd = (((rand()/(double)RAND_MAX)+(rand()/(double)RAND_MAX))-1.0) * randyConstant; //produce TPDF dist, scale contingentRnd = (((double(fpd)/UINT32_MAX)+(double(fpd)/UINT32_MAX))-1.0) * randyConstant; //produce TPDF dist, scale
contingentRnd -= contingentErrR*omegaConstant; //include err contingentRnd -= contingentErrR*omegaConstant; //include err
absSample = fabs(inputSampleR); absSample = fabs(inputSampleR);
contingentErrR = absSample - floor(absSample); //get next err contingentErrR = absSample - floor(absSample); //get next err
@ -179,6 +183,10 @@ void SpatializeDither::processDoubleReplacing(double **inputs, double **outputs,
inputSampleL /= outScale; inputSampleL /= outScale;
inputSampleR /= outScale; inputSampleR /= outScale;
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
//pseudorandom number updater
*out1 = inputSampleL; *out1 = inputSampleL;
*out2 = inputSampleR; *out2 = inputSampleR;

View file

@ -42,11 +42,11 @@ void TPDFDither::processReplacing(float **inputs, float **outputs, VstInt32 samp
inputSampleL -= 1.0; inputSampleL -= 1.0;
inputSampleR -= 1.0; inputSampleR -= 1.0;
inputSampleL += (rand()/(double)RAND_MAX); inputSampleL += (double(fpd)/UINT32_MAX);
inputSampleR += (rand()/(double)RAND_MAX); inputSampleR += (double(fpd)/UINT32_MAX);
inputSampleL += (rand()/(double)RAND_MAX); inputSampleL += (double(fpd)/UINT32_MAX);
inputSampleR += (rand()/(double)RAND_MAX); inputSampleR += (double(fpd)/UINT32_MAX);
inputSampleL = floor(inputSampleL); inputSampleL = floor(inputSampleL);
inputSampleR = floor(inputSampleR); inputSampleR = floor(inputSampleR);
@ -55,6 +55,10 @@ void TPDFDither::processReplacing(float **inputs, float **outputs, VstInt32 samp
inputSampleL /= outScale; inputSampleL /= outScale;
inputSampleR /= outScale; inputSampleR /= outScale;
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
//pseudorandom number updater
*out1 = inputSampleL; *out1 = inputSampleL;
*out2 = inputSampleR; *out2 = inputSampleR;
@ -100,11 +104,11 @@ void TPDFDither::processDoubleReplacing(double **inputs, double **outputs, VstIn
inputSampleL -= 1.0; inputSampleL -= 1.0;
inputSampleR -= 1.0; inputSampleR -= 1.0;
inputSampleL += (rand()/(double)RAND_MAX); inputSampleL += (double(fpd)/UINT32_MAX);
inputSampleR += (rand()/(double)RAND_MAX); inputSampleR += (double(fpd)/UINT32_MAX);
inputSampleL += (rand()/(double)RAND_MAX); inputSampleL += (double(fpd)/UINT32_MAX);
inputSampleR += (rand()/(double)RAND_MAX); inputSampleR += (double(fpd)/UINT32_MAX);
inputSampleL = floor(inputSampleL); inputSampleL = floor(inputSampleL);
inputSampleR = floor(inputSampleR); inputSampleR = floor(inputSampleR);
@ -113,6 +117,10 @@ void TPDFDither::processDoubleReplacing(double **inputs, double **outputs, VstIn
inputSampleL /= outScale; inputSampleL /= outScale;
inputSampleR /= outScale; inputSampleR /= outScale;
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
//pseudorandom number updater
*out1 = inputSampleL; *out1 = inputSampleL;
*out2 = inputSampleR; *out2 = inputSampleR;

View file

@ -40,31 +40,31 @@ void TPDFWide::processReplacing(float **inputs, float **outputs, VstInt32 sample
//0-1 is now one bit, now we dither //0-1 is now one bit, now we dither
double ditherL = -1.0; double ditherL = -1.0;
ditherL += (rand()/(double)RAND_MAX); ditherL += (double(fpd)/UINT32_MAX);
ditherL += (rand()/(double)RAND_MAX); ditherL += (double(fpd)/UINT32_MAX);
//TPDF: two 0-1 random noises //TPDF: two 0-1 random noises
double ditherR = -1.0; double ditherR = -1.0;
ditherR += (rand()/(double)RAND_MAX); ditherR += (double(fpd)/UINT32_MAX);
ditherR += (rand()/(double)RAND_MAX); ditherR += (double(fpd)/UINT32_MAX);
//TPDF: two 0-1 random noises //TPDF: two 0-1 random noises
if (fabs(ditherL-ditherR) < 0.5) { if (fabs(ditherL-ditherR) < 0.5) {
ditherL = -1.0; ditherL = -1.0;
ditherL += (rand()/(double)RAND_MAX); ditherL += (double(fpd)/UINT32_MAX);
ditherL += (rand()/(double)RAND_MAX); ditherL += (double(fpd)/UINT32_MAX);
} }
if (fabs(ditherL-ditherR) < 0.5) { if (fabs(ditherL-ditherR) < 0.5) {
ditherR = -1.0; ditherR = -1.0;
ditherR += (rand()/(double)RAND_MAX); ditherR += (double(fpd)/UINT32_MAX);
ditherR += (rand()/(double)RAND_MAX); ditherR += (double(fpd)/UINT32_MAX);
} }
if (fabs(ditherL-ditherR) < 0.5) { if (fabs(ditherL-ditherR) < 0.5) {
ditherL = -1.0; ditherL = -1.0;
ditherL += (rand()/(double)RAND_MAX); ditherL += (double(fpd)/UINT32_MAX);
ditherL += (rand()/(double)RAND_MAX); ditherL += (double(fpd)/UINT32_MAX);
} }
inputSampleL = floor(inputSampleL+ditherL); inputSampleL = floor(inputSampleL+ditherL);
@ -73,6 +73,10 @@ void TPDFWide::processReplacing(float **inputs, float **outputs, VstInt32 sample
inputSampleL /= outScale; inputSampleL /= outScale;
inputSampleR /= outScale; inputSampleR /= outScale;
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
//pseudorandom number updater
*out1 = inputSampleL; *out1 = inputSampleL;
*out2 = inputSampleR; *out2 = inputSampleR;
@ -116,31 +120,31 @@ void TPDFWide::processDoubleReplacing(double **inputs, double **outputs, VstInt3
//0-1 is now one bit, now we dither //0-1 is now one bit, now we dither
double ditherL = -1.0; double ditherL = -1.0;
ditherL += (rand()/(double)RAND_MAX); ditherL += (double(fpd)/UINT32_MAX);
ditherL += (rand()/(double)RAND_MAX); ditherL += (double(fpd)/UINT32_MAX);
//TPDF: two 0-1 random noises //TPDF: two 0-1 random noises
double ditherR = -1.0; double ditherR = -1.0;
ditherR += (rand()/(double)RAND_MAX); ditherR += (double(fpd)/UINT32_MAX);
ditherR += (rand()/(double)RAND_MAX); ditherR += (double(fpd)/UINT32_MAX);
//TPDF: two 0-1 random noises //TPDF: two 0-1 random noises
if (fabs(ditherL-ditherR) < 0.5) { if (fabs(ditherL-ditherR) < 0.5) {
ditherL = -1.0; ditherL = -1.0;
ditherL += (rand()/(double)RAND_MAX); ditherL += (double(fpd)/UINT32_MAX);
ditherL += (rand()/(double)RAND_MAX); ditherL += (double(fpd)/UINT32_MAX);
} }
if (fabs(ditherL-ditherR) < 0.5) { if (fabs(ditherL-ditherR) < 0.5) {
ditherR = -1.0; ditherR = -1.0;
ditherR += (rand()/(double)RAND_MAX); ditherR += (double(fpd)/UINT32_MAX);
ditherR += (rand()/(double)RAND_MAX); ditherR += (double(fpd)/UINT32_MAX);
} }
if (fabs(ditherL-ditherR) < 0.5) { if (fabs(ditherL-ditherR) < 0.5) {
ditherL = -1.0; ditherL = -1.0;
ditherL += (rand()/(double)RAND_MAX); ditherL += (double(fpd)/UINT32_MAX);
ditherL += (rand()/(double)RAND_MAX); ditherL += (double(fpd)/UINT32_MAX);
} }
inputSampleL = floor(inputSampleL+ditherL); inputSampleL = floor(inputSampleL+ditherL);
@ -149,6 +153,10 @@ void TPDFWide::processDoubleReplacing(double **inputs, double **outputs, VstInt3
inputSampleL /= outScale; inputSampleL /= outScale;
inputSampleR /= outScale; inputSampleR /= outScale;
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
//pseudorandom number updater
*out1 = inputSampleL; *out1 = inputSampleL;
*out2 = inputSampleR; *out2 = inputSampleR;

View file

@ -553,12 +553,12 @@ void Tape::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sa
//final iron bar //final iron bar
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -41,8 +41,8 @@ void TapeDither::processReplacing(float **inputs, float **outputs, VstInt32 samp
inputSampleR *= scaleFactor; inputSampleR *= scaleFactor;
//0-1 is now one bit, now we dither //0-1 is now one bit, now we dither
currentDitherL = (rand()/(double)RAND_MAX); currentDitherL = (double(fpd)/UINT32_MAX);
currentDitherR = (rand()/(double)RAND_MAX); currentDitherR = (double(fpd)/UINT32_MAX);
inputSampleL += currentDitherL; inputSampleL += currentDitherL;
inputSampleR += currentDitherR; inputSampleR += currentDitherR;
@ -65,6 +65,10 @@ void TapeDither::processReplacing(float **inputs, float **outputs, VstInt32 samp
inputSampleL /= outScale; inputSampleL /= outScale;
inputSampleR /= outScale; inputSampleR /= outScale;
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
//pseudorandom number updater
*out1 = inputSampleL; *out1 = inputSampleL;
*out2 = inputSampleR; *out2 = inputSampleR;
@ -110,8 +114,8 @@ void TapeDither::processDoubleReplacing(double **inputs, double **outputs, VstIn
inputSampleR *= scaleFactor; inputSampleR *= scaleFactor;
//0-1 is now one bit, now we dither //0-1 is now one bit, now we dither
currentDitherL = (rand()/(double)RAND_MAX); currentDitherL = (double(fpd)/UINT32_MAX);
currentDitherR = (rand()/(double)RAND_MAX); currentDitherR = (double(fpd)/UINT32_MAX);
inputSampleL += currentDitherL; inputSampleL += currentDitherL;
inputSampleR += currentDitherR; inputSampleR += currentDitherR;
@ -134,6 +138,10 @@ void TapeDither::processDoubleReplacing(double **inputs, double **outputs, VstIn
inputSampleL /= outScale; inputSampleL /= outScale;
inputSampleR /= outScale; inputSampleR /= outScale;
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
//pseudorandom number updater
*out1 = inputSampleL; *out1 = inputSampleL;
*out2 = inputSampleR; *out2 = inputSampleR;

View file

@ -77,7 +77,7 @@ void ToTape5::processReplacing(float **inputs, float **outputs, VstInt32 sampleF
drySampleR = inputSampleR; drySampleR = inputSampleR;
flutterrandy = (rand()/(double)RAND_MAX); flutterrandy = (double(fpd)/UINT32_MAX);
randy = flutterrandy * tempRandy; //for soften randy = flutterrandy * tempRandy; //for soften
invrandy = (1.0-randy); invrandy = (1.0-randy);
randy /= 2.0; randy /= 2.0;
@ -406,7 +406,7 @@ void ToTape5::processDoubleReplacing(double **inputs, double **outputs, VstInt32
drySampleR = inputSampleR; drySampleR = inputSampleR;
flutterrandy = (rand()/(double)RAND_MAX); flutterrandy = (double(fpd)/UINT32_MAX);
randy = flutterrandy * tempRandy; //for soften randy = flutterrandy * tempRandy; //for soften
invrandy = (1.0-randy); invrandy = (1.0-randy);
randy /= 2.0; randy /= 2.0;

View file

@ -657,12 +657,12 @@ void ToTape6::processDoubleReplacing(double **inputs, double **outputs, VstInt32
} }
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -127,12 +127,12 @@ void TremoSquare::processDoubleReplacing(double **inputs, double **outputs, VstI
} }
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -627,12 +627,12 @@ void TripleSpread::processDoubleReplacing(double **inputs, double **outputs, Vst
//this plugin can throw insane outputs so we'll put in a hard clip //this plugin can throw insane outputs so we'll put in a hard clip
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -209,12 +209,12 @@ void Ultrasonic::processDoubleReplacing(double **inputs, double **outputs, VstIn
biquadE[12] = biquadE[11]; biquadE[11] = inputSampleR; inputSampleR = outSampleR; biquadE[14] = biquadE[13]; biquadE[13] = inputSampleR; //DF1 right biquadE[12] = biquadE[11]; biquadE[11] = inputSampleR; inputSampleR = outSampleR; biquadE[14] = biquadE[13]; biquadE[13] = inputSampleR; //DF1 right
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -91,12 +91,12 @@ void UltrasonicLite::processDoubleReplacing(double **inputs, double **outputs, V
biquadA[12] = biquadA[11]; biquadA[11] = inputSampleR; inputSampleR = outSampleR; biquadA[14] = biquadA[13]; biquadA[13] = inputSampleR; //DF1 right biquadA[12] = biquadA[11]; biquadA[11] = inputSampleR; inputSampleR = outSampleR; biquadA[14] = biquadA[13]; biquadA[13] = inputSampleR; //DF1 right
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -129,12 +129,12 @@ void UltrasonicMed::processDoubleReplacing(double **inputs, double **outputs, Vs
biquadB[12] = biquadB[11]; biquadB[11] = inputSampleR; inputSampleR = outSampleR; biquadB[14] = biquadB[13]; biquadB[13] = inputSampleR; //DF1 right biquadB[12] = biquadB[11]; biquadB[11] = inputSampleR; inputSampleR = outSampleR; biquadB[14] = biquadB[13]; biquadB[13] = inputSampleR; //DF1 right
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -185,12 +185,12 @@ void Vibrato::processDoubleReplacing(double **inputs, double **outputs, VstInt32
//Inv/Dry/Wet control //Inv/Dry/Wet control
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -41,37 +41,37 @@ void VinylDither::processReplacing(float **inputs, float **outputs, VstInt32 sam
inputSampleR *= scaleFactor; inputSampleR *= scaleFactor;
//0-1 is now one bit, now we dither //0-1 is now one bit, now we dither
absSample = ((rand()/(double)RAND_MAX) - 0.5); absSample = ((double(fpd)/UINT32_MAX) - 0.5);
nsL[0] += absSample; nsL[0] /= 2; absSample -= nsL[0]; nsL[0] += absSample; nsL[0] /= 2; absSample -= nsL[0];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[1] += absSample; nsL[1] /= 2; absSample -= nsL[1]; nsL[1] += absSample; nsL[1] /= 2; absSample -= nsL[1];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[2] += absSample; nsL[2] /= 2; absSample -= nsL[2]; nsL[2] += absSample; nsL[2] /= 2; absSample -= nsL[2];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[3] += absSample; nsL[3] /= 2; absSample -= nsL[3]; nsL[3] += absSample; nsL[3] /= 2; absSample -= nsL[3];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[4] += absSample; nsL[4] /= 2; absSample -= nsL[4]; nsL[4] += absSample; nsL[4] /= 2; absSample -= nsL[4];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[5] += absSample; nsL[5] /= 2; absSample -= nsL[5]; nsL[5] += absSample; nsL[5] /= 2; absSample -= nsL[5];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[6] += absSample; nsL[6] /= 2; absSample -= nsL[6]; nsL[6] += absSample; nsL[6] /= 2; absSample -= nsL[6];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[7] += absSample; nsL[7] /= 2; absSample -= nsL[7]; nsL[7] += absSample; nsL[7] /= 2; absSample -= nsL[7];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[8] += absSample; nsL[8] /= 2; absSample -= nsL[8]; nsL[8] += absSample; nsL[8] /= 2; absSample -= nsL[8];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[9] += absSample; nsL[9] /= 2; absSample -= nsL[9]; nsL[9] += absSample; nsL[9] /= 2; absSample -= nsL[9];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[10] += absSample; nsL[10] /= 2; absSample -= nsL[10]; nsL[10] += absSample; nsL[10] /= 2; absSample -= nsL[10];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[11] += absSample; nsL[11] /= 2; absSample -= nsL[11]; nsL[11] += absSample; nsL[11] /= 2; absSample -= nsL[11];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[12] += absSample; nsL[12] /= 2; absSample -= nsL[12]; nsL[12] += absSample; nsL[12] /= 2; absSample -= nsL[12];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[13] += absSample; nsL[13] /= 2; absSample -= nsL[13]; nsL[13] += absSample; nsL[13] /= 2; absSample -= nsL[13];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[14] += absSample; nsL[14] /= 2; absSample -= nsL[14]; nsL[14] += absSample; nsL[14] /= 2; absSample -= nsL[14];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[15] += absSample; nsL[15] /= 2; absSample -= nsL[15]; nsL[15] += absSample; nsL[15] /= 2; absSample -= nsL[15];
//install noise and then shape it //install noise and then shape it
absSample += inputSampleL; absSample += inputSampleL;
@ -87,37 +87,37 @@ void VinylDither::processReplacing(float **inputs, float **outputs, VstInt32 sam
inputSampleL = floor(absSample); inputSampleL = floor(absSample);
//TenNines dither L //TenNines dither L
absSample = ((rand()/(double)RAND_MAX) - 0.5); absSample = ((double(fpd)/UINT32_MAX) - 0.5);
nsR[0] += absSample; nsR[0] /= 2; absSample -= nsR[0]; nsR[0] += absSample; nsR[0] /= 2; absSample -= nsR[0];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[1] += absSample; nsR[1] /= 2; absSample -= nsR[1]; nsR[1] += absSample; nsR[1] /= 2; absSample -= nsR[1];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[2] += absSample; nsR[2] /= 2; absSample -= nsR[2]; nsR[2] += absSample; nsR[2] /= 2; absSample -= nsR[2];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[3] += absSample; nsR[3] /= 2; absSample -= nsR[3]; nsR[3] += absSample; nsR[3] /= 2; absSample -= nsR[3];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[4] += absSample; nsR[4] /= 2; absSample -= nsR[4]; nsR[4] += absSample; nsR[4] /= 2; absSample -= nsR[4];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[5] += absSample; nsR[5] /= 2; absSample -= nsR[5]; nsR[5] += absSample; nsR[5] /= 2; absSample -= nsR[5];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[6] += absSample; nsR[6] /= 2; absSample -= nsR[6]; nsR[6] += absSample; nsR[6] /= 2; absSample -= nsR[6];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[7] += absSample; nsR[7] /= 2; absSample -= nsR[7]; nsR[7] += absSample; nsR[7] /= 2; absSample -= nsR[7];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[8] += absSample; nsR[8] /= 2; absSample -= nsR[8]; nsR[8] += absSample; nsR[8] /= 2; absSample -= nsR[8];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[9] += absSample; nsR[9] /= 2; absSample -= nsR[9]; nsR[9] += absSample; nsR[9] /= 2; absSample -= nsR[9];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[10] += absSample; nsR[10] /= 2; absSample -= nsR[10]; nsR[10] += absSample; nsR[10] /= 2; absSample -= nsR[10];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[11] += absSample; nsR[11] /= 2; absSample -= nsR[11]; nsR[11] += absSample; nsR[11] /= 2; absSample -= nsR[11];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[12] += absSample; nsR[12] /= 2; absSample -= nsR[12]; nsR[12] += absSample; nsR[12] /= 2; absSample -= nsR[12];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[13] += absSample; nsR[13] /= 2; absSample -= nsR[13]; nsR[13] += absSample; nsR[13] /= 2; absSample -= nsR[13];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[14] += absSample; nsR[14] /= 2; absSample -= nsR[14]; nsR[14] += absSample; nsR[14] /= 2; absSample -= nsR[14];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[15] += absSample; nsR[15] /= 2; absSample -= nsR[15]; nsR[15] += absSample; nsR[15] /= 2; absSample -= nsR[15];
//install noise and then shape it //install noise and then shape it
absSample += inputSampleR; absSample += inputSampleR;
@ -136,6 +136,10 @@ void VinylDither::processReplacing(float **inputs, float **outputs, VstInt32 sam
inputSampleL /= outScale; inputSampleL /= outScale;
inputSampleR /= outScale; inputSampleR /= outScale;
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
//pseudorandom number updater
*out1 = inputSampleL; *out1 = inputSampleL;
*out2 = inputSampleR; *out2 = inputSampleR;
@ -180,37 +184,37 @@ void VinylDither::processDoubleReplacing(double **inputs, double **outputs, VstI
inputSampleR *= scaleFactor; inputSampleR *= scaleFactor;
//0-1 is now one bit, now we dither //0-1 is now one bit, now we dither
absSample = ((rand()/(double)RAND_MAX) - 0.5); absSample = ((double(fpd)/UINT32_MAX) - 0.5);
nsL[0] += absSample; nsL[0] /= 2; absSample -= nsL[0]; nsL[0] += absSample; nsL[0] /= 2; absSample -= nsL[0];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[1] += absSample; nsL[1] /= 2; absSample -= nsL[1]; nsL[1] += absSample; nsL[1] /= 2; absSample -= nsL[1];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[2] += absSample; nsL[2] /= 2; absSample -= nsL[2]; nsL[2] += absSample; nsL[2] /= 2; absSample -= nsL[2];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[3] += absSample; nsL[3] /= 2; absSample -= nsL[3]; nsL[3] += absSample; nsL[3] /= 2; absSample -= nsL[3];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[4] += absSample; nsL[4] /= 2; absSample -= nsL[4]; nsL[4] += absSample; nsL[4] /= 2; absSample -= nsL[4];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[5] += absSample; nsL[5] /= 2; absSample -= nsL[5]; nsL[5] += absSample; nsL[5] /= 2; absSample -= nsL[5];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[6] += absSample; nsL[6] /= 2; absSample -= nsL[6]; nsL[6] += absSample; nsL[6] /= 2; absSample -= nsL[6];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[7] += absSample; nsL[7] /= 2; absSample -= nsL[7]; nsL[7] += absSample; nsL[7] /= 2; absSample -= nsL[7];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[8] += absSample; nsL[8] /= 2; absSample -= nsL[8]; nsL[8] += absSample; nsL[8] /= 2; absSample -= nsL[8];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[9] += absSample; nsL[9] /= 2; absSample -= nsL[9]; nsL[9] += absSample; nsL[9] /= 2; absSample -= nsL[9];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[10] += absSample; nsL[10] /= 2; absSample -= nsL[10]; nsL[10] += absSample; nsL[10] /= 2; absSample -= nsL[10];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[11] += absSample; nsL[11] /= 2; absSample -= nsL[11]; nsL[11] += absSample; nsL[11] /= 2; absSample -= nsL[11];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[12] += absSample; nsL[12] /= 2; absSample -= nsL[12]; nsL[12] += absSample; nsL[12] /= 2; absSample -= nsL[12];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[13] += absSample; nsL[13] /= 2; absSample -= nsL[13]; nsL[13] += absSample; nsL[13] /= 2; absSample -= nsL[13];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[14] += absSample; nsL[14] /= 2; absSample -= nsL[14]; nsL[14] += absSample; nsL[14] /= 2; absSample -= nsL[14];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsL[15] += absSample; nsL[15] /= 2; absSample -= nsL[15]; nsL[15] += absSample; nsL[15] /= 2; absSample -= nsL[15];
//install noise and then shape it //install noise and then shape it
absSample += inputSampleL; absSample += inputSampleL;
@ -226,37 +230,37 @@ void VinylDither::processDoubleReplacing(double **inputs, double **outputs, VstI
inputSampleL = floor(absSample); inputSampleL = floor(absSample);
//TenNines dither L //TenNines dither L
absSample = ((rand()/(double)RAND_MAX) - 0.5); absSample = ((double(fpd)/UINT32_MAX) - 0.5);
nsR[0] += absSample; nsR[0] /= 2; absSample -= nsR[0]; nsR[0] += absSample; nsR[0] /= 2; absSample -= nsR[0];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[1] += absSample; nsR[1] /= 2; absSample -= nsR[1]; nsR[1] += absSample; nsR[1] /= 2; absSample -= nsR[1];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[2] += absSample; nsR[2] /= 2; absSample -= nsR[2]; nsR[2] += absSample; nsR[2] /= 2; absSample -= nsR[2];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[3] += absSample; nsR[3] /= 2; absSample -= nsR[3]; nsR[3] += absSample; nsR[3] /= 2; absSample -= nsR[3];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[4] += absSample; nsR[4] /= 2; absSample -= nsR[4]; nsR[4] += absSample; nsR[4] /= 2; absSample -= nsR[4];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[5] += absSample; nsR[5] /= 2; absSample -= nsR[5]; nsR[5] += absSample; nsR[5] /= 2; absSample -= nsR[5];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[6] += absSample; nsR[6] /= 2; absSample -= nsR[6]; nsR[6] += absSample; nsR[6] /= 2; absSample -= nsR[6];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[7] += absSample; nsR[7] /= 2; absSample -= nsR[7]; nsR[7] += absSample; nsR[7] /= 2; absSample -= nsR[7];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[8] += absSample; nsR[8] /= 2; absSample -= nsR[8]; nsR[8] += absSample; nsR[8] /= 2; absSample -= nsR[8];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[9] += absSample; nsR[9] /= 2; absSample -= nsR[9]; nsR[9] += absSample; nsR[9] /= 2; absSample -= nsR[9];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[10] += absSample; nsR[10] /= 2; absSample -= nsR[10]; nsR[10] += absSample; nsR[10] /= 2; absSample -= nsR[10];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[11] += absSample; nsR[11] /= 2; absSample -= nsR[11]; nsR[11] += absSample; nsR[11] /= 2; absSample -= nsR[11];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[12] += absSample; nsR[12] /= 2; absSample -= nsR[12]; nsR[12] += absSample; nsR[12] /= 2; absSample -= nsR[12];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[13] += absSample; nsR[13] /= 2; absSample -= nsR[13]; nsR[13] += absSample; nsR[13] /= 2; absSample -= nsR[13];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[14] += absSample; nsR[14] /= 2; absSample -= nsR[14]; nsR[14] += absSample; nsR[14] /= 2; absSample -= nsR[14];
absSample += ((rand()/(double)RAND_MAX) - 0.5); absSample += ((double(fpd)/UINT32_MAX) - 0.5);
nsR[15] += absSample; nsR[15] /= 2; absSample -= nsR[15]; nsR[15] += absSample; nsR[15] /= 2; absSample -= nsR[15];
//install noise and then shape it //install noise and then shape it
absSample += inputSampleR; absSample += inputSampleR;
@ -275,6 +279,10 @@ void VinylDither::processDoubleReplacing(double **inputs, double **outputs, VstI
inputSampleL /= outScale; inputSampleL /= outScale;
inputSampleR /= outScale; inputSampleR /= outScale;
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
//pseudorandom number updater
*out1 = inputSampleL; *out1 = inputSampleL;
*out2 = inputSampleR; *out2 = inputSampleR;

View file

@ -110,10 +110,10 @@ void VoiceOfTheStarship::processReplacing(float **inputs, float **outputs, VstIn
//it's a pure random walk that will generate DC. //it's a pure random walk that will generate DC.
} }
if (flipL) noiseAL += (rand()/(double)RAND_MAX); if (flipL) noiseAL += (double(fpd)/UINT32_MAX);
else noiseAL -= (rand()/(double)RAND_MAX); else noiseAL -= (double(fpd)/UINT32_MAX);
if (flipR) noiseAR += (rand()/(double)RAND_MAX); if (flipR) noiseAR += (double(fpd)/UINT32_MAX);
else noiseAR -= (rand()/(double)RAND_MAX); else noiseAR -= (double(fpd)/UINT32_MAX);
//here's the guts of the random walk //here's the guts of the random walk
if (filterflip) if (filterflip)
@ -300,10 +300,10 @@ void VoiceOfTheStarship::processDoubleReplacing(double **inputs, double **output
//it's a pure random walk that will generate DC. //it's a pure random walk that will generate DC.
} }
if (flipL) noiseAL += (rand()/(double)RAND_MAX); if (flipL) noiseAL += (double(fpd)/UINT32_MAX);
else noiseAL -= (rand()/(double)RAND_MAX); else noiseAL -= (double(fpd)/UINT32_MAX);
if (flipR) noiseAR += (rand()/(double)RAND_MAX); if (flipR) noiseAR += (double(fpd)/UINT32_MAX);
else noiseAR -= (rand()/(double)RAND_MAX); else noiseAR -= (double(fpd)/UINT32_MAX);
//here's the guts of the random walk //here's the guts of the random walk
if (filterflip) if (filterflip)

View file

@ -195,12 +195,12 @@ void VoiceTrick::processDoubleReplacing(double **inputs, double **outputs, VstIn
//Thanks to Peter Gabriel for many great examples of hit vocals recorded just like this :) //Thanks to Peter Gabriel for many great examples of hit vocals recorded just like this :)
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -87,12 +87,12 @@ void curve::processDoubleReplacing(double **inputs, double **outputs, VstInt32 s
inputSampleR *= 2.0; inputSampleR *= 2.0;
//begin 64 bit stereo floating point dither //begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon); //int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
frexp((double)inputSampleR, &expon); //frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpd)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62)); //inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither //end 64 bit stereo floating point dither
*out1 = inputSampleL; *out1 = inputSampleL;

View file

@ -49,12 +49,12 @@
PBXFileDataSource_Warnings_ColumnID, PBXFileDataSource_Warnings_ColumnID,
); );
}; };
PBXPerProjectTemplateStateSaveDate = 569587824; PBXPerProjectTemplateStateSaveDate = 667720785;
PBXWorkspaceStateSaveDate = 569587824; PBXWorkspaceStateSaveDate = 667720785;
}; };
perUserProjectItems = { perUserProjectItems = {
8B79272821F33919006E9731 /* PBXTextBookmark */ = 8B79272821F33919006E9731 /* PBXTextBookmark */; 8B1A8D4E27CC9C5600649D11 /* PBXTextBookmark */ = 8B1A8D4E27CC9C5600649D11 /* PBXTextBookmark */;
8B79273321F33979006E9731 /* PBXTextBookmark */ = 8B79273321F33979006E9731 /* PBXTextBookmark */; 8B9FE17F27CAD398002EC0AA /* PBXTextBookmark */ = 8B9FE17F27CAD398002EC0AA /* PBXTextBookmark */;
8BAC117C1F8245C00066CBCE /* PlistBookmark */ = 8BAC117C1F8245C00066CBCE /* PlistBookmark */; 8BAC117C1F8245C00066CBCE /* PlistBookmark */ = 8BAC117C1F8245C00066CBCE /* PlistBookmark */;
8BBB330321C4563C00825986 /* PBXTextBookmark */ = 8BBB330321C4563C00825986 /* PBXTextBookmark */; 8BBB330321C4563C00825986 /* PBXTextBookmark */ = 8BBB330321C4563C00825986 /* PBXTextBookmark */;
}; };
@ -62,32 +62,32 @@
userBuildSettings = { userBuildSettings = {
}; };
}; };
8B79272821F33919006E9731 /* PBXTextBookmark */ = { 8B1A8D4E27CC9C5600649D11 /* PBXTextBookmark */ = {
isa = PBXTextBookmark; isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* ADClip7.cpp */; fRef = 8BA05A660720730100365D66 /* ADClip7.cpp */;
name = "ADClip7.cpp: 205"; name = "ADClip7.cpp: 205";
rLen = 7; rLen = 7;
rLoc = 9006; rLoc = 9006;
rType = 0; rType = 0;
vrLen = 261; vrLen = 60;
vrLoc = 9866; vrLoc = 9844;
}; };
8B79273321F33979006E9731 /* PBXTextBookmark */ = { 8B9FE17F27CAD398002EC0AA /* PBXTextBookmark */ = {
isa = PBXTextBookmark; isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* ADClip7.cpp */; fRef = 8BA05A660720730100365D66 /* ADClip7.cpp */;
name = "ADClip7.cpp: 205"; name = "ADClip7.cpp: 205";
rLen = 7; rLen = 7;
rLoc = 9006; rLoc = 9006;
rType = 0; rType = 0;
vrLen = 215; vrLen = 121;
vrLoc = 9864; vrLoc = 9844;
}; };
8BA05A660720730100365D66 /* ADClip7.cpp */ = { 8BA05A660720730100365D66 /* ADClip7.cpp */ = {
uiCtxt = { uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {572, 6513}}"; sepNavIntBoundsRect = "{{0, 0}, {579, 8514}}";
sepNavSelRange = "{9006, 7}"; sepNavSelRange = "{9006, 7}";
sepNavVisRange = "{9864, 215}"; sepNavVisRange = "{9844, 60}";
sepNavWindowFrame = "{{327, 43}, {1027, 835}}"; sepNavWindowFrame = "{{253, 4}, {1027, 694}}";
}; };
}; };
8BA05A690720730100365D66 /* ADClip7Version.h */ = { 8BA05A690720730100365D66 /* ADClip7Version.h */ = {

View file

@ -256,6 +256,8 @@
<key>Layout</key> <key>Layout</key>
<array> <array>
<dict> <dict>
<key>BecomeActive</key>
<true/>
<key>ContentConfiguration</key> <key>ContentConfiguration</key>
<dict> <dict>
<key>PBXBottomSmartGroupGIDs</key> <key>PBXBottomSmartGroupGIDs</key>
@ -307,7 +309,7 @@
</array> </array>
</array> </array>
<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key> <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
<string>{{0, 0}, {288, 595}}</string> <string>{{0, 0}, {288, 585}}</string>
</dict> </dict>
<key>PBXTopSmartGroupGIDs</key> <key>PBXTopSmartGroupGIDs</key>
<array/> <array/>
@ -317,14 +319,14 @@
<key>GeometryConfiguration</key> <key>GeometryConfiguration</key>
<dict> <dict>
<key>Frame</key> <key>Frame</key>
<string>{{0, 0}, {305, 613}}</string> <string>{{0, 0}, {305, 603}}</string>
<key>GroupTreeTableConfiguration</key> <key>GroupTreeTableConfiguration</key>
<array> <array>
<string>MainColumn</string> <string>MainColumn</string>
<real>288</real> <real>288</real>
</array> </array>
<key>RubberWindowFrame</key> <key>RubberWindowFrame</key>
<string>391 159 841 654 0 0 1440 878 </string> <string>392 234 841 644 0 0 1440 878 </string>
</dict> </dict>
<key>Module</key> <key>Module</key>
<string>PBXSmartGroupTreeModule</string> <string>PBXSmartGroupTreeModule</string>
@ -352,12 +354,12 @@
<key>_historyCapacity</key> <key>_historyCapacity</key>
<integer>0</integer> <integer>0</integer>
<key>bookmark</key> <key>bookmark</key>
<string>8B79273321F33979006E9731</string> <string>8B1A8D4E27CC9C5600649D11</string>
<key>history</key> <key>history</key>
<array> <array>
<string>8BAC117C1F8245C00066CBCE</string> <string>8BAC117C1F8245C00066CBCE</string>
<string>8BBB330321C4563C00825986</string> <string>8BBB330321C4563C00825986</string>
<string>8B79272821F33919006E9731</string> <string>8B9FE17F27CAD398002EC0AA</string>
</array> </array>
</dict> </dict>
<key>SplitCount</key> <key>SplitCount</key>
@ -371,18 +373,18 @@
<key>GeometryConfiguration</key> <key>GeometryConfiguration</key>
<dict> <dict>
<key>Frame</key> <key>Frame</key>
<string>{{0, 0}, {531, 92}}</string> <string>{{0, 0}, {531, 54}}</string>
<key>RubberWindowFrame</key> <key>RubberWindowFrame</key>
<string>391 159 841 654 0 0 1440 878 </string> <string>392 234 841 644 0 0 1440 878 </string>
</dict> </dict>
<key>Module</key> <key>Module</key>
<string>PBXNavigatorGroup</string> <string>PBXNavigatorGroup</string>
<key>Proportion</key> <key>Proportion</key>
<string>92pt</string> <string>54pt</string>
</dict> </dict>
<dict> <dict>
<key>Proportion</key> <key>Proportion</key>
<string>516pt</string> <string>544pt</string>
<key>Tabs</key> <key>Tabs</key>
<array> <array>
<dict> <dict>
@ -396,7 +398,9 @@
<key>GeometryConfiguration</key> <key>GeometryConfiguration</key>
<dict> <dict>
<key>Frame</key> <key>Frame</key>
<string>{{10, 27}, {531, 489}}</string> <string>{{10, 27}, {531, 517}}</string>
<key>RubberWindowFrame</key>
<string>392 234 841 644 0 0 1440 878 </string>
</dict> </dict>
<key>Module</key> <key>Module</key>
<string>XCDetailModule</string> <string>XCDetailModule</string>
@ -451,8 +455,6 @@
<dict> <dict>
<key>Frame</key> <key>Frame</key>
<string>{{10, 27}, {531, 489}}</string> <string>{{10, 27}, {531, 489}}</string>
<key>RubberWindowFrame</key>
<string>391 159 841 654 0 0 1440 878 </string>
</dict> </dict>
<key>Module</key> <key>Module</key>
<string>PBXBuildResultsModule</string> <string>PBXBuildResultsModule</string>
@ -480,11 +482,11 @@
</array> </array>
<key>TableOfContents</key> <key>TableOfContents</key>
<array> <array>
<string>8B79273421F33979006E9731</string> <string>8B1A8D4F27CC9C5600649D11</string>
<string>1CA23ED40692098700951B8B</string> <string>1CA23ED40692098700951B8B</string>
<string>8B79273521F33979006E9731</string> <string>8B1A8D5027CC9C5600649D11</string>
<string>8BD7274A1D46E5A5000176F0</string> <string>8BD7274A1D46E5A5000176F0</string>
<string>8B79273621F33979006E9731</string> <string>8B1A8D5127CC9C5600649D11</string>
<string>1CA23EDF0692099D00951B8B</string> <string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string> <string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string> <string>1CA23EE10692099D00951B8B</string>
@ -657,7 +659,7 @@
<key>StatusbarIsVisible</key> <key>StatusbarIsVisible</key>
<true/> <true/>
<key>TimeStamp</key> <key>TimeStamp</key>
<real>569588089.57457805</real> <real>667720790.04876494</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key> <key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string> <string>2</string>
<key>ToolbarDisplayMode</key> <key>ToolbarDisplayMode</key>
@ -674,11 +676,10 @@
<integer>5</integer> <integer>5</integer>
<key>WindowOrderList</key> <key>WindowOrderList</key>
<array> <array>
<string>8B79273721F33979006E9731</string> <string>/Users/christopherjohnson/Desktop/airwindows/plugins/MacAU/ADClip7/ADClip7.xcodeproj</string>
<string>/Users/christopherjohnson/Desktop/MacAU/ADClip7/ADClip7.xcodeproj</string>
</array> </array>
<key>WindowString</key> <key>WindowString</key>
<string>391 159 841 654 0 0 1440 878 </string> <string>392 234 841 644 0 0 1440 878 </string>
<key>WindowToolsV3</key> <key>WindowToolsV3</key>
<array> <array>
<dict> <dict>

View file

@ -49,18 +49,18 @@
PBXFileDataSource_Warnings_ColumnID, PBXFileDataSource_Warnings_ColumnID,
); );
}; };
PBXPerProjectTemplateStateSaveDate = 631579871; PBXPerProjectTemplateStateSaveDate = 667720800;
PBXWorkspaceStateSaveDate = 631579871; PBXWorkspaceStateSaveDate = 667720800;
}; };
perUserProjectItems = { perUserProjectItems = {
8B2E795625A5250900485B86 /* PlistBookmark */ = 8B2E795625A5250900485B86 /* PlistBookmark */; 8B1A8D5E27CC9C7200649D11 /* PlistBookmark */ = 8B1A8D5E27CC9C7200649D11 /* PlistBookmark */;
8BA53C0C22217287005CB2C3 /* PlistBookmark */ = 8BA53C0C22217287005CB2C3 /* PlistBookmark */; 8B9FE1AE27CAD3BB002EC0AA /* PlistBookmark */ = 8B9FE1AE27CAD3BB002EC0AA /* PlistBookmark */;
}; };
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */; sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
userBuildSettings = { userBuildSettings = {
}; };
}; };
8B2E795625A5250900485B86 /* PlistBookmark */ = { 8B1A8D5E27CC9C7200649D11 /* PlistBookmark */ = {
isa = PlistBookmark; isa = PlistBookmark;
fRef = 8D01CCD10486CAD60068D4B7 /* Info.plist */; fRef = 8D01CCD10486CAD60068D4B7 /* Info.plist */;
fallbackIsa = PBXBookmark; fallbackIsa = PBXBookmark;
@ -68,16 +68,28 @@
kPath = ( kPath = (
CFBundleName, CFBundleName,
); );
name = /Users/christopherjohnson/Desktop/Plugins/MacAU/ADT/Info.plist; name = /Users/christopherjohnson/Desktop/airwindows/plugins/MacAU/ADT/Info.plist;
rLen = 0; rLen = 0;
rLoc = 9223372036854775807; rLoc = 9223372036854775807;
}; };
8B9FE1AE27CAD3BB002EC0AA /* PlistBookmark */ = {
isa = PlistBookmark;
fRef = 8D01CCD10486CAD60068D4B7 /* Info.plist */;
fallbackIsa = PBXBookmark;
isK = 0;
kPath = (
CFBundleName,
);
name = /Users/christopherjohnson/Desktop/airwindows/plugins/MacAU/ADT/Info.plist;
rLen = 0;
rLoc = 9223372036854775808;
};
8BA05A660720730100365D66 /* ADT.cpp */ = { 8BA05A660720730100365D66 /* ADT.cpp */ = {
uiCtxt = { uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1056, 5652}}"; sepNavIntBoundsRect = "{{0, 0}, {1056, 5580}}";
sepNavSelRange = "{0, 0}"; sepNavSelRange = "{0, 0}";
sepNavVisRange = "{10756, 1548}"; sepNavVisRange = "{9853, 1058}";
sepNavWindowFrame = "{{396, 68}, {890, 810}}"; sepNavWindowFrame = "{{390, 4}, {890, 694}}";
}; };
}; };
8BA05A690720730100365D66 /* ADTVersion.h */ = { 8BA05A690720730100365D66 /* ADTVersion.h */ = {
@ -88,18 +100,6 @@
sepNavWindowFrame = "{{15, 63}, {890, 810}}"; sepNavWindowFrame = "{{15, 63}, {890, 810}}";
}; };
}; };
8BA53C0C22217287005CB2C3 /* PlistBookmark */ = {
isa = PlistBookmark;
fRef = 8D01CCD10486CAD60068D4B7 /* Info.plist */;
fallbackIsa = PBXBookmark;
isK = 0;
kPath = (
CFBundleName,
);
name = /Users/christopherjohnson/Desktop/Plugins/MacAU/ADT/Info.plist;
rLen = 0;
rLoc = 0;
};
8BC6025B073B072D006C4272 /* ADT.h */ = { 8BC6025B073B072D006C4272 /* ADT.h */ = {
uiCtxt = { uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {894, 2028}}"; sepNavIntBoundsRect = "{{0, 0}, {894, 2028}}";

View file

@ -326,7 +326,7 @@
<real>288</real> <real>288</real>
</array> </array>
<key>RubberWindowFrame</key> <key>RubberWindowFrame</key>
<string>597 292 653 504 0 0 1440 878 </string> <string>597 293 653 504 0 0 1440 878 </string>
</dict> </dict>
<key>Module</key> <key>Module</key>
<string>PBXSmartGroupTreeModule</string> <string>PBXSmartGroupTreeModule</string>
@ -354,10 +354,10 @@
<key>_historyCapacity</key> <key>_historyCapacity</key>
<integer>0</integer> <integer>0</integer>
<key>bookmark</key> <key>bookmark</key>
<string>8B2E795625A5250900485B86</string> <string>8B1A8D5E27CC9C7200649D11</string>
<key>history</key> <key>history</key>
<array> <array>
<string>8BA53C0C22217287005CB2C3</string> <string>8B9FE1AE27CAD3BB002EC0AA</string>
</array> </array>
</dict> </dict>
<key>SplitCount</key> <key>SplitCount</key>
@ -373,7 +373,7 @@
<key>Frame</key> <key>Frame</key>
<string>{{0, 0}, {343, 0}}</string> <string>{{0, 0}, {343, 0}}</string>
<key>RubberWindowFrame</key> <key>RubberWindowFrame</key>
<string>597 292 653 504 0 0 1440 878 </string> <string>597 293 653 504 0 0 1440 878 </string>
</dict> </dict>
<key>Module</key> <key>Module</key>
<string>PBXNavigatorGroup</string> <string>PBXNavigatorGroup</string>
@ -398,7 +398,7 @@
<key>Frame</key> <key>Frame</key>
<string>{{10, 27}, {343, 431}}</string> <string>{{10, 27}, {343, 431}}</string>
<key>RubberWindowFrame</key> <key>RubberWindowFrame</key>
<string>597 292 653 504 0 0 1440 878 </string> <string>597 293 653 504 0 0 1440 878 </string>
</dict> </dict>
<key>Module</key> <key>Module</key>
<string>XCDetailModule</string> <string>XCDetailModule</string>
@ -480,11 +480,11 @@
</array> </array>
<key>TableOfContents</key> <key>TableOfContents</key>
<array> <array>
<string>8B2E795725A5250900485B86</string> <string>8B1A8D5F27CC9C7200649D11</string>
<string>1CA23ED40692098700951B8B</string> <string>1CA23ED40692098700951B8B</string>
<string>8B2E795825A5250900485B86</string> <string>8B1A8D6027CC9C7200649D11</string>
<string>8BD7274A1D46E5A5000176F0</string> <string>8BD7274A1D46E5A5000176F0</string>
<string>8B2E795925A5250900485B86</string> <string>8B1A8D6127CC9C7200649D11</string>
<string>1CA23EDF0692099D00951B8B</string> <string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string> <string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string> <string>1CA23EE10692099D00951B8B</string>
@ -657,7 +657,7 @@
<key>StatusbarIsVisible</key> <key>StatusbarIsVisible</key>
<true/> <true/>
<key>TimeStamp</key> <key>TimeStamp</key>
<real>631579913.66563702</real> <real>667720818.60424101</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key> <key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string> <string>2</string>
<key>ToolbarDisplayMode</key> <key>ToolbarDisplayMode</key>
@ -674,11 +674,11 @@
<integer>5</integer> <integer>5</integer>
<key>WindowOrderList</key> <key>WindowOrderList</key>
<array> <array>
<string>8B2E795A25A5250900485B86</string> <string>8B1A8D6227CC9C7200649D11</string>
<string>/Users/christopherjohnson/Desktop/Plugins/MacAU/ADT/ADT.xcodeproj</string> <string>/Users/christopherjohnson/Desktop/airwindows/plugins/MacAU/ADT/ADT.xcodeproj</string>
</array> </array>
<key>WindowString</key> <key>WindowString</key>
<string>597 292 653 504 0 0 1440 878 </string> <string>597 293 653 504 0 0 1440 878 </string>
<key>WindowToolsV3</key> <key>WindowToolsV3</key>
<array> <array>
<dict> <dict>

View file

@ -385,7 +385,7 @@ void AQuickVoiceClip::AQuickVoiceClipKernel::Process( const Float32 *inSourceP
iirSampleD = (iirSampleD * altAmount) + (passThrough * iirAmount); iirSampleD = (iirSampleD * altAmount) + (passThrough * iirAmount);
passThrough -= iirSampleD; passThrough -= iirSampleD;
} }
flip = not flip; flip = !flip;
//highpass section //highpass section

View file

@ -159,6 +159,7 @@ public:
Float64 iirSampleD; Float64 iirSampleD;
bool flip; bool flip;
Float64 fpNShape; Float64 fpNShape;
uint32_t fpd;
}; };
}; };

View file

@ -49,17 +49,27 @@
PBXFileDataSource_Warnings_ColumnID, PBXFileDataSource_Warnings_ColumnID,
); );
}; };
PBXPerProjectTemplateStateSaveDate = 569588500; PBXPerProjectTemplateStateSaveDate = 667720848;
PBXWorkspaceStateSaveDate = 569588500; PBXWorkspaceStateSaveDate = 667720848;
}; };
perUserProjectItems = { perUserProjectItems = {
8B1A8D9927CC9CE500649D11 /* PBXTextBookmark */ = 8B1A8D9927CC9CE500649D11 /* PBXTextBookmark */;
8B79277E21F33BC7006E9731 /* PBXTextBookmark */ = 8B79277E21F33BC7006E9731 /* PBXTextBookmark */; 8B79277E21F33BC7006E9731 /* PBXTextBookmark */ = 8B79277E21F33BC7006E9731 /* PBXTextBookmark */;
8B9D72B61F7F1114007AB60F /* PBXTextBookmark */ = 8B9D72B61F7F1114007AB60F /* PBXTextBookmark */;
}; };
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */; sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
userBuildSettings = { userBuildSettings = {
}; };
}; };
8B1A8D9927CC9CE500649D11 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A690720730100365D66 /* AQuickVoiceClipVersion.h */;
name = "AQuickVoiceClipVersion.h: 54";
rLen = 0;
rLoc = 2936;
rType = 0;
vrLen = 0;
vrLoc = 0;
};
8B79277E21F33BC7006E9731 /* PBXTextBookmark */ = { 8B79277E21F33BC7006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark; isa = PBXTextBookmark;
fRef = 8BA05A690720730100365D66 /* AQuickVoiceClipVersion.h */; fRef = 8BA05A690720730100365D66 /* AQuickVoiceClipVersion.h */;
@ -70,27 +80,17 @@
vrLen = 0; vrLen = 0;
vrLoc = 0; vrLoc = 0;
}; };
8B9D72B61F7F1114007AB60F /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A690720730100365D66 /* AQuickVoiceClipVersion.h */;
name = "AQuickVoiceClipVersion.h: 54";
rLen = 0;
rLoc = 2936;
rType = 0;
vrLen = 0;
vrLoc = 0;
};
8BA05A660720730100365D66 /* AQuickVoiceClip.cpp */ = { 8BA05A660720730100365D66 /* AQuickVoiceClip.cpp */ = {
uiCtxt = { uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1104, 6604}}"; sepNavIntBoundsRect = "{{0, 0}, {1884, 7704}}";
sepNavSelRange = "{16734, 0}"; sepNavSelRange = "{0, 0}";
sepNavVisRange = "{15329, 1491}"; sepNavVisRange = "{13441, 1096}";
sepNavWindowFrame = "{{175, 59}, {1151, 803}}"; sepNavWindowFrame = "{{175, 59}, {1151, 803}}";
}; };
}; };
8BA05A690720730100365D66 /* AQuickVoiceClipVersion.h */ = { 8BA05A690720730100365D66 /* AQuickVoiceClipVersion.h */ = {
uiCtxt = { uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {518, 806}}"; sepNavIntBoundsRect = "{{0, 0}, {518, 1116}}";
sepNavSelRange = "{2936, 0}"; sepNavSelRange = "{2936, 0}";
sepNavVisRange = "{0, 0}"; sepNavVisRange = "{0, 0}";
sepNavWindowFrame = "{{15, 70}, {1151, 803}}"; sepNavWindowFrame = "{{15, 70}, {1151, 803}}";
@ -98,9 +98,9 @@
}; };
8BC6025B073B072D006C4272 /* AQuickVoiceClip.h */ = { 8BC6025B073B072D006C4272 /* AQuickVoiceClip.h */ = {
uiCtxt = { uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1104, 2392}}"; sepNavIntBoundsRect = "{{0, 0}, {1146, 3546}}";
sepNavSelRange = "{5940, 0}"; sepNavSelRange = "{5956, 0}";
sepNavVisRange = "{4794, 1256}"; sepNavVisRange = "{5227, 833}";
sepNavWindowFrame = "{{16, 57}, {1151, 803}}"; sepNavWindowFrame = "{{16, 57}, {1151, 803}}";
}; };
}; };

View file

@ -256,6 +256,8 @@
<key>Layout</key> <key>Layout</key>
<array> <array>
<dict> <dict>
<key>BecomeActive</key>
<true/>
<key>ContentConfiguration</key> <key>ContentConfiguration</key>
<dict> <dict>
<key>PBXBottomSmartGroupGIDs</key> <key>PBXBottomSmartGroupGIDs</key>
@ -298,7 +300,7 @@
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key> <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
<array> <array>
<array> <array>
<integer>4</integer> <integer>3</integer>
<integer>2</integer> <integer>2</integer>
<integer>1</integer> <integer>1</integer>
<integer>0</integer> <integer>0</integer>
@ -350,10 +352,10 @@
<key>_historyCapacity</key> <key>_historyCapacity</key>
<integer>0</integer> <integer>0</integer>
<key>bookmark</key> <key>bookmark</key>
<string>8B79277E21F33BC7006E9731</string> <string>8B1A8D9927CC9CE500649D11</string>
<key>history</key> <key>history</key>
<array> <array>
<string>8B9D72B61F7F1114007AB60F</string> <string>8B79277E21F33BC7006E9731</string>
</array> </array>
</dict> </dict>
<key>SplitCount</key> <key>SplitCount</key>
@ -476,11 +478,11 @@
</array> </array>
<key>TableOfContents</key> <key>TableOfContents</key>
<array> <array>
<string>8B79277F21F33BC7006E9731</string> <string>8B1A8D9A27CC9CE500649D11</string>
<string>1CA23ED40692098700951B8B</string> <string>1CA23ED40692098700951B8B</string>
<string>8B79278021F33BC7006E9731</string> <string>8B1A8D9B27CC9CE500649D11</string>
<string>8B81AD171E85459D00889355</string> <string>8B81AD171E85459D00889355</string>
<string>8B79278121F33BC7006E9731</string> <string>8B1A8D9C27CC9CE500649D11</string>
<string>1CA23EDF0692099D00951B8B</string> <string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string> <string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string> <string>1CA23EE10692099D00951B8B</string>
@ -633,7 +635,7 @@
<key>StatusbarIsVisible</key> <key>StatusbarIsVisible</key>
<true/> <true/>
<key>TimeStamp</key> <key>TimeStamp</key>
<real>569588679.18826604</real> <real>667720933.95058298</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key> <key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string> <string>2</string>
<key>ToolbarDisplayMode</key> <key>ToolbarDisplayMode</key>
@ -650,7 +652,7 @@
<integer>5</integer> <integer>5</integer>
<key>WindowOrderList</key> <key>WindowOrderList</key>
<array> <array>
<string>/Users/christopherjohnson/Desktop/MacAU/AQuickVoiceClip/AQuickVoiceClip.xcodeproj</string> <string>/Users/christopherjohnson/Desktop/airwindows/plugins/MacAU/AQuickVoiceClip/AQuickVoiceClip.xcodeproj</string>
</array> </array>
<key>WindowString</key> <key>WindowString</key>
<string>218 365 810 487 0 0 1440 878 </string> <string>218 365 810 487 0 0 1440 878 </string>

View file

@ -49,43 +49,38 @@
PBXFileDataSource_Warnings_ColumnID, PBXFileDataSource_Warnings_ColumnID,
); );
}; };
PBXPerProjectTemplateStateSaveDate = 651515923; PBXPerProjectTemplateStateSaveDate = 667720762;
PBXWorkspaceStateSaveDate = 651515923; PBXWorkspaceStateSaveDate = 667720762;
}; };
perUserProjectItems = { perUserProjectItems = {
8B5158A326D5581D005B9297 /* PBXBookmark */ = 8B5158A326D5581D005B9297 /* PBXBookmark */; 8B07A30B27CAB67A005AED0E /* PBXTextBookmark */ = 8B07A30B27CAB67A005AED0E /* PBXTextBookmark */;
8B5158A426D55832005B9297 /* PBXTextBookmark */ = 8B5158A426D55832005B9297 /* PBXTextBookmark */; 8B1A8D3427CC9C4300649D11 /* PBXTextBookmark */ = 8B1A8D3427CC9C4300649D11 /* PBXTextBookmark */;
8B5158AA26D55832005B9297 /* PBXTextBookmark */ = 8B5158AA26D55832005B9297 /* PBXTextBookmark */;
8B6FC0BF20114A1C003CA5F7 /* PlistBookmark */ = 8B6FC0BF20114A1C003CA5F7 /* PlistBookmark */; 8B6FC0BF20114A1C003CA5F7 /* PlistBookmark */ = 8B6FC0BF20114A1C003CA5F7 /* PlistBookmark */;
8B79271721F3384E006E9731 /* PBXTextBookmark */ = 8B79271721F3384E006E9731 /* PBXTextBookmark */; 8B9FE21027CAD617002EC0AA /* PBXTextBookmark */ = 8B9FE21027CAD617002EC0AA /* PBXTextBookmark */;
}; };
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */; sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
userBuildSettings = { userBuildSettings = {
}; };
}; };
8B5158A326D5581D005B9297 /* PBXBookmark */ = { 8B07A30B27CAB67A005AED0E /* PBXTextBookmark */ = {
isa = PBXBookmark; isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* Acceleration.cpp */; fRef = 8BC6025B073B072D006C4272 /* Acceleration.h */;
name = "Acceleration.h: 1";
rLen = 0;
rLoc = 0;
rType = 0;
vrLen = 333;
vrLoc = 5180;
}; };
8B5158A426D55832005B9297 /* PBXTextBookmark */ = { 8B1A8D3427CC9C4300649D11 /* PBXTextBookmark */ = {
isa = PBXTextBookmark; isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* Acceleration.cpp */; fRef = 8BA05A660720730100365D66 /* Acceleration.cpp */;
name = "Acceleration.cpp: 229"; name = "Acceleration.cpp: 237";
rLen = 0; rLen = 264;
rLoc = 10378; rLoc = 9838;
rType = 0; rType = 0;
vrLen = 160; vrLen = 559;
vrLoc = 10298; vrLoc = 9631;
};
8B5158AA26D55832005B9297 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* Acceleration.cpp */;
name = "Acceleration.cpp: 207";
rLen = 0;
rLoc = 9049;
rType = 0;
vrLen = 1782;
vrLoc = 8598;
}; };
8B6FC0BF20114A1C003CA5F7 /* PlistBookmark */ = { 8B6FC0BF20114A1C003CA5F7 /* PlistBookmark */ = {
isa = PlistBookmark; isa = PlistBookmark;
@ -99,22 +94,22 @@
rLen = 0; rLen = 0;
rLoc = 9223372036854775808; rLoc = 9223372036854775808;
}; };
8B79271721F3384E006E9731 /* PBXTextBookmark */ = { 8B9FE21027CAD617002EC0AA /* PBXTextBookmark */ = {
isa = PBXTextBookmark; isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* Acceleration.cpp */; fRef = 8BA05A660720730100365D66 /* Acceleration.cpp */;
name = "Acceleration.cpp: 234"; name = "Acceleration.cpp: 237";
rLen = 0; rLen = 264;
rLoc = 10378; rLoc = 9838;
rType = 0; rType = 0;
vrLen = 269; vrLen = 530;
vrLoc = 10290; vrLoc = 9660;
}; };
8BA05A660720730100365D66 /* Acceleration.cpp */ = { 8BA05A660720730100365D66 /* Acceleration.cpp */ = {
uiCtxt = { uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {867, 5004}}"; sepNavIntBoundsRect = "{{0, 0}, {813, 4860}}";
sepNavSelRange = "{10378, 0}"; sepNavSelRange = "{9838, 264}";
sepNavVisRange = "{10298, 160}"; sepNavVisRange = "{9631, 559}";
sepNavWindowFrame = "{{378, 42}, {895, 836}}"; sepNavWindowFrame = "{{267, 4}, {895, 694}}";
}; };
}; };
8BA05A690720730100365D66 /* AccelerationVersion.h */ = { 8BA05A690720730100365D66 /* AccelerationVersion.h */ = {
@ -127,9 +122,9 @@
}; };
8BC6025B073B072D006C4272 /* Acceleration.h */ = { 8BC6025B073B072D006C4272 /* Acceleration.h */ = {
uiCtxt = { uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {894, 1872}}"; sepNavIntBoundsRect = "{{0, 0}, {1146, 2664}}";
sepNavSelRange = "{5413, 0}"; sepNavSelRange = "{0, 0}";
sepNavVisRange = "{3998, 1517}"; sepNavVisRange = "{5180, 333}";
sepNavWindowFrame = "{{545, 39}, {895, 839}}"; sepNavWindowFrame = "{{545, 39}, {895, 839}}";
}; };
}; };

View file

@ -222,48 +222,7 @@
</dict> </dict>
</array> </array>
<key>OpenEditors</key> <key>OpenEditors</key>
<array> <array/>
<dict>
<key>Content</key>
<dict>
<key>PBXProjectModuleGUID</key>
<string>8B5158A826D55832005B9297</string>
<key>PBXProjectModuleLabel</key>
<string>Acceleration.cpp</string>
<key>PBXSplitModuleInNavigatorKey</key>
<dict>
<key>Split0</key>
<dict>
<key>PBXProjectModuleGUID</key>
<string>8B5158A926D55832005B9297</string>
<key>PBXProjectModuleLabel</key>
<string>Acceleration.cpp</string>
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
<string>8B5158AA26D55832005B9297</string>
<key>history</key>
<array>
<string>8B5158A326D5581D005B9297</string>
</array>
</dict>
<key>SplitCount</key>
<string>1</string>
</dict>
<key>StatusBarVisibility</key>
<true/>
</dict>
<key>Geometry</key>
<dict>
<key>Frame</key>
<string>{{0, 20}, {895, 739}}</string>
<key>PBXModuleWindowStatusBarHidden2</key>
<false/>
<key>RubberWindowFrame</key>
<string>378 98 895 780 0 0 1440 878 </string>
</dict>
</dict>
</array>
<key>PerspectiveWidths</key> <key>PerspectiveWidths</key>
<array> <array>
<integer>841</integer> <integer>841</integer>
@ -297,8 +256,6 @@
<key>Layout</key> <key>Layout</key>
<array> <array>
<dict> <dict>
<key>BecomeActive</key>
<true/>
<key>ContentConfiguration</key> <key>ContentConfiguration</key>
<dict> <dict>
<key>PBXBottomSmartGroupGIDs</key> <key>PBXBottomSmartGroupGIDs</key>
@ -350,7 +307,7 @@
</array> </array>
</array> </array>
<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key> <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
<string>{{0, 0}, {288, 595}}</string> <string>{{0, 0}, {288, 585}}</string>
</dict> </dict>
<key>PBXTopSmartGroupGIDs</key> <key>PBXTopSmartGroupGIDs</key>
<array/> <array/>
@ -360,14 +317,14 @@
<key>GeometryConfiguration</key> <key>GeometryConfiguration</key>
<dict> <dict>
<key>Frame</key> <key>Frame</key>
<string>{{0, 0}, {305, 613}}</string> <string>{{0, 0}, {305, 603}}</string>
<key>GroupTreeTableConfiguration</key> <key>GroupTreeTableConfiguration</key>
<array> <array>
<string>MainColumn</string> <string>MainColumn</string>
<real>288</real> <real>288</real>
</array> </array>
<key>RubberWindowFrame</key> <key>RubberWindowFrame</key>
<string>354 224 841 654 0 0 1440 878 </string> <string>266 227 841 644 0 0 1440 878 </string>
</dict> </dict>
<key>Module</key> <key>Module</key>
<string>PBXSmartGroupTreeModule</string> <string>PBXSmartGroupTreeModule</string>
@ -378,6 +335,8 @@
<key>Dock</key> <key>Dock</key>
<array> <array>
<dict> <dict>
<key>BecomeActive</key>
<true/>
<key>ContentConfiguration</key> <key>ContentConfiguration</key>
<dict> <dict>
<key>PBXProjectModuleGUID</key> <key>PBXProjectModuleGUID</key>
@ -395,11 +354,12 @@
<key>_historyCapacity</key> <key>_historyCapacity</key>
<integer>0</integer> <integer>0</integer>
<key>bookmark</key> <key>bookmark</key>
<string>8B5158A426D55832005B9297</string> <string>8B1A8D3427CC9C4300649D11</string>
<key>history</key> <key>history</key>
<array> <array>
<string>8B6FC0BF20114A1C003CA5F7</string> <string>8B6FC0BF20114A1C003CA5F7</string>
<string>8B79271721F3384E006E9731</string> <string>8B07A30B27CAB67A005AED0E</string>
<string>8B9FE21027CAD617002EC0AA</string>
</array> </array>
</dict> </dict>
<key>SplitCount</key> <key>SplitCount</key>
@ -413,18 +373,18 @@
<key>GeometryConfiguration</key> <key>GeometryConfiguration</key>
<dict> <dict>
<key>Frame</key> <key>Frame</key>
<string>{{0, 0}, {531, 173}}</string> <string>{{0, 0}, {531, 387}}</string>
<key>RubberWindowFrame</key> <key>RubberWindowFrame</key>
<string>354 224 841 654 0 0 1440 878 </string> <string>266 227 841 644 0 0 1440 878 </string>
</dict> </dict>
<key>Module</key> <key>Module</key>
<string>PBXNavigatorGroup</string> <string>PBXNavigatorGroup</string>
<key>Proportion</key> <key>Proportion</key>
<string>173pt</string> <string>387pt</string>
</dict> </dict>
<dict> <dict>
<key>Proportion</key> <key>Proportion</key>
<string>435pt</string> <string>211pt</string>
<key>Tabs</key> <key>Tabs</key>
<array> <array>
<dict> <dict>
@ -438,9 +398,9 @@
<key>GeometryConfiguration</key> <key>GeometryConfiguration</key>
<dict> <dict>
<key>Frame</key> <key>Frame</key>
<string>{{10, 27}, {531, 408}}</string> <string>{{10, 27}, {531, 184}}</string>
<key>RubberWindowFrame</key> <key>RubberWindowFrame</key>
<string>354 224 841 654 0 0 1440 878 </string> <string>266 227 841 644 0 0 1440 878 </string>
</dict> </dict>
<key>Module</key> <key>Module</key>
<string>XCDetailModule</string> <string>XCDetailModule</string>
@ -522,11 +482,11 @@
</array> </array>
<key>TableOfContents</key> <key>TableOfContents</key>
<array> <array>
<string>8B5158A526D55832005B9297</string> <string>8B1A8D3527CC9C4300649D11</string>
<string>1CA23ED40692098700951B8B</string> <string>1CA23ED40692098700951B8B</string>
<string>8B5158A626D55832005B9297</string> <string>8B1A8D3627CC9C4300649D11</string>
<string>8BD7274A1D46E5A5000176F0</string> <string>8BD7274A1D46E5A5000176F0</string>
<string>8B5158A726D55832005B9297</string> <string>8B1A8D3727CC9C4300649D11</string>
<string>1CA23EDF0692099D00951B8B</string> <string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string> <string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string> <string>1CA23EE10692099D00951B8B</string>
@ -699,7 +659,7 @@
<key>StatusbarIsVisible</key> <key>StatusbarIsVisible</key>
<true/> <true/>
<key>TimeStamp</key> <key>TimeStamp</key>
<real>651515954.46088898</real> <real>667720771.23180103</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key> <key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string> <string>2</string>
<key>ToolbarDisplayMode</key> <key>ToolbarDisplayMode</key>
@ -717,10 +677,9 @@
<key>WindowOrderList</key> <key>WindowOrderList</key>
<array> <array>
<string>/Users/christopherjohnson/Desktop/airwindows/plugins/MacAU/Acceleration/Acceleration.xcodeproj</string> <string>/Users/christopherjohnson/Desktop/airwindows/plugins/MacAU/Acceleration/Acceleration.xcodeproj</string>
<string>8B5158A826D55832005B9297</string>
</array> </array>
<key>WindowString</key> <key>WindowString</key>
<string>354 224 841 654 0 0 1440 878 </string> <string>266 227 841 644 0 0 1440 878 </string>
<key>WindowToolsV3</key> <key>WindowToolsV3</key>
<array> <array>
<dict> <dict>

Some files were not shown because too many files have changed in this diff Show more