mirror of
https://github.com/airwindows/airwindows.git
synced 2026-05-21 06:46:21 -06:00
ClearCoat adjustment
This commit is contained in:
parent
743c48d6c6
commit
eda72427e8
29 changed files with 1269 additions and 757 deletions
Binary file not shown.
|
|
@ -116,6 +116,8 @@ ClearCoat::ClearCoat(audioMasterCallback audioMaster) :
|
|||
shortP = 2366;
|
||||
prevclearcoat = -1;
|
||||
|
||||
subAL = subAR = subBL = subBR = subCL = subCR = subDL = subDR = 0.0;
|
||||
|
||||
fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX;
|
||||
fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX;
|
||||
//this is reset: values being initialized only once. Startup values, whatever they are.
|
||||
|
|
|
|||
|
|
@ -194,6 +194,15 @@ private:
|
|||
int shortP;
|
||||
|
||||
int prevclearcoat;
|
||||
|
||||
double subAL;
|
||||
double subAR;
|
||||
double subBL;
|
||||
double subBR;
|
||||
double subCL;
|
||||
double subCR;
|
||||
double subDL;
|
||||
double subDR;
|
||||
|
||||
float A;
|
||||
float B;
|
||||
|
|
|
|||
|
|
@ -133,6 +133,7 @@ void ClearCoat::processReplacing(float **inputs, float **outputs, VstInt32 sampl
|
|||
prevclearcoat = clearcoat;
|
||||
}
|
||||
|
||||
double subRate = 0.001 / overallscale;
|
||||
double wet = B*2.0;
|
||||
double dry = 2.0 - wet;
|
||||
if (wet > 1.0) wet = 1.0;
|
||||
|
|
@ -343,6 +344,42 @@ void ClearCoat::processReplacing(float **inputs, float **outputs, VstInt32 sampl
|
|||
//we are going through our references now
|
||||
}
|
||||
|
||||
//begin SubTight section
|
||||
double subSampleL = inputSampleL * subRate;
|
||||
double subSampleR = inputSampleR * subRate;
|
||||
|
||||
double scale = 0.5+fabs(subSampleL*0.5);
|
||||
subSampleL = (subAL+(sin(subAL-subSampleL)*scale));
|
||||
subAL = subSampleL*scale;
|
||||
scale = 0.5+fabs(subSampleR*0.5);
|
||||
subSampleR = (subAR+(sin(subAR-subSampleR)*scale));
|
||||
subAR = subSampleR*scale;
|
||||
scale = 0.5+fabs(subSampleL*0.5);
|
||||
subSampleL = (subBL+(sin(subBL-subSampleL)*scale));
|
||||
subBL = subSampleL*scale;
|
||||
scale = 0.5+fabs(subSampleR*0.5);
|
||||
subSampleR = (subBR+(sin(subBR-subSampleR)*scale));
|
||||
subBR = subSampleR*scale;
|
||||
scale = 0.5+fabs(subSampleL*0.5);
|
||||
subSampleL = (subCL+(sin(subCL-subSampleL)*scale));
|
||||
subCL = subSampleL*scale;
|
||||
scale = 0.5+fabs(subSampleR*0.5);
|
||||
subSampleR = (subCR+(sin(subCR-subSampleR)*scale));
|
||||
subCR = subSampleR*scale;
|
||||
scale = 0.5+fabs(subSampleL*0.5);
|
||||
subSampleL = (subDL+(sin(subDL-subSampleL)*scale));
|
||||
subDL = subSampleL*scale;
|
||||
scale = 0.5+fabs(subSampleR*0.5);
|
||||
subSampleR = (subDR+(sin(subDR-subSampleR)*scale));
|
||||
subDR = subSampleR*scale;
|
||||
if (subSampleL > 0.25) subSampleL = 0.25;
|
||||
if (subSampleL < -0.25) subSampleL = -0.25;
|
||||
if (subSampleR > 0.25) subSampleR = 0.25;
|
||||
if (subSampleR < -0.25) subSampleR = -0.25;
|
||||
inputSampleL -= (subSampleL*16.0);
|
||||
inputSampleR -= (subSampleR*16.0);
|
||||
//end SubTight section
|
||||
|
||||
if (cycleEnd > 1) {
|
||||
double outSample = (inputSampleL + tailL)*0.5;
|
||||
tailL = inputSampleL; inputSampleL = outSample;
|
||||
|
|
@ -501,6 +538,7 @@ void ClearCoat::processDoubleReplacing(double **inputs, double **outputs, VstInt
|
|||
prevclearcoat = clearcoat;
|
||||
}
|
||||
|
||||
double subRate = 0.001 / overallscale;
|
||||
double wet = B*2.0;
|
||||
double dry = 2.0 - wet;
|
||||
if (wet > 1.0) wet = 1.0;
|
||||
|
|
@ -711,6 +749,42 @@ void ClearCoat::processDoubleReplacing(double **inputs, double **outputs, VstInt
|
|||
//we are going through our references now
|
||||
}
|
||||
|
||||
//begin SubTight section
|
||||
double subSampleL = inputSampleL * subRate;
|
||||
double subSampleR = inputSampleR * subRate;
|
||||
|
||||
double scale = 0.5+fabs(subSampleL*0.5);
|
||||
subSampleL = (subAL+(sin(subAL-subSampleL)*scale));
|
||||
subAL = subSampleL*scale;
|
||||
scale = 0.5+fabs(subSampleR*0.5);
|
||||
subSampleR = (subAR+(sin(subAR-subSampleR)*scale));
|
||||
subAR = subSampleR*scale;
|
||||
scale = 0.5+fabs(subSampleL*0.5);
|
||||
subSampleL = (subBL+(sin(subBL-subSampleL)*scale));
|
||||
subBL = subSampleL*scale;
|
||||
scale = 0.5+fabs(subSampleR*0.5);
|
||||
subSampleR = (subBR+(sin(subBR-subSampleR)*scale));
|
||||
subBR = subSampleR*scale;
|
||||
scale = 0.5+fabs(subSampleL*0.5);
|
||||
subSampleL = (subCL+(sin(subCL-subSampleL)*scale));
|
||||
subCL = subSampleL*scale;
|
||||
scale = 0.5+fabs(subSampleR*0.5);
|
||||
subSampleR = (subCR+(sin(subCR-subSampleR)*scale));
|
||||
subCR = subSampleR*scale;
|
||||
scale = 0.5+fabs(subSampleL*0.5);
|
||||
subSampleL = (subDL+(sin(subDL-subSampleL)*scale));
|
||||
subDL = subSampleL*scale;
|
||||
scale = 0.5+fabs(subSampleR*0.5);
|
||||
subSampleR = (subDR+(sin(subDR-subSampleR)*scale));
|
||||
subDR = subSampleR*scale;
|
||||
if (subSampleL > 0.25) subSampleL = 0.25;
|
||||
if (subSampleL < -0.25) subSampleL = -0.25;
|
||||
if (subSampleR > 0.25) subSampleR = 0.25;
|
||||
if (subSampleR < -0.25) subSampleR = -0.25;
|
||||
inputSampleL -= (subSampleL*16.0);
|
||||
inputSampleR -= (subSampleR*16.0);
|
||||
//end SubTight section
|
||||
|
||||
if (cycleEnd > 1) {
|
||||
double outSample = (inputSampleL + tailL)*0.5;
|
||||
tailL = inputSampleL; inputSampleL = outSample;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue