ClearCoat adjustment

This commit is contained in:
Christopher Johnson 2023-11-06 15:27:24 -05:00
parent 743c48d6c6
commit eda72427e8
29 changed files with 1269 additions and 757 deletions

View file

@ -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.

View file

@ -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;

View file

@ -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;