diff options
author | Chris Johnson <jinx6568@sover.net> | 2019-11-24 21:23:09 -0500 |
---|---|---|
committer | Chris Johnson <jinx6568@sover.net> | 2019-11-24 21:23:09 -0500 |
commit | a28a1330f1eedb9cecd95b21c28155491a595613 (patch) | |
tree | 09e612dd5bc0423fa8200d4280760cfe5293006a /plugins/MacVST/Monitoring/source | |
parent | f87fdca8e3df86e62d6552f11a640b71691b57cd (diff) | |
download | airwindows-lv2-port-a28a1330f1eedb9cecd95b21c28155491a595613.tar.gz airwindows-lv2-port-a28a1330f1eedb9cecd95b21c28155491a595613.tar.bz2 airwindows-lv2-port-a28a1330f1eedb9cecd95b21c28155491a595613.zip |
Gringer (and Monitoring)
Diffstat (limited to 'plugins/MacVST/Monitoring/source')
-rwxr-xr-x | plugins/MacVST/Monitoring/source/Monitoring.cpp | 5 | ||||
-rwxr-xr-x | plugins/MacVST/Monitoring/source/Monitoring.h | 3 | ||||
-rwxr-xr-x | plugins/MacVST/Monitoring/source/MonitoringProc.cpp | 102 |
3 files changed, 71 insertions, 39 deletions
diff --git a/plugins/MacVST/Monitoring/source/Monitoring.cpp b/plugins/MacVST/Monitoring/source/Monitoring.cpp index f7cefe1..556e27c 100755 --- a/plugins/MacVST/Monitoring/source/Monitoring.cpp +++ b/plugins/MacVST/Monitoring/source/Monitoring.cpp @@ -57,7 +57,7 @@ Monitoring::Monitoring(audioMasterCallback audioMaster) : iirSampleTR = 0.0; iirSampleUR = 0.0; iirSampleVR = 0.0; iirSampleWR = 0.0; iirSampleXR = 0.0; iirSampleYR = 0.0; iirSampleZR = 0.0; // o/` //SubsOnly - for (int x = 0; x < 11; x++) {biquad[x] = 0.0;} + for (int x = 0; x < 11; x++) {biquadL[x] = 0.0; biquadR[x] = 0.0;} //Bandpasses A = 0.0; fpd = 17; @@ -135,7 +135,7 @@ void Monitoring::getParameterName(VstInt32 index, char *text) { void Monitoring::getParameterDisplay(VstInt32 index, char *text) { switch (index) { - case kParamA: switch((VstInt32)( A * 15.999 )) //0 to almost edge of # of params + case kParamA: switch((VstInt32)( A * 16.999 )) //0 to almost edge of # of params { case 0: vst_strncpy (text, "Out24", kVstMaxParamStrLen); break; case 1: vst_strncpy (text, "Out16", kVstMaxParamStrLen); break; case 2: vst_strncpy (text, "Peaks", kVstMaxParamStrLen); break; @@ -152,6 +152,7 @@ void Monitoring::getParameterDisplay(VstInt32 index, char *text) { case 13: vst_strncpy (text, "Cans B", kVstMaxParamStrLen); break; case 14: vst_strncpy (text, "Cans C", kVstMaxParamStrLen); break; case 15: vst_strncpy (text, "Cans D", kVstMaxParamStrLen); break; + case 16: vst_strncpy (text, "V Trick", kVstMaxParamStrLen); break; default: break; // unknown parameter, shouldn't happen! } break; default: break; // unknown parameter, shouldn't happen! diff --git a/plugins/MacVST/Monitoring/source/Monitoring.h b/plugins/MacVST/Monitoring/source/Monitoring.h index cb64834..f92a46b 100755 --- a/plugins/MacVST/Monitoring/source/Monitoring.h +++ b/plugins/MacVST/Monitoring/source/Monitoring.h @@ -73,7 +73,8 @@ private: double iirSampleTR, iirSampleUR, iirSampleVR; double iirSampleWR, iirSampleXR, iirSampleYR, iirSampleZR; // o/` //SubsOnly - long double biquad[11]; + long double biquadL[11]; + long double biquadR[11]; //Bandpasses uint32_t fpd; diff --git a/plugins/MacVST/Monitoring/source/MonitoringProc.cpp b/plugins/MacVST/Monitoring/source/MonitoringProc.cpp index ae46dca..ddb1f6f 100755 --- a/plugins/MacVST/Monitoring/source/MonitoringProc.cpp +++ b/plugins/MacVST/Monitoring/source/MonitoringProc.cpp @@ -18,24 +18,34 @@ void Monitoring::processReplacing(float **inputs, float **outputs, VstInt32 samp overallscale /= 44100.0; overallscale *= getSampleRate(); - int processing = (VstInt32)( A * 15.999 ); + int processing = (VstInt32)( A * 16.999 ); int am = (int)149.0 * overallscale; int bm = (int)179.0 * overallscale; int cm = (int)191.0 * overallscale; int dm = (int)223.0 * overallscale; //these are 'good' primes, spacing out the allpasses int allpasstemp; //for PeaksOnly - biquad[0] = 0.0375/overallscale; biquad[1] = 0.1575; //define as AURAT, MONORAT, MONOLAT unless overridden - if (processing == 7) {biquad[0] = 0.0385/overallscale; biquad[1] = 0.0825;} - if (processing == 11) {biquad[0] = 0.1245/overallscale; biquad[1] = 0.46;} - double K = tan(M_PI * biquad[0]); - double norm = 1.0 / (1.0 + K / biquad[1] + K * K); - biquad[2] = K / biquad[1] * norm; - biquad[4] = -biquad[2]; //for bandpass, ignore [3] = 0.0 - biquad[5] = 2.0 * (K * K - 1.0) * norm; - biquad[6] = (1.0 - K / biquad[1] + K * K) * norm; + biquadL[0] = 0.0375/overallscale; biquadL[1] = 0.1575; //define as AURAT, MONORAT, MONOLAT unless overridden + if (processing == 7) {biquadL[0] = 0.0385/overallscale; biquadL[1] = 0.0825;} + if (processing == 11) {biquadL[0] = 0.1245/overallscale; biquadL[1] = 0.46;} + double K = tan(M_PI * biquadL[0]); + double norm = 1.0 / (1.0 + K / biquadL[1] + K * K); + biquadL[2] = K / biquadL[1] * norm; + biquadL[4] = -biquadL[2]; //for bandpass, ignore [3] = 0.0 + biquadL[5] = 2.0 * (K * K - 1.0) * norm; + biquadL[6] = (1.0 - K / biquadL[1] + K * K) * norm; //for Bandpasses - + biquadR[0] = 0.0375/overallscale; biquadR[1] = 0.1575; //define as AURAT, MONORAT, MONOLAT unless overridden + if (processing == 7) {biquadR[0] = 0.0385/overallscale; biquadR[1] = 0.0825;} + if (processing == 11) {biquadR[0] = 0.1245/overallscale; biquadR[1] = 0.46;} + K = tan(M_PI * biquadR[0]); + norm = 1.0 / (1.0 + K / biquadR[1] + K * K); + biquadR[2] = K / biquadR[1] * norm; + biquadR[4] = -biquadR[2]; //for bandpass, ignore [3] = 0.0 + biquadR[5] = 2.0 * (K * K - 1.0) * norm; + biquadR[6] = (1.0 - K / biquadR[1] + K * K) * norm; + //for Bandpasses + while (--sampleFrames >= 0) { long double inputSampleL = *in1; @@ -300,15 +310,15 @@ void Monitoring::processReplacing(float **inputs, float **outputs, VstInt32 samp inputSampleL = sin(inputSampleL); inputSampleR = sin(inputSampleR); //encode Console5: good cleanness - long double tempSampleL; tempSampleL = (inputSampleL * biquad[2]) + biquad[7]; - biquad[7] = (-tempSampleL * biquad[5]) + biquad[8]; - biquad[8] = (inputSampleL * biquad[4]) - (tempSampleL * biquad[6]); + long double tempSampleL; tempSampleL = (inputSampleL * biquadL[2]) + biquadL[7]; + biquadL[7] = (-tempSampleL * biquadL[5]) + biquadL[8]; + biquadL[8] = (inputSampleL * biquadL[4]) - (tempSampleL * biquadL[6]); inputSampleL = tempSampleL; //like mono AU, 7 and 8 store L channel - long double tempSampleR; tempSampleR = (inputSampleR * biquad[2]) + biquad[9]; - biquad[9] = (-tempSampleR * biquad[5]) + biquad[10]; - biquad[10] = (inputSampleR * biquad[4]) - (tempSampleR * biquad[6]); - inputSampleR = tempSampleR; //note: 9 and 10 store the R channel + long double tempSampleR; tempSampleR = (inputSampleR * biquadR[2]) + biquadR[7]; + biquadR[7] = (-tempSampleR * biquadR[5]) + biquadR[8]; + biquadR[8] = (inputSampleR * biquadR[4]) - (tempSampleR * biquadR[6]); + inputSampleR = tempSampleR; // we are using the mono configuration if (inputSampleL > 1.0) inputSampleL = 1.0; if (inputSampleL < -1.0) inputSampleL = -1.0; if (inputSampleR > 1.0) inputSampleR = 1.0; if (inputSampleR < -1.0) inputSampleR = -1.0; @@ -385,6 +395,11 @@ void Monitoring::processReplacing(float **inputs, float **outputs, VstInt32 samp if (inputSampleR > 1.0) inputSampleR = 1.0; if (inputSampleR < -1.0) inputSampleR = -1.0; inputSampleR = asin(inputSampleR); //ConsoleBuss processing break; + case 16: + long double inputSample = (inputSampleL + inputSampleR) * 0.5; + inputSampleL = -inputSample; + inputSampleR = inputSample; + break; } @@ -520,22 +535,32 @@ void Monitoring::processDoubleReplacing(double **inputs, double **outputs, VstIn overallscale /= 44100.0; overallscale *= getSampleRate(); - int processing = (VstInt32)( A * 15.999 ); + int processing = (VstInt32)( A * 16.999 ); int am = (int)149.0 * overallscale; int bm = (int)179.0 * overallscale; int cm = (int)191.0 * overallscale; int dm = (int)223.0 * overallscale; //these are 'good' primes, spacing out the allpasses int allpasstemp; //for PeaksOnly - biquad[0] = 0.0385/overallscale; biquad[1] = 0.0825; //define as VINYL unless overridden - if (processing == 8) {biquad[0] = 0.0375/overallscale; biquad[1] = 0.1575;} - if (processing == 9) {biquad[0] = 0.1245/overallscale; biquad[1] = 0.46;} - double K = tan(M_PI * biquad[0]); - double norm = 1.0 / (1.0 + K / biquad[1] + K * K); - biquad[2] = K / biquad[1] * norm; - biquad[4] = -biquad[2]; //for bandpass, ignore [3] = 0.0 - biquad[5] = 2.0 * (K * K - 1.0) * norm; - biquad[6] = (1.0 - K / biquad[1] + K * K) * norm; + biquadL[0] = 0.0375/overallscale; biquadL[1] = 0.1575; //define as AURAT, MONORAT, MONOLAT unless overridden + if (processing == 7) {biquadL[0] = 0.0385/overallscale; biquadL[1] = 0.0825;} + if (processing == 11) {biquadL[0] = 0.1245/overallscale; biquadL[1] = 0.46;} + double K = tan(M_PI * biquadL[0]); + double norm = 1.0 / (1.0 + K / biquadL[1] + K * K); + biquadL[2] = K / biquadL[1] * norm; + biquadL[4] = -biquadL[2]; //for bandpass, ignore [3] = 0.0 + biquadL[5] = 2.0 * (K * K - 1.0) * norm; + biquadL[6] = (1.0 - K / biquadL[1] + K * K) * norm; + //for Bandpasses + biquadR[0] = 0.0375/overallscale; biquadR[1] = 0.1575; //define as AURAT, MONORAT, MONOLAT unless overridden + if (processing == 7) {biquadR[0] = 0.0385/overallscale; biquadR[1] = 0.0825;} + if (processing == 11) {biquadR[0] = 0.1245/overallscale; biquadR[1] = 0.46;} + K = tan(M_PI * biquadR[0]); + norm = 1.0 / (1.0 + K / biquadR[1] + K * K); + biquadR[2] = K / biquadR[1] * norm; + biquadR[4] = -biquadR[2]; //for bandpass, ignore [3] = 0.0 + biquadR[5] = 2.0 * (K * K - 1.0) * norm; + biquadR[6] = (1.0 - K / biquadR[1] + K * K) * norm; //for Bandpasses while (--sampleFrames >= 0) @@ -802,15 +827,15 @@ void Monitoring::processDoubleReplacing(double **inputs, double **outputs, VstIn inputSampleL = sin(inputSampleL); inputSampleR = sin(inputSampleR); //encode Console5: good cleanness - long double tempSampleL; tempSampleL = (inputSampleL * biquad[2]) + biquad[7]; - biquad[7] = (-tempSampleL * biquad[5]) + biquad[8]; - biquad[8] = (inputSampleL * biquad[4]) - (tempSampleL * biquad[6]); + long double tempSampleL; tempSampleL = (inputSampleL * biquadL[2]) + biquadL[7]; + biquadL[7] = (-tempSampleL * biquadL[5]) + biquadL[8]; + biquadL[8] = (inputSampleL * biquadL[4]) - (tempSampleL * biquadL[6]); inputSampleL = tempSampleL; //like mono AU, 7 and 8 store L channel - long double tempSampleR; tempSampleR = (inputSampleR * biquad[2]) + biquad[9]; - biquad[9] = (-tempSampleR * biquad[5]) + biquad[10]; - biquad[10] = (inputSampleR * biquad[4]) - (tempSampleR * biquad[6]); - inputSampleR = tempSampleR; //note: 9 and 10 store the R channel + long double tempSampleR; tempSampleR = (inputSampleR * biquadR[2]) + biquadR[7]; + biquadR[7] = (-tempSampleR * biquadR[5]) + biquadR[8]; + biquadR[8] = (inputSampleR * biquadR[4]) - (tempSampleR * biquadR[6]); + inputSampleR = tempSampleR; // we are using the mono configuration if (inputSampleL > 1.0) inputSampleL = 1.0; if (inputSampleL < -1.0) inputSampleL = -1.0; if (inputSampleR > 1.0) inputSampleR = 1.0; if (inputSampleR < -1.0) inputSampleR = -1.0; @@ -886,7 +911,12 @@ void Monitoring::processDoubleReplacing(double **inputs, double **outputs, VstIn if (inputSampleL > 1.0) inputSampleL = 1.0; if (inputSampleL < -1.0) inputSampleL = -1.0; inputSampleL = asin(inputSampleL); if (inputSampleR > 1.0) inputSampleR = 1.0; if (inputSampleR < -1.0) inputSampleR = -1.0; inputSampleR = asin(inputSampleR); //ConsoleBuss processing - break; + break; + case 16: + long double inputSample = (inputSampleL + inputSampleR) * 0.5; + inputSampleL = -inputSample; + inputSampleR = inputSample; + break; } |