mirror of
https://github.com/airwindows/airwindows.git
synced 2026-05-15 14:16:00 -06:00
Verbity2
This commit is contained in:
parent
4dbf9414ec
commit
78241bb382
81 changed files with 3590 additions and 3239 deletions
|
|
@ -3631,7 +3631,7 @@ That’s really the essence of all these Airwindows compressors (perhaps more th
|
|||
|
||||
But this time, I don’t think I’ll be making excuses like that. VariMu has a good sound to it. I hope you like it :)
|
||||
|
||||
############ Verbity is my new best reverb, which uses feedforward reverb topology.
|
||||
############ Verbity is a dual-mono reverb, which uses feedforward reverb topology.
|
||||
|
||||
Late nights of reverb hacking (ok, Monday mornings?) give rise to a new best reverb. At least, best for me. Perhaps it’ll count as ‘best’ in general, we shall see, that is rather a matter of taste but it’s my new favorite and is inspiring me a lot.
|
||||
|
||||
|
|
@ -3649,6 +3649,28 @@ This is a dual mono verb, so for now you don’t gain anything adding Srsly2 unl
|
|||
|
||||
Signs point to yes :)
|
||||
|
||||
############ Verbity2 adds stereo crossmodulation and expands Verbity's feedforward reverb topology.
|
||||
|
||||
Firstly, listen. Verbity2 might beat Galactic, for you, for deep reverbs. There are specific reasons why that might be. Listen and see if Verbity2 is the best reverb you can have… because you can have it, it's open source plugins supported by Patreon. If you can't do without it, you won't have to, it's yours. If you would have paid for a reverb this good, throw an additional $50 this year onto my Patreon, and we'll see if I can make another plugin by the year after that, working on these as my full-time job.
|
||||
|
||||
So, how is it different from Verbity? You do still have Verbity, after all.
|
||||
|
||||
First, Verbity2 is an expansion. These are what's called Householder matrix reverbs, with a feedforward topology. Verbity, and Galactic, and Chamber, use blocks of reverb elements all of which feed directly into all the other elements, in a four-by-four matrix. A Householder matrix that's four-by-four lets you do infinite reverb while having all the elements either be unity gain, or inverted unity gain, and all my Householder stuff thus far has been like this.
|
||||
|
||||
Until now!
|
||||
|
||||
Verbity2 uses a five-by-five matrix for each stage, and where Verbity has three banks of matrices, Verbity2 has five banks of matrices. So where Verbity uses its twelve echo banks to make four thousand distinct echoes… Verbity2 uses its twenty-five echo banks to make NINE MILLION distinct echoes… before feedback. That's not automatically 'better', but it's different, like more than three orders of magnitude different. That's going to affect the reverb texture.
|
||||
|
||||
About that feedback… there's a change. So, Galactic is stereo: it applies a subtle offset vibrato to both sides on input making mono things stereo (come to think of it, would anybody like this as standalone?) and then it feeds back in a ping-pong fashion for maximum width from any source. All left reverb has to go through the entire right reverb in order to reach the left again.
|
||||
|
||||
Verbity is the opposite: dual mono. It was designed from the start to be an ambience-maker, filling out space around individual elements wherever they are in the stereo field. People used to buy dual hardware reverbs specifically to do this in mixes: it's a secret mix trick, putting the verb only where it's needed. That's what Verbity does. And if you use NO feedback at all, Verbity2 will still do this.
|
||||
|
||||
But if you extend the reverb tail in Verbity2, it's a hybrid. For each channel, two out of three of the output echo banks will stay put, and three will cross over. Half stereo spread, half keeping stuff where it is. For very long reverb tails this will always end up as a totally stereo wash. For really short ambiences, it'll act dual mono. But for moderate reverb tails, what happens is that you get a giant room picture behind your sounds. Stuff on one side blooms out, then washes across to the other side, and back again. I'm looking forward to experimenting with this for future designs :)
|
||||
|
||||
There are also adjustments to tone control: the Darkness control is replaced with a control for Mulch. This is meant to be a kind of naturalness factor: Verbity, like Galactic, tends to hang on to thunderous bass, as if it expands into huge caverns. Mulch means the sound can darken, but it can also absorb some of the extreme lows, mimicking a physical room made out of wood and plaster, not stone or concrete. I should be able to expand on this a lot.
|
||||
|
||||
So Verbity2 is a new level of reverb realism from me. Looking forward to further developments of this!
|
||||
|
||||
############ Vibrato lets you vibrato, chorus, flange, and make odd FM noises.
|
||||
|
||||
The heart of Vibrato is the Airwindows moving-delay-tap interpolation code also found in Chorus and Flanger, but here there’s some extra functionality plus ways to partially simulate those other plugins: while you can make the full-wet sound do a nice vibrato (automate to taste), there are other fun things to do. You can use the dry/wet to get a chorusing effect, or with less depth, a flange: or set it to ‘inverse’ to get the same but with a through-zero flange that’ll cancel almost totally to silence. This can also be used as an interesting sort of highpass (or of course, using normal wet, as a sort of lowpassy effect). That’s all with the main vibrato control, which has an extremely wide speed range.
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ void Chamber2::processReplacing(float **inputs, float **outputs, VstInt32 sample
|
|||
|
||||
double size = (A*0.9)+0.1;
|
||||
double regen = (1.0-(pow(1.0-B,2)))*0.123;
|
||||
double echoScale = 1.0-(pow(C,3));
|
||||
double echoScale = 1.0-C;
|
||||
double echo = 0.618033988749894848204586+((1.0-0.618033988749894848204586)*echoScale);
|
||||
double interpolate = (1.0-echo)*0.381966011250105;
|
||||
//this now goes from Chamber, to all the reverb delays being exactly the same
|
||||
|
|
@ -41,7 +41,8 @@ void Chamber2::processReplacing(float **inputs, float **outputs, VstInt32 sample
|
|||
//that's so it can be on submixes without cutting back dry channel when adjusted:
|
||||
//unless you go super heavy, you are only adjusting the added verb loudness.
|
||||
|
||||
delayE = delayM = 9900*size;
|
||||
delayM = sqrt(9900*size);
|
||||
delayE = 9900*size;
|
||||
delayF = delayE*echo;
|
||||
delayG = delayF*echo;
|
||||
delayH = delayG*echo;
|
||||
|
|
@ -159,13 +160,13 @@ void Chamber2::processReplacing(float **inputs, float **outputs, VstInt32 sample
|
|||
double outHR = aHR[countH-((countH > delayH)?delayH+1:0)];
|
||||
//third block: final outputs
|
||||
|
||||
feedbackAL = (outEL - (outFL + outGL + outHL));
|
||||
feedbackAR = (outEL - (outFL + outGL + outHL));
|
||||
feedbackBL = (outFL - (outEL + outGL + outHL));
|
||||
feedbackCL = (outGL - (outEL + outFL + outHL));
|
||||
feedbackCR = (outGL - (outEL + outFL + outHL));
|
||||
feedbackDL = (outHL - (outEL + outFL + outGL));
|
||||
feedbackAR = (outER - (outFR + outGR + outHR));
|
||||
feedbackAL = (outER - (outFR + outGR + outHR));
|
||||
feedbackBR = (outFR - (outER + outGR + outHR));
|
||||
feedbackCR = (outGR - (outER + outFR + outHR));
|
||||
feedbackCL = (outGR - (outER + outFR + outHR));
|
||||
feedbackDR = (outHR - (outER + outFR + outGR));
|
||||
//which we need to feed back into the input again, a bit
|
||||
|
||||
|
|
@ -280,7 +281,7 @@ void Chamber2::processDoubleReplacing(double **inputs, double **outputs, VstInt3
|
|||
|
||||
double size = (A*0.9)+0.1;
|
||||
double regen = (1.0-(pow(1.0-B,2)))*0.123;
|
||||
double echoScale = 1.0-(pow(C,3));
|
||||
double echoScale = 1.0-C;
|
||||
double echo = 0.618033988749894848204586+((1.0-0.618033988749894848204586)*echoScale);
|
||||
double interpolate = (1.0-echo)*0.381966011250105;
|
||||
//this now goes from Chamber, to all the reverb delays being exactly the same
|
||||
|
|
@ -296,7 +297,8 @@ void Chamber2::processDoubleReplacing(double **inputs, double **outputs, VstInt3
|
|||
//that's so it can be on submixes without cutting back dry channel when adjusted:
|
||||
//unless you go super heavy, you are only adjusting the added verb loudness.
|
||||
|
||||
delayE = delayM = 9900*size;
|
||||
delayM = sqrt(9900*size);
|
||||
delayE = 9900*size;
|
||||
delayF = delayE*echo;
|
||||
delayG = delayF*echo;
|
||||
delayH = delayG*echo;
|
||||
|
|
@ -414,13 +416,13 @@ void Chamber2::processDoubleReplacing(double **inputs, double **outputs, VstInt3
|
|||
double outHR = aHR[countH-((countH > delayH)?delayH+1:0)];
|
||||
//third block: final outputs
|
||||
|
||||
feedbackAL = (outEL - (outFL + outGL + outHL));
|
||||
feedbackAR = (outEL - (outFL + outGL + outHL));
|
||||
feedbackBL = (outFL - (outEL + outGL + outHL));
|
||||
feedbackCL = (outGL - (outEL + outFL + outHL));
|
||||
feedbackCR = (outGL - (outEL + outFL + outHL));
|
||||
feedbackDL = (outHL - (outEL + outFL + outGL));
|
||||
feedbackAR = (outER - (outFR + outGR + outHR));
|
||||
feedbackAL = (outER - (outFR + outGR + outHR));
|
||||
feedbackBR = (outFR - (outER + outGR + outHR));
|
||||
feedbackCR = (outGR - (outER + outFR + outHR));
|
||||
feedbackCL = (outGR - (outER + outFR + outHR));
|
||||
feedbackDR = (outHR - (outER + outFR + outGR));
|
||||
//which we need to feed back into the input again, a bit
|
||||
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ Verbity2::Verbity2(audioMasterCallback audioMaster) :
|
|||
iirAR = 0.0;
|
||||
iirBR = 0.0;
|
||||
|
||||
for(int count = 0; count < 5190; count++) {aZL[count] = 0.0; aZR[count] = 0.0;}
|
||||
//for(int count = 0; count < 5190; count++) {aZL[count] = 0.0; aZR[count] = 0.0;}
|
||||
|
||||
for(int count = 0; count < 5004; count++) {aAL[count] = 0.0; aAR[count] = 0.0;} //AFKPU
|
||||
for(int count = 0; count < 4952; count++) {aFL[count] = 0.0; aFR[count] = 0.0;}
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ private:
|
|||
double iirAL;
|
||||
double iirBL;
|
||||
|
||||
double aZL[5191];
|
||||
//double aZL[5191];
|
||||
|
||||
double aAL[5005]; //AFKPU
|
||||
double aFL[4953];
|
||||
|
|
@ -107,7 +107,7 @@ private:
|
|||
double iirAR;
|
||||
double iirBR;
|
||||
|
||||
double aZR[5191];
|
||||
//double aZR[5191];
|
||||
|
||||
double aAR[5005]; //AFKPU
|
||||
double aFR[4953];
|
||||
|
|
|
|||
|
|
@ -26,10 +26,10 @@ void Verbity2::processReplacing(float **inputs, float **outputs, VstInt32 sample
|
|||
//mulch is tone control, darken to obscure the Chrome Oxide, not as much highpass
|
||||
double size = (pow(A,2.0)*0.9)+0.1;
|
||||
double regen = (1.0-pow(1.0-B,3.0))*0.00032;
|
||||
double mulchSetting = 1.0-pow(1.0-C,2); //modify taper
|
||||
double lowpass = (1.0-(pow(mulchSetting,2)*0.75))/sqrt(overallscale);
|
||||
double highpass = (0.01+(mulchSetting*0.05))/sqrt(overallscale);
|
||||
double interpolateMax = 0.06+(mulchSetting*0.3);
|
||||
double mulchSetting = C;
|
||||
double lowpass = (1.0-(mulchSetting*0.75))/sqrt(overallscale);
|
||||
double highpass = (0.007+(mulchSetting*0.022))/sqrt(overallscale);
|
||||
double interpolateMax = 0.07+(mulchSetting*0.4);
|
||||
double wet = D*2.0;
|
||||
double dry = 2.0 - wet;
|
||||
if (wet > 1.0) wet = 1.0;
|
||||
|
|
@ -40,7 +40,7 @@ void Verbity2::processReplacing(float **inputs, float **outputs, VstInt32 sample
|
|||
//that's so it can be on submixes without cutting back dry channel when adjusted:
|
||||
//unless you go super heavy, you are only adjusting the added verb loudness.
|
||||
|
||||
delayZ = 5189.0*size; //z can be predelay
|
||||
//delayZ = 5189.0*size; //z can be predelay
|
||||
|
||||
delayA = 5003.0*size;
|
||||
delayF = 4951.0*size;
|
||||
|
|
@ -56,7 +56,7 @@ void Verbity2::processReplacing(float **inputs, float **outputs, VstInt32 sample
|
|||
|
||||
delayC = 3323.0*size;
|
||||
delayH = 2791.0*size;
|
||||
delayM= 2767.0*size;
|
||||
delayM = 2767.0*size;
|
||||
delayR = 2389.0*size;
|
||||
delayW = 2347.0*size;
|
||||
|
||||
|
|
@ -104,12 +104,11 @@ void Verbity2::processReplacing(float **inputs, float **outputs, VstInt32 sample
|
|||
feedbackDR = (feedbackDR*(1.0-interpolateR))+(previousDR*interpolateR); previousDR = feedbackDR;
|
||||
feedbackER = (feedbackER*(1.0-interpolateR))+(previousER*interpolateR); previousER = feedbackER;
|
||||
|
||||
aZL[countZ] = inputSampleL;
|
||||
countZ++; if (countZ < 0 || countZ > delayZ) countZ = 0;
|
||||
inputSampleL = aZL[countZ-((countZ > delayZ)?delayZ+1:0)];
|
||||
aZR[countZ] = inputSampleR;
|
||||
countZ++; if (countZ < 0 || countZ > delayZ) countZ = 0;
|
||||
inputSampleR = aZR[countZ-((countZ > delayZ)?delayZ+1:0)];
|
||||
// aZL[countZ] = inputSampleL;
|
||||
// aZR[countZ] = inputSampleR;
|
||||
// countZ++; if (countZ < 0 || countZ > delayZ) countZ = 0;
|
||||
// inputSampleL = aZL[countZ-((countZ > delayZ)?delayZ+1:0)];
|
||||
// inputSampleR = aZR[countZ-((countZ > delayZ)?delayZ+1:0)];
|
||||
//predelay
|
||||
|
||||
aAL[countA] = inputSampleL + (feedbackAL * (regen*(1.0-fabs(feedbackAL*regen))));
|
||||
|
|
@ -273,17 +272,17 @@ void Verbity2::processReplacing(float **inputs, float **outputs, VstInt32 sample
|
|||
//-------- five
|
||||
|
||||
|
||||
feedbackAL = ((outUL*3.0) - ((outVL + outWL + outXL + outYL)*2.0));
|
||||
feedbackAR = ((outUL*3.0) - ((outVL + outWL + outXL + outYL)*2.0));
|
||||
feedbackBL = ((outVL*3.0) - ((outUL + outWL + outXL + outYL)*2.0));
|
||||
feedbackCL = ((outWL*3.0) - ((outUL + outVL + outXL + outYL)*2.0));
|
||||
feedbackCR = ((outWL*3.0) - ((outUL + outVL + outXL + outYL)*2.0));
|
||||
feedbackDL = ((outXL*3.0) - ((outUL + outVL + outWL + outYL)*2.0));
|
||||
feedbackEL = ((outYL*3.0) - ((outUL + outVL + outWL + outXL)*2.0));
|
||||
feedbackER = ((outYL*3.0) - ((outUL + outVL + outWL + outXL)*2.0));
|
||||
|
||||
feedbackAR = ((outUR*3.0) - ((outVR + outWR + outXR + outYR)*2.0));
|
||||
feedbackAL = ((outUR*3.0) - ((outVR + outWR + outXR + outYR)*2.0));
|
||||
feedbackBR = ((outVR*3.0) - ((outUR + outWR + outXR + outYR)*2.0));
|
||||
feedbackCR = ((outWR*3.0) - ((outUR + outVR + outXR + outYR)*2.0));
|
||||
feedbackCL = ((outWR*3.0) - ((outUR + outVR + outXR + outYR)*2.0));
|
||||
feedbackDR = ((outXR*3.0) - ((outUR + outVR + outWR + outYR)*2.0));
|
||||
feedbackER = ((outYR*3.0) - ((outUR + outVR + outWR + outXR)*2.0));
|
||||
feedbackEL = ((outYR*3.0) - ((outUR + outVR + outWR + outXR)*2.0));
|
||||
//which we need to feed back into the input again, a bit
|
||||
|
||||
inputSampleL = (outUL + outVL + outWL + outXL + outYL)*0.0016;
|
||||
|
|
@ -382,10 +381,10 @@ void Verbity2::processDoubleReplacing(double **inputs, double **outputs, VstInt3
|
|||
//mulch is tone control, darken to obscure the Chrome Oxide, not as much highpass
|
||||
double size = (pow(A,2.0)*0.9)+0.1;
|
||||
double regen = (1.0-pow(1.0-B,3.0))*0.00032;
|
||||
double mulchSetting = 1.0-pow(1.0-C,2); //modify taper
|
||||
double lowpass = (1.0-(pow(mulchSetting,2)*0.75))/sqrt(overallscale);
|
||||
double highpass = (0.01+(mulchSetting*0.05))/sqrt(overallscale);
|
||||
double interpolateMax = 0.06+(mulchSetting*0.3);
|
||||
double mulchSetting = C;
|
||||
double lowpass = (1.0-(mulchSetting*0.75))/sqrt(overallscale);
|
||||
double highpass = (0.007+(mulchSetting*0.022))/sqrt(overallscale);
|
||||
double interpolateMax = 0.07+(mulchSetting*0.4);
|
||||
double wet = D*2.0;
|
||||
double dry = 2.0 - wet;
|
||||
if (wet > 1.0) wet = 1.0;
|
||||
|
|
@ -396,7 +395,7 @@ void Verbity2::processDoubleReplacing(double **inputs, double **outputs, VstInt3
|
|||
//that's so it can be on submixes without cutting back dry channel when adjusted:
|
||||
//unless you go super heavy, you are only adjusting the added verb loudness.
|
||||
|
||||
delayZ = 5189.0*size; //z can be predelay
|
||||
//delayZ = 5189.0*size; //z can be predelay
|
||||
|
||||
delayA = 5003.0*size;
|
||||
delayF = 4951.0*size;
|
||||
|
|
@ -412,7 +411,7 @@ void Verbity2::processDoubleReplacing(double **inputs, double **outputs, VstInt3
|
|||
|
||||
delayC = 3323.0*size;
|
||||
delayH = 2791.0*size;
|
||||
delayM= 2767.0*size;
|
||||
delayM = 2767.0*size;
|
||||
delayR = 2389.0*size;
|
||||
delayW = 2347.0*size;
|
||||
|
||||
|
|
@ -460,12 +459,11 @@ void Verbity2::processDoubleReplacing(double **inputs, double **outputs, VstInt3
|
|||
feedbackDR = (feedbackDR*(1.0-interpolateR))+(previousDR*interpolateR); previousDR = feedbackDR;
|
||||
feedbackER = (feedbackER*(1.0-interpolateR))+(previousER*interpolateR); previousER = feedbackER;
|
||||
|
||||
aZL[countZ] = inputSampleL;
|
||||
countZ++; if (countZ < 0 || countZ > delayZ) countZ = 0;
|
||||
inputSampleL = aZL[countZ-((countZ > delayZ)?delayZ+1:0)];
|
||||
aZR[countZ] = inputSampleR;
|
||||
countZ++; if (countZ < 0 || countZ > delayZ) countZ = 0;
|
||||
inputSampleR = aZR[countZ-((countZ > delayZ)?delayZ+1:0)];
|
||||
// aZL[countZ] = inputSampleL;
|
||||
// aZR[countZ] = inputSampleR;
|
||||
// countZ++; if (countZ < 0 || countZ > delayZ) countZ = 0;
|
||||
// inputSampleL = aZL[countZ-((countZ > delayZ)?delayZ+1:0)];
|
||||
// inputSampleR = aZR[countZ-((countZ > delayZ)?delayZ+1:0)];
|
||||
//predelay
|
||||
|
||||
aAL[countA] = inputSampleL + (feedbackAL * (regen*(1.0-fabs(feedbackAL*regen))));
|
||||
|
|
|
|||
|
|
@ -3,9 +3,9 @@
|
|||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 8/26/22
|
||||
* Created: 2/1/23
|
||||
*
|
||||
* Copyright: Copyright © 2022 Airwindows, Airwindows uses the MIT license
|
||||
* Copyright: Copyright © 2023 Airwindows, Airwindows uses the MIT license
|
||||
*
|
||||
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
|
||||
* consideration of your agreement to the following terms, and your use, installation, modification
|
||||
|
|
@ -152,6 +152,21 @@ ComponentResult Chamber2::GetPropertyInfo (AudioUnitPropertyID inID,
|
|||
return AUEffectBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// state that plugin supports only stereo-in/stereo-out processing
|
||||
UInt32 Chamber2::SupportedNumChannels(const AUChannelInfo ** outInfo)
|
||||
{
|
||||
if (outInfo != NULL)
|
||||
{
|
||||
static AUChannelInfo info;
|
||||
info.inChannels = 2;
|
||||
info.outChannels = 2;
|
||||
*outInfo = &info;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Chamber2::GetProperty
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
|
@ -180,33 +195,32 @@ ComponentResult Chamber2::Initialize()
|
|||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Chamber2::Chamber2Kernel::Reset()
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
void Chamber2::Chamber2Kernel::Reset()
|
||||
ComponentResult Chamber2::Reset(AudioUnitScope inScope, AudioUnitElement inElement)
|
||||
{
|
||||
for(int count = 0; count < 9999; count++) {aE[count] = 0.0;}
|
||||
for(int count = 0; count < 9999; count++) {aF[count] = 0.0;}
|
||||
for(int count = 0; count < 9999; count++) {aG[count] = 0.0;}
|
||||
for(int count = 0; count < 9999; count++) {aH[count] = 0.0;}
|
||||
for(int count = 0; count < 9999; count++) {aA[count] = 0.0;}
|
||||
for(int count = 0; count < 9999; count++) {aB[count] = 0.0;}
|
||||
for(int count = 0; count < 9999; count++) {aC[count] = 0.0;}
|
||||
for(int count = 0; count < 9999; count++) {aD[count] = 0.0;}
|
||||
for(int count = 0; count < 9999; count++) {aI[count] = 0.0;}
|
||||
for(int count = 0; count < 9999; count++) {aJ[count] = 0.0;}
|
||||
for(int count = 0; count < 9999; count++) {aK[count] = 0.0;}
|
||||
for(int count = 0; count < 9999; count++) {aL[count] = 0.0;}
|
||||
for(int count = 0; count < 9999; count++) {aM[count] = 0.0;}
|
||||
for(int count = 0; count < 9999; count++) {aEL[count] = 0.0;aER[count] = 0.0;}
|
||||
for(int count = 0; count < 9999; count++) {aFL[count] = 0.0;aFR[count] = 0.0;}
|
||||
for(int count = 0; count < 9999; count++) {aGL[count] = 0.0;aGR[count] = 0.0;}
|
||||
for(int count = 0; count < 9999; count++) {aHL[count] = 0.0;aHR[count] = 0.0;}
|
||||
for(int count = 0; count < 9999; count++) {aAL[count] = 0.0;aAR[count] = 0.0;}
|
||||
for(int count = 0; count < 9999; count++) {aBL[count] = 0.0;aBR[count] = 0.0;}
|
||||
for(int count = 0; count < 9999; count++) {aCL[count] = 0.0;aCR[count] = 0.0;}
|
||||
for(int count = 0; count < 9999; count++) {aDL[count] = 0.0;aDR[count] = 0.0;}
|
||||
for(int count = 0; count < 9999; count++) {aIL[count] = 0.0;aIR[count] = 0.0;}
|
||||
for(int count = 0; count < 9999; count++) {aJL[count] = 0.0;aJR[count] = 0.0;}
|
||||
for(int count = 0; count < 9999; count++) {aKL[count] = 0.0;aKR[count] = 0.0;}
|
||||
for(int count = 0; count < 9999; count++) {aLL[count] = 0.0;aLR[count] = 0.0;}
|
||||
for(int count = 0; count < 9999; count++) {aML[count] = 0.0;aMR[count] = 0.0;}
|
||||
|
||||
feedbackA = 0.0;
|
||||
feedbackB = 0.0;
|
||||
feedbackC = 0.0;
|
||||
feedbackD = 0.0;
|
||||
previousA = 0.0;
|
||||
previousB = 0.0;
|
||||
previousC = 0.0;
|
||||
previousD = 0.0;
|
||||
feedbackAL = 0.0; feedbackAR = 0.0;
|
||||
feedbackBL = 0.0; feedbackBR = 0.0;
|
||||
feedbackCL = 0.0; feedbackCR = 0.0;
|
||||
feedbackDL = 0.0; feedbackDR = 0.0;
|
||||
previousAL = 0.0; previousAR = 0.0;
|
||||
previousBL = 0.0; previousBR = 0.0;
|
||||
previousCL = 0.0; previousCR = 0.0;
|
||||
previousDL = 0.0; previousDR = 0.0;
|
||||
|
||||
for(int count = 0; count < 9; count++) {lastRef[count] = 0.0;}
|
||||
cycle = 0;
|
||||
for(int count = 0; count < 9; count++) {lastRefL[count] = 0.0;lastRefR[count] = 0.0;}
|
||||
|
||||
countI = 1;
|
||||
countJ = 1;
|
||||
|
|
@ -223,24 +237,26 @@ void Chamber2::Chamber2Kernel::Reset()
|
|||
countF = 1;
|
||||
countG = 1;
|
||||
countH = 1;
|
||||
cycle = 0;
|
||||
|
||||
|
||||
fpd = 1.0; while (fpd < 16386) fpd = rand()*UINT32_MAX;
|
||||
fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX;
|
||||
fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX;
|
||||
return noErr;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Chamber2::Chamber2Kernel::Process
|
||||
// Chamber2::ProcessBufferLists
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
void Chamber2::Chamber2Kernel::Process( const Float32 *inSourceP,
|
||||
Float32 *inDestP,
|
||||
UInt32 inFramesToProcess,
|
||||
UInt32 inNumChannels,
|
||||
bool &ioSilence )
|
||||
OSStatus Chamber2::ProcessBufferLists(AudioUnitRenderActionFlags & ioActionFlags,
|
||||
const AudioBufferList & inBuffer,
|
||||
AudioBufferList & outBuffer,
|
||||
UInt32 inFramesToProcess)
|
||||
{
|
||||
Float32 * inputL = (Float32*)(inBuffer.mBuffers[0].mData);
|
||||
Float32 * inputR = (Float32*)(inBuffer.mBuffers[1].mData);
|
||||
Float32 * outputL = (Float32*)(outBuffer.mBuffers[0].mData);
|
||||
Float32 * outputR = (Float32*)(outBuffer.mBuffers[1].mData);
|
||||
UInt32 nSampleFrames = inFramesToProcess;
|
||||
const Float32 *sourceP = inSourceP;
|
||||
Float32 *destP = inDestP;
|
||||
|
||||
double overallscale = 1.0;
|
||||
overallscale /= 44100.0;
|
||||
overallscale *= GetSampleRate();
|
||||
|
|
@ -252,7 +268,7 @@ void Chamber2::Chamber2Kernel::Process( const Float32 *inSourceP,
|
|||
|
||||
Float64 size = (GetParameter( kParam_One )*0.9)+0.1;
|
||||
Float64 regen = (1.0-(pow(1.0-GetParameter( kParam_Two ),2)))*0.123;
|
||||
Float64 echoScale = 1.0-(pow(GetParameter( kParam_Three ),3));
|
||||
Float64 echoScale = 1.0-GetParameter( kParam_Three );
|
||||
Float64 echo = 0.618033988749894848204586+((1.0-0.618033988749894848204586)*echoScale);
|
||||
Float64 interpolate = (1.0-echo)*0.381966011250105;
|
||||
//this now goes from Chamber, to all the reverb delays being exactly the same
|
||||
|
|
@ -268,7 +284,8 @@ void Chamber2::Chamber2Kernel::Process( const Float32 *inSourceP,
|
|||
//that's so it can be on submixes without cutting back dry channel when adjusted:
|
||||
//unless you go super heavy, you are only adjusting the added verb loudness.
|
||||
|
||||
delayE = delayM = 9900*size;
|
||||
delayM = sqrt(9900*size);
|
||||
delayE = 9900*size;
|
||||
delayF = delayE*echo;
|
||||
delayG = delayF*echo;
|
||||
delayH = delayG*echo;
|
||||
|
|
@ -287,133 +304,206 @@ void Chamber2::Chamber2Kernel::Process( const Float32 *inSourceP,
|
|||
//sustain infinitely.
|
||||
|
||||
while (nSampleFrames-- > 0) {
|
||||
double inputSample = *sourceP;
|
||||
if (fabs(inputSample)<1.18e-23) inputSample = fpd * 1.18e-17;
|
||||
double drySample = inputSample;
|
||||
long double inputSampleL = *inputL;
|
||||
long double inputSampleR = *inputR;
|
||||
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17;
|
||||
if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17;
|
||||
double drySampleL = inputSampleL;
|
||||
double drySampleR = inputSampleR;
|
||||
|
||||
cycle++;
|
||||
if (cycle == cycleEnd) { //hit the end point and we do a reverb sample
|
||||
|
||||
aM[countM] = inputSample;
|
||||
aML[countM] = inputSampleL;
|
||||
aMR[countM] = inputSampleR;
|
||||
countM++; if (countM < 0 || countM > delayM) countM = 0;
|
||||
inputSample = aM[countM-((countM > delayM)?delayM+1:0)];
|
||||
inputSampleL = aML[countM-((countM > delayM)?delayM+1:0)];
|
||||
inputSampleR = aMR[countM-((countM > delayM)?delayM+1:0)];
|
||||
//predelay to make the first echo still be an echo even when blurred
|
||||
|
||||
feedbackA = (feedbackA*(1.0-interpolate))+(previousA*interpolate); previousA = feedbackA;
|
||||
feedbackB = (feedbackB*(1.0-interpolate))+(previousB*interpolate); previousB = feedbackB;
|
||||
feedbackC = (feedbackC*(1.0-interpolate))+(previousC*interpolate); previousC = feedbackC;
|
||||
feedbackD = (feedbackD*(1.0-interpolate))+(previousD*interpolate); previousD = feedbackD;
|
||||
feedbackAL = (feedbackAL*(1.0-interpolate))+(previousAL*interpolate); previousAL = feedbackAL;
|
||||
feedbackBL = (feedbackBL*(1.0-interpolate))+(previousBL*interpolate); previousBL = feedbackBL;
|
||||
feedbackCL = (feedbackCL*(1.0-interpolate))+(previousCL*interpolate); previousCL = feedbackCL;
|
||||
feedbackDL = (feedbackDL*(1.0-interpolate))+(previousDL*interpolate); previousDL = feedbackDL;
|
||||
feedbackAR = (feedbackAR*(1.0-interpolate))+(previousAR*interpolate); previousAR = feedbackAR;
|
||||
feedbackBR = (feedbackBR*(1.0-interpolate))+(previousBR*interpolate); previousBR = feedbackBR;
|
||||
feedbackCR = (feedbackCR*(1.0-interpolate))+(previousCR*interpolate); previousCR = feedbackCR;
|
||||
feedbackDR = (feedbackDR*(1.0-interpolate))+(previousDR*interpolate); previousDR = feedbackDR;
|
||||
|
||||
aI[countI] = inputSample + (feedbackA * regen);
|
||||
aJ[countJ] = inputSample + (feedbackB * regen);
|
||||
aK[countK] = inputSample + (feedbackC * regen);
|
||||
aL[countL] = inputSample + (feedbackD * regen);
|
||||
aIL[countI] = inputSampleL + (feedbackAL * regen);
|
||||
aJL[countJ] = inputSampleL + (feedbackBL * regen);
|
||||
aKL[countK] = inputSampleL + (feedbackCL * regen);
|
||||
aLL[countL] = inputSampleL + (feedbackDL * regen);
|
||||
aIR[countI] = inputSampleR + (feedbackAR * regen);
|
||||
aJR[countJ] = inputSampleR + (feedbackBR * regen);
|
||||
aKR[countK] = inputSampleR + (feedbackCR * regen);
|
||||
aLR[countL] = inputSampleR + (feedbackDR * regen);
|
||||
|
||||
countI++; if (countI < 0 || countI > delayI) countI = 0;
|
||||
countJ++; if (countJ < 0 || countJ > delayJ) countJ = 0;
|
||||
countK++; if (countK < 0 || countK > delayK) countK = 0;
|
||||
countL++; if (countL < 0 || countL > delayL) countL = 0;
|
||||
|
||||
Float64 outI = aI[countI-((countI > delayI)?delayI+1:0)];
|
||||
Float64 outJ = aJ[countJ-((countJ > delayJ)?delayJ+1:0)];
|
||||
Float64 outK = aK[countK-((countK > delayK)?delayK+1:0)];
|
||||
Float64 outL = aL[countL-((countL > delayL)?delayL+1:0)];
|
||||
double outIL = aIL[countI-((countI > delayI)?delayI+1:0)];
|
||||
double outJL = aJL[countJ-((countJ > delayJ)?delayJ+1:0)];
|
||||
double outKL = aKL[countK-((countK > delayK)?delayK+1:0)];
|
||||
double outLL = aLL[countL-((countL > delayL)?delayL+1:0)];
|
||||
double outIR = aIR[countI-((countI > delayI)?delayI+1:0)];
|
||||
double outJR = aJR[countJ-((countJ > delayJ)?delayJ+1:0)];
|
||||
double outKR = aKR[countK-((countK > delayK)?delayK+1:0)];
|
||||
double outLR = aLR[countL-((countL > delayL)?delayL+1:0)];
|
||||
//first block: now we have four outputs
|
||||
|
||||
aA[countA] = (outI - (outJ + outK + outL));
|
||||
aB[countB] = (outJ - (outI + outK + outL));
|
||||
aC[countC] = (outK - (outI + outJ + outL));
|
||||
aD[countD] = (outL - (outI + outJ + outK));
|
||||
aAL[countA] = (outIL - (outJL + outKL + outLL));
|
||||
aBL[countB] = (outJL - (outIL + outKL + outLL));
|
||||
aCL[countC] = (outKL - (outIL + outJL + outLL));
|
||||
aDL[countD] = (outLL - (outIL + outJL + outKL));
|
||||
aAR[countA] = (outIR - (outJR + outKR + outLR));
|
||||
aBR[countB] = (outJR - (outIR + outKR + outLR));
|
||||
aCR[countC] = (outKR - (outIR + outJR + outLR));
|
||||
aDR[countD] = (outLR - (outIR + outJR + outKR));
|
||||
|
||||
countA++; if (countA < 0 || countA > delayA) countA = 0;
|
||||
countB++; if (countB < 0 || countB > delayB) countB = 0;
|
||||
countC++; if (countC < 0 || countC > delayC) countC = 0;
|
||||
countD++; if (countD < 0 || countD > delayD) countD = 0;
|
||||
|
||||
Float64 outA = aA[countA-((countA > delayA)?delayA+1:0)];
|
||||
Float64 outB = aB[countB-((countB > delayB)?delayB+1:0)];
|
||||
Float64 outC = aC[countC-((countC > delayC)?delayC+1:0)];
|
||||
Float64 outD = aD[countD-((countD > delayD)?delayD+1:0)];
|
||||
double outAL = aAL[countA-((countA > delayA)?delayA+1:0)];
|
||||
double outBL = aBL[countB-((countB > delayB)?delayB+1:0)];
|
||||
double outCL = aCL[countC-((countC > delayC)?delayC+1:0)];
|
||||
double outDL = aDL[countD-((countD > delayD)?delayD+1:0)];
|
||||
double outAR = aAR[countA-((countA > delayA)?delayA+1:0)];
|
||||
double outBR = aBR[countB-((countB > delayB)?delayB+1:0)];
|
||||
double outCR = aCR[countC-((countC > delayC)?delayC+1:0)];
|
||||
double outDR = aDR[countD-((countD > delayD)?delayD+1:0)];
|
||||
//second block: four more outputs
|
||||
|
||||
aE[countE] = (outA - (outB + outC + outD));
|
||||
aF[countF] = (outB - (outA + outC + outD));
|
||||
aG[countG] = (outC - (outA + outB + outD));
|
||||
aH[countH] = (outD - (outA + outB + outC));
|
||||
aEL[countE] = (outAL - (outBL + outCL + outDL));
|
||||
aFL[countF] = (outBL - (outAL + outCL + outDL));
|
||||
aGL[countG] = (outCL - (outAL + outBL + outDL));
|
||||
aHL[countH] = (outDL - (outAL + outBL + outCL));
|
||||
aER[countE] = (outAR - (outBR + outCR + outDR));
|
||||
aFR[countF] = (outBR - (outAR + outCR + outDR));
|
||||
aGR[countG] = (outCR - (outAR + outBR + outDR));
|
||||
aHR[countH] = (outDR - (outAR + outBR + outCR));
|
||||
|
||||
countE++; if (countE < 0 || countE > delayE) countE = 0;
|
||||
countF++; if (countF < 0 || countF > delayF) countF = 0;
|
||||
countG++; if (countG < 0 || countG > delayG) countG = 0;
|
||||
countH++; if (countH < 0 || countH > delayH) countH = 0;
|
||||
|
||||
Float64 outE = aE[countE-((countE > delayE)?delayE+1:0)];
|
||||
Float64 outF = aF[countF-((countF > delayF)?delayF+1:0)];
|
||||
Float64 outG = aG[countG-((countG > delayG)?delayG+1:0)];
|
||||
Float64 outH = aH[countH-((countH > delayH)?delayH+1:0)];
|
||||
double outEL = aEL[countE-((countE > delayE)?delayE+1:0)];
|
||||
double outFL = aFL[countF-((countF > delayF)?delayF+1:0)];
|
||||
double outGL = aGL[countG-((countG > delayG)?delayG+1:0)];
|
||||
double outHL = aHL[countH-((countH > delayH)?delayH+1:0)];
|
||||
double outER = aER[countE-((countE > delayE)?delayE+1:0)];
|
||||
double outFR = aFR[countF-((countF > delayF)?delayF+1:0)];
|
||||
double outGR = aGR[countG-((countG > delayG)?delayG+1:0)];
|
||||
double outHR = aHR[countH-((countH > delayH)?delayH+1:0)];
|
||||
//third block: final outputs
|
||||
|
||||
feedbackA = (outE - (outF + outG + outH));
|
||||
feedbackB = (outF - (outE + outG + outH));
|
||||
feedbackC = (outG - (outE + outF + outH));
|
||||
feedbackD = (outH - (outE + outF + outG));
|
||||
feedbackAR = (outEL - (outFL + outGL + outHL));
|
||||
feedbackBL = (outFL - (outEL + outGL + outHL));
|
||||
feedbackCR = (outGL - (outEL + outFL + outHL));
|
||||
feedbackDL = (outHL - (outEL + outFL + outGL));
|
||||
feedbackAL = (outER - (outFR + outGR + outHR));
|
||||
feedbackBR = (outFR - (outER + outGR + outHR));
|
||||
feedbackCL = (outGR - (outER + outFR + outHR));
|
||||
feedbackDR = (outHR - (outER + outFR + outGR));
|
||||
//which we need to feed back into the input again, a bit
|
||||
|
||||
inputSample = (outE + outF + outG + outH)/8.0;
|
||||
inputSampleL = (outEL + outFL + outGL + outHL)/8.0;
|
||||
inputSampleR = (outER + outFR + outGR + outHR)/8.0;
|
||||
//and take the final combined sum of outputs
|
||||
if (cycleEnd == 4) {
|
||||
lastRef[0] = lastRef[4]; //start from previous last
|
||||
lastRef[2] = (lastRef[0] + inputSample)/2; //half
|
||||
lastRef[1] = (lastRef[0] + lastRef[2])/2; //one quarter
|
||||
lastRef[3] = (lastRef[2] + inputSample)/2; //three quarters
|
||||
lastRef[4] = inputSample; //full
|
||||
lastRefL[0] = lastRefL[4]; //start from previous last
|
||||
lastRefL[2] = (lastRefL[0] + inputSampleL)/2; //half
|
||||
lastRefL[1] = (lastRefL[0] + lastRefL[2])/2; //one quarter
|
||||
lastRefL[3] = (lastRefL[2] + inputSampleL)/2; //three quarters
|
||||
lastRefL[4] = inputSampleL; //full
|
||||
lastRefR[0] = lastRefR[4]; //start from previous last
|
||||
lastRefR[2] = (lastRefR[0] + inputSampleR)/2; //half
|
||||
lastRefR[1] = (lastRefR[0] + lastRefR[2])/2; //one quarter
|
||||
lastRefR[3] = (lastRefR[2] + inputSampleR)/2; //three quarters
|
||||
lastRefR[4] = inputSampleR; //full
|
||||
}
|
||||
if (cycleEnd == 3) {
|
||||
lastRef[0] = lastRef[3]; //start from previous last
|
||||
lastRef[2] = (lastRef[0]+lastRef[0]+inputSample)/3; //third
|
||||
lastRef[1] = (lastRef[0]+inputSample+inputSample)/3; //two thirds
|
||||
lastRef[3] = inputSample; //full
|
||||
lastRefL[0] = lastRefL[3]; //start from previous last
|
||||
lastRefL[2] = (lastRefL[0]+lastRefL[0]+inputSampleL)/3; //third
|
||||
lastRefL[1] = (lastRefL[0]+inputSampleL+inputSampleL)/3; //two thirds
|
||||
lastRefL[3] = inputSampleL; //full
|
||||
lastRefR[0] = lastRefR[3]; //start from previous last
|
||||
lastRefR[2] = (lastRefR[0]+lastRefR[0]+inputSampleR)/3; //third
|
||||
lastRefR[1] = (lastRefR[0]+inputSampleR+inputSampleR)/3; //two thirds
|
||||
lastRefR[3] = inputSampleR; //full
|
||||
}
|
||||
if (cycleEnd == 2) {
|
||||
lastRef[0] = lastRef[2]; //start from previous last
|
||||
lastRef[1] = (lastRef[0] + inputSample)/2; //half
|
||||
lastRef[2] = inputSample; //full
|
||||
lastRefL[0] = lastRefL[2]; //start from previous last
|
||||
lastRefL[1] = (lastRefL[0] + inputSampleL)/2; //half
|
||||
lastRefL[2] = inputSampleL; //full
|
||||
lastRefR[0] = lastRefR[2]; //start from previous last
|
||||
lastRefR[1] = (lastRefR[0] + inputSampleR)/2; //half
|
||||
lastRefR[2] = inputSampleR; //full
|
||||
}
|
||||
if (cycleEnd == 1) {
|
||||
lastRefL[0] = inputSampleL;
|
||||
lastRefR[0] = inputSampleR;
|
||||
}
|
||||
if (cycleEnd == 1) lastRef[0] = inputSample;
|
||||
cycle = 0; //reset
|
||||
inputSample = lastRef[cycle];
|
||||
inputSampleL = lastRefL[cycle];
|
||||
inputSampleR = lastRefR[cycle];
|
||||
} else {
|
||||
inputSample = lastRef[cycle];
|
||||
inputSampleL = lastRefL[cycle];
|
||||
inputSampleR = lastRefR[cycle];
|
||||
//we are going through our references now
|
||||
}
|
||||
|
||||
switch (cycleEnd) //multi-pole average using lastRef[] variables
|
||||
{
|
||||
case 4:
|
||||
lastRef[8] = inputSample; inputSample = (inputSample+lastRef[7])*0.5;
|
||||
lastRef[7] = lastRef[8]; //continue, do not break
|
||||
lastRefL[8] = inputSampleL; inputSampleL = (inputSampleL+lastRefL[7])*0.5;
|
||||
lastRefL[7] = lastRefL[8]; //continue, do not break
|
||||
lastRefR[8] = inputSampleR; inputSampleR = (inputSampleR+lastRefR[7])*0.5;
|
||||
lastRefR[7] = lastRefR[8]; //continue, do not break
|
||||
case 3:
|
||||
lastRef[8] = inputSample; inputSample = (inputSample+lastRef[6])*0.5;
|
||||
lastRef[6] = lastRef[8]; //continue, do not break
|
||||
lastRefL[8] = inputSampleL; inputSampleL = (inputSampleL+lastRefL[6])*0.5;
|
||||
lastRefL[6] = lastRefL[8]; //continue, do not break
|
||||
lastRefR[8] = inputSampleR; inputSampleR = (inputSampleR+lastRefR[6])*0.5;
|
||||
lastRefR[6] = lastRefR[8]; //continue, do not break
|
||||
case 2:
|
||||
lastRef[8] = inputSample; inputSample = (inputSample+lastRef[5])*0.5;
|
||||
lastRef[5] = lastRef[8]; //continue, do not break
|
||||
lastRefL[8] = inputSampleL; inputSampleL = (inputSampleL+lastRefL[5])*0.5;
|
||||
lastRefL[5] = lastRefL[8]; //continue, do not break
|
||||
lastRefR[8] = inputSampleR; inputSampleR = (inputSampleR+lastRefR[5])*0.5;
|
||||
lastRefR[5] = lastRefR[8]; //continue, do not break
|
||||
case 1:
|
||||
break; //no further averaging
|
||||
}
|
||||
|
||||
if (wet < 1.0) inputSample *= wet;
|
||||
if (dry < 1.0) drySample *= dry;
|
||||
inputSample += drySample;
|
||||
|
||||
if (wet < 1.0) {inputSampleL *= wet; inputSampleR *= wet;}
|
||||
if (dry < 1.0) {drySampleL *= dry; drySampleR *= dry;}
|
||||
inputSampleL += drySampleL;
|
||||
inputSampleR += drySampleR;
|
||||
//this is our submix verb dry/wet: 0.5 is BOTH at FULL VOLUME
|
||||
//purpose is that, if you're adding verb, you're not altering other balances
|
||||
|
||||
//begin 32 bit floating point dither
|
||||
int expon; frexpf((float)inputSample, &expon);
|
||||
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5;
|
||||
inputSample += ((double(fpd)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
|
||||
//end 32 bit floating point dither
|
||||
//begin 32 bit stereo floating point dither
|
||||
int expon; frexpf((float)inputSampleL, &expon);
|
||||
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
|
||||
inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
|
||||
frexpf((float)inputSampleR, &expon);
|
||||
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
|
||||
inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
|
||||
//end 32 bit stereo floating point dither
|
||||
|
||||
*destP = inputSample;
|
||||
*outputL = inputSampleL;
|
||||
*outputR = inputSampleR;
|
||||
//direct stereo out
|
||||
|
||||
sourceP += inNumChannels; destP += inNumChannels;
|
||||
inputL += 1;
|
||||
inputR += 1;
|
||||
outputL += 1;
|
||||
outputR += 1;
|
||||
}
|
||||
return noErr;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3,9 +3,9 @@
|
|||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 8/26/22
|
||||
* Created: 2/1/23
|
||||
*
|
||||
* Copyright: Copyright © 2022 Airwindows, Airwindows uses the MIT license
|
||||
* Copyright: Copyright © 2023 Airwindows, Airwindows uses the MIT license
|
||||
*
|
||||
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
|
||||
* consideration of your agreement to the following terms, and your use, installation, modification
|
||||
|
|
@ -83,8 +83,13 @@ public:
|
|||
virtual ~Chamber2 () { delete mDebugDispatcher; }
|
||||
#endif
|
||||
|
||||
virtual AUKernelBase * NewKernel() { return new Chamber2Kernel(this); }
|
||||
|
||||
virtual ComponentResult Reset(AudioUnitScope inScope, AudioUnitElement inElement);
|
||||
|
||||
virtual OSStatus ProcessBufferLists(AudioUnitRenderActionFlags & ioActionFlags,
|
||||
const AudioBufferList & inBuffer, AudioBufferList & outBuffer,
|
||||
UInt32 inFramesToProcess);
|
||||
virtual UInt32 SupportedNumChannels(const AUChannelInfo ** outInfo);
|
||||
|
||||
virtual ComponentResult GetParameterValueStrings(AudioUnitScope inScope,
|
||||
AudioUnitParameterID inParameterID,
|
||||
CFArrayRef * outStrings);
|
||||
|
|
@ -103,7 +108,7 @@ public:
|
|||
AudioUnitScope inScope,
|
||||
AudioUnitElement inElement,
|
||||
void * outData);
|
||||
|
||||
|
||||
virtual ComponentResult Initialize();
|
||||
virtual bool SupportsTail () { return true; }
|
||||
virtual Float64 GetTailTime() {return (1.0/GetSampleRate())*0.0;} //in SECONDS! gsr * a number = in samples
|
||||
|
|
@ -112,70 +117,75 @@ public:
|
|||
/*! @method Version */
|
||||
virtual ComponentResult Version() { return kChamber2Version; }
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
class Chamber2Kernel : public AUKernelBase // most of the real work happens here
|
||||
{
|
||||
public:
|
||||
Chamber2Kernel(AUEffectBase *inAudioUnit )
|
||||
: AUKernelBase(inAudioUnit)
|
||||
{
|
||||
}
|
||||
|
||||
// *Required* overides for the process method for this effect
|
||||
// processes one channel of interleaved samples
|
||||
virtual void Process( const Float32 *inSourceP,
|
||||
Float32 *inDestP,
|
||||
UInt32 inFramesToProcess,
|
||||
UInt32 inNumChannels,
|
||||
bool &ioSilence);
|
||||
|
||||
virtual void Reset();
|
||||
|
||||
private:
|
||||
Float64 aE[10000];
|
||||
Float64 aF[10000];
|
||||
Float64 aG[10000];
|
||||
Float64 aH[10000];
|
||||
Float64 aA[10000];
|
||||
Float64 aB[10000];
|
||||
Float64 aC[10000];
|
||||
Float64 aD[10000];
|
||||
Float64 aI[10000];
|
||||
Float64 aJ[10000];
|
||||
Float64 aK[10000];
|
||||
Float64 aL[10000];
|
||||
Float64 aM[10000];
|
||||
|
||||
Float64 feedbackA;
|
||||
Float64 feedbackB;
|
||||
Float64 feedbackC;
|
||||
Float64 feedbackD;
|
||||
Float64 previousA;
|
||||
Float64 previousB;
|
||||
Float64 previousC;
|
||||
Float64 previousD;
|
||||
|
||||
double lastRef[10];
|
||||
int cycle;
|
||||
|
||||
int countA, delayA;
|
||||
int countB, delayB;
|
||||
int countC, delayC;
|
||||
int countD, delayD;
|
||||
int countE, delayE;
|
||||
int countF, delayF;
|
||||
int countG, delayG;
|
||||
int countH, delayH;
|
||||
int countI, delayI;
|
||||
int countJ, delayJ;
|
||||
int countK, delayK;
|
||||
int countL, delayL;
|
||||
int countM, delayM;
|
||||
|
||||
uint32_t fpd;
|
||||
};
|
||||
|
||||
double aEL[10000];
|
||||
double aFL[10000];
|
||||
double aGL[10000];
|
||||
double aHL[10000];
|
||||
double aAL[10000];
|
||||
double aBL[10000];
|
||||
double aCL[10000];
|
||||
double aDL[10000];
|
||||
double aIL[10000];
|
||||
double aJL[10000];
|
||||
double aKL[10000];
|
||||
double aLL[10000];
|
||||
double aML[10000];
|
||||
|
||||
double feedbackAL;
|
||||
double feedbackBL;
|
||||
double feedbackCL;
|
||||
double feedbackDL;
|
||||
double previousAL;
|
||||
double previousBL;
|
||||
double previousCL;
|
||||
double previousDL;
|
||||
|
||||
double lastRefL[10];
|
||||
|
||||
double aER[10000];
|
||||
double aFR[10000];
|
||||
double aGR[10000];
|
||||
double aHR[10000];
|
||||
double aAR[10000];
|
||||
double aBR[10000];
|
||||
double aCR[10000];
|
||||
double aDR[10000];
|
||||
double aIR[10000];
|
||||
double aJR[10000];
|
||||
double aKR[10000];
|
||||
double aLR[10000];
|
||||
double aMR[10000];
|
||||
|
||||
double feedbackAR;
|
||||
double feedbackBR;
|
||||
double feedbackCR;
|
||||
double feedbackDR;
|
||||
double previousAR;
|
||||
double previousBR;
|
||||
double previousCR;
|
||||
double previousDR;
|
||||
|
||||
double lastRefR[10];
|
||||
|
||||
int countA, delayA;
|
||||
int countB, delayB;
|
||||
int countC, delayC;
|
||||
int countD, delayD;
|
||||
int countE, delayE;
|
||||
int countF, delayF;
|
||||
int countG, delayG;
|
||||
int countH, delayH;
|
||||
int countI, delayI;
|
||||
int countJ, delayJ;
|
||||
int countK, delayK;
|
||||
int countL, delayL;
|
||||
int countM, delayM;
|
||||
int cycle; //all these ints are shared across channels, not duplicated
|
||||
|
||||
uint32_t fpdL;
|
||||
uint32_t fpdR;
|
||||
};
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
|
|
|||
|
|
@ -3,9 +3,9 @@
|
|||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 8/26/22
|
||||
* Created: 2/1/23
|
||||
*
|
||||
* Copyright: Copyright © 2022 Airwindows, Airwindows uses the MIT license
|
||||
* Copyright: Copyright © 2023 Airwindows, Airwindows uses the MIT license
|
||||
*
|
||||
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
|
||||
* consideration of your agreement to the following terms, and your use, installation, modification
|
||||
|
|
|
|||
|
|
@ -251,7 +251,7 @@
|
|||
<dict>
|
||||
<key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
|
||||
<array>
|
||||
<real>186</real>
|
||||
<real>299</real>
|
||||
</array>
|
||||
<key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
|
||||
<array>
|
||||
|
|
@ -264,19 +264,22 @@
|
|||
<array>
|
||||
<string>089C166AFE841209C02AAC07</string>
|
||||
<string>08FB77ADFE841716C02AAC07</string>
|
||||
<string>8BA05AEB0720742700365D66</string>
|
||||
<string>8BA05A7D072073D200365D66</string>
|
||||
<string>8BA05A7E072073D200365D66</string>
|
||||
<string>1C37FBAC04509CD000000102</string>
|
||||
<string>1C37FABC05509CD000000102</string>
|
||||
</array>
|
||||
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
|
||||
<array>
|
||||
<array>
|
||||
<integer>20</integer>
|
||||
<integer>19</integer>
|
||||
<integer>6</integer>
|
||||
<integer>5</integer>
|
||||
<integer>4</integer>
|
||||
<integer>1</integer>
|
||||
<integer>0</integer>
|
||||
</array>
|
||||
</array>
|
||||
<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
|
||||
<string>{{0, 0}, {186, 445}}</string>
|
||||
<string>{{0, 0}, {299, 445}}</string>
|
||||
</dict>
|
||||
<key>PBXTopSmartGroupGIDs</key>
|
||||
<array/>
|
||||
|
|
@ -288,19 +291,19 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 0}, {203, 463}}</string>
|
||||
<string>{{0, 0}, {316, 463}}</string>
|
||||
<key>GroupTreeTableConfiguration</key>
|
||||
<array>
|
||||
<string>MainColumn</string>
|
||||
<real>186</real>
|
||||
<real>299</real>
|
||||
</array>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>203 321 788 504 0 0 1440 878 </string>
|
||||
<string>18 337 788 504 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXSmartGroupTreeModule</string>
|
||||
<key>Proportion</key>
|
||||
<string>203pt</string>
|
||||
<string>316pt</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Dock</key>
|
||||
|
|
@ -311,15 +314,13 @@
|
|||
<key>PBXProjectModuleGUID</key>
|
||||
<string>1CE0B20306471E060097A5F4</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string>MyNewFile14.java</string>
|
||||
<string><No Editor></string>
|
||||
<key>PBXSplitModuleInNavigatorKey</key>
|
||||
<dict>
|
||||
<key>Split0</key>
|
||||
<dict>
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
<string>1CE0B20406471E060097A5F4</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string>MyNewFile14.java</string>
|
||||
</dict>
|
||||
<key>SplitCount</key>
|
||||
<string>1</string>
|
||||
|
|
@ -330,14 +331,14 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 0}, {580, 269}}</string>
|
||||
<string>{{0, 0}, {467, 0}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>203 321 788 504 0 0 1440 878 </string>
|
||||
<string>18 337 788 504 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXNavigatorGroup</string>
|
||||
<key>Proportion</key>
|
||||
<string>269pt</string>
|
||||
<string>0pt</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>ContentConfiguration</key>
|
||||
|
|
@ -350,18 +351,18 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 274}, {580, 189}}</string>
|
||||
<string>{{0, 5}, {467, 458}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>203 321 788 504 0 0 1440 878 </string>
|
||||
<string>18 337 788 504 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>XCDetailModule</string>
|
||||
<key>Proportion</key>
|
||||
<string>189pt</string>
|
||||
<string>458pt</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Proportion</key>
|
||||
<string>580pt</string>
|
||||
<string>467pt</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Name</key>
|
||||
|
|
@ -376,9 +377,9 @@
|
|||
</array>
|
||||
<key>TableOfContents</key>
|
||||
<array>
|
||||
<string>8B563EC9161B5E170067FE32</string>
|
||||
<string>8BDD47AA1A48BB8900FB2F61</string>
|
||||
<string>1CE0B1FE06471DED0097A5F4</string>
|
||||
<string>8B563ECA161B5E170067FE32</string>
|
||||
<string>8BDD47AB1A48BB8900FB2F61</string>
|
||||
<string>1CE0B20306471E060097A5F4</string>
|
||||
<string>1CE0B20506471E060097A5F4</string>
|
||||
</array>
|
||||
|
|
@ -517,10 +518,10 @@
|
|||
<key>WindowOrderList</key>
|
||||
<array>
|
||||
<string>8BD3CCBD148831C90062E48C</string>
|
||||
<string>/Developer/Library/Xcode/Project Templates/System Plug-in/Audio Unit Effect/Audio Unit Effect/StarterAU.xcodeproj</string>
|
||||
<string>/Developer/Library/Xcode/Project Templates/System Plug-in/Audio Unit Effect/Audio Unit Effect with Cocoa View/StarterAU.xcodeproj</string>
|
||||
</array>
|
||||
<key>WindowString</key>
|
||||
<string>203 321 788 504 0 0 1440 878 </string>
|
||||
<string>18 337 788 504 0 0 1440 878 </string>
|
||||
<key>WindowToolsV3</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
|
@ -597,7 +598,7 @@
|
|||
<key>TableOfContents</key>
|
||||
<array>
|
||||
<string>8BD3CCBD148831C90062E48C</string>
|
||||
<string>8B563ECB161B5E170067FE32</string>
|
||||
<string>8BDD47AC1A48BB8900FB2F61</string>
|
||||
<string>1CD0528F0623707200166675</string>
|
||||
<string>XCMainBuildResultsModuleGUID</string>
|
||||
</array>
|
||||
|
|
|
|||
|
|
@ -3,8 +3,6 @@
|
|||
089C1669FE841209C02AAC07 /* Project object */ = {
|
||||
activeBuildConfigurationName = Release;
|
||||
activeTarget = 8D01CCC60486CAD60068D4B7 /* Chamber2 */;
|
||||
breakpoints = (
|
||||
);
|
||||
codeSenseManager = 8BD3CCB9148830B20062E48C /* Code sense */;
|
||||
perUserDictionary = {
|
||||
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
|
||||
|
|
@ -12,7 +10,7 @@
|
|||
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
|
||||
PBXFileTableDataSourceColumnWidthsKey = (
|
||||
20,
|
||||
292,
|
||||
364,
|
||||
20,
|
||||
48,
|
||||
43,
|
||||
|
|
@ -34,7 +32,7 @@
|
|||
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
|
||||
PBXFileTableDataSourceColumnWidthsKey = (
|
||||
20,
|
||||
252,
|
||||
188,
|
||||
60,
|
||||
20,
|
||||
48,
|
||||
|
|
@ -51,15 +49,8 @@
|
|||
PBXFileDataSource_Warnings_ColumnID,
|
||||
);
|
||||
};
|
||||
PBXPerProjectTemplateStateSaveDate = 683227464;
|
||||
PBXWorkspaceStateSaveDate = 683227464;
|
||||
};
|
||||
perUserProjectItems = {
|
||||
8BBC48B128B9395200A201D3 /* PBXTextBookmark */ = 8BBC48B128B9395200A201D3 /* PBXTextBookmark */;
|
||||
8BBC48B228B9395200A201D3 /* PBXTextBookmark */ = 8BBC48B228B9395200A201D3 /* PBXTextBookmark */;
|
||||
8BD1197628B8F40E006EFFE5 /* PlistBookmark */ = 8BD1197628B8F40E006EFFE5 /* PlistBookmark */;
|
||||
8BD119CB28B8FEB8006EFFE5 /* PBXTextBookmark */ = 8BD119CB28B8FEB8006EFFE5 /* PBXTextBookmark */;
|
||||
8BD11A2B28B90A72006EFFE5 /* PBXTextBookmark */ = 8BD11A2B28B90A72006EFFE5 /* PBXTextBookmark */;
|
||||
PBXPerProjectTemplateStateSaveDate = 696984829;
|
||||
PBXWorkspaceStateSaveDate = 696984829;
|
||||
};
|
||||
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
|
||||
userBuildSettings = {
|
||||
|
|
@ -67,80 +58,35 @@
|
|||
};
|
||||
8BA05A660720730100365D66 /* Chamber2.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1047, 7434}}";
|
||||
sepNavSelRange = "{6385, 0}";
|
||||
sepNavVisRange = "{6027, 849}";
|
||||
sepNavWindowFrame = "{{9, 61}, {871, 817}}";
|
||||
sepNavIntBoundsRect = "{{0, 0}, {840, 9576}}";
|
||||
sepNavSelRange = "{22162, 0}";
|
||||
sepNavVisRange = "{10778, 2031}";
|
||||
sepNavWindowFrame = "{{594, 41}, {843, 837}}";
|
||||
};
|
||||
};
|
||||
8BA05A690720730100365D66 /* Chamber2Version.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1056, 1062}}";
|
||||
sepNavSelRange = "{2884, 0}";
|
||||
sepNavVisRange = "{2139, 811}";
|
||||
sepNavWindowFrame = "{{65, 62}, {1041, 816}}";
|
||||
sepNavSelRange = "{2898, 0}";
|
||||
sepNavVisRange = "{965, 1996}";
|
||||
sepNavWindowFrame = "{{15, 38}, {843, 837}}";
|
||||
};
|
||||
};
|
||||
8BBC48B128B9395200A201D3 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BA05A690720730100365D66 /* Chamber2Version.h */;
|
||||
name = "Chamber2Version.h: 54";
|
||||
rLen = 0;
|
||||
rLoc = 2884;
|
||||
rType = 0;
|
||||
vrLen = 811;
|
||||
vrLoc = 2139;
|
||||
};
|
||||
8BBC48B228B9395200A201D3 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BA05A660720730100365D66 /* Chamber2.cpp */;
|
||||
name = "Chamber2.cpp: 130";
|
||||
rLen = 0;
|
||||
rLoc = 6385;
|
||||
rType = 0;
|
||||
vrLen = 849;
|
||||
vrLoc = 6027;
|
||||
8BA05A7F072073D200365D66 /* AUBase.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {516, 23430}}";
|
||||
sepNavSelRange = "{0, 0}";
|
||||
sepNavVisRange = "{0, 1336}";
|
||||
};
|
||||
};
|
||||
8BC6025B073B072D006C4272 /* Chamber2.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1146, 3312}}";
|
||||
sepNavSelRange = "{5674, 0}";
|
||||
sepNavVisRange = "{5446, 755}";
|
||||
sepNavWindowFrame = "{{19, 62}, {1041, 816}}";
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1146, 3420}}";
|
||||
sepNavSelRange = "{6440, 0}";
|
||||
sepNavVisRange = "{3316, 1307}";
|
||||
sepNavWindowFrame = "{{582, 41}, {843, 837}}";
|
||||
};
|
||||
};
|
||||
8BD1197628B8F40E006EFFE5 /* PlistBookmark */ = {
|
||||
isa = PlistBookmark;
|
||||
fRef = 8D01CCD10486CAD60068D4B7 /* Info.plist */;
|
||||
fallbackIsa = PBXBookmark;
|
||||
isK = 0;
|
||||
kPath = (
|
||||
CFBundleName,
|
||||
);
|
||||
name = /Users/christopherjohnson/Desktop/Chamber2/Info.plist;
|
||||
rLen = 0;
|
||||
rLoc = 9223372036854775808;
|
||||
};
|
||||
8BD119CB28B8FEB8006EFFE5 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BA05A660720730100365D66 /* Chamber2.cpp */;
|
||||
name = "Chamber2.cpp: 130";
|
||||
rLen = 0;
|
||||
rLoc = 6385;
|
||||
rType = 0;
|
||||
vrLen = 275;
|
||||
vrLoc = 6289;
|
||||
};
|
||||
8BD11A2B28B90A72006EFFE5 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BC6025B073B072D006C4272 /* Chamber2.h */;
|
||||
name = "Chamber2.h: 148";
|
||||
rLen = 0;
|
||||
rLoc = 5674;
|
||||
rType = 0;
|
||||
vrLen = 339;
|
||||
vrLoc = 2965;
|
||||
};
|
||||
8BD3CCB8148830B20062E48C /* Source Control */ = {
|
||||
isa = PBXSourceControlManager;
|
||||
fallbackIsa = XCSourceControlManager;
|
||||
|
|
|
|||
|
|
@ -178,7 +178,7 @@
|
|||
<key>FavBarConfig</key>
|
||||
<dict>
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
<string>8BD7274F1D46E5A5000176F0</string>
|
||||
<string>8B37705E298B24D80027F1BA</string>
|
||||
<key>XCBarModuleItemNames</key>
|
||||
<dict/>
|
||||
<key>XCBarModuleItems</key>
|
||||
|
|
@ -225,8 +225,8 @@
|
|||
<array/>
|
||||
<key>PerspectiveWidths</key>
|
||||
<array>
|
||||
<integer>841</integer>
|
||||
<integer>841</integer>
|
||||
<integer>810</integer>
|
||||
<integer>810</integer>
|
||||
</array>
|
||||
<key>Perspectives</key>
|
||||
<array>
|
||||
|
|
@ -282,7 +282,7 @@
|
|||
<dict>
|
||||
<key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
|
||||
<array>
|
||||
<real>288</real>
|
||||
<real>185</real>
|
||||
</array>
|
||||
<key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
|
||||
<array>
|
||||
|
|
@ -296,20 +296,18 @@
|
|||
<string>089C166AFE841209C02AAC07</string>
|
||||
<string>08FB77ADFE841716C02AAC07</string>
|
||||
<string>8BA05A56072072A900365D66</string>
|
||||
<string>089C167CFE841241C02AAC07</string>
|
||||
<string>1C37FBAC04509CD000000102</string>
|
||||
</array>
|
||||
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
|
||||
<array>
|
||||
<array>
|
||||
<integer>3</integer>
|
||||
<integer>4</integer>
|
||||
<integer>2</integer>
|
||||
<integer>1</integer>
|
||||
<integer>0</integer>
|
||||
</array>
|
||||
</array>
|
||||
<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
|
||||
<string>{{0, 0}, {288, 595}}</string>
|
||||
<string>{{0, 0}, {185, 428}}</string>
|
||||
</dict>
|
||||
<key>PBXTopSmartGroupGIDs</key>
|
||||
<array/>
|
||||
|
|
@ -319,19 +317,19 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 0}, {305, 613}}</string>
|
||||
<string>{{0, 0}, {202, 446}}</string>
|
||||
<key>GroupTreeTableConfiguration</key>
|
||||
<array>
|
||||
<string>MainColumn</string>
|
||||
<real>288</real>
|
||||
<real>185</real>
|
||||
</array>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>22 198 841 654 0 0 1440 878 </string>
|
||||
<string>575 313 810 487 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXSmartGroupTreeModule</string>
|
||||
<key>Proportion</key>
|
||||
<string>305pt</string>
|
||||
<string>202pt</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Dock</key>
|
||||
|
|
@ -340,28 +338,17 @@
|
|||
<key>ContentConfiguration</key>
|
||||
<dict>
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
<string>8BD7274A1D46E5A5000176F0</string>
|
||||
<string>8B377059298B24D80027F1BA</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string>Chamber2.cpp</string>
|
||||
<string></string>
|
||||
<key>PBXSplitModuleInNavigatorKey</key>
|
||||
<dict>
|
||||
<key>Split0</key>
|
||||
<dict>
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
<string>8BD7274B1D46E5A5000176F0</string>
|
||||
<string>8B37705A298B24D80027F1BA</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string>Chamber2.cpp</string>
|
||||
<key>_historyCapacity</key>
|
||||
<integer>0</integer>
|
||||
<key>bookmark</key>
|
||||
<string>8BBC48B228B9395200A201D3</string>
|
||||
<key>history</key>
|
||||
<array>
|
||||
<string>8BD1197628B8F40E006EFFE5</string>
|
||||
<string>8BD11A2B28B90A72006EFFE5</string>
|
||||
<string>8BBC48B128B9395200A201D3</string>
|
||||
<string>8BD119CB28B8FEB8006EFFE5</string>
|
||||
</array>
|
||||
<string></string>
|
||||
</dict>
|
||||
<key>SplitCount</key>
|
||||
<string>1</string>
|
||||
|
|
@ -374,18 +361,18 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 0}, {531, 438}}</string>
|
||||
<string>{{0, 0}, {603, 0}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>22 198 841 654 0 0 1440 878 </string>
|
||||
<string>575 313 810 487 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXNavigatorGroup</string>
|
||||
<key>Proportion</key>
|
||||
<string>438pt</string>
|
||||
<string>0pt</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Proportion</key>
|
||||
<string>170pt</string>
|
||||
<string>441pt</string>
|
||||
<key>Tabs</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
|
@ -399,9 +386,9 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{10, 27}, {531, 143}}</string>
|
||||
<string>{{10, 27}, {603, 414}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>22 198 841 654 0 0 1440 878 </string>
|
||||
<string>575 313 810 487 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>XCDetailModule</string>
|
||||
|
|
@ -455,7 +442,7 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{10, 27}, {531, 365}}</string>
|
||||
<string>{{10, 27}, {603, 414}}</string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXBuildResultsModule</string>
|
||||
|
|
@ -464,7 +451,7 @@
|
|||
</dict>
|
||||
</array>
|
||||
<key>Proportion</key>
|
||||
<string>531pt</string>
|
||||
<string>603pt</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Name</key>
|
||||
|
|
@ -483,11 +470,11 @@
|
|||
</array>
|
||||
<key>TableOfContents</key>
|
||||
<array>
|
||||
<string>8BBC48B328B9395200A201D3</string>
|
||||
<string>8B37706F298B250A0027F1BA</string>
|
||||
<string>1CA23ED40692098700951B8B</string>
|
||||
<string>8BBC48B428B9395200A201D3</string>
|
||||
<string>8BD7274A1D46E5A5000176F0</string>
|
||||
<string>8BBC48B528B9395200A201D3</string>
|
||||
<string>8B377070298B250A0027F1BA</string>
|
||||
<string>8B377059298B24D80027F1BA</string>
|
||||
<string>8B377071298B250A0027F1BA</string>
|
||||
<string>1CA23EDF0692099D00951B8B</string>
|
||||
<string>1CA23EE00692099D00951B8B</string>
|
||||
<string>1CA23EE10692099D00951B8B</string>
|
||||
|
|
@ -524,7 +511,7 @@
|
|||
<key>Identifier</key>
|
||||
<string>perspective.debug</string>
|
||||
<key>IsVertical</key>
|
||||
<true/>
|
||||
<integer>1</integer>
|
||||
<key>Layout</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
|
@ -538,12 +525,12 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 0}, {424, 270}}</string>
|
||||
<string>{{0, 0}, {810, 0}}</string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXDebugCLIModule</string>
|
||||
<key>Proportion</key>
|
||||
<string>270pt</string>
|
||||
<string>0%</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>ContentConfiguration</key>
|
||||
|
|
@ -562,8 +549,8 @@
|
|||
<string>yes</string>
|
||||
<key>sizes</key>
|
||||
<array>
|
||||
<string>{{0, 0}, {395, 214}}</string>
|
||||
<string>{{395, 0}, {415, 214}}</string>
|
||||
<string>{{0, 0}, {395, 213}}</string>
|
||||
<string>{{395, 0}, {415, 213}}</string>
|
||||
</array>
|
||||
</dict>
|
||||
<key>VerticalSplitView</key>
|
||||
|
|
@ -578,8 +565,8 @@
|
|||
<string>yes</string>
|
||||
<key>sizes</key>
|
||||
<array>
|
||||
<string>{{0, 0}, {810, 214}}</string>
|
||||
<string>{{0, 214}, {810, 227}}</string>
|
||||
<string>{{0, 0}, {810, 213}}</string>
|
||||
<string>{{0, 213}, {810, 225}}</string>
|
||||
</array>
|
||||
</dict>
|
||||
</dict>
|
||||
|
|
@ -592,6 +579,8 @@
|
|||
</dict>
|
||||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>DebugConsoleDrawerSize</key>
|
||||
<string>{100, 120}</string>
|
||||
<key>DebugConsoleVisible</key>
|
||||
<string>None</string>
|
||||
<key>DebugConsoleWindowFrame</key>
|
||||
|
|
@ -599,54 +588,32 @@
|
|||
<key>DebugSTDIOWindowFrame</key>
|
||||
<string>{{200, 200}, {500, 300}}</string>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 5}, {810, 441}}</string>
|
||||
<key>PBXDebugSessionStackFrameViewKey</key>
|
||||
<dict>
|
||||
<key>DebugVariablesTableConfiguration</key>
|
||||
<array>
|
||||
<string>Name</string>
|
||||
<real>120</real>
|
||||
<string>Value</string>
|
||||
<real>85</real>
|
||||
<string>Summary</string>
|
||||
<real>185</real>
|
||||
</array>
|
||||
<key>Frame</key>
|
||||
<string>{{395, 0}, {415, 214}}</string>
|
||||
</dict>
|
||||
<string>{{0, 7}, {810, 438}}</string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXDebugSessionModule</string>
|
||||
<key>Proportion</key>
|
||||
<string>441pt</string>
|
||||
<string>443pt</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Name</key>
|
||||
<string>Debug</string>
|
||||
<key>ServiceClasses</key>
|
||||
<array>
|
||||
<string>XCModuleDock</string>
|
||||
<string>XCModuleDock</string>
|
||||
<string>PBXDebugCLIModule</string>
|
||||
<string>PBXDebugSessionModule</string>
|
||||
<string>PBXDebugProcessAndThreadModule</string>
|
||||
<string>PBXDebugProcessViewModule</string>
|
||||
<string>PBXDebugThreadViewModule</string>
|
||||
<string>PBXDebugStackFrameViewModule</string>
|
||||
<string>PBXNavigatorGroup</string>
|
||||
<string>XCConsole</string>
|
||||
</array>
|
||||
<key>TableOfContents</key>
|
||||
<array>
|
||||
<string>8BD1199328B8F64E006EFFE5</string>
|
||||
<string>1CC8E6A5069209BD00BB180A</string>
|
||||
<string>1CC8E6A6069209BD00BB180A</string>
|
||||
<string>1CCC7628064C1048000F2A68</string>
|
||||
<string>1CCC7629064C1048000F2A68</string>
|
||||
<string>8BD1199428B8F64E006EFFE5</string>
|
||||
<string>8BD1199528B8F64E006EFFE5</string>
|
||||
<string>8BD1199628B8F64E006EFFE5</string>
|
||||
<string>8BD1199728B8F64E006EFFE5</string>
|
||||
<string>8BD1199828B8F64E006EFFE5</string>
|
||||
<string>1CC8E6A7069209BD00BB180A</string>
|
||||
</array>
|
||||
<key>ToolbarConfigUserDefaultsMinorVersion</key>
|
||||
<string>2</string>
|
||||
<key>ToolbarConfiguration</key>
|
||||
<string>xcode.toolbar.config.debugV3</string>
|
||||
</dict>
|
||||
|
|
@ -660,7 +627,7 @@
|
|||
<key>StatusbarIsVisible</key>
|
||||
<true/>
|
||||
<key>TimeStamp</key>
|
||||
<real>683227474.38428295</real>
|
||||
<real>696984842.66419101</real>
|
||||
<key>ToolbarConfigUserDefaultsMinorVersion</key>
|
||||
<string>2</string>
|
||||
<key>ToolbarDisplayMode</key>
|
||||
|
|
@ -677,11 +644,10 @@
|
|||
<integer>5</integer>
|
||||
<key>WindowOrderList</key>
|
||||
<array>
|
||||
<string>8BBC48B628B9395200A201D3</string>
|
||||
<string>/Users/christopherjohnson/Desktop/airwindows/plugins/MacAU/Chamber2/Chamber2.xcodeproj</string>
|
||||
<string>/Users/christopherjohnson/Desktop/Chamber2/Chamber2.xcodeproj</string>
|
||||
</array>
|
||||
<key>WindowString</key>
|
||||
<string>22 198 841 654 0 0 1440 878 </string>
|
||||
<string>575 313 810 487 0 0 1440 878 </string>
|
||||
<key>WindowToolsV3</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
|
|
|||
|
|
@ -167,8 +167,8 @@
|
|||
8BA05A56072072A900365D66 /* AU Source */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BA05A660720730100365D66 /* Chamber2.cpp */,
|
||||
8BC6025B073B072D006C4272 /* Chamber2.h */,
|
||||
8BA05A660720730100365D66 /* Chamber2.cpp */,
|
||||
8BA05A670720730100365D66 /* Chamber2.exp */,
|
||||
8BA05A680720730100365D66 /* Chamber2.r */,
|
||||
8BA05A690720730100365D66 /* Chamber2Version.h */,
|
||||
|
|
|
|||
|
|
@ -3,9 +3,9 @@
|
|||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 8/26/22
|
||||
* Created: 2/1/23
|
||||
*
|
||||
* Copyright: Copyright © 2022 Airwindows, Airwindows uses the MIT license
|
||||
* Copyright: Copyright © 2023 Airwindows, Airwindows uses the MIT license
|
||||
*
|
||||
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
|
||||
* consideration of your agreement to the following terms, and your use, installation, modification
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -19,7 +19,7 @@
|
|||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>DthX</string>
|
||||
<string>Dthr</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
<key>CSResourcesFileMapped</key>
|
||||
|
|
|
|||
5
plugins/MacAU/Chamber2/StarterAU_Prefix.pch
Executable file
5
plugins/MacAU/Chamber2/StarterAU_Prefix.pch
Executable file
|
|
@ -0,0 +1,5 @@
|
|||
//
|
||||
// Prefix header for all source files of the '«PROJECTNAMEASIDENTIFIER»' target in the '«PROJECTNAMEASIDENTIFIER»' project.
|
||||
//
|
||||
|
||||
#include <CoreServices/CoreServices.h>
|
||||
Binary file not shown.
|
|
@ -19,7 +19,7 @@
|
|||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>DthX</string>
|
||||
<string>Dthr</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
<key>CSResourcesFileMapped</key>
|
||||
|
|
|
|||
5
plugins/MacAU/Verbity2/StarterAU_Prefix.pch
Executable file
5
plugins/MacAU/Verbity2/StarterAU_Prefix.pch
Executable file
|
|
@ -0,0 +1,5 @@
|
|||
//
|
||||
// Prefix header for all source files of the '«PROJECTNAMEASIDENTIFIER»' target in the '«PROJECTNAMEASIDENTIFIER»' project.
|
||||
//
|
||||
|
||||
#include <CoreServices/CoreServices.h>
|
||||
|
|
@ -3,9 +3,9 @@
|
|||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 9/3/22
|
||||
* Created: 2/1/23
|
||||
*
|
||||
* Copyright: Copyright © 2022 Airwindows, Airwindows uses the MIT license
|
||||
* Copyright: Copyright © 2023 Airwindows, Airwindows uses the MIT license
|
||||
*
|
||||
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
|
||||
* consideration of your agreement to the following terms, and your use, installation, modification
|
||||
|
|
@ -152,6 +152,21 @@ ComponentResult Verbity2::GetPropertyInfo (AudioUnitPropertyID inID,
|
|||
return AUEffectBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// state that plugin supports only stereo-in/stereo-out processing
|
||||
UInt32 Verbity2::SupportedNumChannels(const AUChannelInfo ** outInfo)
|
||||
{
|
||||
if (outInfo != NULL)
|
||||
{
|
||||
static AUChannelInfo info;
|
||||
info.inChannels = 2;
|
||||
info.outChannels = 2;
|
||||
*outInfo = &info;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Verbity2::GetProperty
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
|
@ -180,57 +195,72 @@ ComponentResult Verbity2::Initialize()
|
|||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Verbity2::Verbity2Kernel::Reset()
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
void Verbity2::Verbity2Kernel::Reset()
|
||||
ComponentResult Verbity2::Reset(AudioUnitScope inScope, AudioUnitElement inElement)
|
||||
{
|
||||
iirA = 0.0;
|
||||
iirB = 0.0;
|
||||
iirAL = 0.0;
|
||||
iirBL = 0.0;
|
||||
|
||||
for(int count = 0; count < 5190; count++) {aZ[count] = 0.0;}
|
||||
iirAR = 0.0;
|
||||
iirBR = 0.0;
|
||||
|
||||
for(int count = 0; count < 5004; count++) {aA[count] = 0.0;} //AFKPU
|
||||
for(int count = 0; count < 4952; count++) {aF[count] = 0.0;}
|
||||
for(int count = 0; count < 4920; count++) {aK[count] = 0.0;}
|
||||
for(int count = 0; count < 4800; count++) {aP[count] = 0.0;}
|
||||
for(int count = 0; count < 4752; count++) {aU[count] = 0.0;}
|
||||
//for(int count = 0; count < 5190; count++) {aZL[count] = 0.0; aZR[count] = 0.0;}
|
||||
|
||||
for(int count = 0; count < 4350; count++) {aB[count] = 0.0;} //BGLQV
|
||||
for(int count = 0; count < 4158; count++) {aG[count] = 0.0;}
|
||||
for(int count = 0; count < 3930; count++) {aL[count] = 0.0;}
|
||||
for(int count = 0; count < 3530; count++) {aQ[count] = 0.0;}
|
||||
for(int count = 0; count < 3330; count++) {aV[count] = 0.0;}
|
||||
for(int count = 0; count < 5004; count++) {aAL[count] = 0.0; aAR[count] = 0.0;} //AFKPU
|
||||
for(int count = 0; count < 4952; count++) {aFL[count] = 0.0; aFR[count] = 0.0;}
|
||||
for(int count = 0; count < 4920; count++) {aKL[count] = 0.0; aKR[count] = 0.0;}
|
||||
for(int count = 0; count < 4800; count++) {aPL[count] = 0.0; aPR[count] = 0.0;}
|
||||
for(int count = 0; count < 4752; count++) {aUL[count] = 0.0; aUR[count] = 0.0;}
|
||||
|
||||
for(int count = 0; count < 3324; count++) {aC[count] = 0.0;} //CHMRW
|
||||
for(int count = 0; count < 2792; count++) {aH[count] = 0.0;}
|
||||
for(int count = 0; count < 2768; count++) {aM[count] = 0.0;}
|
||||
for(int count = 0; count < 2390; count++) {aR[count] = 0.0;}
|
||||
for(int count = 0; count < 2348; count++) {aW[count] = 0.0;}
|
||||
for(int count = 0; count < 4350; count++) {aBL[count] = 0.0; aBR[count] = 0.0;} //BGLQV
|
||||
for(int count = 0; count < 4158; count++) {aGL[count] = 0.0; aGR[count] = 0.0;}
|
||||
for(int count = 0; count < 3930; count++) {aLL[count] = 0.0; aLR[count] = 0.0;}
|
||||
for(int count = 0; count < 3530; count++) {aQL[count] = 0.0; aQR[count] = 0.0;}
|
||||
for(int count = 0; count < 3330; count++) {aVL[count] = 0.0; aVR[count] = 0.0;}
|
||||
|
||||
for(int count = 0; count < 2142; count++) {aD[count] = 0.0;} //DINSX
|
||||
for(int count = 0; count < 1812; count++) {aI[count] = 0.0;}
|
||||
for(int count = 0; count < 1734; count++) {aN[count] = 0.0;}
|
||||
for(int count = 0; count < 1172; count++) {aS[count] = 0.0;}
|
||||
for(int count = 0; count < 788; count++) {aX[count] = 0.0;}
|
||||
for(int count = 0; count < 3324; count++) {aCL[count] = 0.0; aCR[count] = 0.0;} //CHMRW
|
||||
for(int count = 0; count < 2792; count++) {aHL[count] = 0.0; aHR[count] = 0.0;}
|
||||
for(int count = 0; count < 2768; count++) {aML[count] = 0.0; aMR[count] = 0.0;}
|
||||
for(int count = 0; count < 2390; count++) {aRL[count] = 0.0; aRR[count] = 0.0;}
|
||||
for(int count = 0; count < 2348; count++) {aWL[count] = 0.0; aWR[count] = 0.0;}
|
||||
|
||||
for(int count = 0; count < 678; count++) {aE[count] = 0.0;} //EJOTY
|
||||
for(int count = 0; count < 644; count++) {aJ[count] = 0.0;}
|
||||
for(int count = 0; count < 440; count++) {aO[count] = 0.0;}
|
||||
for(int count = 0; count < 350; count++) {aT[count] = 0.0;}
|
||||
for(int count = 0; count < 282; count++) {aY[count] = 0.0;}
|
||||
for(int count = 0; count < 2142; count++) {aDL[count] = 0.0; aDR[count] = 0.0;} //DINSX
|
||||
for(int count = 0; count < 1812; count++) {aIL[count] = 0.0; aIR[count] = 0.0;}
|
||||
for(int count = 0; count < 1734; count++) {aNL[count] = 0.0; aNR[count] = 0.0;}
|
||||
for(int count = 0; count < 1172; count++) {aSL[count] = 0.0; aSR[count] = 0.0;}
|
||||
for(int count = 0; count < 788; count++) {aXL[count] = 0.0; aXR[count] = 0.0;}
|
||||
|
||||
feedbackA = 0.0;
|
||||
feedbackB = 0.0;
|
||||
feedbackC = 0.0;
|
||||
feedbackD = 0.0;
|
||||
feedbackE = 0.0;
|
||||
for(int count = 0; count < 678; count++) {aEL[count] = 0.0; aER[count] = 0.0;} //EJOTY
|
||||
for(int count = 0; count < 644; count++) {aJL[count] = 0.0; aJR[count] = 0.0;}
|
||||
for(int count = 0; count < 440; count++) {aOL[count] = 0.0; aOR[count] = 0.0;}
|
||||
for(int count = 0; count < 350; count++) {aTL[count] = 0.0; aTR[count] = 0.0;}
|
||||
for(int count = 0; count < 282; count++) {aYL[count] = 0.0; aYR[count] = 0.0;}
|
||||
|
||||
previousA = 0.0;
|
||||
previousB = 0.0;
|
||||
previousC = 0.0;
|
||||
previousD = 0.0;
|
||||
previousE = 0.0;
|
||||
feedbackAL = 0.0;
|
||||
feedbackBL = 0.0;
|
||||
feedbackCL = 0.0;
|
||||
feedbackDL = 0.0;
|
||||
feedbackEL = 0.0;
|
||||
|
||||
previousAL = 0.0;
|
||||
previousBL = 0.0;
|
||||
previousCL = 0.0;
|
||||
previousDL = 0.0;
|
||||
previousEL = 0.0;
|
||||
|
||||
feedbackAR = 0.0;
|
||||
feedbackBR = 0.0;
|
||||
feedbackCR = 0.0;
|
||||
feedbackDR = 0.0;
|
||||
feedbackER = 0.0;
|
||||
|
||||
previousAR = 0.0;
|
||||
previousBR = 0.0;
|
||||
previousCR = 0.0;
|
||||
previousDR = 0.0;
|
||||
previousER = 0.0;
|
||||
|
||||
for(int count = 0; count < 6; count++) {lastRefL[count] = 0.0; lastRefR[count] = 0.0;}
|
||||
|
||||
for(int count = 0; count < 6; count++) {lastRef[count] = 0.0;}
|
||||
|
||||
countA = 1;
|
||||
countB = 1;
|
||||
countC = 1;
|
||||
|
|
@ -260,22 +290,24 @@ void Verbity2::Verbity2Kernel::Reset()
|
|||
|
||||
cycle = 0;
|
||||
|
||||
fpd = 1.0; while (fpd < 16386) fpd = rand()*UINT32_MAX;
|
||||
fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX;
|
||||
fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX;
|
||||
return noErr;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Verbity2::Verbity2Kernel::Process
|
||||
// Verbity2::ProcessBufferLists
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
void Verbity2::Verbity2Kernel::Process( const Float32 *inSourceP,
|
||||
Float32 *inDestP,
|
||||
UInt32 inFramesToProcess,
|
||||
UInt32 inNumChannels,
|
||||
bool &ioSilence )
|
||||
OSStatus Verbity2::ProcessBufferLists(AudioUnitRenderActionFlags & ioActionFlags,
|
||||
const AudioBufferList & inBuffer,
|
||||
AudioBufferList & outBuffer,
|
||||
UInt32 inFramesToProcess)
|
||||
{
|
||||
Float32 * inputL = (Float32*)(inBuffer.mBuffers[0].mData);
|
||||
Float32 * inputR = (Float32*)(inBuffer.mBuffers[1].mData);
|
||||
Float32 * outputL = (Float32*)(outBuffer.mBuffers[0].mData);
|
||||
Float32 * outputR = (Float32*)(outBuffer.mBuffers[1].mData);
|
||||
UInt32 nSampleFrames = inFramesToProcess;
|
||||
const Float32 *sourceP = inSourceP;
|
||||
Float32 *destP = inDestP;
|
||||
|
||||
double overallscale = 1.0;
|
||||
overallscale /= 44100.0;
|
||||
overallscale *= GetSampleRate();
|
||||
|
|
@ -288,10 +320,10 @@ void Verbity2::Verbity2Kernel::Process( const Float32 *inSourceP,
|
|||
//mulch is tone control, darken to obscure the Chrome Oxide, not as much highpass
|
||||
Float64 size = (pow(GetParameter( kParam_One ),2.0)*0.9)+0.1;
|
||||
Float64 regen = (1.0-pow(1.0-GetParameter( kParam_Two ),3.0))*0.00032;
|
||||
Float64 mulchSetting = 1.0-pow(1.0-GetParameter( kParam_Three ),2); //modify taper
|
||||
Float64 lowpass = (1.0-(pow(mulchSetting,2)*0.75))/sqrt(overallscale);
|
||||
Float64 highpass = (0.01+(mulchSetting*0.05))/sqrt(overallscale);
|
||||
Float64 interpolateMax = 0.06+(mulchSetting*0.3);
|
||||
Float64 mulchSetting = GetParameter( kParam_Three );
|
||||
Float64 lowpass = (1.0-(mulchSetting*0.75))/sqrt(overallscale);
|
||||
Float64 highpass = (0.007+(mulchSetting*0.022))/sqrt(overallscale);
|
||||
Float64 interpolateMax = 0.07+(mulchSetting*0.4);
|
||||
Float64 wet = GetParameter( kParam_Four )*2.0;
|
||||
Float64 dry = 2.0 - wet;
|
||||
if (wet > 1.0) wet = 1.0;
|
||||
|
|
@ -302,7 +334,7 @@ void Verbity2::Verbity2Kernel::Process( const Float32 *inSourceP,
|
|||
//that's so it can be on submixes without cutting back dry channel when adjusted:
|
||||
//unless you go super heavy, you are only adjusting the added verb loudness.
|
||||
|
||||
delayZ = 5189.0*size; //z can be predelay
|
||||
//delayZ = 5189.0*size; //z can be predelay
|
||||
|
||||
delayA = 5003.0*size;
|
||||
delayF = 4951.0*size;
|
||||
|
|
@ -318,7 +350,7 @@ void Verbity2::Verbity2Kernel::Process( const Float32 *inSourceP,
|
|||
|
||||
delayC = 3323.0*size;
|
||||
delayH = 2791.0*size;
|
||||
delayM= 2767.0*size;
|
||||
delayM = 2767.0*size;
|
||||
delayR = 2389.0*size;
|
||||
delayW = 2347.0*size;
|
||||
|
||||
|
|
@ -335,35 +367,54 @@ void Verbity2::Verbity2Kernel::Process( const Float32 *inSourceP,
|
|||
delayY = 281.0*size; //balanced primes of order two
|
||||
|
||||
while (nSampleFrames-- > 0) {
|
||||
double inputSample = *sourceP;
|
||||
if (fabs(inputSample)<1.18e-23) inputSample = fpd * 1.18e-17;
|
||||
double drySample = inputSample;
|
||||
double inputSampleL = *inputL;
|
||||
double inputSampleR = *inputR;
|
||||
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17;
|
||||
if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17;
|
||||
double drySampleL = inputSampleL;
|
||||
double drySampleR = inputSampleR;
|
||||
|
||||
if (fabs(iirA)<1.18e-37) iirA = 0.0;
|
||||
iirA = (iirA*(1.0-highpass))+(inputSample*highpass); inputSample -= iirA;
|
||||
if (fabs(iirAL)<1.18e-37) iirAL = 0.0;
|
||||
iirAL = (iirAL*(1.0-highpass))+(inputSampleL*highpass); inputSampleL -= iirAL;
|
||||
if (fabs(iirAR)<1.18e-37) iirAR = 0.0;
|
||||
iirAR = (iirAR*(1.0-highpass))+(inputSampleR*highpass); inputSampleR -= iirAR;
|
||||
//first filter is highpass
|
||||
|
||||
double interpolate = interpolateMax + (interpolateMax * (double(fpd)/UINT32_MAX));
|
||||
double interpolateL = interpolateMax + (interpolateMax * (double(fpdL)/UINT32_MAX));
|
||||
double interpolateR = interpolateMax + (interpolateMax * (double(fpdR)/UINT32_MAX));
|
||||
//we have our feedback soften also working as Chrome Oxide soften/noise
|
||||
|
||||
cycle++;
|
||||
if (cycle == cycleEnd) { //hit the end point and we do a reverb sample
|
||||
feedbackA = (feedbackA*(1.0-interpolate))+(previousA*interpolate); previousA = feedbackA;
|
||||
feedbackB = (feedbackB*(1.0-interpolate))+(previousB*interpolate); previousB = feedbackB;
|
||||
feedbackC = (feedbackC*(1.0-interpolate))+(previousC*interpolate); previousC = feedbackC;
|
||||
feedbackD = (feedbackD*(1.0-interpolate))+(previousD*interpolate); previousD = feedbackD;
|
||||
feedbackE = (feedbackE*(1.0-interpolate))+(previousE*interpolate); previousE = feedbackE;
|
||||
|
||||
aZ[countZ] = inputSample;
|
||||
countZ++; if (countZ < 0 || countZ > delayZ) countZ = 0;
|
||||
inputSample = aZ[countZ-((countZ > delayZ)?delayZ+1:0)];
|
||||
feedbackAL = (feedbackAL*(1.0-interpolateL))+(previousAL*interpolateL); previousAL = feedbackAL;
|
||||
feedbackBL = (feedbackBL*(1.0-interpolateL))+(previousBL*interpolateL); previousBL = feedbackBL;
|
||||
feedbackCL = (feedbackCL*(1.0-interpolateL))+(previousCL*interpolateL); previousCL = feedbackCL;
|
||||
feedbackDL = (feedbackDL*(1.0-interpolateL))+(previousDL*interpolateL); previousDL = feedbackDL;
|
||||
feedbackEL = (feedbackEL*(1.0-interpolateL))+(previousEL*interpolateL); previousEL = feedbackEL;
|
||||
feedbackAR = (feedbackAR*(1.0-interpolateR))+(previousAR*interpolateR); previousAR = feedbackAR;
|
||||
feedbackBR = (feedbackBR*(1.0-interpolateR))+(previousBR*interpolateR); previousBR = feedbackBR;
|
||||
feedbackCR = (feedbackCR*(1.0-interpolateR))+(previousCR*interpolateR); previousCR = feedbackCR;
|
||||
feedbackDR = (feedbackDR*(1.0-interpolateR))+(previousDR*interpolateR); previousDR = feedbackDR;
|
||||
feedbackER = (feedbackER*(1.0-interpolateR))+(previousER*interpolateR); previousER = feedbackER;
|
||||
|
||||
// aZL[countZ] = inputSampleL;
|
||||
// aZR[countZ] = inputSampleR;
|
||||
// countZ++; if (countZ < 0 || countZ > delayZ) countZ = 0;
|
||||
// inputSampleL = aZL[countZ-((countZ > delayZ)?delayZ+1:0)];
|
||||
// inputSampleR = aZR[countZ-((countZ > delayZ)?delayZ+1:0)];
|
||||
//predelay
|
||||
|
||||
aA[countA] = inputSample + (feedbackA * (regen*(1.0-fabs(feedbackA*regen))));
|
||||
aB[countB] = inputSample + (feedbackB * (regen*(1.0-fabs(feedbackB*regen))));
|
||||
aC[countC] = inputSample + (feedbackC * (regen*(1.0-fabs(feedbackC*regen))));
|
||||
aD[countD] = inputSample + (feedbackD * (regen*(1.0-fabs(feedbackD*regen))));
|
||||
aE[countE] = inputSample + (feedbackE * (regen*(1.0-fabs(feedbackE*regen))));
|
||||
aAL[countA] = inputSampleL + (feedbackAL * (regen*(1.0-fabs(feedbackAL*regen))));
|
||||
aBL[countB] = inputSampleL + (feedbackBL * (regen*(1.0-fabs(feedbackBL*regen))));
|
||||
aCL[countC] = inputSampleL + (feedbackCL * (regen*(1.0-fabs(feedbackCL*regen))));
|
||||
aDL[countD] = inputSampleL + (feedbackDL * (regen*(1.0-fabs(feedbackDL*regen))));
|
||||
aEL[countE] = inputSampleL + (feedbackEL * (regen*(1.0-fabs(feedbackEL*regen))));
|
||||
|
||||
aAR[countA] = inputSampleR + (feedbackAR * (regen*(1.0-fabs(feedbackAR*regen))));
|
||||
aBR[countB] = inputSampleR + (feedbackBR * (regen*(1.0-fabs(feedbackBR*regen))));
|
||||
aCR[countC] = inputSampleR + (feedbackCR * (regen*(1.0-fabs(feedbackCR*regen))));
|
||||
aDR[countD] = inputSampleR + (feedbackDR * (regen*(1.0-fabs(feedbackDR*regen))));
|
||||
aER[countE] = inputSampleR + (feedbackER * (regen*(1.0-fabs(feedbackER*regen))));
|
||||
|
||||
countA++; if (countA < 0 || countA > delayA) countA = 0;
|
||||
countB++; if (countB < 0 || countB > delayB) countB = 0;
|
||||
|
|
@ -371,19 +422,31 @@ void Verbity2::Verbity2Kernel::Process( const Float32 *inSourceP,
|
|||
countD++; if (countD < 0 || countD > delayD) countD = 0;
|
||||
countE++; if (countE < 0 || countE > delayE) countE = 0;
|
||||
|
||||
double outA = aA[countA-((countA > delayA)?delayA+1:0)];
|
||||
double outB = aB[countB-((countB > delayB)?delayB+1:0)];
|
||||
double outC = aC[countC-((countC > delayC)?delayC+1:0)];
|
||||
double outD = aD[countD-((countD > delayD)?delayD+1:0)];
|
||||
double outE = aE[countE-((countE > delayE)?delayE+1:0)];
|
||||
double outAL = aAL[countA-((countA > delayA)?delayA+1:0)];
|
||||
double outBL = aBL[countB-((countB > delayB)?delayB+1:0)];
|
||||
double outCL = aCL[countC-((countC > delayC)?delayC+1:0)];
|
||||
double outDL = aDL[countD-((countD > delayD)?delayD+1:0)];
|
||||
double outEL = aEL[countE-((countE > delayE)?delayE+1:0)];
|
||||
|
||||
double outAR = aAR[countA-((countA > delayA)?delayA+1:0)];
|
||||
double outBR = aBR[countB-((countB > delayB)?delayB+1:0)];
|
||||
double outCR = aCR[countC-((countC > delayC)?delayC+1:0)];
|
||||
double outDR = aDR[countD-((countD > delayD)?delayD+1:0)];
|
||||
double outER = aER[countE-((countE > delayE)?delayE+1:0)];
|
||||
|
||||
//-------- one
|
||||
|
||||
aF[countF] = ((outA*3.0) - ((outB + outC + outD + outE)*2.0));
|
||||
aG[countG] = ((outB*3.0) - ((outA + outC + outD + outE)*2.0));
|
||||
aH[countH] = ((outC*3.0) - ((outA + outB + outD + outE)*2.0));
|
||||
aI[countI] = ((outD*3.0) - ((outA + outB + outC + outE)*2.0));
|
||||
aJ[countJ] = ((outE*3.0) - ((outA + outB + outC + outD)*2.0));
|
||||
aFL[countF] = ((outAL*3.0) - ((outBL + outCL + outDL + outEL)*2.0));
|
||||
aGL[countG] = ((outBL*3.0) - ((outAL + outCL + outDL + outEL)*2.0));
|
||||
aHL[countH] = ((outCL*3.0) - ((outAL + outBL + outDL + outEL)*2.0));
|
||||
aIL[countI] = ((outDL*3.0) - ((outAL + outBL + outCL + outEL)*2.0));
|
||||
aJL[countJ] = ((outEL*3.0) - ((outAL + outBL + outCL + outDL)*2.0));
|
||||
|
||||
aFR[countF] = ((outAR*3.0) - ((outBR + outCR + outDR + outER)*2.0));
|
||||
aGR[countG] = ((outBR*3.0) - ((outAR + outCR + outDR + outER)*2.0));
|
||||
aHR[countH] = ((outCR*3.0) - ((outAR + outBR + outDR + outER)*2.0));
|
||||
aIR[countI] = ((outDR*3.0) - ((outAR + outBR + outCR + outER)*2.0));
|
||||
aJR[countJ] = ((outER*3.0) - ((outAR + outBR + outCR + outDR)*2.0));
|
||||
|
||||
countF++; if (countF < 0 || countF > delayF) countF = 0;
|
||||
countG++; if (countG < 0 || countG > delayG) countG = 0;
|
||||
|
|
@ -391,19 +454,31 @@ void Verbity2::Verbity2Kernel::Process( const Float32 *inSourceP,
|
|||
countI++; if (countI < 0 || countI > delayI) countI = 0;
|
||||
countJ++; if (countJ < 0 || countJ > delayJ) countJ = 0;
|
||||
|
||||
double outF = aF[countF-((countF > delayF)?delayF+1:0)];
|
||||
double outG = aG[countG-((countG > delayG)?delayG+1:0)];
|
||||
double outH = aH[countH-((countH > delayH)?delayH+1:0)];
|
||||
double outI = aI[countI-((countI > delayI)?delayI+1:0)];
|
||||
double outJ = aJ[countJ-((countJ > delayJ)?delayJ+1:0)];
|
||||
double outFL = aFL[countF-((countF > delayF)?delayF+1:0)];
|
||||
double outGL = aGL[countG-((countG > delayG)?delayG+1:0)];
|
||||
double outHL = aHL[countH-((countH > delayH)?delayH+1:0)];
|
||||
double outIL = aIL[countI-((countI > delayI)?delayI+1:0)];
|
||||
double outJL = aJL[countJ-((countJ > delayJ)?delayJ+1:0)];
|
||||
|
||||
double outFR = aFR[countF-((countF > delayF)?delayF+1:0)];
|
||||
double outGR = aGR[countG-((countG > delayG)?delayG+1:0)];
|
||||
double outHR = aHR[countH-((countH > delayH)?delayH+1:0)];
|
||||
double outIR = aIR[countI-((countI > delayI)?delayI+1:0)];
|
||||
double outJR = aJR[countJ-((countJ > delayJ)?delayJ+1:0)];
|
||||
|
||||
//-------- two
|
||||
|
||||
aK[countK] = ((outF*3.0) - ((outG + outH + outI + outJ)*2.0));
|
||||
aL[countL] = ((outG*3.0) - ((outF + outH + outI + outJ)*2.0));
|
||||
aM[countM] = ((outH*3.0) - ((outF + outG + outI + outJ)*2.0));
|
||||
aN[countN] = ((outI*3.0) - ((outF + outG + outH + outJ)*2.0));
|
||||
aO[countO] = ((outJ*3.0) - ((outF + outG + outH + outI)*2.0));
|
||||
aKL[countK] = ((outFL*3.0) - ((outGL + outHL + outIL + outJL)*2.0));
|
||||
aLL[countL] = ((outGL*3.0) - ((outFL + outHL + outIL + outJL)*2.0));
|
||||
aML[countM] = ((outHL*3.0) - ((outFL + outGL + outIL + outJL)*2.0));
|
||||
aNL[countN] = ((outIL*3.0) - ((outFL + outGL + outHL + outJL)*2.0));
|
||||
aOL[countO] = ((outJL*3.0) - ((outFL + outGL + outHL + outIL)*2.0));
|
||||
|
||||
aKR[countK] = ((outFR*3.0) - ((outGR + outHR + outIR + outJR)*2.0));
|
||||
aLR[countL] = ((outGR*3.0) - ((outFR + outHR + outIR + outJR)*2.0));
|
||||
aMR[countM] = ((outHR*3.0) - ((outFR + outGR + outIR + outJR)*2.0));
|
||||
aNR[countN] = ((outIR*3.0) - ((outFR + outGR + outHR + outJR)*2.0));
|
||||
aOR[countO] = ((outJR*3.0) - ((outFR + outGR + outHR + outIR)*2.0));
|
||||
|
||||
countK++; if (countK < 0 || countK > delayK) countK = 0;
|
||||
countL++; if (countL < 0 || countL > delayL) countL = 0;
|
||||
|
|
@ -411,19 +486,31 @@ void Verbity2::Verbity2Kernel::Process( const Float32 *inSourceP,
|
|||
countN++; if (countN < 0 || countN > delayN) countN = 0;
|
||||
countO++; if (countO < 0 || countO > delayO) countO = 0;
|
||||
|
||||
double outK = aK[countK-((countK > delayK)?delayK+1:0)];
|
||||
double outL = aL[countL-((countL > delayL)?delayL+1:0)];
|
||||
double outM = aM[countM-((countM > delayM)?delayM+1:0)];
|
||||
double outN = aN[countN-((countN > delayN)?delayN+1:0)];
|
||||
double outO = aO[countO-((countO > delayO)?delayO+1:0)];
|
||||
double outKL = aKL[countK-((countK > delayK)?delayK+1:0)];
|
||||
double outLL = aLL[countL-((countL > delayL)?delayL+1:0)];
|
||||
double outML = aML[countM-((countM > delayM)?delayM+1:0)];
|
||||
double outNL = aNL[countN-((countN > delayN)?delayN+1:0)];
|
||||
double outOL = aOL[countO-((countO > delayO)?delayO+1:0)];
|
||||
|
||||
double outKR = aKR[countK-((countK > delayK)?delayK+1:0)];
|
||||
double outLR = aLR[countL-((countL > delayL)?delayL+1:0)];
|
||||
double outMR = aMR[countM-((countM > delayM)?delayM+1:0)];
|
||||
double outNR = aNR[countN-((countN > delayN)?delayN+1:0)];
|
||||
double outOR = aOR[countO-((countO > delayO)?delayO+1:0)];
|
||||
|
||||
//-------- three
|
||||
|
||||
aP[countP] = ((outK*3.0) - ((outL + outM + outN + outO)*2.0));
|
||||
aQ[countQ] = ((outL*3.0) - ((outK + outM + outN + outO)*2.0));
|
||||
aR[countR] = ((outM*3.0) - ((outK + outL + outN + outO)*2.0));
|
||||
aS[countS] = ((outN*3.0) - ((outK + outL + outM + outO)*2.0));
|
||||
aT[countT] = ((outO*3.0) - ((outK + outL + outM + outN)*2.0));
|
||||
aPL[countP] = ((outKL*3.0) - ((outLL + outML + outNL + outOL)*2.0));
|
||||
aQL[countQ] = ((outLL*3.0) - ((outKL + outML + outNL + outOL)*2.0));
|
||||
aRL[countR] = ((outML*3.0) - ((outKL + outLL + outNL + outOL)*2.0));
|
||||
aSL[countS] = ((outNL*3.0) - ((outKL + outLL + outML + outOL)*2.0));
|
||||
aTL[countT] = ((outOL*3.0) - ((outKL + outLL + outML + outNL)*2.0));
|
||||
|
||||
aPR[countP] = ((outKR*3.0) - ((outLR + outMR + outNR + outOR)*2.0));
|
||||
aQR[countQ] = ((outLR*3.0) - ((outKR + outMR + outNR + outOR)*2.0));
|
||||
aRR[countR] = ((outMR*3.0) - ((outKR + outLR + outNR + outOR)*2.0));
|
||||
aSR[countS] = ((outNR*3.0) - ((outKR + outLR + outMR + outOR)*2.0));
|
||||
aTR[countT] = ((outOR*3.0) - ((outKR + outLR + outMR + outNR)*2.0));
|
||||
|
||||
countP++; if (countP < 0 || countP > delayP) countP = 0;
|
||||
countQ++; if (countQ < 0 || countQ > delayQ) countQ = 0;
|
||||
|
|
@ -431,19 +518,31 @@ void Verbity2::Verbity2Kernel::Process( const Float32 *inSourceP,
|
|||
countS++; if (countS < 0 || countS > delayS) countS = 0;
|
||||
countT++; if (countT < 0 || countT > delayT) countT = 0;
|
||||
|
||||
double outP = aP[countP-((countP > delayP)?delayP+1:0)];
|
||||
double outQ = aQ[countQ-((countQ > delayQ)?delayQ+1:0)];
|
||||
double outR = aR[countR-((countR > delayR)?delayR+1:0)];
|
||||
double outS = aS[countS-((countS > delayS)?delayS+1:0)];
|
||||
double outT = aT[countT-((countT > delayT)?delayT+1:0)];
|
||||
|
||||
double outPL = aPL[countP-((countP > delayP)?delayP+1:0)];
|
||||
double outQL = aQL[countQ-((countQ > delayQ)?delayQ+1:0)];
|
||||
double outRL = aRL[countR-((countR > delayR)?delayR+1:0)];
|
||||
double outSL = aSL[countS-((countS > delayS)?delayS+1:0)];
|
||||
double outTL = aTL[countT-((countT > delayT)?delayT+1:0)];
|
||||
|
||||
double outPR = aPR[countP-((countP > delayP)?delayP+1:0)];
|
||||
double outQR = aQR[countQ-((countQ > delayQ)?delayQ+1:0)];
|
||||
double outRR = aRR[countR-((countR > delayR)?delayR+1:0)];
|
||||
double outSR = aSR[countS-((countS > delayS)?delayS+1:0)];
|
||||
double outTR = aTR[countT-((countT > delayT)?delayT+1:0)];
|
||||
|
||||
//-------- four
|
||||
|
||||
aU[countU] = ((outP*3.0) - ((outQ + outR + outS + outT)*2.0));
|
||||
aV[countV] = ((outQ*3.0) - ((outP + outR + outS + outT)*2.0));
|
||||
aW[countW] = ((outR*3.0) - ((outP + outQ + outS + outT)*2.0));
|
||||
aX[countX] = ((outS*3.0) - ((outP + outQ + outR + outT)*2.0));
|
||||
aY[countY] = ((outT*3.0) - ((outP + outQ + outR + outS)*2.0));
|
||||
aUL[countU] = ((outPL*3.0) - ((outQL + outRL + outSL + outTL)*2.0));
|
||||
aVL[countV] = ((outQL*3.0) - ((outPL + outRL + outSL + outTL)*2.0));
|
||||
aWL[countW] = ((outRL*3.0) - ((outPL + outQL + outSL + outTL)*2.0));
|
||||
aXL[countX] = ((outSL*3.0) - ((outPL + outQL + outRL + outTL)*2.0));
|
||||
aYL[countY] = ((outTL*3.0) - ((outPL + outQL + outRL + outSL)*2.0));
|
||||
|
||||
aUR[countU] = ((outPR*3.0) - ((outQR + outRR + outSR + outTR)*2.0));
|
||||
aVR[countV] = ((outQR*3.0) - ((outPR + outRR + outSR + outTR)*2.0));
|
||||
aWR[countW] = ((outRR*3.0) - ((outPR + outQR + outSR + outTR)*2.0));
|
||||
aXR[countX] = ((outSR*3.0) - ((outPR + outQR + outRR + outTR)*2.0));
|
||||
aYR[countY] = ((outTR*3.0) - ((outPR + outQR + outRR + outSR)*2.0));
|
||||
|
||||
countU++; if (countU < 0 || countU > delayU) countU = 0;
|
||||
countV++; if (countV < 0 || countV > delayV) countV = 0;
|
||||
|
|
@ -451,69 +550,110 @@ void Verbity2::Verbity2Kernel::Process( const Float32 *inSourceP,
|
|||
countX++; if (countX < 0 || countX > delayX) countX = 0;
|
||||
countY++; if (countY < 0 || countY > delayY) countY = 0;
|
||||
|
||||
double outU = aU[countU-((countU > delayU)?delayU+1:0)];
|
||||
double outV = aV[countV-((countV > delayV)?delayV+1:0)];
|
||||
double outW = aW[countW-((countW > delayW)?delayW+1:0)];
|
||||
double outX = aX[countX-((countX > delayX)?delayX+1:0)];
|
||||
double outY = aY[countY-((countY > delayY)?delayY+1:0)];
|
||||
double outUL = aUL[countU-((countU > delayU)?delayU+1:0)];
|
||||
double outVL = aVL[countV-((countV > delayV)?delayV+1:0)];
|
||||
double outWL = aWL[countW-((countW > delayW)?delayW+1:0)];
|
||||
double outXL = aXL[countX-((countX > delayX)?delayX+1:0)];
|
||||
double outYL = aYL[countY-((countY > delayY)?delayY+1:0)];
|
||||
|
||||
double outUR = aUR[countU-((countU > delayU)?delayU+1:0)];
|
||||
double outVR = aVR[countV-((countV > delayV)?delayV+1:0)];
|
||||
double outWR = aWR[countW-((countW > delayW)?delayW+1:0)];
|
||||
double outXR = aXR[countX-((countX > delayX)?delayX+1:0)];
|
||||
double outYR = aYR[countY-((countY > delayY)?delayY+1:0)];
|
||||
|
||||
//-------- five
|
||||
|
||||
|
||||
feedbackA = ((outU*3.0) - ((outV + outW + outX + outY)*2.0));
|
||||
feedbackB = ((outV*3.0) - ((outU + outW + outX + outY)*2.0));
|
||||
feedbackC = ((outW*3.0) - ((outU + outV + outX + outY)*2.0));
|
||||
feedbackD = ((outX*3.0) - ((outU + outV + outW + outY)*2.0));
|
||||
feedbackE = ((outY*3.0) - ((outU + outV + outW + outX)*2.0));
|
||||
feedbackAR = ((outUL*3.0) - ((outVL + outWL + outXL + outYL)*2.0));
|
||||
feedbackBL = ((outVL*3.0) - ((outUL + outWL + outXL + outYL)*2.0));
|
||||
feedbackCR = ((outWL*3.0) - ((outUL + outVL + outXL + outYL)*2.0));
|
||||
feedbackDL = ((outXL*3.0) - ((outUL + outVL + outWL + outYL)*2.0));
|
||||
feedbackER = ((outYL*3.0) - ((outUL + outVL + outWL + outXL)*2.0));
|
||||
|
||||
feedbackAL = ((outUR*3.0) - ((outVR + outWR + outXR + outYR)*2.0));
|
||||
feedbackBR = ((outVR*3.0) - ((outUR + outWR + outXR + outYR)*2.0));
|
||||
feedbackCL = ((outWR*3.0) - ((outUR + outVR + outXR + outYR)*2.0));
|
||||
feedbackDR = ((outXR*3.0) - ((outUR + outVR + outWR + outYR)*2.0));
|
||||
feedbackEL = ((outYR*3.0) - ((outUR + outVR + outWR + outXR)*2.0));
|
||||
//which we need to feed back into the input again, a bit
|
||||
|
||||
inputSample = (outU + outV + outW + outX + outY)*0.0016;
|
||||
inputSampleL = (outUL + outVL + outWL + outXL + outYL)*0.0016;
|
||||
inputSampleR = (outUR + outVR + outWR + outXR + outYR)*0.0016;
|
||||
//and take the final combined sum of outputs, corrected for Householder gain
|
||||
if (cycleEnd == 4) {
|
||||
lastRef[0] = lastRef[4]; //start from previous last
|
||||
lastRef[2] = (lastRef[0] + inputSample)/2; //half
|
||||
lastRef[1] = (lastRef[0] + lastRef[2])/2; //one quarter
|
||||
lastRef[3] = (lastRef[2] + inputSample)/2; //three quarters
|
||||
lastRef[4] = inputSample; //full
|
||||
lastRefL[0] = lastRefL[4]; //start from previous last
|
||||
lastRefL[2] = (lastRefL[0] + inputSampleL)/2; //half
|
||||
lastRefL[1] = (lastRefL[0] + lastRefL[2])/2; //one quarter
|
||||
lastRefL[3] = (lastRefL[2] + inputSampleL)/2; //three quarters
|
||||
lastRefL[4] = inputSampleL; //full
|
||||
lastRefR[0] = lastRefR[4]; //start from previous last
|
||||
lastRefR[2] = (lastRefR[0] + inputSampleR)/2; //half
|
||||
lastRefR[1] = (lastRefR[0] + lastRefR[2])/2; //one quarter
|
||||
lastRefR[3] = (lastRefR[2] + inputSampleR)/2; //three quarters
|
||||
lastRefR[4] = inputSampleR; //full
|
||||
}
|
||||
if (cycleEnd == 3) {
|
||||
lastRef[0] = lastRef[3]; //start from previous last
|
||||
lastRef[2] = (lastRef[0]+lastRef[0]+inputSample)/3; //third
|
||||
lastRef[1] = (lastRef[0]+inputSample+inputSample)/3; //two thirds
|
||||
lastRef[3] = inputSample; //full
|
||||
lastRefL[0] = lastRefL[3]; //start from previous last
|
||||
lastRefL[2] = (lastRefL[0]+lastRefL[0]+inputSampleL)/3; //third
|
||||
lastRefL[1] = (lastRefL[0]+inputSampleL+inputSampleL)/3; //two thirds
|
||||
lastRefL[3] = inputSampleL; //full
|
||||
lastRefR[0] = lastRefR[3]; //start from previous last
|
||||
lastRefR[2] = (lastRefR[0]+lastRefR[0]+inputSampleR)/3; //third
|
||||
lastRefR[1] = (lastRefR[0]+inputSampleR+inputSampleR)/3; //two thirds
|
||||
lastRefR[3] = inputSampleR; //full
|
||||
}
|
||||
if (cycleEnd == 2) {
|
||||
lastRef[0] = lastRef[2]; //start from previous last
|
||||
lastRef[1] = (lastRef[0] + inputSample)/2; //half
|
||||
lastRef[2] = inputSample; //full
|
||||
lastRefL[0] = lastRefL[2]; //start from previous last
|
||||
lastRefL[1] = (lastRefL[0] + inputSampleL)/2; //half
|
||||
lastRefL[2] = inputSampleL; //full
|
||||
lastRefR[0] = lastRefR[2]; //start from previous last
|
||||
lastRefR[1] = (lastRefR[0] + inputSampleR)/2; //half
|
||||
lastRefR[2] = inputSampleR; //full
|
||||
}
|
||||
if (cycleEnd == 1) {
|
||||
lastRefL[0] = inputSampleL;
|
||||
lastRefR[0] = inputSampleR;
|
||||
}
|
||||
if (cycleEnd == 1) lastRef[0] = inputSample;
|
||||
cycle = 0; //reset
|
||||
inputSample = lastRef[cycle];
|
||||
inputSampleL = lastRefL[cycle];
|
||||
inputSampleR = lastRefR[cycle];
|
||||
} else {
|
||||
inputSample = lastRef[cycle];
|
||||
inputSampleL = lastRefL[cycle];
|
||||
inputSampleR = lastRefR[cycle];
|
||||
//we are going through our references now
|
||||
}
|
||||
|
||||
if (fabs(iirB)<1.18e-37) iirB = 0.0;
|
||||
iirB = (iirB*(1.0-lowpass))+(inputSample*lowpass); inputSample = iirB;
|
||||
if (fabs(iirBL)<1.18e-37) iirBL = 0.0;
|
||||
iirBL = (iirBL*(1.0-lowpass))+(inputSampleL*lowpass); inputSampleL = iirBL;
|
||||
if (fabs(iirBR)<1.18e-37) iirBR = 0.0;
|
||||
iirBR = (iirBR*(1.0-lowpass))+(inputSampleR*lowpass); inputSampleR = iirBR;
|
||||
//second filter
|
||||
|
||||
if (wet < 1.0) inputSample *= wet;
|
||||
if (dry < 1.0) drySample *= dry;
|
||||
inputSample += drySample;
|
||||
if (wet < 1.0) {inputSampleL *= wet; inputSampleR *= wet;}
|
||||
if (dry < 1.0) {drySampleL *= dry; drySampleR *= dry;}
|
||||
inputSampleL += drySampleL; inputSampleR += drySampleR;
|
||||
//this is our submix verb dry/wet: 0.5 is BOTH at FULL VOLUME
|
||||
//purpose is that, if you're adding verb, you're not altering other balances
|
||||
|
||||
//begin 32 bit floating point dither
|
||||
int expon; frexpf((float)inputSample, &expon);
|
||||
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5;
|
||||
inputSample += ((double(fpd)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
|
||||
//end 32 bit floating point dither
|
||||
//begin 32 bit stereo floating point dither
|
||||
int expon; frexpf((float)inputSampleL, &expon);
|
||||
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
|
||||
inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
|
||||
frexpf((float)inputSampleR, &expon);
|
||||
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
|
||||
inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
|
||||
//end 32 bit stereo floating point dither
|
||||
|
||||
*destP = inputSample;
|
||||
*outputL = inputSampleL;
|
||||
*outputR = inputSampleR;
|
||||
//direct stereo out
|
||||
|
||||
sourceP += inNumChannels; destP += inNumChannels;
|
||||
inputL += 1;
|
||||
inputR += 1;
|
||||
outputL += 1;
|
||||
outputR += 1;
|
||||
}
|
||||
return noErr;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3,9 +3,9 @@
|
|||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 9/3/22
|
||||
* Created: 2/1/23
|
||||
*
|
||||
* Copyright: Copyright © 2022 Airwindows, Airwindows uses the MIT license
|
||||
* Copyright: Copyright © 2023 Airwindows, Airwindows uses the MIT license
|
||||
*
|
||||
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
|
||||
* consideration of your agreement to the following terms, and your use, installation, modification
|
||||
|
|
@ -83,8 +83,13 @@ public:
|
|||
virtual ~Verbity2 () { delete mDebugDispatcher; }
|
||||
#endif
|
||||
|
||||
virtual AUKernelBase * NewKernel() { return new Verbity2Kernel(this); }
|
||||
|
||||
virtual ComponentResult Reset(AudioUnitScope inScope, AudioUnitElement inElement);
|
||||
|
||||
virtual OSStatus ProcessBufferLists(AudioUnitRenderActionFlags & ioActionFlags,
|
||||
const AudioBufferList & inBuffer, AudioBufferList & outBuffer,
|
||||
UInt32 inFramesToProcess);
|
||||
virtual UInt32 SupportedNumChannels(const AUChannelInfo ** outInfo);
|
||||
|
||||
virtual ComponentResult GetParameterValueStrings(AudioUnitScope inScope,
|
||||
AudioUnitParameterID inParameterID,
|
||||
CFArrayRef * outStrings);
|
||||
|
|
@ -103,7 +108,7 @@ public:
|
|||
AudioUnitScope inScope,
|
||||
AudioUnitElement inElement,
|
||||
void * outData);
|
||||
|
||||
|
||||
virtual ComponentResult Initialize();
|
||||
virtual bool SupportsTail () { return true; }
|
||||
virtual Float64 GetTailTime() {return (1.0/GetSampleRate())*0.0;} //in SECONDS! gsr * a number = in samples
|
||||
|
|
@ -112,108 +117,135 @@ public:
|
|||
/*! @method Version */
|
||||
virtual ComponentResult Version() { return kVerbity2Version; }
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
class Verbity2Kernel : public AUKernelBase // most of the real work happens here
|
||||
{
|
||||
public:
|
||||
Verbity2Kernel(AUEffectBase *inAudioUnit )
|
||||
: AUKernelBase(inAudioUnit)
|
||||
{
|
||||
}
|
||||
|
||||
// *Required* overides for the process method for this effect
|
||||
// processes one channel of interleaved samples
|
||||
virtual void Process( const Float32 *inSourceP,
|
||||
Float32 *inDestP,
|
||||
UInt32 inFramesToProcess,
|
||||
UInt32 inNumChannels,
|
||||
bool &ioSilence);
|
||||
|
||||
virtual void Reset();
|
||||
|
||||
private:
|
||||
Float64 iirA;
|
||||
Float64 iirB;
|
||||
|
||||
|
||||
Float64 aZ[5191];
|
||||
|
||||
Float64 aA[5005]; //AFKPU
|
||||
Float64 aF[4953];
|
||||
Float64 aK[4921];
|
||||
Float64 aP[4801];
|
||||
Float64 aU[4753];
|
||||
|
||||
Float64 aB[4351]; //BGLQV
|
||||
Float64 aG[4159];
|
||||
Float64 aL[3931];
|
||||
Float64 aQ[3531];
|
||||
Float64 aV[3331];
|
||||
|
||||
Float64 aC[3325]; //CHMRW
|
||||
Float64 aH[2793];
|
||||
Float64 aM[2769];
|
||||
Float64 aR[2391];
|
||||
Float64 aW[2349];
|
||||
|
||||
Float64 aD[2143]; //DINSX
|
||||
Float64 aI[1813];
|
||||
Float64 aN[1735];
|
||||
Float64 aS[1173];
|
||||
Float64 aX[789];
|
||||
|
||||
Float64 aE[679]; //EJOTY
|
||||
Float64 aJ[645];
|
||||
Float64 aO[441];
|
||||
Float64 aT[351];
|
||||
Float64 aY[283];
|
||||
|
||||
Float64 feedbackA;
|
||||
Float64 feedbackB;
|
||||
Float64 feedbackC;
|
||||
Float64 feedbackD;
|
||||
Float64 feedbackE;
|
||||
|
||||
Float64 previousA;
|
||||
Float64 previousB;
|
||||
Float64 previousC;
|
||||
Float64 previousD;
|
||||
Float64 previousE;
|
||||
|
||||
Float64 lastRef[7];
|
||||
|
||||
int countA, delayA;
|
||||
int countB, delayB;
|
||||
int countC, delayC;
|
||||
int countD, delayD;
|
||||
int countE, delayE;
|
||||
int countF, delayF;
|
||||
int countG, delayG;
|
||||
int countH, delayH;
|
||||
int countI, delayI;
|
||||
int countJ, delayJ;
|
||||
int countK, delayK;
|
||||
int countL, delayL;
|
||||
int countM, delayM;
|
||||
int countN, delayN;
|
||||
int countO, delayO;
|
||||
int countP, delayP;
|
||||
int countQ, delayQ;
|
||||
int countR, delayR;
|
||||
int countS, delayS;
|
||||
int countT, delayT;
|
||||
int countU, delayU;
|
||||
int countV, delayV;
|
||||
int countW, delayW;
|
||||
int countX, delayX;
|
||||
int countY, delayY;
|
||||
int countZ, delayZ;
|
||||
int cycle;
|
||||
|
||||
uint32_t fpd;
|
||||
};
|
||||
double iirAL;
|
||||
double iirBL;
|
||||
|
||||
//double aZL[5191];
|
||||
|
||||
double aAL[5005]; //AFKPU
|
||||
double aFL[4953];
|
||||
double aKL[4921];
|
||||
double aPL[4801];
|
||||
double aUL[4753];
|
||||
|
||||
double aBL[4351]; //BGLQV
|
||||
double aGL[4159];
|
||||
double aLL[3931];
|
||||
double aQL[3531];
|
||||
double aVL[3331];
|
||||
|
||||
double aCL[3325]; //CHMRW
|
||||
double aHL[2793];
|
||||
double aML[2769];
|
||||
double aRL[2391];
|
||||
double aWL[2349];
|
||||
|
||||
double aDL[2143]; //DINSX
|
||||
double aIL[1813];
|
||||
double aNL[1735];
|
||||
double aSL[1173];
|
||||
double aXL[789];
|
||||
|
||||
double aEL[679]; //EJOTY
|
||||
double aJL[645];
|
||||
double aOL[441];
|
||||
double aTL[351];
|
||||
double aYL[283];
|
||||
|
||||
double feedbackAL;
|
||||
double feedbackBL;
|
||||
double feedbackCL;
|
||||
double feedbackDL;
|
||||
double feedbackEL;
|
||||
|
||||
double previousAL;
|
||||
double previousBL;
|
||||
double previousCL;
|
||||
double previousDL;
|
||||
double previousEL;
|
||||
|
||||
double lastRefL[7];
|
||||
|
||||
double iirAR;
|
||||
double iirBR;
|
||||
|
||||
//double aZR[5191];
|
||||
|
||||
double aAR[5005]; //AFKPU
|
||||
double aFR[4953];
|
||||
double aKR[4921];
|
||||
double aPR[4801];
|
||||
double aUR[4753];
|
||||
|
||||
double aBR[4351]; //BGLQV
|
||||
double aGR[4159];
|
||||
double aLR[3931];
|
||||
double aQR[3531];
|
||||
double aVR[3331];
|
||||
|
||||
double aCR[3325]; //CHMRW
|
||||
double aHR[2793];
|
||||
double aMR[2769];
|
||||
double aRR[2391];
|
||||
double aWR[2349];
|
||||
|
||||
double aDR[2143]; //DINSX
|
||||
double aIR[1813];
|
||||
double aNR[1735];
|
||||
double aSR[1173];
|
||||
double aXR[789];
|
||||
|
||||
double aER[679]; //EJOTY
|
||||
double aJR[645];
|
||||
double aOR[441];
|
||||
double aTR[351];
|
||||
double aYR[283];
|
||||
|
||||
double feedbackAR;
|
||||
double feedbackBR;
|
||||
double feedbackCR;
|
||||
double feedbackDR;
|
||||
double feedbackER;
|
||||
|
||||
double previousAR;
|
||||
double previousBR;
|
||||
double previousCR;
|
||||
double previousDR;
|
||||
double previousER;
|
||||
|
||||
double lastRefR[7];
|
||||
|
||||
int countA, delayA;
|
||||
int countB, delayB;
|
||||
int countC, delayC;
|
||||
int countD, delayD;
|
||||
int countE, delayE;
|
||||
int countF, delayF;
|
||||
int countG, delayG;
|
||||
int countH, delayH;
|
||||
int countI, delayI;
|
||||
int countJ, delayJ;
|
||||
int countK, delayK;
|
||||
int countL, delayL;
|
||||
int countM, delayM;
|
||||
int countN, delayN;
|
||||
int countO, delayO;
|
||||
int countP, delayP;
|
||||
int countQ, delayQ;
|
||||
int countR, delayR;
|
||||
int countS, delayS;
|
||||
int countT, delayT;
|
||||
int countU, delayU;
|
||||
int countV, delayV;
|
||||
int countW, delayW;
|
||||
int countX, delayX;
|
||||
int countY, delayY;
|
||||
int countZ, delayZ;
|
||||
int cycle;
|
||||
|
||||
uint32_t fpdL;
|
||||
uint32_t fpdR;
|
||||
};
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
|
|
|||
|
|
@ -3,9 +3,9 @@
|
|||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 9/3/22
|
||||
* Created: 2/1/23
|
||||
*
|
||||
* Copyright: Copyright © 2022 Airwindows, Airwindows uses the MIT license
|
||||
* Copyright: Copyright © 2023 Airwindows, Airwindows uses the MIT license
|
||||
*
|
||||
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
|
||||
* consideration of your agreement to the following terms, and your use, installation, modification
|
||||
|
|
|
|||
|
|
@ -251,7 +251,7 @@
|
|||
<dict>
|
||||
<key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
|
||||
<array>
|
||||
<real>186</real>
|
||||
<real>299</real>
|
||||
</array>
|
||||
<key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
|
||||
<array>
|
||||
|
|
@ -264,19 +264,22 @@
|
|||
<array>
|
||||
<string>089C166AFE841209C02AAC07</string>
|
||||
<string>08FB77ADFE841716C02AAC07</string>
|
||||
<string>8BA05AEB0720742700365D66</string>
|
||||
<string>8BA05A7D072073D200365D66</string>
|
||||
<string>8BA05A7E072073D200365D66</string>
|
||||
<string>1C37FBAC04509CD000000102</string>
|
||||
<string>1C37FABC05509CD000000102</string>
|
||||
</array>
|
||||
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
|
||||
<array>
|
||||
<array>
|
||||
<integer>20</integer>
|
||||
<integer>19</integer>
|
||||
<integer>6</integer>
|
||||
<integer>5</integer>
|
||||
<integer>4</integer>
|
||||
<integer>1</integer>
|
||||
<integer>0</integer>
|
||||
</array>
|
||||
</array>
|
||||
<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
|
||||
<string>{{0, 0}, {186, 445}}</string>
|
||||
<string>{{0, 0}, {299, 445}}</string>
|
||||
</dict>
|
||||
<key>PBXTopSmartGroupGIDs</key>
|
||||
<array/>
|
||||
|
|
@ -288,19 +291,19 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 0}, {203, 463}}</string>
|
||||
<string>{{0, 0}, {316, 463}}</string>
|
||||
<key>GroupTreeTableConfiguration</key>
|
||||
<array>
|
||||
<string>MainColumn</string>
|
||||
<real>186</real>
|
||||
<real>299</real>
|
||||
</array>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>203 321 788 504 0 0 1440 878 </string>
|
||||
<string>18 337 788 504 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXSmartGroupTreeModule</string>
|
||||
<key>Proportion</key>
|
||||
<string>203pt</string>
|
||||
<string>316pt</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Dock</key>
|
||||
|
|
@ -311,15 +314,13 @@
|
|||
<key>PBXProjectModuleGUID</key>
|
||||
<string>1CE0B20306471E060097A5F4</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string>MyNewFile14.java</string>
|
||||
<string><No Editor></string>
|
||||
<key>PBXSplitModuleInNavigatorKey</key>
|
||||
<dict>
|
||||
<key>Split0</key>
|
||||
<dict>
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
<string>1CE0B20406471E060097A5F4</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string>MyNewFile14.java</string>
|
||||
</dict>
|
||||
<key>SplitCount</key>
|
||||
<string>1</string>
|
||||
|
|
@ -330,14 +331,14 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 0}, {580, 269}}</string>
|
||||
<string>{{0, 0}, {467, 0}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>203 321 788 504 0 0 1440 878 </string>
|
||||
<string>18 337 788 504 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXNavigatorGroup</string>
|
||||
<key>Proportion</key>
|
||||
<string>269pt</string>
|
||||
<string>0pt</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>ContentConfiguration</key>
|
||||
|
|
@ -350,18 +351,18 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 274}, {580, 189}}</string>
|
||||
<string>{{0, 5}, {467, 458}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>203 321 788 504 0 0 1440 878 </string>
|
||||
<string>18 337 788 504 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>XCDetailModule</string>
|
||||
<key>Proportion</key>
|
||||
<string>189pt</string>
|
||||
<string>458pt</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Proportion</key>
|
||||
<string>580pt</string>
|
||||
<string>467pt</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Name</key>
|
||||
|
|
@ -376,9 +377,9 @@
|
|||
</array>
|
||||
<key>TableOfContents</key>
|
||||
<array>
|
||||
<string>8B563EC9161B5E170067FE32</string>
|
||||
<string>8BDD47AA1A48BB8900FB2F61</string>
|
||||
<string>1CE0B1FE06471DED0097A5F4</string>
|
||||
<string>8B563ECA161B5E170067FE32</string>
|
||||
<string>8BDD47AB1A48BB8900FB2F61</string>
|
||||
<string>1CE0B20306471E060097A5F4</string>
|
||||
<string>1CE0B20506471E060097A5F4</string>
|
||||
</array>
|
||||
|
|
@ -517,10 +518,10 @@
|
|||
<key>WindowOrderList</key>
|
||||
<array>
|
||||
<string>8BD3CCBD148831C90062E48C</string>
|
||||
<string>/Developer/Library/Xcode/Project Templates/System Plug-in/Audio Unit Effect/Audio Unit Effect/StarterAU.xcodeproj</string>
|
||||
<string>/Developer/Library/Xcode/Project Templates/System Plug-in/Audio Unit Effect/Audio Unit Effect with Cocoa View/StarterAU.xcodeproj</string>
|
||||
</array>
|
||||
<key>WindowString</key>
|
||||
<string>203 321 788 504 0 0 1440 878 </string>
|
||||
<string>18 337 788 504 0 0 1440 878 </string>
|
||||
<key>WindowToolsV3</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
|
@ -597,7 +598,7 @@
|
|||
<key>TableOfContents</key>
|
||||
<array>
|
||||
<string>8BD3CCBD148831C90062E48C</string>
|
||||
<string>8B563ECB161B5E170067FE32</string>
|
||||
<string>8BDD47AC1A48BB8900FB2F61</string>
|
||||
<string>1CD0528F0623707200166675</string>
|
||||
<string>XCMainBuildResultsModuleGUID</string>
|
||||
</array>
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
|
||||
PBXFileTableDataSourceColumnWidthsKey = (
|
||||
20,
|
||||
292,
|
||||
364,
|
||||
20,
|
||||
48,
|
||||
43,
|
||||
|
|
@ -32,7 +32,7 @@
|
|||
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
|
||||
PBXFileTableDataSourceColumnWidthsKey = (
|
||||
20,
|
||||
252,
|
||||
188,
|
||||
60,
|
||||
20,
|
||||
48,
|
||||
|
|
@ -49,72 +49,42 @@
|
|||
PBXFileDataSource_Warnings_ColumnID,
|
||||
);
|
||||
};
|
||||
PBXPerProjectTemplateStateSaveDate = 684085876;
|
||||
PBXWorkspaceStateSaveDate = 684085876;
|
||||
};
|
||||
perUserProjectItems = {
|
||||
8B71BB1F28C6567F0038254A /* PBXTextBookmark */ = 8B71BB1F28C6567F0038254A /* PBXTextBookmark */;
|
||||
8B71BB2028C6567F0038254A /* PBXTextBookmark */ = 8B71BB2028C6567F0038254A /* PBXTextBookmark */;
|
||||
8BA7F45728C3B858002FBAF8 /* PlistBookmark */ = 8BA7F45728C3B858002FBAF8 /* PlistBookmark */;
|
||||
PBXPerProjectTemplateStateSaveDate = 696982253;
|
||||
PBXWorkspaceStateSaveDate = 696982253;
|
||||
};
|
||||
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
|
||||
userBuildSettings = {
|
||||
};
|
||||
};
|
||||
8B71BB1F28C6567F0038254A /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BC6025B073B072D006C4272 /* Verbity2.h */;
|
||||
name = "Verbity2.h: 178";
|
||||
rLen = 0;
|
||||
rLoc = 6144;
|
||||
rType = 0;
|
||||
vrLen = 192;
|
||||
vrLoc = 6037;
|
||||
};
|
||||
8B71BB2028C6567F0038254A /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BC6025B073B072D006C4272 /* Verbity2.h */;
|
||||
name = "Verbity2.h: 178";
|
||||
rLen = 0;
|
||||
rLoc = 6144;
|
||||
rType = 0;
|
||||
vrLen = 192;
|
||||
vrLoc = 6037;
|
||||
};
|
||||
8BA05A660720730100365D66 /* Verbity2.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1002, 9558}}";
|
||||
sepNavSelRange = "{13609, 7771}";
|
||||
sepNavVisRange = "{20450, 1282}";
|
||||
sepNavWindowFrame = "{{16, 38}, {1049, 840}}";
|
||||
sepNavIntBoundsRect = "{{0, 0}, {831, 12168}}";
|
||||
sepNavSelRange = "{28850, 0}";
|
||||
sepNavVisRange = "{28044, 1443}";
|
||||
sepNavWindowFrame = "{{680, 41}, {843, 837}}";
|
||||
};
|
||||
};
|
||||
8BA05A690720730100365D66 /* Verbity2Version.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1056, 1062}}";
|
||||
sepNavSelRange = "{2886, 0}";
|
||||
sepNavVisRange = "{953, 1996}";
|
||||
sepNavWindowFrame = "{{15, 64}, {914, 809}}";
|
||||
sepNavSelRange = "{2898, 0}";
|
||||
sepNavVisRange = "{965, 1996}";
|
||||
sepNavWindowFrame = "{{576, 38}, {1050, 840}}";
|
||||
};
|
||||
};
|
||||
8BA7F45728C3B858002FBAF8 /* PlistBookmark */ = {
|
||||
isa = PlistBookmark;
|
||||
fRef = 8D01CCD10486CAD60068D4B7 /* Info.plist */;
|
||||
fallbackIsa = PBXBookmark;
|
||||
isK = 0;
|
||||
kPath = (
|
||||
CFBundleName,
|
||||
);
|
||||
name = /Users/christopherjohnson/Desktop/Verbity2/Info.plist;
|
||||
rLen = 0;
|
||||
rLoc = 9223372036854775808;
|
||||
8BA05A7F072073D200365D66 /* AUBase.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {516, 23430}}";
|
||||
sepNavSelRange = "{0, 0}";
|
||||
sepNavVisRange = "{0, 1336}";
|
||||
};
|
||||
};
|
||||
8BC6025B073B072D006C4272 /* Verbity2.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {482, 4338}}";
|
||||
sepNavSelRange = "{6144, 0}";
|
||||
sepNavVisRange = "{6037, 192}";
|
||||
sepNavWindowFrame = "{{30, 38}, {576, 817}}";
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1146, 4824}}";
|
||||
sepNavSelRange = "{7386, 0}";
|
||||
sepNavVisRange = "{4153, 1253}";
|
||||
sepNavWindowFrame = "{{661, 38}, {1050, 840}}";
|
||||
};
|
||||
};
|
||||
8BD3CCB8148830B20062E48C /* Source Control */ = {
|
||||
|
|
|
|||
|
|
@ -178,7 +178,7 @@
|
|||
<key>FavBarConfig</key>
|
||||
<dict>
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
<string>8BD7274F1D46E5A5000176F0</string>
|
||||
<string>8B376FC1298B1AF20027F1BA</string>
|
||||
<key>XCBarModuleItemNames</key>
|
||||
<dict/>
|
||||
<key>XCBarModuleItems</key>
|
||||
|
|
@ -225,8 +225,8 @@
|
|||
<array/>
|
||||
<key>PerspectiveWidths</key>
|
||||
<array>
|
||||
<integer>841</integer>
|
||||
<integer>841</integer>
|
||||
<integer>810</integer>
|
||||
<integer>810</integer>
|
||||
</array>
|
||||
<key>Perspectives</key>
|
||||
<array>
|
||||
|
|
@ -256,8 +256,6 @@
|
|||
<key>Layout</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>BecomeActive</key>
|
||||
<true/>
|
||||
<key>ContentConfiguration</key>
|
||||
<dict>
|
||||
<key>PBXBottomSmartGroupGIDs</key>
|
||||
|
|
@ -282,7 +280,7 @@
|
|||
<dict>
|
||||
<key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
|
||||
<array>
|
||||
<real>288</real>
|
||||
<real>185</real>
|
||||
</array>
|
||||
<key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
|
||||
<array>
|
||||
|
|
@ -296,8 +294,6 @@
|
|||
<string>089C166AFE841209C02AAC07</string>
|
||||
<string>08FB77ADFE841716C02AAC07</string>
|
||||
<string>8BA05A56072072A900365D66</string>
|
||||
<string>089C167CFE841241C02AAC07</string>
|
||||
<string>1C37FBAC04509CD000000102</string>
|
||||
</array>
|
||||
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
|
||||
<array>
|
||||
|
|
@ -309,7 +305,7 @@
|
|||
</array>
|
||||
</array>
|
||||
<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
|
||||
<string>{{0, 0}, {288, 595}}</string>
|
||||
<string>{{0, 0}, {185, 428}}</string>
|
||||
</dict>
|
||||
<key>PBXTopSmartGroupGIDs</key>
|
||||
<array/>
|
||||
|
|
@ -319,19 +315,19 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 0}, {305, 613}}</string>
|
||||
<string>{{0, 0}, {202, 446}}</string>
|
||||
<key>GroupTreeTableConfiguration</key>
|
||||
<array>
|
||||
<string>MainColumn</string>
|
||||
<real>288</real>
|
||||
<real>185</real>
|
||||
</array>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>52 158 841 654 0 0 1440 878 </string>
|
||||
<string>414 280 810 487 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXSmartGroupTreeModule</string>
|
||||
<key>Proportion</key>
|
||||
<string>305pt</string>
|
||||
<string>202pt</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Dock</key>
|
||||
|
|
@ -340,26 +336,17 @@
|
|||
<key>ContentConfiguration</key>
|
||||
<dict>
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
<string>8BD7274A1D46E5A5000176F0</string>
|
||||
<string>8B376FBC298B1AF20027F1BA</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string>Verbity2.h</string>
|
||||
<string></string>
|
||||
<key>PBXSplitModuleInNavigatorKey</key>
|
||||
<dict>
|
||||
<key>Split0</key>
|
||||
<dict>
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
<string>8BD7274B1D46E5A5000176F0</string>
|
||||
<string>8B376FBD298B1AF20027F1BA</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string>Verbity2.h</string>
|
||||
<key>_historyCapacity</key>
|
||||
<integer>0</integer>
|
||||
<key>bookmark</key>
|
||||
<string>8B71BB2028C6567F0038254A</string>
|
||||
<key>history</key>
|
||||
<array>
|
||||
<string>8BA7F45728C3B858002FBAF8</string>
|
||||
<string>8B71BB1F28C6567F0038254A</string>
|
||||
</array>
|
||||
<string></string>
|
||||
</dict>
|
||||
<key>SplitCount</key>
|
||||
<string>1</string>
|
||||
|
|
@ -372,18 +359,18 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 0}, {531, 202}}</string>
|
||||
<string>{{0, 0}, {603, 0}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>52 158 841 654 0 0 1440 878 </string>
|
||||
<string>414 280 810 487 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXNavigatorGroup</string>
|
||||
<key>Proportion</key>
|
||||
<string>202pt</string>
|
||||
<string>0pt</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Proportion</key>
|
||||
<string>406pt</string>
|
||||
<string>441pt</string>
|
||||
<key>Tabs</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
|
@ -397,9 +384,7 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{10, 27}, {531, 379}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>52 158 841 654 0 0 1440 878 </string>
|
||||
<string>{{10, 27}, {603, 414}}</string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>XCDetailModule</string>
|
||||
|
|
@ -453,7 +438,9 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{10, 27}, {531, 339}}</string>
|
||||
<string>{{10, 27}, {603, 414}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>414 280 810 487 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXBuildResultsModule</string>
|
||||
|
|
@ -462,7 +449,7 @@
|
|||
</dict>
|
||||
</array>
|
||||
<key>Proportion</key>
|
||||
<string>531pt</string>
|
||||
<string>603pt</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Name</key>
|
||||
|
|
@ -481,11 +468,11 @@
|
|||
</array>
|
||||
<key>TableOfContents</key>
|
||||
<array>
|
||||
<string>8B71BB2128C6567F0038254A</string>
|
||||
<string>8B376FBE298B1AF20027F1BA</string>
|
||||
<string>1CA23ED40692098700951B8B</string>
|
||||
<string>8B71BB2228C6567F0038254A</string>
|
||||
<string>8BD7274A1D46E5A5000176F0</string>
|
||||
<string>8B71BB2328C6567F0038254A</string>
|
||||
<string>8B376FBF298B1AF20027F1BA</string>
|
||||
<string>8B376FBC298B1AF20027F1BA</string>
|
||||
<string>8B376FC0298B1AF20027F1BA</string>
|
||||
<string>1CA23EDF0692099D00951B8B</string>
|
||||
<string>1CA23EE00692099D00951B8B</string>
|
||||
<string>1CA23EE10692099D00951B8B</string>
|
||||
|
|
@ -522,7 +509,7 @@
|
|||
<key>Identifier</key>
|
||||
<string>perspective.debug</string>
|
||||
<key>IsVertical</key>
|
||||
<true/>
|
||||
<integer>1</integer>
|
||||
<key>Layout</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
|
@ -541,7 +528,7 @@
|
|||
<key>Module</key>
|
||||
<string>PBXDebugCLIModule</string>
|
||||
<key>Proportion</key>
|
||||
<string>0pt</string>
|
||||
<string>0%</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>ContentConfiguration</key>
|
||||
|
|
@ -560,8 +547,8 @@
|
|||
<string>yes</string>
|
||||
<key>sizes</key>
|
||||
<array>
|
||||
<string>{{0, 0}, {395, 214}}</string>
|
||||
<string>{{395, 0}, {415, 214}}</string>
|
||||
<string>{{0, 0}, {395, 213}}</string>
|
||||
<string>{{395, 0}, {415, 213}}</string>
|
||||
</array>
|
||||
</dict>
|
||||
<key>VerticalSplitView</key>
|
||||
|
|
@ -576,8 +563,8 @@
|
|||
<string>yes</string>
|
||||
<key>sizes</key>
|
||||
<array>
|
||||
<string>{{0, 0}, {810, 214}}</string>
|
||||
<string>{{0, 214}, {810, 227}}</string>
|
||||
<string>{{0, 0}, {810, 213}}</string>
|
||||
<string>{{0, 213}, {810, 225}}</string>
|
||||
</array>
|
||||
</dict>
|
||||
</dict>
|
||||
|
|
@ -590,6 +577,8 @@
|
|||
</dict>
|
||||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>DebugConsoleDrawerSize</key>
|
||||
<string>{100, 120}</string>
|
||||
<key>DebugConsoleVisible</key>
|
||||
<string>None</string>
|
||||
<key>DebugConsoleWindowFrame</key>
|
||||
|
|
@ -597,54 +586,32 @@
|
|||
<key>DebugSTDIOWindowFrame</key>
|
||||
<string>{{200, 200}, {500, 300}}</string>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 5}, {810, 441}}</string>
|
||||
<key>PBXDebugSessionStackFrameViewKey</key>
|
||||
<dict>
|
||||
<key>DebugVariablesTableConfiguration</key>
|
||||
<array>
|
||||
<string>Name</string>
|
||||
<real>120</real>
|
||||
<string>Value</string>
|
||||
<real>85</real>
|
||||
<string>Summary</string>
|
||||
<real>185</real>
|
||||
</array>
|
||||
<key>Frame</key>
|
||||
<string>{{395, 0}, {415, 214}}</string>
|
||||
</dict>
|
||||
<string>{{0, 7}, {810, 438}}</string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXDebugSessionModule</string>
|
||||
<key>Proportion</key>
|
||||
<string>441pt</string>
|
||||
<string>443pt</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Name</key>
|
||||
<string>Debug</string>
|
||||
<key>ServiceClasses</key>
|
||||
<array>
|
||||
<string>XCModuleDock</string>
|
||||
<string>XCModuleDock</string>
|
||||
<string>PBXDebugCLIModule</string>
|
||||
<string>PBXDebugSessionModule</string>
|
||||
<string>PBXDebugProcessAndThreadModule</string>
|
||||
<string>PBXDebugProcessViewModule</string>
|
||||
<string>PBXDebugThreadViewModule</string>
|
||||
<string>PBXDebugStackFrameViewModule</string>
|
||||
<string>PBXNavigatorGroup</string>
|
||||
<string>XCConsole</string>
|
||||
</array>
|
||||
<key>TableOfContents</key>
|
||||
<array>
|
||||
<string>8BD727EC1D46ECF1000176F0</string>
|
||||
<string>1CC8E6A5069209BD00BB180A</string>
|
||||
<string>1CC8E6A6069209BD00BB180A</string>
|
||||
<string>1CCC7628064C1048000F2A68</string>
|
||||
<string>1CCC7629064C1048000F2A68</string>
|
||||
<string>8BD727ED1D46ECF1000176F0</string>
|
||||
<string>8BD727EE1D46ECF1000176F0</string>
|
||||
<string>8BD727EF1D46ECF1000176F0</string>
|
||||
<string>8BD727F01D46ECF1000176F0</string>
|
||||
<string>8BD727E71D46ECD9000176F0</string>
|
||||
<string>1CC8E6A7069209BD00BB180A</string>
|
||||
</array>
|
||||
<key>ToolbarConfigUserDefaultsMinorVersion</key>
|
||||
<string>2</string>
|
||||
<key>ToolbarConfiguration</key>
|
||||
<string>xcode.toolbar.config.debugV3</string>
|
||||
</dict>
|
||||
|
|
@ -658,7 +625,7 @@
|
|||
<key>StatusbarIsVisible</key>
|
||||
<true/>
|
||||
<key>TimeStamp</key>
|
||||
<real>684086911.71858203</real>
|
||||
<real>696982688.58456397</real>
|
||||
<key>ToolbarConfigUserDefaultsMinorVersion</key>
|
||||
<string>2</string>
|
||||
<key>ToolbarDisplayMode</key>
|
||||
|
|
@ -675,11 +642,10 @@
|
|||
<integer>5</integer>
|
||||
<key>WindowOrderList</key>
|
||||
<array>
|
||||
<string>8B71BB2428C6567F0038254A</string>
|
||||
<string>/Users/christopherjohnson/Desktop/airwindows/plugins/MacAU/Verbity2/Verbity2.xcodeproj</string>
|
||||
<string>/Users/christopherjohnson/Desktop/Verbity2/Verbity2.xcodeproj</string>
|
||||
</array>
|
||||
<key>WindowString</key>
|
||||
<string>52 158 841 654 0 0 1440 878 </string>
|
||||
<string>414 280 810 487 0 0 1440 878 </string>
|
||||
<key>WindowToolsV3</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
|
|
|||
|
|
@ -3,9 +3,9 @@
|
|||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 9/3/22
|
||||
* Created: 2/1/23
|
||||
*
|
||||
* Copyright: Copyright © 2022 Airwindows, Airwindows uses the MIT license
|
||||
* Copyright: Copyright © 2023 Airwindows, Airwindows uses the MIT license
|
||||
*
|
||||
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
|
||||
* consideration of your agreement to the following terms, and your use, installation, modification
|
||||
|
|
|
|||
|
|
@ -3,9 +3,9 @@
|
|||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 8/26/22
|
||||
* Created: 2/1/23
|
||||
*
|
||||
* Copyright: Copyright © 2022 Airwindows, Airwindows uses the MIT license
|
||||
* Copyright: Copyright © 2023 Airwindows, Airwindows uses the MIT license
|
||||
*
|
||||
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
|
||||
* consideration of your agreement to the following terms, and your use, installation, modification
|
||||
|
|
@ -152,6 +152,21 @@ ComponentResult Chamber2::GetPropertyInfo (AudioUnitPropertyID inID,
|
|||
return AUEffectBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// state that plugin supports only stereo-in/stereo-out processing
|
||||
UInt32 Chamber2::SupportedNumChannels(const AUChannelInfo ** outInfo)
|
||||
{
|
||||
if (outInfo != NULL)
|
||||
{
|
||||
static AUChannelInfo info;
|
||||
info.inChannels = 2;
|
||||
info.outChannels = 2;
|
||||
*outInfo = &info;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Chamber2::GetProperty
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
|
@ -180,33 +195,32 @@ ComponentResult Chamber2::Initialize()
|
|||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Chamber2::Chamber2Kernel::Reset()
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
void Chamber2::Chamber2Kernel::Reset()
|
||||
ComponentResult Chamber2::Reset(AudioUnitScope inScope, AudioUnitElement inElement)
|
||||
{
|
||||
for(int count = 0; count < 9999; count++) {aE[count] = 0.0;}
|
||||
for(int count = 0; count < 9999; count++) {aF[count] = 0.0;}
|
||||
for(int count = 0; count < 9999; count++) {aG[count] = 0.0;}
|
||||
for(int count = 0; count < 9999; count++) {aH[count] = 0.0;}
|
||||
for(int count = 0; count < 9999; count++) {aA[count] = 0.0;}
|
||||
for(int count = 0; count < 9999; count++) {aB[count] = 0.0;}
|
||||
for(int count = 0; count < 9999; count++) {aC[count] = 0.0;}
|
||||
for(int count = 0; count < 9999; count++) {aD[count] = 0.0;}
|
||||
for(int count = 0; count < 9999; count++) {aI[count] = 0.0;}
|
||||
for(int count = 0; count < 9999; count++) {aJ[count] = 0.0;}
|
||||
for(int count = 0; count < 9999; count++) {aK[count] = 0.0;}
|
||||
for(int count = 0; count < 9999; count++) {aL[count] = 0.0;}
|
||||
for(int count = 0; count < 9999; count++) {aM[count] = 0.0;}
|
||||
for(int count = 0; count < 9999; count++) {aEL[count] = 0.0;aER[count] = 0.0;}
|
||||
for(int count = 0; count < 9999; count++) {aFL[count] = 0.0;aFR[count] = 0.0;}
|
||||
for(int count = 0; count < 9999; count++) {aGL[count] = 0.0;aGR[count] = 0.0;}
|
||||
for(int count = 0; count < 9999; count++) {aHL[count] = 0.0;aHR[count] = 0.0;}
|
||||
for(int count = 0; count < 9999; count++) {aAL[count] = 0.0;aAR[count] = 0.0;}
|
||||
for(int count = 0; count < 9999; count++) {aBL[count] = 0.0;aBR[count] = 0.0;}
|
||||
for(int count = 0; count < 9999; count++) {aCL[count] = 0.0;aCR[count] = 0.0;}
|
||||
for(int count = 0; count < 9999; count++) {aDL[count] = 0.0;aDR[count] = 0.0;}
|
||||
for(int count = 0; count < 9999; count++) {aIL[count] = 0.0;aIR[count] = 0.0;}
|
||||
for(int count = 0; count < 9999; count++) {aJL[count] = 0.0;aJR[count] = 0.0;}
|
||||
for(int count = 0; count < 9999; count++) {aKL[count] = 0.0;aKR[count] = 0.0;}
|
||||
for(int count = 0; count < 9999; count++) {aLL[count] = 0.0;aLR[count] = 0.0;}
|
||||
for(int count = 0; count < 9999; count++) {aML[count] = 0.0;aMR[count] = 0.0;}
|
||||
|
||||
feedbackA = 0.0;
|
||||
feedbackB = 0.0;
|
||||
feedbackC = 0.0;
|
||||
feedbackD = 0.0;
|
||||
previousA = 0.0;
|
||||
previousB = 0.0;
|
||||
previousC = 0.0;
|
||||
previousD = 0.0;
|
||||
feedbackAL = 0.0; feedbackAR = 0.0;
|
||||
feedbackBL = 0.0; feedbackBR = 0.0;
|
||||
feedbackCL = 0.0; feedbackCR = 0.0;
|
||||
feedbackDL = 0.0; feedbackDR = 0.0;
|
||||
previousAL = 0.0; previousAR = 0.0;
|
||||
previousBL = 0.0; previousBR = 0.0;
|
||||
previousCL = 0.0; previousCR = 0.0;
|
||||
previousDL = 0.0; previousDR = 0.0;
|
||||
|
||||
for(int count = 0; count < 9; count++) {lastRef[count] = 0.0;}
|
||||
cycle = 0;
|
||||
for(int count = 0; count < 9; count++) {lastRefL[count] = 0.0;lastRefR[count] = 0.0;}
|
||||
|
||||
countI = 1;
|
||||
countJ = 1;
|
||||
|
|
@ -223,24 +237,26 @@ void Chamber2::Chamber2Kernel::Reset()
|
|||
countF = 1;
|
||||
countG = 1;
|
||||
countH = 1;
|
||||
cycle = 0;
|
||||
|
||||
|
||||
fpd = 1.0; while (fpd < 16386) fpd = rand()*UINT32_MAX;
|
||||
fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX;
|
||||
fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX;
|
||||
return noErr;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Chamber2::Chamber2Kernel::Process
|
||||
// Chamber2::ProcessBufferLists
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
void Chamber2::Chamber2Kernel::Process( const Float32 *inSourceP,
|
||||
Float32 *inDestP,
|
||||
UInt32 inFramesToProcess,
|
||||
UInt32 inNumChannels,
|
||||
bool &ioSilence )
|
||||
OSStatus Chamber2::ProcessBufferLists(AudioUnitRenderActionFlags & ioActionFlags,
|
||||
const AudioBufferList & inBuffer,
|
||||
AudioBufferList & outBuffer,
|
||||
UInt32 inFramesToProcess)
|
||||
{
|
||||
Float32 * inputL = (Float32*)(inBuffer.mBuffers[0].mData);
|
||||
Float32 * inputR = (Float32*)(inBuffer.mBuffers[1].mData);
|
||||
Float32 * outputL = (Float32*)(outBuffer.mBuffers[0].mData);
|
||||
Float32 * outputR = (Float32*)(outBuffer.mBuffers[1].mData);
|
||||
UInt32 nSampleFrames = inFramesToProcess;
|
||||
const Float32 *sourceP = inSourceP;
|
||||
Float32 *destP = inDestP;
|
||||
|
||||
double overallscale = 1.0;
|
||||
overallscale /= 44100.0;
|
||||
overallscale *= GetSampleRate();
|
||||
|
|
@ -252,7 +268,7 @@ void Chamber2::Chamber2Kernel::Process( const Float32 *inSourceP,
|
|||
|
||||
Float64 size = (GetParameter( kParam_One )*0.9)+0.1;
|
||||
Float64 regen = (1.0-(pow(1.0-GetParameter( kParam_Two ),2)))*0.123;
|
||||
Float64 echoScale = 1.0-(pow(GetParameter( kParam_Three ),3));
|
||||
Float64 echoScale = 1.0-GetParameter( kParam_Three );
|
||||
Float64 echo = 0.618033988749894848204586+((1.0-0.618033988749894848204586)*echoScale);
|
||||
Float64 interpolate = (1.0-echo)*0.381966011250105;
|
||||
//this now goes from Chamber, to all the reverb delays being exactly the same
|
||||
|
|
@ -268,7 +284,8 @@ void Chamber2::Chamber2Kernel::Process( const Float32 *inSourceP,
|
|||
//that's so it can be on submixes without cutting back dry channel when adjusted:
|
||||
//unless you go super heavy, you are only adjusting the added verb loudness.
|
||||
|
||||
delayE = delayM = 9900*size;
|
||||
delayM = sqrt(9900*size);
|
||||
delayE = 9900*size;
|
||||
delayF = delayE*echo;
|
||||
delayG = delayF*echo;
|
||||
delayH = delayG*echo;
|
||||
|
|
@ -287,133 +304,206 @@ void Chamber2::Chamber2Kernel::Process( const Float32 *inSourceP,
|
|||
//sustain infinitely.
|
||||
|
||||
while (nSampleFrames-- > 0) {
|
||||
double inputSample = *sourceP;
|
||||
if (fabs(inputSample)<1.18e-23) inputSample = fpd * 1.18e-17;
|
||||
double drySample = inputSample;
|
||||
long double inputSampleL = *inputL;
|
||||
long double inputSampleR = *inputR;
|
||||
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17;
|
||||
if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17;
|
||||
double drySampleL = inputSampleL;
|
||||
double drySampleR = inputSampleR;
|
||||
|
||||
cycle++;
|
||||
if (cycle == cycleEnd) { //hit the end point and we do a reverb sample
|
||||
|
||||
aM[countM] = inputSample;
|
||||
aML[countM] = inputSampleL;
|
||||
aMR[countM] = inputSampleR;
|
||||
countM++; if (countM < 0 || countM > delayM) countM = 0;
|
||||
inputSample = aM[countM-((countM > delayM)?delayM+1:0)];
|
||||
inputSampleL = aML[countM-((countM > delayM)?delayM+1:0)];
|
||||
inputSampleR = aMR[countM-((countM > delayM)?delayM+1:0)];
|
||||
//predelay to make the first echo still be an echo even when blurred
|
||||
|
||||
feedbackA = (feedbackA*(1.0-interpolate))+(previousA*interpolate); previousA = feedbackA;
|
||||
feedbackB = (feedbackB*(1.0-interpolate))+(previousB*interpolate); previousB = feedbackB;
|
||||
feedbackC = (feedbackC*(1.0-interpolate))+(previousC*interpolate); previousC = feedbackC;
|
||||
feedbackD = (feedbackD*(1.0-interpolate))+(previousD*interpolate); previousD = feedbackD;
|
||||
feedbackAL = (feedbackAL*(1.0-interpolate))+(previousAL*interpolate); previousAL = feedbackAL;
|
||||
feedbackBL = (feedbackBL*(1.0-interpolate))+(previousBL*interpolate); previousBL = feedbackBL;
|
||||
feedbackCL = (feedbackCL*(1.0-interpolate))+(previousCL*interpolate); previousCL = feedbackCL;
|
||||
feedbackDL = (feedbackDL*(1.0-interpolate))+(previousDL*interpolate); previousDL = feedbackDL;
|
||||
feedbackAR = (feedbackAR*(1.0-interpolate))+(previousAR*interpolate); previousAR = feedbackAR;
|
||||
feedbackBR = (feedbackBR*(1.0-interpolate))+(previousBR*interpolate); previousBR = feedbackBR;
|
||||
feedbackCR = (feedbackCR*(1.0-interpolate))+(previousCR*interpolate); previousCR = feedbackCR;
|
||||
feedbackDR = (feedbackDR*(1.0-interpolate))+(previousDR*interpolate); previousDR = feedbackDR;
|
||||
|
||||
aI[countI] = inputSample + (feedbackA * regen);
|
||||
aJ[countJ] = inputSample + (feedbackB * regen);
|
||||
aK[countK] = inputSample + (feedbackC * regen);
|
||||
aL[countL] = inputSample + (feedbackD * regen);
|
||||
aIL[countI] = inputSampleL + (feedbackAL * regen);
|
||||
aJL[countJ] = inputSampleL + (feedbackBL * regen);
|
||||
aKL[countK] = inputSampleL + (feedbackCL * regen);
|
||||
aLL[countL] = inputSampleL + (feedbackDL * regen);
|
||||
aIR[countI] = inputSampleR + (feedbackAR * regen);
|
||||
aJR[countJ] = inputSampleR + (feedbackBR * regen);
|
||||
aKR[countK] = inputSampleR + (feedbackCR * regen);
|
||||
aLR[countL] = inputSampleR + (feedbackDR * regen);
|
||||
|
||||
countI++; if (countI < 0 || countI > delayI) countI = 0;
|
||||
countJ++; if (countJ < 0 || countJ > delayJ) countJ = 0;
|
||||
countK++; if (countK < 0 || countK > delayK) countK = 0;
|
||||
countL++; if (countL < 0 || countL > delayL) countL = 0;
|
||||
|
||||
Float64 outI = aI[countI-((countI > delayI)?delayI+1:0)];
|
||||
Float64 outJ = aJ[countJ-((countJ > delayJ)?delayJ+1:0)];
|
||||
Float64 outK = aK[countK-((countK > delayK)?delayK+1:0)];
|
||||
Float64 outL = aL[countL-((countL > delayL)?delayL+1:0)];
|
||||
double outIL = aIL[countI-((countI > delayI)?delayI+1:0)];
|
||||
double outJL = aJL[countJ-((countJ > delayJ)?delayJ+1:0)];
|
||||
double outKL = aKL[countK-((countK > delayK)?delayK+1:0)];
|
||||
double outLL = aLL[countL-((countL > delayL)?delayL+1:0)];
|
||||
double outIR = aIR[countI-((countI > delayI)?delayI+1:0)];
|
||||
double outJR = aJR[countJ-((countJ > delayJ)?delayJ+1:0)];
|
||||
double outKR = aKR[countK-((countK > delayK)?delayK+1:0)];
|
||||
double outLR = aLR[countL-((countL > delayL)?delayL+1:0)];
|
||||
//first block: now we have four outputs
|
||||
|
||||
aA[countA] = (outI - (outJ + outK + outL));
|
||||
aB[countB] = (outJ - (outI + outK + outL));
|
||||
aC[countC] = (outK - (outI + outJ + outL));
|
||||
aD[countD] = (outL - (outI + outJ + outK));
|
||||
aAL[countA] = (outIL - (outJL + outKL + outLL));
|
||||
aBL[countB] = (outJL - (outIL + outKL + outLL));
|
||||
aCL[countC] = (outKL - (outIL + outJL + outLL));
|
||||
aDL[countD] = (outLL - (outIL + outJL + outKL));
|
||||
aAR[countA] = (outIR - (outJR + outKR + outLR));
|
||||
aBR[countB] = (outJR - (outIR + outKR + outLR));
|
||||
aCR[countC] = (outKR - (outIR + outJR + outLR));
|
||||
aDR[countD] = (outLR - (outIR + outJR + outKR));
|
||||
|
||||
countA++; if (countA < 0 || countA > delayA) countA = 0;
|
||||
countB++; if (countB < 0 || countB > delayB) countB = 0;
|
||||
countC++; if (countC < 0 || countC > delayC) countC = 0;
|
||||
countD++; if (countD < 0 || countD > delayD) countD = 0;
|
||||
|
||||
Float64 outA = aA[countA-((countA > delayA)?delayA+1:0)];
|
||||
Float64 outB = aB[countB-((countB > delayB)?delayB+1:0)];
|
||||
Float64 outC = aC[countC-((countC > delayC)?delayC+1:0)];
|
||||
Float64 outD = aD[countD-((countD > delayD)?delayD+1:0)];
|
||||
double outAL = aAL[countA-((countA > delayA)?delayA+1:0)];
|
||||
double outBL = aBL[countB-((countB > delayB)?delayB+1:0)];
|
||||
double outCL = aCL[countC-((countC > delayC)?delayC+1:0)];
|
||||
double outDL = aDL[countD-((countD > delayD)?delayD+1:0)];
|
||||
double outAR = aAR[countA-((countA > delayA)?delayA+1:0)];
|
||||
double outBR = aBR[countB-((countB > delayB)?delayB+1:0)];
|
||||
double outCR = aCR[countC-((countC > delayC)?delayC+1:0)];
|
||||
double outDR = aDR[countD-((countD > delayD)?delayD+1:0)];
|
||||
//second block: four more outputs
|
||||
|
||||
aE[countE] = (outA - (outB + outC + outD));
|
||||
aF[countF] = (outB - (outA + outC + outD));
|
||||
aG[countG] = (outC - (outA + outB + outD));
|
||||
aH[countH] = (outD - (outA + outB + outC));
|
||||
aEL[countE] = (outAL - (outBL + outCL + outDL));
|
||||
aFL[countF] = (outBL - (outAL + outCL + outDL));
|
||||
aGL[countG] = (outCL - (outAL + outBL + outDL));
|
||||
aHL[countH] = (outDL - (outAL + outBL + outCL));
|
||||
aER[countE] = (outAR - (outBR + outCR + outDR));
|
||||
aFR[countF] = (outBR - (outAR + outCR + outDR));
|
||||
aGR[countG] = (outCR - (outAR + outBR + outDR));
|
||||
aHR[countH] = (outDR - (outAR + outBR + outCR));
|
||||
|
||||
countE++; if (countE < 0 || countE > delayE) countE = 0;
|
||||
countF++; if (countF < 0 || countF > delayF) countF = 0;
|
||||
countG++; if (countG < 0 || countG > delayG) countG = 0;
|
||||
countH++; if (countH < 0 || countH > delayH) countH = 0;
|
||||
|
||||
Float64 outE = aE[countE-((countE > delayE)?delayE+1:0)];
|
||||
Float64 outF = aF[countF-((countF > delayF)?delayF+1:0)];
|
||||
Float64 outG = aG[countG-((countG > delayG)?delayG+1:0)];
|
||||
Float64 outH = aH[countH-((countH > delayH)?delayH+1:0)];
|
||||
double outEL = aEL[countE-((countE > delayE)?delayE+1:0)];
|
||||
double outFL = aFL[countF-((countF > delayF)?delayF+1:0)];
|
||||
double outGL = aGL[countG-((countG > delayG)?delayG+1:0)];
|
||||
double outHL = aHL[countH-((countH > delayH)?delayH+1:0)];
|
||||
double outER = aER[countE-((countE > delayE)?delayE+1:0)];
|
||||
double outFR = aFR[countF-((countF > delayF)?delayF+1:0)];
|
||||
double outGR = aGR[countG-((countG > delayG)?delayG+1:0)];
|
||||
double outHR = aHR[countH-((countH > delayH)?delayH+1:0)];
|
||||
//third block: final outputs
|
||||
|
||||
feedbackA = (outE - (outF + outG + outH));
|
||||
feedbackB = (outF - (outE + outG + outH));
|
||||
feedbackC = (outG - (outE + outF + outH));
|
||||
feedbackD = (outH - (outE + outF + outG));
|
||||
feedbackAR = (outEL - (outFL + outGL + outHL));
|
||||
feedbackBL = (outFL - (outEL + outGL + outHL));
|
||||
feedbackCR = (outGL - (outEL + outFL + outHL));
|
||||
feedbackDL = (outHL - (outEL + outFL + outGL));
|
||||
feedbackAL = (outER - (outFR + outGR + outHR));
|
||||
feedbackBR = (outFR - (outER + outGR + outHR));
|
||||
feedbackCL = (outGR - (outER + outFR + outHR));
|
||||
feedbackDR = (outHR - (outER + outFR + outGR));
|
||||
//which we need to feed back into the input again, a bit
|
||||
|
||||
inputSample = (outE + outF + outG + outH)/8.0;
|
||||
inputSampleL = (outEL + outFL + outGL + outHL)/8.0;
|
||||
inputSampleR = (outER + outFR + outGR + outHR)/8.0;
|
||||
//and take the final combined sum of outputs
|
||||
if (cycleEnd == 4) {
|
||||
lastRef[0] = lastRef[4]; //start from previous last
|
||||
lastRef[2] = (lastRef[0] + inputSample)/2; //half
|
||||
lastRef[1] = (lastRef[0] + lastRef[2])/2; //one quarter
|
||||
lastRef[3] = (lastRef[2] + inputSample)/2; //three quarters
|
||||
lastRef[4] = inputSample; //full
|
||||
lastRefL[0] = lastRefL[4]; //start from previous last
|
||||
lastRefL[2] = (lastRefL[0] + inputSampleL)/2; //half
|
||||
lastRefL[1] = (lastRefL[0] + lastRefL[2])/2; //one quarter
|
||||
lastRefL[3] = (lastRefL[2] + inputSampleL)/2; //three quarters
|
||||
lastRefL[4] = inputSampleL; //full
|
||||
lastRefR[0] = lastRefR[4]; //start from previous last
|
||||
lastRefR[2] = (lastRefR[0] + inputSampleR)/2; //half
|
||||
lastRefR[1] = (lastRefR[0] + lastRefR[2])/2; //one quarter
|
||||
lastRefR[3] = (lastRefR[2] + inputSampleR)/2; //three quarters
|
||||
lastRefR[4] = inputSampleR; //full
|
||||
}
|
||||
if (cycleEnd == 3) {
|
||||
lastRef[0] = lastRef[3]; //start from previous last
|
||||
lastRef[2] = (lastRef[0]+lastRef[0]+inputSample)/3; //third
|
||||
lastRef[1] = (lastRef[0]+inputSample+inputSample)/3; //two thirds
|
||||
lastRef[3] = inputSample; //full
|
||||
lastRefL[0] = lastRefL[3]; //start from previous last
|
||||
lastRefL[2] = (lastRefL[0]+lastRefL[0]+inputSampleL)/3; //third
|
||||
lastRefL[1] = (lastRefL[0]+inputSampleL+inputSampleL)/3; //two thirds
|
||||
lastRefL[3] = inputSampleL; //full
|
||||
lastRefR[0] = lastRefR[3]; //start from previous last
|
||||
lastRefR[2] = (lastRefR[0]+lastRefR[0]+inputSampleR)/3; //third
|
||||
lastRefR[1] = (lastRefR[0]+inputSampleR+inputSampleR)/3; //two thirds
|
||||
lastRefR[3] = inputSampleR; //full
|
||||
}
|
||||
if (cycleEnd == 2) {
|
||||
lastRef[0] = lastRef[2]; //start from previous last
|
||||
lastRef[1] = (lastRef[0] + inputSample)/2; //half
|
||||
lastRef[2] = inputSample; //full
|
||||
lastRefL[0] = lastRefL[2]; //start from previous last
|
||||
lastRefL[1] = (lastRefL[0] + inputSampleL)/2; //half
|
||||
lastRefL[2] = inputSampleL; //full
|
||||
lastRefR[0] = lastRefR[2]; //start from previous last
|
||||
lastRefR[1] = (lastRefR[0] + inputSampleR)/2; //half
|
||||
lastRefR[2] = inputSampleR; //full
|
||||
}
|
||||
if (cycleEnd == 1) {
|
||||
lastRefL[0] = inputSampleL;
|
||||
lastRefR[0] = inputSampleR;
|
||||
}
|
||||
if (cycleEnd == 1) lastRef[0] = inputSample;
|
||||
cycle = 0; //reset
|
||||
inputSample = lastRef[cycle];
|
||||
inputSampleL = lastRefL[cycle];
|
||||
inputSampleR = lastRefR[cycle];
|
||||
} else {
|
||||
inputSample = lastRef[cycle];
|
||||
inputSampleL = lastRefL[cycle];
|
||||
inputSampleR = lastRefR[cycle];
|
||||
//we are going through our references now
|
||||
}
|
||||
|
||||
switch (cycleEnd) //multi-pole average using lastRef[] variables
|
||||
{
|
||||
case 4:
|
||||
lastRef[8] = inputSample; inputSample = (inputSample+lastRef[7])*0.5;
|
||||
lastRef[7] = lastRef[8]; //continue, do not break
|
||||
lastRefL[8] = inputSampleL; inputSampleL = (inputSampleL+lastRefL[7])*0.5;
|
||||
lastRefL[7] = lastRefL[8]; //continue, do not break
|
||||
lastRefR[8] = inputSampleR; inputSampleR = (inputSampleR+lastRefR[7])*0.5;
|
||||
lastRefR[7] = lastRefR[8]; //continue, do not break
|
||||
case 3:
|
||||
lastRef[8] = inputSample; inputSample = (inputSample+lastRef[6])*0.5;
|
||||
lastRef[6] = lastRef[8]; //continue, do not break
|
||||
lastRefL[8] = inputSampleL; inputSampleL = (inputSampleL+lastRefL[6])*0.5;
|
||||
lastRefL[6] = lastRefL[8]; //continue, do not break
|
||||
lastRefR[8] = inputSampleR; inputSampleR = (inputSampleR+lastRefR[6])*0.5;
|
||||
lastRefR[6] = lastRefR[8]; //continue, do not break
|
||||
case 2:
|
||||
lastRef[8] = inputSample; inputSample = (inputSample+lastRef[5])*0.5;
|
||||
lastRef[5] = lastRef[8]; //continue, do not break
|
||||
lastRefL[8] = inputSampleL; inputSampleL = (inputSampleL+lastRefL[5])*0.5;
|
||||
lastRefL[5] = lastRefL[8]; //continue, do not break
|
||||
lastRefR[8] = inputSampleR; inputSampleR = (inputSampleR+lastRefR[5])*0.5;
|
||||
lastRefR[5] = lastRefR[8]; //continue, do not break
|
||||
case 1:
|
||||
break; //no further averaging
|
||||
}
|
||||
|
||||
if (wet < 1.0) inputSample *= wet;
|
||||
if (dry < 1.0) drySample *= dry;
|
||||
inputSample += drySample;
|
||||
|
||||
if (wet < 1.0) {inputSampleL *= wet; inputSampleR *= wet;}
|
||||
if (dry < 1.0) {drySampleL *= dry; drySampleR *= dry;}
|
||||
inputSampleL += drySampleL;
|
||||
inputSampleR += drySampleR;
|
||||
//this is our submix verb dry/wet: 0.5 is BOTH at FULL VOLUME
|
||||
//purpose is that, if you're adding verb, you're not altering other balances
|
||||
|
||||
//begin 32 bit floating point dither
|
||||
int expon; frexpf((float)inputSample, &expon);
|
||||
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5;
|
||||
inputSample += ((double(fpd)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
|
||||
//end 32 bit floating point dither
|
||||
//begin 32 bit stereo floating point dither
|
||||
int expon; frexpf((float)inputSampleL, &expon);
|
||||
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
|
||||
inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
|
||||
frexpf((float)inputSampleR, &expon);
|
||||
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
|
||||
inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
|
||||
//end 32 bit stereo floating point dither
|
||||
|
||||
*destP = inputSample;
|
||||
*outputL = inputSampleL;
|
||||
*outputR = inputSampleR;
|
||||
//direct stereo out
|
||||
|
||||
sourceP += inNumChannels; destP += inNumChannels;
|
||||
inputL += 1;
|
||||
inputR += 1;
|
||||
outputL += 1;
|
||||
outputR += 1;
|
||||
}
|
||||
return noErr;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3,9 +3,9 @@
|
|||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 8/26/22
|
||||
* Created: 2/1/23
|
||||
*
|
||||
* Copyright: Copyright © 2022 Airwindows, Airwindows uses the MIT license
|
||||
* Copyright: Copyright © 2023 Airwindows, Airwindows uses the MIT license
|
||||
*
|
||||
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
|
||||
* consideration of your agreement to the following terms, and your use, installation, modification
|
||||
|
|
@ -83,8 +83,13 @@ public:
|
|||
virtual ~Chamber2 () { delete mDebugDispatcher; }
|
||||
#endif
|
||||
|
||||
virtual AUKernelBase * NewKernel() { return new Chamber2Kernel(this); }
|
||||
|
||||
virtual ComponentResult Reset(AudioUnitScope inScope, AudioUnitElement inElement);
|
||||
|
||||
virtual OSStatus ProcessBufferLists(AudioUnitRenderActionFlags & ioActionFlags,
|
||||
const AudioBufferList & inBuffer, AudioBufferList & outBuffer,
|
||||
UInt32 inFramesToProcess);
|
||||
virtual UInt32 SupportedNumChannels(const AUChannelInfo ** outInfo);
|
||||
|
||||
virtual ComponentResult GetParameterValueStrings(AudioUnitScope inScope,
|
||||
AudioUnitParameterID inParameterID,
|
||||
CFArrayRef * outStrings);
|
||||
|
|
@ -103,7 +108,7 @@ public:
|
|||
AudioUnitScope inScope,
|
||||
AudioUnitElement inElement,
|
||||
void * outData);
|
||||
|
||||
|
||||
virtual ComponentResult Initialize();
|
||||
virtual bool SupportsTail () { return true; }
|
||||
virtual Float64 GetTailTime() {return (1.0/GetSampleRate())*0.0;} //in SECONDS! gsr * a number = in samples
|
||||
|
|
@ -112,70 +117,75 @@ public:
|
|||
/*! @method Version */
|
||||
virtual ComponentResult Version() { return kChamber2Version; }
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
class Chamber2Kernel : public AUKernelBase // most of the real work happens here
|
||||
{
|
||||
public:
|
||||
Chamber2Kernel(AUEffectBase *inAudioUnit )
|
||||
: AUKernelBase(inAudioUnit)
|
||||
{
|
||||
}
|
||||
|
||||
// *Required* overides for the process method for this effect
|
||||
// processes one channel of interleaved samples
|
||||
virtual void Process( const Float32 *inSourceP,
|
||||
Float32 *inDestP,
|
||||
UInt32 inFramesToProcess,
|
||||
UInt32 inNumChannels,
|
||||
bool &ioSilence);
|
||||
|
||||
virtual void Reset();
|
||||
|
||||
private:
|
||||
Float64 aE[10000];
|
||||
Float64 aF[10000];
|
||||
Float64 aG[10000];
|
||||
Float64 aH[10000];
|
||||
Float64 aA[10000];
|
||||
Float64 aB[10000];
|
||||
Float64 aC[10000];
|
||||
Float64 aD[10000];
|
||||
Float64 aI[10000];
|
||||
Float64 aJ[10000];
|
||||
Float64 aK[10000];
|
||||
Float64 aL[10000];
|
||||
Float64 aM[10000];
|
||||
|
||||
Float64 feedbackA;
|
||||
Float64 feedbackB;
|
||||
Float64 feedbackC;
|
||||
Float64 feedbackD;
|
||||
Float64 previousA;
|
||||
Float64 previousB;
|
||||
Float64 previousC;
|
||||
Float64 previousD;
|
||||
|
||||
double lastRef[10];
|
||||
int cycle;
|
||||
|
||||
int countA, delayA;
|
||||
int countB, delayB;
|
||||
int countC, delayC;
|
||||
int countD, delayD;
|
||||
int countE, delayE;
|
||||
int countF, delayF;
|
||||
int countG, delayG;
|
||||
int countH, delayH;
|
||||
int countI, delayI;
|
||||
int countJ, delayJ;
|
||||
int countK, delayK;
|
||||
int countL, delayL;
|
||||
int countM, delayM;
|
||||
|
||||
uint32_t fpd;
|
||||
};
|
||||
|
||||
double aEL[10000];
|
||||
double aFL[10000];
|
||||
double aGL[10000];
|
||||
double aHL[10000];
|
||||
double aAL[10000];
|
||||
double aBL[10000];
|
||||
double aCL[10000];
|
||||
double aDL[10000];
|
||||
double aIL[10000];
|
||||
double aJL[10000];
|
||||
double aKL[10000];
|
||||
double aLL[10000];
|
||||
double aML[10000];
|
||||
|
||||
double feedbackAL;
|
||||
double feedbackBL;
|
||||
double feedbackCL;
|
||||
double feedbackDL;
|
||||
double previousAL;
|
||||
double previousBL;
|
||||
double previousCL;
|
||||
double previousDL;
|
||||
|
||||
double lastRefL[10];
|
||||
|
||||
double aER[10000];
|
||||
double aFR[10000];
|
||||
double aGR[10000];
|
||||
double aHR[10000];
|
||||
double aAR[10000];
|
||||
double aBR[10000];
|
||||
double aCR[10000];
|
||||
double aDR[10000];
|
||||
double aIR[10000];
|
||||
double aJR[10000];
|
||||
double aKR[10000];
|
||||
double aLR[10000];
|
||||
double aMR[10000];
|
||||
|
||||
double feedbackAR;
|
||||
double feedbackBR;
|
||||
double feedbackCR;
|
||||
double feedbackDR;
|
||||
double previousAR;
|
||||
double previousBR;
|
||||
double previousCR;
|
||||
double previousDR;
|
||||
|
||||
double lastRefR[10];
|
||||
|
||||
int countA, delayA;
|
||||
int countB, delayB;
|
||||
int countC, delayC;
|
||||
int countD, delayD;
|
||||
int countE, delayE;
|
||||
int countF, delayF;
|
||||
int countG, delayG;
|
||||
int countH, delayH;
|
||||
int countI, delayI;
|
||||
int countJ, delayJ;
|
||||
int countK, delayK;
|
||||
int countL, delayL;
|
||||
int countM, delayM;
|
||||
int cycle; //all these ints are shared across channels, not duplicated
|
||||
|
||||
uint32_t fpdL;
|
||||
uint32_t fpdR;
|
||||
};
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
|
|
|||
|
|
@ -3,9 +3,9 @@
|
|||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 8/26/22
|
||||
* Created: 2/1/23
|
||||
*
|
||||
* Copyright: Copyright © 2022 Airwindows, Airwindows uses the MIT license
|
||||
* Copyright: Copyright © 2023 Airwindows, Airwindows uses the MIT license
|
||||
*
|
||||
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
|
||||
* consideration of your agreement to the following terms, and your use, installation, modification
|
||||
|
|
|
|||
|
|
@ -251,7 +251,7 @@
|
|||
<dict>
|
||||
<key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
|
||||
<array>
|
||||
<real>186</real>
|
||||
<real>299</real>
|
||||
</array>
|
||||
<key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
|
||||
<array>
|
||||
|
|
@ -264,19 +264,22 @@
|
|||
<array>
|
||||
<string>089C166AFE841209C02AAC07</string>
|
||||
<string>08FB77ADFE841716C02AAC07</string>
|
||||
<string>8BA05AEB0720742700365D66</string>
|
||||
<string>8BA05A7D072073D200365D66</string>
|
||||
<string>8BA05A7E072073D200365D66</string>
|
||||
<string>1C37FBAC04509CD000000102</string>
|
||||
<string>1C37FABC05509CD000000102</string>
|
||||
</array>
|
||||
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
|
||||
<array>
|
||||
<array>
|
||||
<integer>20</integer>
|
||||
<integer>19</integer>
|
||||
<integer>6</integer>
|
||||
<integer>5</integer>
|
||||
<integer>4</integer>
|
||||
<integer>1</integer>
|
||||
<integer>0</integer>
|
||||
</array>
|
||||
</array>
|
||||
<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
|
||||
<string>{{0, 0}, {186, 445}}</string>
|
||||
<string>{{0, 0}, {299, 445}}</string>
|
||||
</dict>
|
||||
<key>PBXTopSmartGroupGIDs</key>
|
||||
<array/>
|
||||
|
|
@ -288,19 +291,19 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 0}, {203, 463}}</string>
|
||||
<string>{{0, 0}, {316, 463}}</string>
|
||||
<key>GroupTreeTableConfiguration</key>
|
||||
<array>
|
||||
<string>MainColumn</string>
|
||||
<real>186</real>
|
||||
<real>299</real>
|
||||
</array>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>203 321 788 504 0 0 1440 878 </string>
|
||||
<string>18 337 788 504 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXSmartGroupTreeModule</string>
|
||||
<key>Proportion</key>
|
||||
<string>203pt</string>
|
||||
<string>316pt</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Dock</key>
|
||||
|
|
@ -311,15 +314,13 @@
|
|||
<key>PBXProjectModuleGUID</key>
|
||||
<string>1CE0B20306471E060097A5F4</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string>MyNewFile14.java</string>
|
||||
<string><No Editor></string>
|
||||
<key>PBXSplitModuleInNavigatorKey</key>
|
||||
<dict>
|
||||
<key>Split0</key>
|
||||
<dict>
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
<string>1CE0B20406471E060097A5F4</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string>MyNewFile14.java</string>
|
||||
</dict>
|
||||
<key>SplitCount</key>
|
||||
<string>1</string>
|
||||
|
|
@ -330,14 +331,14 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 0}, {580, 269}}</string>
|
||||
<string>{{0, 0}, {467, 0}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>203 321 788 504 0 0 1440 878 </string>
|
||||
<string>18 337 788 504 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXNavigatorGroup</string>
|
||||
<key>Proportion</key>
|
||||
<string>269pt</string>
|
||||
<string>0pt</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>ContentConfiguration</key>
|
||||
|
|
@ -350,18 +351,18 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 274}, {580, 189}}</string>
|
||||
<string>{{0, 5}, {467, 458}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>203 321 788 504 0 0 1440 878 </string>
|
||||
<string>18 337 788 504 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>XCDetailModule</string>
|
||||
<key>Proportion</key>
|
||||
<string>189pt</string>
|
||||
<string>458pt</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Proportion</key>
|
||||
<string>580pt</string>
|
||||
<string>467pt</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Name</key>
|
||||
|
|
@ -376,9 +377,9 @@
|
|||
</array>
|
||||
<key>TableOfContents</key>
|
||||
<array>
|
||||
<string>8B563EC9161B5E170067FE32</string>
|
||||
<string>8BDD47AA1A48BB8900FB2F61</string>
|
||||
<string>1CE0B1FE06471DED0097A5F4</string>
|
||||
<string>8B563ECA161B5E170067FE32</string>
|
||||
<string>8BDD47AB1A48BB8900FB2F61</string>
|
||||
<string>1CE0B20306471E060097A5F4</string>
|
||||
<string>1CE0B20506471E060097A5F4</string>
|
||||
</array>
|
||||
|
|
@ -517,10 +518,10 @@
|
|||
<key>WindowOrderList</key>
|
||||
<array>
|
||||
<string>8BD3CCBD148831C90062E48C</string>
|
||||
<string>/Developer/Library/Xcode/Project Templates/System Plug-in/Audio Unit Effect/Audio Unit Effect/StarterAU.xcodeproj</string>
|
||||
<string>/Developer/Library/Xcode/Project Templates/System Plug-in/Audio Unit Effect/Audio Unit Effect with Cocoa View/StarterAU.xcodeproj</string>
|
||||
</array>
|
||||
<key>WindowString</key>
|
||||
<string>203 321 788 504 0 0 1440 878 </string>
|
||||
<string>18 337 788 504 0 0 1440 878 </string>
|
||||
<key>WindowToolsV3</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
|
@ -597,7 +598,7 @@
|
|||
<key>TableOfContents</key>
|
||||
<array>
|
||||
<string>8BD3CCBD148831C90062E48C</string>
|
||||
<string>8B563ECB161B5E170067FE32</string>
|
||||
<string>8BDD47AC1A48BB8900FB2F61</string>
|
||||
<string>1CD0528F0623707200166675</string>
|
||||
<string>XCMainBuildResultsModuleGUID</string>
|
||||
</array>
|
||||
|
|
|
|||
|
|
@ -3,8 +3,6 @@
|
|||
089C1669FE841209C02AAC07 /* Project object */ = {
|
||||
activeBuildConfigurationName = Release;
|
||||
activeTarget = 8D01CCC60486CAD60068D4B7 /* Chamber2 */;
|
||||
breakpoints = (
|
||||
);
|
||||
codeSenseManager = 8BD3CCB9148830B20062E48C /* Code sense */;
|
||||
perUserDictionary = {
|
||||
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
|
||||
|
|
@ -12,7 +10,7 @@
|
|||
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
|
||||
PBXFileTableDataSourceColumnWidthsKey = (
|
||||
20,
|
||||
292,
|
||||
364,
|
||||
20,
|
||||
48,
|
||||
43,
|
||||
|
|
@ -34,7 +32,7 @@
|
|||
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
|
||||
PBXFileTableDataSourceColumnWidthsKey = (
|
||||
20,
|
||||
252,
|
||||
188,
|
||||
60,
|
||||
20,
|
||||
48,
|
||||
|
|
@ -51,15 +49,8 @@
|
|||
PBXFileDataSource_Warnings_ColumnID,
|
||||
);
|
||||
};
|
||||
PBXPerProjectTemplateStateSaveDate = 683227464;
|
||||
PBXWorkspaceStateSaveDate = 683227464;
|
||||
};
|
||||
perUserProjectItems = {
|
||||
8BBC48B128B9395200A201D3 /* PBXTextBookmark */ = 8BBC48B128B9395200A201D3 /* PBXTextBookmark */;
|
||||
8BBC48B228B9395200A201D3 /* PBXTextBookmark */ = 8BBC48B228B9395200A201D3 /* PBXTextBookmark */;
|
||||
8BD1197628B8F40E006EFFE5 /* PlistBookmark */ = 8BD1197628B8F40E006EFFE5 /* PlistBookmark */;
|
||||
8BD119CB28B8FEB8006EFFE5 /* PBXTextBookmark */ = 8BD119CB28B8FEB8006EFFE5 /* PBXTextBookmark */;
|
||||
8BD11A2B28B90A72006EFFE5 /* PBXTextBookmark */ = 8BD11A2B28B90A72006EFFE5 /* PBXTextBookmark */;
|
||||
PBXPerProjectTemplateStateSaveDate = 696984829;
|
||||
PBXWorkspaceStateSaveDate = 696984829;
|
||||
};
|
||||
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
|
||||
userBuildSettings = {
|
||||
|
|
@ -67,80 +58,35 @@
|
|||
};
|
||||
8BA05A660720730100365D66 /* Chamber2.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1047, 7434}}";
|
||||
sepNavSelRange = "{6385, 0}";
|
||||
sepNavVisRange = "{6027, 849}";
|
||||
sepNavWindowFrame = "{{9, 61}, {871, 817}}";
|
||||
sepNavIntBoundsRect = "{{0, 0}, {840, 9576}}";
|
||||
sepNavSelRange = "{22162, 0}";
|
||||
sepNavVisRange = "{10778, 2031}";
|
||||
sepNavWindowFrame = "{{594, 41}, {843, 837}}";
|
||||
};
|
||||
};
|
||||
8BA05A690720730100365D66 /* Chamber2Version.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1056, 1062}}";
|
||||
sepNavSelRange = "{2884, 0}";
|
||||
sepNavVisRange = "{2139, 811}";
|
||||
sepNavWindowFrame = "{{65, 62}, {1041, 816}}";
|
||||
sepNavSelRange = "{2898, 0}";
|
||||
sepNavVisRange = "{965, 1996}";
|
||||
sepNavWindowFrame = "{{15, 38}, {843, 837}}";
|
||||
};
|
||||
};
|
||||
8BBC48B128B9395200A201D3 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BA05A690720730100365D66 /* Chamber2Version.h */;
|
||||
name = "Chamber2Version.h: 54";
|
||||
rLen = 0;
|
||||
rLoc = 2884;
|
||||
rType = 0;
|
||||
vrLen = 811;
|
||||
vrLoc = 2139;
|
||||
};
|
||||
8BBC48B228B9395200A201D3 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BA05A660720730100365D66 /* Chamber2.cpp */;
|
||||
name = "Chamber2.cpp: 130";
|
||||
rLen = 0;
|
||||
rLoc = 6385;
|
||||
rType = 0;
|
||||
vrLen = 849;
|
||||
vrLoc = 6027;
|
||||
8BA05A7F072073D200365D66 /* AUBase.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {516, 23430}}";
|
||||
sepNavSelRange = "{0, 0}";
|
||||
sepNavVisRange = "{0, 1336}";
|
||||
};
|
||||
};
|
||||
8BC6025B073B072D006C4272 /* Chamber2.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1146, 3312}}";
|
||||
sepNavSelRange = "{5674, 0}";
|
||||
sepNavVisRange = "{5446, 755}";
|
||||
sepNavWindowFrame = "{{19, 62}, {1041, 816}}";
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1146, 3420}}";
|
||||
sepNavSelRange = "{6440, 0}";
|
||||
sepNavVisRange = "{3316, 1307}";
|
||||
sepNavWindowFrame = "{{582, 41}, {843, 837}}";
|
||||
};
|
||||
};
|
||||
8BD1197628B8F40E006EFFE5 /* PlistBookmark */ = {
|
||||
isa = PlistBookmark;
|
||||
fRef = 8D01CCD10486CAD60068D4B7 /* Info.plist */;
|
||||
fallbackIsa = PBXBookmark;
|
||||
isK = 0;
|
||||
kPath = (
|
||||
CFBundleName,
|
||||
);
|
||||
name = /Users/christopherjohnson/Desktop/Chamber2/Info.plist;
|
||||
rLen = 0;
|
||||
rLoc = 9223372036854775808;
|
||||
};
|
||||
8BD119CB28B8FEB8006EFFE5 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BA05A660720730100365D66 /* Chamber2.cpp */;
|
||||
name = "Chamber2.cpp: 130";
|
||||
rLen = 0;
|
||||
rLoc = 6385;
|
||||
rType = 0;
|
||||
vrLen = 275;
|
||||
vrLoc = 6289;
|
||||
};
|
||||
8BD11A2B28B90A72006EFFE5 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BC6025B073B072D006C4272 /* Chamber2.h */;
|
||||
name = "Chamber2.h: 148";
|
||||
rLen = 0;
|
||||
rLoc = 5674;
|
||||
rType = 0;
|
||||
vrLen = 339;
|
||||
vrLoc = 2965;
|
||||
};
|
||||
8BD3CCB8148830B20062E48C /* Source Control */ = {
|
||||
isa = PBXSourceControlManager;
|
||||
fallbackIsa = XCSourceControlManager;
|
||||
|
|
|
|||
|
|
@ -178,7 +178,7 @@
|
|||
<key>FavBarConfig</key>
|
||||
<dict>
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
<string>8BD7274F1D46E5A5000176F0</string>
|
||||
<string>8B37705E298B24D80027F1BA</string>
|
||||
<key>XCBarModuleItemNames</key>
|
||||
<dict/>
|
||||
<key>XCBarModuleItems</key>
|
||||
|
|
@ -225,8 +225,8 @@
|
|||
<array/>
|
||||
<key>PerspectiveWidths</key>
|
||||
<array>
|
||||
<integer>841</integer>
|
||||
<integer>841</integer>
|
||||
<integer>810</integer>
|
||||
<integer>810</integer>
|
||||
</array>
|
||||
<key>Perspectives</key>
|
||||
<array>
|
||||
|
|
@ -282,7 +282,7 @@
|
|||
<dict>
|
||||
<key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
|
||||
<array>
|
||||
<real>288</real>
|
||||
<real>185</real>
|
||||
</array>
|
||||
<key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
|
||||
<array>
|
||||
|
|
@ -296,20 +296,18 @@
|
|||
<string>089C166AFE841209C02AAC07</string>
|
||||
<string>08FB77ADFE841716C02AAC07</string>
|
||||
<string>8BA05A56072072A900365D66</string>
|
||||
<string>089C167CFE841241C02AAC07</string>
|
||||
<string>1C37FBAC04509CD000000102</string>
|
||||
</array>
|
||||
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
|
||||
<array>
|
||||
<array>
|
||||
<integer>3</integer>
|
||||
<integer>4</integer>
|
||||
<integer>2</integer>
|
||||
<integer>1</integer>
|
||||
<integer>0</integer>
|
||||
</array>
|
||||
</array>
|
||||
<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
|
||||
<string>{{0, 0}, {288, 595}}</string>
|
||||
<string>{{0, 0}, {185, 428}}</string>
|
||||
</dict>
|
||||
<key>PBXTopSmartGroupGIDs</key>
|
||||
<array/>
|
||||
|
|
@ -319,19 +317,19 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 0}, {305, 613}}</string>
|
||||
<string>{{0, 0}, {202, 446}}</string>
|
||||
<key>GroupTreeTableConfiguration</key>
|
||||
<array>
|
||||
<string>MainColumn</string>
|
||||
<real>288</real>
|
||||
<real>185</real>
|
||||
</array>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>22 198 841 654 0 0 1440 878 </string>
|
||||
<string>575 313 810 487 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXSmartGroupTreeModule</string>
|
||||
<key>Proportion</key>
|
||||
<string>305pt</string>
|
||||
<string>202pt</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Dock</key>
|
||||
|
|
@ -340,28 +338,17 @@
|
|||
<key>ContentConfiguration</key>
|
||||
<dict>
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
<string>8BD7274A1D46E5A5000176F0</string>
|
||||
<string>8B377059298B24D80027F1BA</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string>Chamber2.cpp</string>
|
||||
<string></string>
|
||||
<key>PBXSplitModuleInNavigatorKey</key>
|
||||
<dict>
|
||||
<key>Split0</key>
|
||||
<dict>
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
<string>8BD7274B1D46E5A5000176F0</string>
|
||||
<string>8B37705A298B24D80027F1BA</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string>Chamber2.cpp</string>
|
||||
<key>_historyCapacity</key>
|
||||
<integer>0</integer>
|
||||
<key>bookmark</key>
|
||||
<string>8BBC48B228B9395200A201D3</string>
|
||||
<key>history</key>
|
||||
<array>
|
||||
<string>8BD1197628B8F40E006EFFE5</string>
|
||||
<string>8BD11A2B28B90A72006EFFE5</string>
|
||||
<string>8BBC48B128B9395200A201D3</string>
|
||||
<string>8BD119CB28B8FEB8006EFFE5</string>
|
||||
</array>
|
||||
<string></string>
|
||||
</dict>
|
||||
<key>SplitCount</key>
|
||||
<string>1</string>
|
||||
|
|
@ -374,18 +361,18 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 0}, {531, 438}}</string>
|
||||
<string>{{0, 0}, {603, 0}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>22 198 841 654 0 0 1440 878 </string>
|
||||
<string>575 313 810 487 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXNavigatorGroup</string>
|
||||
<key>Proportion</key>
|
||||
<string>438pt</string>
|
||||
<string>0pt</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Proportion</key>
|
||||
<string>170pt</string>
|
||||
<string>441pt</string>
|
||||
<key>Tabs</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
|
@ -399,9 +386,9 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{10, 27}, {531, 143}}</string>
|
||||
<string>{{10, 27}, {603, 414}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>22 198 841 654 0 0 1440 878 </string>
|
||||
<string>575 313 810 487 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>XCDetailModule</string>
|
||||
|
|
@ -455,7 +442,7 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{10, 27}, {531, 365}}</string>
|
||||
<string>{{10, 27}, {603, 414}}</string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXBuildResultsModule</string>
|
||||
|
|
@ -464,7 +451,7 @@
|
|||
</dict>
|
||||
</array>
|
||||
<key>Proportion</key>
|
||||
<string>531pt</string>
|
||||
<string>603pt</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Name</key>
|
||||
|
|
@ -483,11 +470,11 @@
|
|||
</array>
|
||||
<key>TableOfContents</key>
|
||||
<array>
|
||||
<string>8BBC48B328B9395200A201D3</string>
|
||||
<string>8B37706F298B250A0027F1BA</string>
|
||||
<string>1CA23ED40692098700951B8B</string>
|
||||
<string>8BBC48B428B9395200A201D3</string>
|
||||
<string>8BD7274A1D46E5A5000176F0</string>
|
||||
<string>8BBC48B528B9395200A201D3</string>
|
||||
<string>8B377070298B250A0027F1BA</string>
|
||||
<string>8B377059298B24D80027F1BA</string>
|
||||
<string>8B377071298B250A0027F1BA</string>
|
||||
<string>1CA23EDF0692099D00951B8B</string>
|
||||
<string>1CA23EE00692099D00951B8B</string>
|
||||
<string>1CA23EE10692099D00951B8B</string>
|
||||
|
|
@ -524,7 +511,7 @@
|
|||
<key>Identifier</key>
|
||||
<string>perspective.debug</string>
|
||||
<key>IsVertical</key>
|
||||
<true/>
|
||||
<integer>1</integer>
|
||||
<key>Layout</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
|
@ -538,12 +525,12 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 0}, {424, 270}}</string>
|
||||
<string>{{0, 0}, {810, 0}}</string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXDebugCLIModule</string>
|
||||
<key>Proportion</key>
|
||||
<string>270pt</string>
|
||||
<string>0%</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>ContentConfiguration</key>
|
||||
|
|
@ -562,8 +549,8 @@
|
|||
<string>yes</string>
|
||||
<key>sizes</key>
|
||||
<array>
|
||||
<string>{{0, 0}, {395, 214}}</string>
|
||||
<string>{{395, 0}, {415, 214}}</string>
|
||||
<string>{{0, 0}, {395, 213}}</string>
|
||||
<string>{{395, 0}, {415, 213}}</string>
|
||||
</array>
|
||||
</dict>
|
||||
<key>VerticalSplitView</key>
|
||||
|
|
@ -578,8 +565,8 @@
|
|||
<string>yes</string>
|
||||
<key>sizes</key>
|
||||
<array>
|
||||
<string>{{0, 0}, {810, 214}}</string>
|
||||
<string>{{0, 214}, {810, 227}}</string>
|
||||
<string>{{0, 0}, {810, 213}}</string>
|
||||
<string>{{0, 213}, {810, 225}}</string>
|
||||
</array>
|
||||
</dict>
|
||||
</dict>
|
||||
|
|
@ -592,6 +579,8 @@
|
|||
</dict>
|
||||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>DebugConsoleDrawerSize</key>
|
||||
<string>{100, 120}</string>
|
||||
<key>DebugConsoleVisible</key>
|
||||
<string>None</string>
|
||||
<key>DebugConsoleWindowFrame</key>
|
||||
|
|
@ -599,54 +588,32 @@
|
|||
<key>DebugSTDIOWindowFrame</key>
|
||||
<string>{{200, 200}, {500, 300}}</string>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 5}, {810, 441}}</string>
|
||||
<key>PBXDebugSessionStackFrameViewKey</key>
|
||||
<dict>
|
||||
<key>DebugVariablesTableConfiguration</key>
|
||||
<array>
|
||||
<string>Name</string>
|
||||
<real>120</real>
|
||||
<string>Value</string>
|
||||
<real>85</real>
|
||||
<string>Summary</string>
|
||||
<real>185</real>
|
||||
</array>
|
||||
<key>Frame</key>
|
||||
<string>{{395, 0}, {415, 214}}</string>
|
||||
</dict>
|
||||
<string>{{0, 7}, {810, 438}}</string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXDebugSessionModule</string>
|
||||
<key>Proportion</key>
|
||||
<string>441pt</string>
|
||||
<string>443pt</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Name</key>
|
||||
<string>Debug</string>
|
||||
<key>ServiceClasses</key>
|
||||
<array>
|
||||
<string>XCModuleDock</string>
|
||||
<string>XCModuleDock</string>
|
||||
<string>PBXDebugCLIModule</string>
|
||||
<string>PBXDebugSessionModule</string>
|
||||
<string>PBXDebugProcessAndThreadModule</string>
|
||||
<string>PBXDebugProcessViewModule</string>
|
||||
<string>PBXDebugThreadViewModule</string>
|
||||
<string>PBXDebugStackFrameViewModule</string>
|
||||
<string>PBXNavigatorGroup</string>
|
||||
<string>XCConsole</string>
|
||||
</array>
|
||||
<key>TableOfContents</key>
|
||||
<array>
|
||||
<string>8BD1199328B8F64E006EFFE5</string>
|
||||
<string>1CC8E6A5069209BD00BB180A</string>
|
||||
<string>1CC8E6A6069209BD00BB180A</string>
|
||||
<string>1CCC7628064C1048000F2A68</string>
|
||||
<string>1CCC7629064C1048000F2A68</string>
|
||||
<string>8BD1199428B8F64E006EFFE5</string>
|
||||
<string>8BD1199528B8F64E006EFFE5</string>
|
||||
<string>8BD1199628B8F64E006EFFE5</string>
|
||||
<string>8BD1199728B8F64E006EFFE5</string>
|
||||
<string>8BD1199828B8F64E006EFFE5</string>
|
||||
<string>1CC8E6A7069209BD00BB180A</string>
|
||||
</array>
|
||||
<key>ToolbarConfigUserDefaultsMinorVersion</key>
|
||||
<string>2</string>
|
||||
<key>ToolbarConfiguration</key>
|
||||
<string>xcode.toolbar.config.debugV3</string>
|
||||
</dict>
|
||||
|
|
@ -660,7 +627,7 @@
|
|||
<key>StatusbarIsVisible</key>
|
||||
<true/>
|
||||
<key>TimeStamp</key>
|
||||
<real>683227474.38428295</real>
|
||||
<real>696984842.66419101</real>
|
||||
<key>ToolbarConfigUserDefaultsMinorVersion</key>
|
||||
<string>2</string>
|
||||
<key>ToolbarDisplayMode</key>
|
||||
|
|
@ -677,11 +644,10 @@
|
|||
<integer>5</integer>
|
||||
<key>WindowOrderList</key>
|
||||
<array>
|
||||
<string>8BBC48B628B9395200A201D3</string>
|
||||
<string>/Users/christopherjohnson/Desktop/airwindows/plugins/MacAU/Chamber2/Chamber2.xcodeproj</string>
|
||||
<string>/Users/christopherjohnson/Desktop/Chamber2/Chamber2.xcodeproj</string>
|
||||
</array>
|
||||
<key>WindowString</key>
|
||||
<string>22 198 841 654 0 0 1440 878 </string>
|
||||
<string>575 313 810 487 0 0 1440 878 </string>
|
||||
<key>WindowToolsV3</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
Binary file not shown.
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1340"
|
||||
LastUpgradeVersion = "1420"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
|
|
|||
|
|
@ -3,9 +3,9 @@
|
|||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 8/26/22
|
||||
* Created: 2/1/23
|
||||
*
|
||||
* Copyright: Copyright © 2022 Airwindows, Airwindows uses the MIT license
|
||||
* Copyright: Copyright © 2023 Airwindows, Airwindows uses the MIT license
|
||||
*
|
||||
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
|
||||
* consideration of your agreement to the following terms, and your use, installation, modification
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@
|
|||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>DthX</string>
|
||||
<string>Dthr</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
<key>CSResourcesFileMapped</key>
|
||||
|
|
|
|||
5
plugins/MacSignedAU/Chamber2/StarterAU_Prefix.pch
Executable file
5
plugins/MacSignedAU/Chamber2/StarterAU_Prefix.pch
Executable file
|
|
@ -0,0 +1,5 @@
|
|||
//
|
||||
// Prefix header for all source files of the '«PROJECTNAMEASIDENTIFIER»' target in the '«PROJECTNAMEASIDENTIFIER»' project.
|
||||
//
|
||||
|
||||
#include <CoreServices/CoreServices.h>
|
||||
Binary file not shown.
|
|
@ -38,7 +38,7 @@
|
|||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>DthX</string>
|
||||
<string>Dthr</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
<key>CSResourcesFileMapped</key>
|
||||
|
|
|
|||
5
plugins/MacSignedAU/Verbity2/StarterAU_Prefix.pch
Executable file
5
plugins/MacSignedAU/Verbity2/StarterAU_Prefix.pch
Executable file
|
|
@ -0,0 +1,5 @@
|
|||
//
|
||||
// Prefix header for all source files of the '«PROJECTNAMEASIDENTIFIER»' target in the '«PROJECTNAMEASIDENTIFIER»' project.
|
||||
//
|
||||
|
||||
#include <CoreServices/CoreServices.h>
|
||||
|
|
@ -3,9 +3,9 @@
|
|||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 9/3/22
|
||||
* Created: 2/1/23
|
||||
*
|
||||
* Copyright: Copyright © 2022 Airwindows, Airwindows uses the MIT license
|
||||
* Copyright: Copyright © 2023 Airwindows, Airwindows uses the MIT license
|
||||
*
|
||||
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
|
||||
* consideration of your agreement to the following terms, and your use, installation, modification
|
||||
|
|
@ -152,6 +152,21 @@ ComponentResult Verbity2::GetPropertyInfo (AudioUnitPropertyID inID,
|
|||
return AUEffectBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// state that plugin supports only stereo-in/stereo-out processing
|
||||
UInt32 Verbity2::SupportedNumChannels(const AUChannelInfo ** outInfo)
|
||||
{
|
||||
if (outInfo != NULL)
|
||||
{
|
||||
static AUChannelInfo info;
|
||||
info.inChannels = 2;
|
||||
info.outChannels = 2;
|
||||
*outInfo = &info;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Verbity2::GetProperty
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
|
@ -180,57 +195,72 @@ ComponentResult Verbity2::Initialize()
|
|||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Verbity2::Verbity2Kernel::Reset()
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
void Verbity2::Verbity2Kernel::Reset()
|
||||
ComponentResult Verbity2::Reset(AudioUnitScope inScope, AudioUnitElement inElement)
|
||||
{
|
||||
iirA = 0.0;
|
||||
iirB = 0.0;
|
||||
iirAL = 0.0;
|
||||
iirBL = 0.0;
|
||||
|
||||
for(int count = 0; count < 5190; count++) {aZ[count] = 0.0;}
|
||||
iirAR = 0.0;
|
||||
iirBR = 0.0;
|
||||
|
||||
for(int count = 0; count < 5004; count++) {aA[count] = 0.0;} //AFKPU
|
||||
for(int count = 0; count < 4952; count++) {aF[count] = 0.0;}
|
||||
for(int count = 0; count < 4920; count++) {aK[count] = 0.0;}
|
||||
for(int count = 0; count < 4800; count++) {aP[count] = 0.0;}
|
||||
for(int count = 0; count < 4752; count++) {aU[count] = 0.0;}
|
||||
//for(int count = 0; count < 5190; count++) {aZL[count] = 0.0; aZR[count] = 0.0;}
|
||||
|
||||
for(int count = 0; count < 4350; count++) {aB[count] = 0.0;} //BGLQV
|
||||
for(int count = 0; count < 4158; count++) {aG[count] = 0.0;}
|
||||
for(int count = 0; count < 3930; count++) {aL[count] = 0.0;}
|
||||
for(int count = 0; count < 3530; count++) {aQ[count] = 0.0;}
|
||||
for(int count = 0; count < 3330; count++) {aV[count] = 0.0;}
|
||||
for(int count = 0; count < 5004; count++) {aAL[count] = 0.0; aAR[count] = 0.0;} //AFKPU
|
||||
for(int count = 0; count < 4952; count++) {aFL[count] = 0.0; aFR[count] = 0.0;}
|
||||
for(int count = 0; count < 4920; count++) {aKL[count] = 0.0; aKR[count] = 0.0;}
|
||||
for(int count = 0; count < 4800; count++) {aPL[count] = 0.0; aPR[count] = 0.0;}
|
||||
for(int count = 0; count < 4752; count++) {aUL[count] = 0.0; aUR[count] = 0.0;}
|
||||
|
||||
for(int count = 0; count < 3324; count++) {aC[count] = 0.0;} //CHMRW
|
||||
for(int count = 0; count < 2792; count++) {aH[count] = 0.0;}
|
||||
for(int count = 0; count < 2768; count++) {aM[count] = 0.0;}
|
||||
for(int count = 0; count < 2390; count++) {aR[count] = 0.0;}
|
||||
for(int count = 0; count < 2348; count++) {aW[count] = 0.0;}
|
||||
for(int count = 0; count < 4350; count++) {aBL[count] = 0.0; aBR[count] = 0.0;} //BGLQV
|
||||
for(int count = 0; count < 4158; count++) {aGL[count] = 0.0; aGR[count] = 0.0;}
|
||||
for(int count = 0; count < 3930; count++) {aLL[count] = 0.0; aLR[count] = 0.0;}
|
||||
for(int count = 0; count < 3530; count++) {aQL[count] = 0.0; aQR[count] = 0.0;}
|
||||
for(int count = 0; count < 3330; count++) {aVL[count] = 0.0; aVR[count] = 0.0;}
|
||||
|
||||
for(int count = 0; count < 2142; count++) {aD[count] = 0.0;} //DINSX
|
||||
for(int count = 0; count < 1812; count++) {aI[count] = 0.0;}
|
||||
for(int count = 0; count < 1734; count++) {aN[count] = 0.0;}
|
||||
for(int count = 0; count < 1172; count++) {aS[count] = 0.0;}
|
||||
for(int count = 0; count < 788; count++) {aX[count] = 0.0;}
|
||||
for(int count = 0; count < 3324; count++) {aCL[count] = 0.0; aCR[count] = 0.0;} //CHMRW
|
||||
for(int count = 0; count < 2792; count++) {aHL[count] = 0.0; aHR[count] = 0.0;}
|
||||
for(int count = 0; count < 2768; count++) {aML[count] = 0.0; aMR[count] = 0.0;}
|
||||
for(int count = 0; count < 2390; count++) {aRL[count] = 0.0; aRR[count] = 0.0;}
|
||||
for(int count = 0; count < 2348; count++) {aWL[count] = 0.0; aWR[count] = 0.0;}
|
||||
|
||||
for(int count = 0; count < 678; count++) {aE[count] = 0.0;} //EJOTY
|
||||
for(int count = 0; count < 644; count++) {aJ[count] = 0.0;}
|
||||
for(int count = 0; count < 440; count++) {aO[count] = 0.0;}
|
||||
for(int count = 0; count < 350; count++) {aT[count] = 0.0;}
|
||||
for(int count = 0; count < 282; count++) {aY[count] = 0.0;}
|
||||
for(int count = 0; count < 2142; count++) {aDL[count] = 0.0; aDR[count] = 0.0;} //DINSX
|
||||
for(int count = 0; count < 1812; count++) {aIL[count] = 0.0; aIR[count] = 0.0;}
|
||||
for(int count = 0; count < 1734; count++) {aNL[count] = 0.0; aNR[count] = 0.0;}
|
||||
for(int count = 0; count < 1172; count++) {aSL[count] = 0.0; aSR[count] = 0.0;}
|
||||
for(int count = 0; count < 788; count++) {aXL[count] = 0.0; aXR[count] = 0.0;}
|
||||
|
||||
feedbackA = 0.0;
|
||||
feedbackB = 0.0;
|
||||
feedbackC = 0.0;
|
||||
feedbackD = 0.0;
|
||||
feedbackE = 0.0;
|
||||
for(int count = 0; count < 678; count++) {aEL[count] = 0.0; aER[count] = 0.0;} //EJOTY
|
||||
for(int count = 0; count < 644; count++) {aJL[count] = 0.0; aJR[count] = 0.0;}
|
||||
for(int count = 0; count < 440; count++) {aOL[count] = 0.0; aOR[count] = 0.0;}
|
||||
for(int count = 0; count < 350; count++) {aTL[count] = 0.0; aTR[count] = 0.0;}
|
||||
for(int count = 0; count < 282; count++) {aYL[count] = 0.0; aYR[count] = 0.0;}
|
||||
|
||||
previousA = 0.0;
|
||||
previousB = 0.0;
|
||||
previousC = 0.0;
|
||||
previousD = 0.0;
|
||||
previousE = 0.0;
|
||||
feedbackAL = 0.0;
|
||||
feedbackBL = 0.0;
|
||||
feedbackCL = 0.0;
|
||||
feedbackDL = 0.0;
|
||||
feedbackEL = 0.0;
|
||||
|
||||
previousAL = 0.0;
|
||||
previousBL = 0.0;
|
||||
previousCL = 0.0;
|
||||
previousDL = 0.0;
|
||||
previousEL = 0.0;
|
||||
|
||||
feedbackAR = 0.0;
|
||||
feedbackBR = 0.0;
|
||||
feedbackCR = 0.0;
|
||||
feedbackDR = 0.0;
|
||||
feedbackER = 0.0;
|
||||
|
||||
previousAR = 0.0;
|
||||
previousBR = 0.0;
|
||||
previousCR = 0.0;
|
||||
previousDR = 0.0;
|
||||
previousER = 0.0;
|
||||
|
||||
for(int count = 0; count < 6; count++) {lastRefL[count] = 0.0; lastRefR[count] = 0.0;}
|
||||
|
||||
for(int count = 0; count < 6; count++) {lastRef[count] = 0.0;}
|
||||
|
||||
countA = 1;
|
||||
countB = 1;
|
||||
countC = 1;
|
||||
|
|
@ -260,22 +290,24 @@ void Verbity2::Verbity2Kernel::Reset()
|
|||
|
||||
cycle = 0;
|
||||
|
||||
fpd = 1.0; while (fpd < 16386) fpd = rand()*UINT32_MAX;
|
||||
fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX;
|
||||
fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX;
|
||||
return noErr;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Verbity2::Verbity2Kernel::Process
|
||||
// Verbity2::ProcessBufferLists
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
void Verbity2::Verbity2Kernel::Process( const Float32 *inSourceP,
|
||||
Float32 *inDestP,
|
||||
UInt32 inFramesToProcess,
|
||||
UInt32 inNumChannels,
|
||||
bool &ioSilence )
|
||||
OSStatus Verbity2::ProcessBufferLists(AudioUnitRenderActionFlags & ioActionFlags,
|
||||
const AudioBufferList & inBuffer,
|
||||
AudioBufferList & outBuffer,
|
||||
UInt32 inFramesToProcess)
|
||||
{
|
||||
Float32 * inputL = (Float32*)(inBuffer.mBuffers[0].mData);
|
||||
Float32 * inputR = (Float32*)(inBuffer.mBuffers[1].mData);
|
||||
Float32 * outputL = (Float32*)(outBuffer.mBuffers[0].mData);
|
||||
Float32 * outputR = (Float32*)(outBuffer.mBuffers[1].mData);
|
||||
UInt32 nSampleFrames = inFramesToProcess;
|
||||
const Float32 *sourceP = inSourceP;
|
||||
Float32 *destP = inDestP;
|
||||
|
||||
double overallscale = 1.0;
|
||||
overallscale /= 44100.0;
|
||||
overallscale *= GetSampleRate();
|
||||
|
|
@ -288,10 +320,10 @@ void Verbity2::Verbity2Kernel::Process( const Float32 *inSourceP,
|
|||
//mulch is tone control, darken to obscure the Chrome Oxide, not as much highpass
|
||||
Float64 size = (pow(GetParameter( kParam_One ),2.0)*0.9)+0.1;
|
||||
Float64 regen = (1.0-pow(1.0-GetParameter( kParam_Two ),3.0))*0.00032;
|
||||
Float64 mulchSetting = 1.0-pow(1.0-GetParameter( kParam_Three ),2); //modify taper
|
||||
Float64 lowpass = (1.0-(pow(mulchSetting,2)*0.75))/sqrt(overallscale);
|
||||
Float64 highpass = (0.01+(mulchSetting*0.05))/sqrt(overallscale);
|
||||
Float64 interpolateMax = 0.06+(mulchSetting*0.3);
|
||||
Float64 mulchSetting = GetParameter( kParam_Three );
|
||||
Float64 lowpass = (1.0-(mulchSetting*0.75))/sqrt(overallscale);
|
||||
Float64 highpass = (0.007+(mulchSetting*0.022))/sqrt(overallscale);
|
||||
Float64 interpolateMax = 0.07+(mulchSetting*0.4);
|
||||
Float64 wet = GetParameter( kParam_Four )*2.0;
|
||||
Float64 dry = 2.0 - wet;
|
||||
if (wet > 1.0) wet = 1.0;
|
||||
|
|
@ -302,7 +334,7 @@ void Verbity2::Verbity2Kernel::Process( const Float32 *inSourceP,
|
|||
//that's so it can be on submixes without cutting back dry channel when adjusted:
|
||||
//unless you go super heavy, you are only adjusting the added verb loudness.
|
||||
|
||||
delayZ = 5189.0*size; //z can be predelay
|
||||
//delayZ = 5189.0*size; //z can be predelay
|
||||
|
||||
delayA = 5003.0*size;
|
||||
delayF = 4951.0*size;
|
||||
|
|
@ -318,7 +350,7 @@ void Verbity2::Verbity2Kernel::Process( const Float32 *inSourceP,
|
|||
|
||||
delayC = 3323.0*size;
|
||||
delayH = 2791.0*size;
|
||||
delayM= 2767.0*size;
|
||||
delayM = 2767.0*size;
|
||||
delayR = 2389.0*size;
|
||||
delayW = 2347.0*size;
|
||||
|
||||
|
|
@ -335,35 +367,54 @@ void Verbity2::Verbity2Kernel::Process( const Float32 *inSourceP,
|
|||
delayY = 281.0*size; //balanced primes of order two
|
||||
|
||||
while (nSampleFrames-- > 0) {
|
||||
double inputSample = *sourceP;
|
||||
if (fabs(inputSample)<1.18e-23) inputSample = fpd * 1.18e-17;
|
||||
double drySample = inputSample;
|
||||
double inputSampleL = *inputL;
|
||||
double inputSampleR = *inputR;
|
||||
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17;
|
||||
if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17;
|
||||
double drySampleL = inputSampleL;
|
||||
double drySampleR = inputSampleR;
|
||||
|
||||
if (fabs(iirA)<1.18e-37) iirA = 0.0;
|
||||
iirA = (iirA*(1.0-highpass))+(inputSample*highpass); inputSample -= iirA;
|
||||
if (fabs(iirAL)<1.18e-37) iirAL = 0.0;
|
||||
iirAL = (iirAL*(1.0-highpass))+(inputSampleL*highpass); inputSampleL -= iirAL;
|
||||
if (fabs(iirAR)<1.18e-37) iirAR = 0.0;
|
||||
iirAR = (iirAR*(1.0-highpass))+(inputSampleR*highpass); inputSampleR -= iirAR;
|
||||
//first filter is highpass
|
||||
|
||||
double interpolate = interpolateMax + (interpolateMax * (double(fpd)/UINT32_MAX));
|
||||
double interpolateL = interpolateMax + (interpolateMax * (double(fpdL)/UINT32_MAX));
|
||||
double interpolateR = interpolateMax + (interpolateMax * (double(fpdR)/UINT32_MAX));
|
||||
//we have our feedback soften also working as Chrome Oxide soften/noise
|
||||
|
||||
cycle++;
|
||||
if (cycle == cycleEnd) { //hit the end point and we do a reverb sample
|
||||
feedbackA = (feedbackA*(1.0-interpolate))+(previousA*interpolate); previousA = feedbackA;
|
||||
feedbackB = (feedbackB*(1.0-interpolate))+(previousB*interpolate); previousB = feedbackB;
|
||||
feedbackC = (feedbackC*(1.0-interpolate))+(previousC*interpolate); previousC = feedbackC;
|
||||
feedbackD = (feedbackD*(1.0-interpolate))+(previousD*interpolate); previousD = feedbackD;
|
||||
feedbackE = (feedbackE*(1.0-interpolate))+(previousE*interpolate); previousE = feedbackE;
|
||||
|
||||
aZ[countZ] = inputSample;
|
||||
countZ++; if (countZ < 0 || countZ > delayZ) countZ = 0;
|
||||
inputSample = aZ[countZ-((countZ > delayZ)?delayZ+1:0)];
|
||||
feedbackAL = (feedbackAL*(1.0-interpolateL))+(previousAL*interpolateL); previousAL = feedbackAL;
|
||||
feedbackBL = (feedbackBL*(1.0-interpolateL))+(previousBL*interpolateL); previousBL = feedbackBL;
|
||||
feedbackCL = (feedbackCL*(1.0-interpolateL))+(previousCL*interpolateL); previousCL = feedbackCL;
|
||||
feedbackDL = (feedbackDL*(1.0-interpolateL))+(previousDL*interpolateL); previousDL = feedbackDL;
|
||||
feedbackEL = (feedbackEL*(1.0-interpolateL))+(previousEL*interpolateL); previousEL = feedbackEL;
|
||||
feedbackAR = (feedbackAR*(1.0-interpolateR))+(previousAR*interpolateR); previousAR = feedbackAR;
|
||||
feedbackBR = (feedbackBR*(1.0-interpolateR))+(previousBR*interpolateR); previousBR = feedbackBR;
|
||||
feedbackCR = (feedbackCR*(1.0-interpolateR))+(previousCR*interpolateR); previousCR = feedbackCR;
|
||||
feedbackDR = (feedbackDR*(1.0-interpolateR))+(previousDR*interpolateR); previousDR = feedbackDR;
|
||||
feedbackER = (feedbackER*(1.0-interpolateR))+(previousER*interpolateR); previousER = feedbackER;
|
||||
|
||||
// aZL[countZ] = inputSampleL;
|
||||
// aZR[countZ] = inputSampleR;
|
||||
// countZ++; if (countZ < 0 || countZ > delayZ) countZ = 0;
|
||||
// inputSampleL = aZL[countZ-((countZ > delayZ)?delayZ+1:0)];
|
||||
// inputSampleR = aZR[countZ-((countZ > delayZ)?delayZ+1:0)];
|
||||
//predelay
|
||||
|
||||
aA[countA] = inputSample + (feedbackA * (regen*(1.0-fabs(feedbackA*regen))));
|
||||
aB[countB] = inputSample + (feedbackB * (regen*(1.0-fabs(feedbackB*regen))));
|
||||
aC[countC] = inputSample + (feedbackC * (regen*(1.0-fabs(feedbackC*regen))));
|
||||
aD[countD] = inputSample + (feedbackD * (regen*(1.0-fabs(feedbackD*regen))));
|
||||
aE[countE] = inputSample + (feedbackE * (regen*(1.0-fabs(feedbackE*regen))));
|
||||
aAL[countA] = inputSampleL + (feedbackAL * (regen*(1.0-fabs(feedbackAL*regen))));
|
||||
aBL[countB] = inputSampleL + (feedbackBL * (regen*(1.0-fabs(feedbackBL*regen))));
|
||||
aCL[countC] = inputSampleL + (feedbackCL * (regen*(1.0-fabs(feedbackCL*regen))));
|
||||
aDL[countD] = inputSampleL + (feedbackDL * (regen*(1.0-fabs(feedbackDL*regen))));
|
||||
aEL[countE] = inputSampleL + (feedbackEL * (regen*(1.0-fabs(feedbackEL*regen))));
|
||||
|
||||
aAR[countA] = inputSampleR + (feedbackAR * (regen*(1.0-fabs(feedbackAR*regen))));
|
||||
aBR[countB] = inputSampleR + (feedbackBR * (regen*(1.0-fabs(feedbackBR*regen))));
|
||||
aCR[countC] = inputSampleR + (feedbackCR * (regen*(1.0-fabs(feedbackCR*regen))));
|
||||
aDR[countD] = inputSampleR + (feedbackDR * (regen*(1.0-fabs(feedbackDR*regen))));
|
||||
aER[countE] = inputSampleR + (feedbackER * (regen*(1.0-fabs(feedbackER*regen))));
|
||||
|
||||
countA++; if (countA < 0 || countA > delayA) countA = 0;
|
||||
countB++; if (countB < 0 || countB > delayB) countB = 0;
|
||||
|
|
@ -371,19 +422,31 @@ void Verbity2::Verbity2Kernel::Process( const Float32 *inSourceP,
|
|||
countD++; if (countD < 0 || countD > delayD) countD = 0;
|
||||
countE++; if (countE < 0 || countE > delayE) countE = 0;
|
||||
|
||||
double outA = aA[countA-((countA > delayA)?delayA+1:0)];
|
||||
double outB = aB[countB-((countB > delayB)?delayB+1:0)];
|
||||
double outC = aC[countC-((countC > delayC)?delayC+1:0)];
|
||||
double outD = aD[countD-((countD > delayD)?delayD+1:0)];
|
||||
double outE = aE[countE-((countE > delayE)?delayE+1:0)];
|
||||
double outAL = aAL[countA-((countA > delayA)?delayA+1:0)];
|
||||
double outBL = aBL[countB-((countB > delayB)?delayB+1:0)];
|
||||
double outCL = aCL[countC-((countC > delayC)?delayC+1:0)];
|
||||
double outDL = aDL[countD-((countD > delayD)?delayD+1:0)];
|
||||
double outEL = aEL[countE-((countE > delayE)?delayE+1:0)];
|
||||
|
||||
double outAR = aAR[countA-((countA > delayA)?delayA+1:0)];
|
||||
double outBR = aBR[countB-((countB > delayB)?delayB+1:0)];
|
||||
double outCR = aCR[countC-((countC > delayC)?delayC+1:0)];
|
||||
double outDR = aDR[countD-((countD > delayD)?delayD+1:0)];
|
||||
double outER = aER[countE-((countE > delayE)?delayE+1:0)];
|
||||
|
||||
//-------- one
|
||||
|
||||
aF[countF] = ((outA*3.0) - ((outB + outC + outD + outE)*2.0));
|
||||
aG[countG] = ((outB*3.0) - ((outA + outC + outD + outE)*2.0));
|
||||
aH[countH] = ((outC*3.0) - ((outA + outB + outD + outE)*2.0));
|
||||
aI[countI] = ((outD*3.0) - ((outA + outB + outC + outE)*2.0));
|
||||
aJ[countJ] = ((outE*3.0) - ((outA + outB + outC + outD)*2.0));
|
||||
aFL[countF] = ((outAL*3.0) - ((outBL + outCL + outDL + outEL)*2.0));
|
||||
aGL[countG] = ((outBL*3.0) - ((outAL + outCL + outDL + outEL)*2.0));
|
||||
aHL[countH] = ((outCL*3.0) - ((outAL + outBL + outDL + outEL)*2.0));
|
||||
aIL[countI] = ((outDL*3.0) - ((outAL + outBL + outCL + outEL)*2.0));
|
||||
aJL[countJ] = ((outEL*3.0) - ((outAL + outBL + outCL + outDL)*2.0));
|
||||
|
||||
aFR[countF] = ((outAR*3.0) - ((outBR + outCR + outDR + outER)*2.0));
|
||||
aGR[countG] = ((outBR*3.0) - ((outAR + outCR + outDR + outER)*2.0));
|
||||
aHR[countH] = ((outCR*3.0) - ((outAR + outBR + outDR + outER)*2.0));
|
||||
aIR[countI] = ((outDR*3.0) - ((outAR + outBR + outCR + outER)*2.0));
|
||||
aJR[countJ] = ((outER*3.0) - ((outAR + outBR + outCR + outDR)*2.0));
|
||||
|
||||
countF++; if (countF < 0 || countF > delayF) countF = 0;
|
||||
countG++; if (countG < 0 || countG > delayG) countG = 0;
|
||||
|
|
@ -391,19 +454,31 @@ void Verbity2::Verbity2Kernel::Process( const Float32 *inSourceP,
|
|||
countI++; if (countI < 0 || countI > delayI) countI = 0;
|
||||
countJ++; if (countJ < 0 || countJ > delayJ) countJ = 0;
|
||||
|
||||
double outF = aF[countF-((countF > delayF)?delayF+1:0)];
|
||||
double outG = aG[countG-((countG > delayG)?delayG+1:0)];
|
||||
double outH = aH[countH-((countH > delayH)?delayH+1:0)];
|
||||
double outI = aI[countI-((countI > delayI)?delayI+1:0)];
|
||||
double outJ = aJ[countJ-((countJ > delayJ)?delayJ+1:0)];
|
||||
double outFL = aFL[countF-((countF > delayF)?delayF+1:0)];
|
||||
double outGL = aGL[countG-((countG > delayG)?delayG+1:0)];
|
||||
double outHL = aHL[countH-((countH > delayH)?delayH+1:0)];
|
||||
double outIL = aIL[countI-((countI > delayI)?delayI+1:0)];
|
||||
double outJL = aJL[countJ-((countJ > delayJ)?delayJ+1:0)];
|
||||
|
||||
double outFR = aFR[countF-((countF > delayF)?delayF+1:0)];
|
||||
double outGR = aGR[countG-((countG > delayG)?delayG+1:0)];
|
||||
double outHR = aHR[countH-((countH > delayH)?delayH+1:0)];
|
||||
double outIR = aIR[countI-((countI > delayI)?delayI+1:0)];
|
||||
double outJR = aJR[countJ-((countJ > delayJ)?delayJ+1:0)];
|
||||
|
||||
//-------- two
|
||||
|
||||
aK[countK] = ((outF*3.0) - ((outG + outH + outI + outJ)*2.0));
|
||||
aL[countL] = ((outG*3.0) - ((outF + outH + outI + outJ)*2.0));
|
||||
aM[countM] = ((outH*3.0) - ((outF + outG + outI + outJ)*2.0));
|
||||
aN[countN] = ((outI*3.0) - ((outF + outG + outH + outJ)*2.0));
|
||||
aO[countO] = ((outJ*3.0) - ((outF + outG + outH + outI)*2.0));
|
||||
aKL[countK] = ((outFL*3.0) - ((outGL + outHL + outIL + outJL)*2.0));
|
||||
aLL[countL] = ((outGL*3.0) - ((outFL + outHL + outIL + outJL)*2.0));
|
||||
aML[countM] = ((outHL*3.0) - ((outFL + outGL + outIL + outJL)*2.0));
|
||||
aNL[countN] = ((outIL*3.0) - ((outFL + outGL + outHL + outJL)*2.0));
|
||||
aOL[countO] = ((outJL*3.0) - ((outFL + outGL + outHL + outIL)*2.0));
|
||||
|
||||
aKR[countK] = ((outFR*3.0) - ((outGR + outHR + outIR + outJR)*2.0));
|
||||
aLR[countL] = ((outGR*3.0) - ((outFR + outHR + outIR + outJR)*2.0));
|
||||
aMR[countM] = ((outHR*3.0) - ((outFR + outGR + outIR + outJR)*2.0));
|
||||
aNR[countN] = ((outIR*3.0) - ((outFR + outGR + outHR + outJR)*2.0));
|
||||
aOR[countO] = ((outJR*3.0) - ((outFR + outGR + outHR + outIR)*2.0));
|
||||
|
||||
countK++; if (countK < 0 || countK > delayK) countK = 0;
|
||||
countL++; if (countL < 0 || countL > delayL) countL = 0;
|
||||
|
|
@ -411,19 +486,31 @@ void Verbity2::Verbity2Kernel::Process( const Float32 *inSourceP,
|
|||
countN++; if (countN < 0 || countN > delayN) countN = 0;
|
||||
countO++; if (countO < 0 || countO > delayO) countO = 0;
|
||||
|
||||
double outK = aK[countK-((countK > delayK)?delayK+1:0)];
|
||||
double outL = aL[countL-((countL > delayL)?delayL+1:0)];
|
||||
double outM = aM[countM-((countM > delayM)?delayM+1:0)];
|
||||
double outN = aN[countN-((countN > delayN)?delayN+1:0)];
|
||||
double outO = aO[countO-((countO > delayO)?delayO+1:0)];
|
||||
double outKL = aKL[countK-((countK > delayK)?delayK+1:0)];
|
||||
double outLL = aLL[countL-((countL > delayL)?delayL+1:0)];
|
||||
double outML = aML[countM-((countM > delayM)?delayM+1:0)];
|
||||
double outNL = aNL[countN-((countN > delayN)?delayN+1:0)];
|
||||
double outOL = aOL[countO-((countO > delayO)?delayO+1:0)];
|
||||
|
||||
double outKR = aKR[countK-((countK > delayK)?delayK+1:0)];
|
||||
double outLR = aLR[countL-((countL > delayL)?delayL+1:0)];
|
||||
double outMR = aMR[countM-((countM > delayM)?delayM+1:0)];
|
||||
double outNR = aNR[countN-((countN > delayN)?delayN+1:0)];
|
||||
double outOR = aOR[countO-((countO > delayO)?delayO+1:0)];
|
||||
|
||||
//-------- three
|
||||
|
||||
aP[countP] = ((outK*3.0) - ((outL + outM + outN + outO)*2.0));
|
||||
aQ[countQ] = ((outL*3.0) - ((outK + outM + outN + outO)*2.0));
|
||||
aR[countR] = ((outM*3.0) - ((outK + outL + outN + outO)*2.0));
|
||||
aS[countS] = ((outN*3.0) - ((outK + outL + outM + outO)*2.0));
|
||||
aT[countT] = ((outO*3.0) - ((outK + outL + outM + outN)*2.0));
|
||||
aPL[countP] = ((outKL*3.0) - ((outLL + outML + outNL + outOL)*2.0));
|
||||
aQL[countQ] = ((outLL*3.0) - ((outKL + outML + outNL + outOL)*2.0));
|
||||
aRL[countR] = ((outML*3.0) - ((outKL + outLL + outNL + outOL)*2.0));
|
||||
aSL[countS] = ((outNL*3.0) - ((outKL + outLL + outML + outOL)*2.0));
|
||||
aTL[countT] = ((outOL*3.0) - ((outKL + outLL + outML + outNL)*2.0));
|
||||
|
||||
aPR[countP] = ((outKR*3.0) - ((outLR + outMR + outNR + outOR)*2.0));
|
||||
aQR[countQ] = ((outLR*3.0) - ((outKR + outMR + outNR + outOR)*2.0));
|
||||
aRR[countR] = ((outMR*3.0) - ((outKR + outLR + outNR + outOR)*2.0));
|
||||
aSR[countS] = ((outNR*3.0) - ((outKR + outLR + outMR + outOR)*2.0));
|
||||
aTR[countT] = ((outOR*3.0) - ((outKR + outLR + outMR + outNR)*2.0));
|
||||
|
||||
countP++; if (countP < 0 || countP > delayP) countP = 0;
|
||||
countQ++; if (countQ < 0 || countQ > delayQ) countQ = 0;
|
||||
|
|
@ -431,19 +518,31 @@ void Verbity2::Verbity2Kernel::Process( const Float32 *inSourceP,
|
|||
countS++; if (countS < 0 || countS > delayS) countS = 0;
|
||||
countT++; if (countT < 0 || countT > delayT) countT = 0;
|
||||
|
||||
double outP = aP[countP-((countP > delayP)?delayP+1:0)];
|
||||
double outQ = aQ[countQ-((countQ > delayQ)?delayQ+1:0)];
|
||||
double outR = aR[countR-((countR > delayR)?delayR+1:0)];
|
||||
double outS = aS[countS-((countS > delayS)?delayS+1:0)];
|
||||
double outT = aT[countT-((countT > delayT)?delayT+1:0)];
|
||||
|
||||
double outPL = aPL[countP-((countP > delayP)?delayP+1:0)];
|
||||
double outQL = aQL[countQ-((countQ > delayQ)?delayQ+1:0)];
|
||||
double outRL = aRL[countR-((countR > delayR)?delayR+1:0)];
|
||||
double outSL = aSL[countS-((countS > delayS)?delayS+1:0)];
|
||||
double outTL = aTL[countT-((countT > delayT)?delayT+1:0)];
|
||||
|
||||
double outPR = aPR[countP-((countP > delayP)?delayP+1:0)];
|
||||
double outQR = aQR[countQ-((countQ > delayQ)?delayQ+1:0)];
|
||||
double outRR = aRR[countR-((countR > delayR)?delayR+1:0)];
|
||||
double outSR = aSR[countS-((countS > delayS)?delayS+1:0)];
|
||||
double outTR = aTR[countT-((countT > delayT)?delayT+1:0)];
|
||||
|
||||
//-------- four
|
||||
|
||||
aU[countU] = ((outP*3.0) - ((outQ + outR + outS + outT)*2.0));
|
||||
aV[countV] = ((outQ*3.0) - ((outP + outR + outS + outT)*2.0));
|
||||
aW[countW] = ((outR*3.0) - ((outP + outQ + outS + outT)*2.0));
|
||||
aX[countX] = ((outS*3.0) - ((outP + outQ + outR + outT)*2.0));
|
||||
aY[countY] = ((outT*3.0) - ((outP + outQ + outR + outS)*2.0));
|
||||
aUL[countU] = ((outPL*3.0) - ((outQL + outRL + outSL + outTL)*2.0));
|
||||
aVL[countV] = ((outQL*3.0) - ((outPL + outRL + outSL + outTL)*2.0));
|
||||
aWL[countW] = ((outRL*3.0) - ((outPL + outQL + outSL + outTL)*2.0));
|
||||
aXL[countX] = ((outSL*3.0) - ((outPL + outQL + outRL + outTL)*2.0));
|
||||
aYL[countY] = ((outTL*3.0) - ((outPL + outQL + outRL + outSL)*2.0));
|
||||
|
||||
aUR[countU] = ((outPR*3.0) - ((outQR + outRR + outSR + outTR)*2.0));
|
||||
aVR[countV] = ((outQR*3.0) - ((outPR + outRR + outSR + outTR)*2.0));
|
||||
aWR[countW] = ((outRR*3.0) - ((outPR + outQR + outSR + outTR)*2.0));
|
||||
aXR[countX] = ((outSR*3.0) - ((outPR + outQR + outRR + outTR)*2.0));
|
||||
aYR[countY] = ((outTR*3.0) - ((outPR + outQR + outRR + outSR)*2.0));
|
||||
|
||||
countU++; if (countU < 0 || countU > delayU) countU = 0;
|
||||
countV++; if (countV < 0 || countV > delayV) countV = 0;
|
||||
|
|
@ -451,69 +550,110 @@ void Verbity2::Verbity2Kernel::Process( const Float32 *inSourceP,
|
|||
countX++; if (countX < 0 || countX > delayX) countX = 0;
|
||||
countY++; if (countY < 0 || countY > delayY) countY = 0;
|
||||
|
||||
double outU = aU[countU-((countU > delayU)?delayU+1:0)];
|
||||
double outV = aV[countV-((countV > delayV)?delayV+1:0)];
|
||||
double outW = aW[countW-((countW > delayW)?delayW+1:0)];
|
||||
double outX = aX[countX-((countX > delayX)?delayX+1:0)];
|
||||
double outY = aY[countY-((countY > delayY)?delayY+1:0)];
|
||||
double outUL = aUL[countU-((countU > delayU)?delayU+1:0)];
|
||||
double outVL = aVL[countV-((countV > delayV)?delayV+1:0)];
|
||||
double outWL = aWL[countW-((countW > delayW)?delayW+1:0)];
|
||||
double outXL = aXL[countX-((countX > delayX)?delayX+1:0)];
|
||||
double outYL = aYL[countY-((countY > delayY)?delayY+1:0)];
|
||||
|
||||
double outUR = aUR[countU-((countU > delayU)?delayU+1:0)];
|
||||
double outVR = aVR[countV-((countV > delayV)?delayV+1:0)];
|
||||
double outWR = aWR[countW-((countW > delayW)?delayW+1:0)];
|
||||
double outXR = aXR[countX-((countX > delayX)?delayX+1:0)];
|
||||
double outYR = aYR[countY-((countY > delayY)?delayY+1:0)];
|
||||
|
||||
//-------- five
|
||||
|
||||
|
||||
feedbackA = ((outU*3.0) - ((outV + outW + outX + outY)*2.0));
|
||||
feedbackB = ((outV*3.0) - ((outU + outW + outX + outY)*2.0));
|
||||
feedbackC = ((outW*3.0) - ((outU + outV + outX + outY)*2.0));
|
||||
feedbackD = ((outX*3.0) - ((outU + outV + outW + outY)*2.0));
|
||||
feedbackE = ((outY*3.0) - ((outU + outV + outW + outX)*2.0));
|
||||
feedbackAR = ((outUL*3.0) - ((outVL + outWL + outXL + outYL)*2.0));
|
||||
feedbackBL = ((outVL*3.0) - ((outUL + outWL + outXL + outYL)*2.0));
|
||||
feedbackCR = ((outWL*3.0) - ((outUL + outVL + outXL + outYL)*2.0));
|
||||
feedbackDL = ((outXL*3.0) - ((outUL + outVL + outWL + outYL)*2.0));
|
||||
feedbackER = ((outYL*3.0) - ((outUL + outVL + outWL + outXL)*2.0));
|
||||
|
||||
feedbackAL = ((outUR*3.0) - ((outVR + outWR + outXR + outYR)*2.0));
|
||||
feedbackBR = ((outVR*3.0) - ((outUR + outWR + outXR + outYR)*2.0));
|
||||
feedbackCL = ((outWR*3.0) - ((outUR + outVR + outXR + outYR)*2.0));
|
||||
feedbackDR = ((outXR*3.0) - ((outUR + outVR + outWR + outYR)*2.0));
|
||||
feedbackEL = ((outYR*3.0) - ((outUR + outVR + outWR + outXR)*2.0));
|
||||
//which we need to feed back into the input again, a bit
|
||||
|
||||
inputSample = (outU + outV + outW + outX + outY)*0.0016;
|
||||
inputSampleL = (outUL + outVL + outWL + outXL + outYL)*0.0016;
|
||||
inputSampleR = (outUR + outVR + outWR + outXR + outYR)*0.0016;
|
||||
//and take the final combined sum of outputs, corrected for Householder gain
|
||||
if (cycleEnd == 4) {
|
||||
lastRef[0] = lastRef[4]; //start from previous last
|
||||
lastRef[2] = (lastRef[0] + inputSample)/2; //half
|
||||
lastRef[1] = (lastRef[0] + lastRef[2])/2; //one quarter
|
||||
lastRef[3] = (lastRef[2] + inputSample)/2; //three quarters
|
||||
lastRef[4] = inputSample; //full
|
||||
lastRefL[0] = lastRefL[4]; //start from previous last
|
||||
lastRefL[2] = (lastRefL[0] + inputSampleL)/2; //half
|
||||
lastRefL[1] = (lastRefL[0] + lastRefL[2])/2; //one quarter
|
||||
lastRefL[3] = (lastRefL[2] + inputSampleL)/2; //three quarters
|
||||
lastRefL[4] = inputSampleL; //full
|
||||
lastRefR[0] = lastRefR[4]; //start from previous last
|
||||
lastRefR[2] = (lastRefR[0] + inputSampleR)/2; //half
|
||||
lastRefR[1] = (lastRefR[0] + lastRefR[2])/2; //one quarter
|
||||
lastRefR[3] = (lastRefR[2] + inputSampleR)/2; //three quarters
|
||||
lastRefR[4] = inputSampleR; //full
|
||||
}
|
||||
if (cycleEnd == 3) {
|
||||
lastRef[0] = lastRef[3]; //start from previous last
|
||||
lastRef[2] = (lastRef[0]+lastRef[0]+inputSample)/3; //third
|
||||
lastRef[1] = (lastRef[0]+inputSample+inputSample)/3; //two thirds
|
||||
lastRef[3] = inputSample; //full
|
||||
lastRefL[0] = lastRefL[3]; //start from previous last
|
||||
lastRefL[2] = (lastRefL[0]+lastRefL[0]+inputSampleL)/3; //third
|
||||
lastRefL[1] = (lastRefL[0]+inputSampleL+inputSampleL)/3; //two thirds
|
||||
lastRefL[3] = inputSampleL; //full
|
||||
lastRefR[0] = lastRefR[3]; //start from previous last
|
||||
lastRefR[2] = (lastRefR[0]+lastRefR[0]+inputSampleR)/3; //third
|
||||
lastRefR[1] = (lastRefR[0]+inputSampleR+inputSampleR)/3; //two thirds
|
||||
lastRefR[3] = inputSampleR; //full
|
||||
}
|
||||
if (cycleEnd == 2) {
|
||||
lastRef[0] = lastRef[2]; //start from previous last
|
||||
lastRef[1] = (lastRef[0] + inputSample)/2; //half
|
||||
lastRef[2] = inputSample; //full
|
||||
lastRefL[0] = lastRefL[2]; //start from previous last
|
||||
lastRefL[1] = (lastRefL[0] + inputSampleL)/2; //half
|
||||
lastRefL[2] = inputSampleL; //full
|
||||
lastRefR[0] = lastRefR[2]; //start from previous last
|
||||
lastRefR[1] = (lastRefR[0] + inputSampleR)/2; //half
|
||||
lastRefR[2] = inputSampleR; //full
|
||||
}
|
||||
if (cycleEnd == 1) {
|
||||
lastRefL[0] = inputSampleL;
|
||||
lastRefR[0] = inputSampleR;
|
||||
}
|
||||
if (cycleEnd == 1) lastRef[0] = inputSample;
|
||||
cycle = 0; //reset
|
||||
inputSample = lastRef[cycle];
|
||||
inputSampleL = lastRefL[cycle];
|
||||
inputSampleR = lastRefR[cycle];
|
||||
} else {
|
||||
inputSample = lastRef[cycle];
|
||||
inputSampleL = lastRefL[cycle];
|
||||
inputSampleR = lastRefR[cycle];
|
||||
//we are going through our references now
|
||||
}
|
||||
|
||||
if (fabs(iirB)<1.18e-37) iirB = 0.0;
|
||||
iirB = (iirB*(1.0-lowpass))+(inputSample*lowpass); inputSample = iirB;
|
||||
if (fabs(iirBL)<1.18e-37) iirBL = 0.0;
|
||||
iirBL = (iirBL*(1.0-lowpass))+(inputSampleL*lowpass); inputSampleL = iirBL;
|
||||
if (fabs(iirBR)<1.18e-37) iirBR = 0.0;
|
||||
iirBR = (iirBR*(1.0-lowpass))+(inputSampleR*lowpass); inputSampleR = iirBR;
|
||||
//second filter
|
||||
|
||||
if (wet < 1.0) inputSample *= wet;
|
||||
if (dry < 1.0) drySample *= dry;
|
||||
inputSample += drySample;
|
||||
if (wet < 1.0) {inputSampleL *= wet; inputSampleR *= wet;}
|
||||
if (dry < 1.0) {drySampleL *= dry; drySampleR *= dry;}
|
||||
inputSampleL += drySampleL; inputSampleR += drySampleR;
|
||||
//this is our submix verb dry/wet: 0.5 is BOTH at FULL VOLUME
|
||||
//purpose is that, if you're adding verb, you're not altering other balances
|
||||
|
||||
//begin 32 bit floating point dither
|
||||
int expon; frexpf((float)inputSample, &expon);
|
||||
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5;
|
||||
inputSample += ((double(fpd)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
|
||||
//end 32 bit floating point dither
|
||||
//begin 32 bit stereo floating point dither
|
||||
int expon; frexpf((float)inputSampleL, &expon);
|
||||
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
|
||||
inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
|
||||
frexpf((float)inputSampleR, &expon);
|
||||
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
|
||||
inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
|
||||
//end 32 bit stereo floating point dither
|
||||
|
||||
*destP = inputSample;
|
||||
*outputL = inputSampleL;
|
||||
*outputR = inputSampleR;
|
||||
//direct stereo out
|
||||
|
||||
sourceP += inNumChannels; destP += inNumChannels;
|
||||
inputL += 1;
|
||||
inputR += 1;
|
||||
outputL += 1;
|
||||
outputR += 1;
|
||||
}
|
||||
return noErr;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3,9 +3,9 @@
|
|||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 9/3/22
|
||||
* Created: 2/1/23
|
||||
*
|
||||
* Copyright: Copyright © 2022 Airwindows, Airwindows uses the MIT license
|
||||
* Copyright: Copyright © 2023 Airwindows, Airwindows uses the MIT license
|
||||
*
|
||||
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
|
||||
* consideration of your agreement to the following terms, and your use, installation, modification
|
||||
|
|
@ -83,8 +83,13 @@ public:
|
|||
virtual ~Verbity2 () { delete mDebugDispatcher; }
|
||||
#endif
|
||||
|
||||
virtual AUKernelBase * NewKernel() { return new Verbity2Kernel(this); }
|
||||
|
||||
virtual ComponentResult Reset(AudioUnitScope inScope, AudioUnitElement inElement);
|
||||
|
||||
virtual OSStatus ProcessBufferLists(AudioUnitRenderActionFlags & ioActionFlags,
|
||||
const AudioBufferList & inBuffer, AudioBufferList & outBuffer,
|
||||
UInt32 inFramesToProcess);
|
||||
virtual UInt32 SupportedNumChannels(const AUChannelInfo ** outInfo);
|
||||
|
||||
virtual ComponentResult GetParameterValueStrings(AudioUnitScope inScope,
|
||||
AudioUnitParameterID inParameterID,
|
||||
CFArrayRef * outStrings);
|
||||
|
|
@ -103,7 +108,7 @@ public:
|
|||
AudioUnitScope inScope,
|
||||
AudioUnitElement inElement,
|
||||
void * outData);
|
||||
|
||||
|
||||
virtual ComponentResult Initialize();
|
||||
virtual bool SupportsTail () { return true; }
|
||||
virtual Float64 GetTailTime() {return (1.0/GetSampleRate())*0.0;} //in SECONDS! gsr * a number = in samples
|
||||
|
|
@ -112,108 +117,135 @@ public:
|
|||
/*! @method Version */
|
||||
virtual ComponentResult Version() { return kVerbity2Version; }
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
class Verbity2Kernel : public AUKernelBase // most of the real work happens here
|
||||
{
|
||||
public:
|
||||
Verbity2Kernel(AUEffectBase *inAudioUnit )
|
||||
: AUKernelBase(inAudioUnit)
|
||||
{
|
||||
}
|
||||
|
||||
// *Required* overides for the process method for this effect
|
||||
// processes one channel of interleaved samples
|
||||
virtual void Process( const Float32 *inSourceP,
|
||||
Float32 *inDestP,
|
||||
UInt32 inFramesToProcess,
|
||||
UInt32 inNumChannels,
|
||||
bool &ioSilence);
|
||||
|
||||
virtual void Reset();
|
||||
|
||||
private:
|
||||
Float64 iirA;
|
||||
Float64 iirB;
|
||||
|
||||
|
||||
Float64 aZ[5191];
|
||||
|
||||
Float64 aA[5005]; //AFKPU
|
||||
Float64 aF[4953];
|
||||
Float64 aK[4921];
|
||||
Float64 aP[4801];
|
||||
Float64 aU[4753];
|
||||
|
||||
Float64 aB[4351]; //BGLQV
|
||||
Float64 aG[4159];
|
||||
Float64 aL[3931];
|
||||
Float64 aQ[3531];
|
||||
Float64 aV[3331];
|
||||
|
||||
Float64 aC[3325]; //CHMRW
|
||||
Float64 aH[2793];
|
||||
Float64 aM[2769];
|
||||
Float64 aR[2391];
|
||||
Float64 aW[2349];
|
||||
|
||||
Float64 aD[2143]; //DINSX
|
||||
Float64 aI[1813];
|
||||
Float64 aN[1735];
|
||||
Float64 aS[1173];
|
||||
Float64 aX[789];
|
||||
|
||||
Float64 aE[679]; //EJOTY
|
||||
Float64 aJ[645];
|
||||
Float64 aO[441];
|
||||
Float64 aT[351];
|
||||
Float64 aY[283];
|
||||
|
||||
Float64 feedbackA;
|
||||
Float64 feedbackB;
|
||||
Float64 feedbackC;
|
||||
Float64 feedbackD;
|
||||
Float64 feedbackE;
|
||||
|
||||
Float64 previousA;
|
||||
Float64 previousB;
|
||||
Float64 previousC;
|
||||
Float64 previousD;
|
||||
Float64 previousE;
|
||||
|
||||
Float64 lastRef[7];
|
||||
|
||||
int countA, delayA;
|
||||
int countB, delayB;
|
||||
int countC, delayC;
|
||||
int countD, delayD;
|
||||
int countE, delayE;
|
||||
int countF, delayF;
|
||||
int countG, delayG;
|
||||
int countH, delayH;
|
||||
int countI, delayI;
|
||||
int countJ, delayJ;
|
||||
int countK, delayK;
|
||||
int countL, delayL;
|
||||
int countM, delayM;
|
||||
int countN, delayN;
|
||||
int countO, delayO;
|
||||
int countP, delayP;
|
||||
int countQ, delayQ;
|
||||
int countR, delayR;
|
||||
int countS, delayS;
|
||||
int countT, delayT;
|
||||
int countU, delayU;
|
||||
int countV, delayV;
|
||||
int countW, delayW;
|
||||
int countX, delayX;
|
||||
int countY, delayY;
|
||||
int countZ, delayZ;
|
||||
int cycle;
|
||||
|
||||
uint32_t fpd;
|
||||
};
|
||||
double iirAL;
|
||||
double iirBL;
|
||||
|
||||
//double aZL[5191];
|
||||
|
||||
double aAL[5005]; //AFKPU
|
||||
double aFL[4953];
|
||||
double aKL[4921];
|
||||
double aPL[4801];
|
||||
double aUL[4753];
|
||||
|
||||
double aBL[4351]; //BGLQV
|
||||
double aGL[4159];
|
||||
double aLL[3931];
|
||||
double aQL[3531];
|
||||
double aVL[3331];
|
||||
|
||||
double aCL[3325]; //CHMRW
|
||||
double aHL[2793];
|
||||
double aML[2769];
|
||||
double aRL[2391];
|
||||
double aWL[2349];
|
||||
|
||||
double aDL[2143]; //DINSX
|
||||
double aIL[1813];
|
||||
double aNL[1735];
|
||||
double aSL[1173];
|
||||
double aXL[789];
|
||||
|
||||
double aEL[679]; //EJOTY
|
||||
double aJL[645];
|
||||
double aOL[441];
|
||||
double aTL[351];
|
||||
double aYL[283];
|
||||
|
||||
double feedbackAL;
|
||||
double feedbackBL;
|
||||
double feedbackCL;
|
||||
double feedbackDL;
|
||||
double feedbackEL;
|
||||
|
||||
double previousAL;
|
||||
double previousBL;
|
||||
double previousCL;
|
||||
double previousDL;
|
||||
double previousEL;
|
||||
|
||||
double lastRefL[7];
|
||||
|
||||
double iirAR;
|
||||
double iirBR;
|
||||
|
||||
//double aZR[5191];
|
||||
|
||||
double aAR[5005]; //AFKPU
|
||||
double aFR[4953];
|
||||
double aKR[4921];
|
||||
double aPR[4801];
|
||||
double aUR[4753];
|
||||
|
||||
double aBR[4351]; //BGLQV
|
||||
double aGR[4159];
|
||||
double aLR[3931];
|
||||
double aQR[3531];
|
||||
double aVR[3331];
|
||||
|
||||
double aCR[3325]; //CHMRW
|
||||
double aHR[2793];
|
||||
double aMR[2769];
|
||||
double aRR[2391];
|
||||
double aWR[2349];
|
||||
|
||||
double aDR[2143]; //DINSX
|
||||
double aIR[1813];
|
||||
double aNR[1735];
|
||||
double aSR[1173];
|
||||
double aXR[789];
|
||||
|
||||
double aER[679]; //EJOTY
|
||||
double aJR[645];
|
||||
double aOR[441];
|
||||
double aTR[351];
|
||||
double aYR[283];
|
||||
|
||||
double feedbackAR;
|
||||
double feedbackBR;
|
||||
double feedbackCR;
|
||||
double feedbackDR;
|
||||
double feedbackER;
|
||||
|
||||
double previousAR;
|
||||
double previousBR;
|
||||
double previousCR;
|
||||
double previousDR;
|
||||
double previousER;
|
||||
|
||||
double lastRefR[7];
|
||||
|
||||
int countA, delayA;
|
||||
int countB, delayB;
|
||||
int countC, delayC;
|
||||
int countD, delayD;
|
||||
int countE, delayE;
|
||||
int countF, delayF;
|
||||
int countG, delayG;
|
||||
int countH, delayH;
|
||||
int countI, delayI;
|
||||
int countJ, delayJ;
|
||||
int countK, delayK;
|
||||
int countL, delayL;
|
||||
int countM, delayM;
|
||||
int countN, delayN;
|
||||
int countO, delayO;
|
||||
int countP, delayP;
|
||||
int countQ, delayQ;
|
||||
int countR, delayR;
|
||||
int countS, delayS;
|
||||
int countT, delayT;
|
||||
int countU, delayU;
|
||||
int countV, delayV;
|
||||
int countW, delayW;
|
||||
int countX, delayX;
|
||||
int countY, delayY;
|
||||
int countZ, delayZ;
|
||||
int cycle;
|
||||
|
||||
uint32_t fpdL;
|
||||
uint32_t fpdR;
|
||||
};
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
|
|
|||
|
|
@ -3,9 +3,9 @@
|
|||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 9/3/22
|
||||
* Created: 2/1/23
|
||||
*
|
||||
* Copyright: Copyright © 2022 Airwindows, Airwindows uses the MIT license
|
||||
* Copyright: Copyright © 2023 Airwindows, Airwindows uses the MIT license
|
||||
*
|
||||
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
|
||||
* consideration of your agreement to the following terms, and your use, installation, modification
|
||||
|
|
|
|||
|
|
@ -251,7 +251,7 @@
|
|||
<dict>
|
||||
<key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
|
||||
<array>
|
||||
<real>186</real>
|
||||
<real>299</real>
|
||||
</array>
|
||||
<key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
|
||||
<array>
|
||||
|
|
@ -264,19 +264,22 @@
|
|||
<array>
|
||||
<string>089C166AFE841209C02AAC07</string>
|
||||
<string>08FB77ADFE841716C02AAC07</string>
|
||||
<string>8BA05AEB0720742700365D66</string>
|
||||
<string>8BA05A7D072073D200365D66</string>
|
||||
<string>8BA05A7E072073D200365D66</string>
|
||||
<string>1C37FBAC04509CD000000102</string>
|
||||
<string>1C37FABC05509CD000000102</string>
|
||||
</array>
|
||||
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
|
||||
<array>
|
||||
<array>
|
||||
<integer>20</integer>
|
||||
<integer>19</integer>
|
||||
<integer>6</integer>
|
||||
<integer>5</integer>
|
||||
<integer>4</integer>
|
||||
<integer>1</integer>
|
||||
<integer>0</integer>
|
||||
</array>
|
||||
</array>
|
||||
<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
|
||||
<string>{{0, 0}, {186, 445}}</string>
|
||||
<string>{{0, 0}, {299, 445}}</string>
|
||||
</dict>
|
||||
<key>PBXTopSmartGroupGIDs</key>
|
||||
<array/>
|
||||
|
|
@ -288,19 +291,19 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 0}, {203, 463}}</string>
|
||||
<string>{{0, 0}, {316, 463}}</string>
|
||||
<key>GroupTreeTableConfiguration</key>
|
||||
<array>
|
||||
<string>MainColumn</string>
|
||||
<real>186</real>
|
||||
<real>299</real>
|
||||
</array>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>203 321 788 504 0 0 1440 878 </string>
|
||||
<string>18 337 788 504 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXSmartGroupTreeModule</string>
|
||||
<key>Proportion</key>
|
||||
<string>203pt</string>
|
||||
<string>316pt</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Dock</key>
|
||||
|
|
@ -311,15 +314,13 @@
|
|||
<key>PBXProjectModuleGUID</key>
|
||||
<string>1CE0B20306471E060097A5F4</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string>MyNewFile14.java</string>
|
||||
<string><No Editor></string>
|
||||
<key>PBXSplitModuleInNavigatorKey</key>
|
||||
<dict>
|
||||
<key>Split0</key>
|
||||
<dict>
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
<string>1CE0B20406471E060097A5F4</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string>MyNewFile14.java</string>
|
||||
</dict>
|
||||
<key>SplitCount</key>
|
||||
<string>1</string>
|
||||
|
|
@ -330,14 +331,14 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 0}, {580, 269}}</string>
|
||||
<string>{{0, 0}, {467, 0}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>203 321 788 504 0 0 1440 878 </string>
|
||||
<string>18 337 788 504 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXNavigatorGroup</string>
|
||||
<key>Proportion</key>
|
||||
<string>269pt</string>
|
||||
<string>0pt</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>ContentConfiguration</key>
|
||||
|
|
@ -350,18 +351,18 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 274}, {580, 189}}</string>
|
||||
<string>{{0, 5}, {467, 458}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>203 321 788 504 0 0 1440 878 </string>
|
||||
<string>18 337 788 504 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>XCDetailModule</string>
|
||||
<key>Proportion</key>
|
||||
<string>189pt</string>
|
||||
<string>458pt</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Proportion</key>
|
||||
<string>580pt</string>
|
||||
<string>467pt</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Name</key>
|
||||
|
|
@ -376,9 +377,9 @@
|
|||
</array>
|
||||
<key>TableOfContents</key>
|
||||
<array>
|
||||
<string>8B563EC9161B5E170067FE32</string>
|
||||
<string>8BDD47AA1A48BB8900FB2F61</string>
|
||||
<string>1CE0B1FE06471DED0097A5F4</string>
|
||||
<string>8B563ECA161B5E170067FE32</string>
|
||||
<string>8BDD47AB1A48BB8900FB2F61</string>
|
||||
<string>1CE0B20306471E060097A5F4</string>
|
||||
<string>1CE0B20506471E060097A5F4</string>
|
||||
</array>
|
||||
|
|
@ -517,10 +518,10 @@
|
|||
<key>WindowOrderList</key>
|
||||
<array>
|
||||
<string>8BD3CCBD148831C90062E48C</string>
|
||||
<string>/Developer/Library/Xcode/Project Templates/System Plug-in/Audio Unit Effect/Audio Unit Effect/StarterAU.xcodeproj</string>
|
||||
<string>/Developer/Library/Xcode/Project Templates/System Plug-in/Audio Unit Effect/Audio Unit Effect with Cocoa View/StarterAU.xcodeproj</string>
|
||||
</array>
|
||||
<key>WindowString</key>
|
||||
<string>203 321 788 504 0 0 1440 878 </string>
|
||||
<string>18 337 788 504 0 0 1440 878 </string>
|
||||
<key>WindowToolsV3</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
|
@ -597,7 +598,7 @@
|
|||
<key>TableOfContents</key>
|
||||
<array>
|
||||
<string>8BD3CCBD148831C90062E48C</string>
|
||||
<string>8B563ECB161B5E170067FE32</string>
|
||||
<string>8BDD47AC1A48BB8900FB2F61</string>
|
||||
<string>1CD0528F0623707200166675</string>
|
||||
<string>XCMainBuildResultsModuleGUID</string>
|
||||
</array>
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
|
||||
PBXFileTableDataSourceColumnWidthsKey = (
|
||||
20,
|
||||
292,
|
||||
364,
|
||||
20,
|
||||
48,
|
||||
43,
|
||||
|
|
@ -32,7 +32,7 @@
|
|||
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
|
||||
PBXFileTableDataSourceColumnWidthsKey = (
|
||||
20,
|
||||
252,
|
||||
188,
|
||||
60,
|
||||
20,
|
||||
48,
|
||||
|
|
@ -49,72 +49,42 @@
|
|||
PBXFileDataSource_Warnings_ColumnID,
|
||||
);
|
||||
};
|
||||
PBXPerProjectTemplateStateSaveDate = 684085876;
|
||||
PBXWorkspaceStateSaveDate = 684085876;
|
||||
};
|
||||
perUserProjectItems = {
|
||||
8B71BB1F28C6567F0038254A /* PBXTextBookmark */ = 8B71BB1F28C6567F0038254A /* PBXTextBookmark */;
|
||||
8B71BB2028C6567F0038254A /* PBXTextBookmark */ = 8B71BB2028C6567F0038254A /* PBXTextBookmark */;
|
||||
8BA7F45728C3B858002FBAF8 /* PlistBookmark */ = 8BA7F45728C3B858002FBAF8 /* PlistBookmark */;
|
||||
PBXPerProjectTemplateStateSaveDate = 696982253;
|
||||
PBXWorkspaceStateSaveDate = 696982253;
|
||||
};
|
||||
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
|
||||
userBuildSettings = {
|
||||
};
|
||||
};
|
||||
8B71BB1F28C6567F0038254A /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BC6025B073B072D006C4272 /* Verbity2.h */;
|
||||
name = "Verbity2.h: 178";
|
||||
rLen = 0;
|
||||
rLoc = 6144;
|
||||
rType = 0;
|
||||
vrLen = 192;
|
||||
vrLoc = 6037;
|
||||
};
|
||||
8B71BB2028C6567F0038254A /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BC6025B073B072D006C4272 /* Verbity2.h */;
|
||||
name = "Verbity2.h: 178";
|
||||
rLen = 0;
|
||||
rLoc = 6144;
|
||||
rType = 0;
|
||||
vrLen = 192;
|
||||
vrLoc = 6037;
|
||||
};
|
||||
8BA05A660720730100365D66 /* Verbity2.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1002, 9558}}";
|
||||
sepNavSelRange = "{13609, 7771}";
|
||||
sepNavVisRange = "{20450, 1282}";
|
||||
sepNavWindowFrame = "{{16, 38}, {1049, 840}}";
|
||||
sepNavIntBoundsRect = "{{0, 0}, {831, 12168}}";
|
||||
sepNavSelRange = "{28850, 0}";
|
||||
sepNavVisRange = "{28044, 1443}";
|
||||
sepNavWindowFrame = "{{680, 41}, {843, 837}}";
|
||||
};
|
||||
};
|
||||
8BA05A690720730100365D66 /* Verbity2Version.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1056, 1062}}";
|
||||
sepNavSelRange = "{2886, 0}";
|
||||
sepNavVisRange = "{953, 1996}";
|
||||
sepNavWindowFrame = "{{15, 64}, {914, 809}}";
|
||||
sepNavSelRange = "{2898, 0}";
|
||||
sepNavVisRange = "{965, 1996}";
|
||||
sepNavWindowFrame = "{{576, 38}, {1050, 840}}";
|
||||
};
|
||||
};
|
||||
8BA7F45728C3B858002FBAF8 /* PlistBookmark */ = {
|
||||
isa = PlistBookmark;
|
||||
fRef = 8D01CCD10486CAD60068D4B7 /* Info.plist */;
|
||||
fallbackIsa = PBXBookmark;
|
||||
isK = 0;
|
||||
kPath = (
|
||||
CFBundleName,
|
||||
);
|
||||
name = /Users/christopherjohnson/Desktop/Verbity2/Info.plist;
|
||||
rLen = 0;
|
||||
rLoc = 9223372036854775808;
|
||||
8BA05A7F072073D200365D66 /* AUBase.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {516, 23430}}";
|
||||
sepNavSelRange = "{0, 0}";
|
||||
sepNavVisRange = "{0, 1336}";
|
||||
};
|
||||
};
|
||||
8BC6025B073B072D006C4272 /* Verbity2.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {482, 4338}}";
|
||||
sepNavSelRange = "{6144, 0}";
|
||||
sepNavVisRange = "{6037, 192}";
|
||||
sepNavWindowFrame = "{{30, 38}, {576, 817}}";
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1146, 4824}}";
|
||||
sepNavSelRange = "{7386, 0}";
|
||||
sepNavVisRange = "{4153, 1253}";
|
||||
sepNavWindowFrame = "{{661, 38}, {1050, 840}}";
|
||||
};
|
||||
};
|
||||
8BD3CCB8148830B20062E48C /* Source Control */ = {
|
||||
|
|
|
|||
|
|
@ -178,7 +178,7 @@
|
|||
<key>FavBarConfig</key>
|
||||
<dict>
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
<string>8BD7274F1D46E5A5000176F0</string>
|
||||
<string>8B376FC1298B1AF20027F1BA</string>
|
||||
<key>XCBarModuleItemNames</key>
|
||||
<dict/>
|
||||
<key>XCBarModuleItems</key>
|
||||
|
|
@ -225,8 +225,8 @@
|
|||
<array/>
|
||||
<key>PerspectiveWidths</key>
|
||||
<array>
|
||||
<integer>841</integer>
|
||||
<integer>841</integer>
|
||||
<integer>810</integer>
|
||||
<integer>810</integer>
|
||||
</array>
|
||||
<key>Perspectives</key>
|
||||
<array>
|
||||
|
|
@ -256,8 +256,6 @@
|
|||
<key>Layout</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>BecomeActive</key>
|
||||
<true/>
|
||||
<key>ContentConfiguration</key>
|
||||
<dict>
|
||||
<key>PBXBottomSmartGroupGIDs</key>
|
||||
|
|
@ -282,7 +280,7 @@
|
|||
<dict>
|
||||
<key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
|
||||
<array>
|
||||
<real>288</real>
|
||||
<real>185</real>
|
||||
</array>
|
||||
<key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
|
||||
<array>
|
||||
|
|
@ -296,8 +294,6 @@
|
|||
<string>089C166AFE841209C02AAC07</string>
|
||||
<string>08FB77ADFE841716C02AAC07</string>
|
||||
<string>8BA05A56072072A900365D66</string>
|
||||
<string>089C167CFE841241C02AAC07</string>
|
||||
<string>1C37FBAC04509CD000000102</string>
|
||||
</array>
|
||||
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
|
||||
<array>
|
||||
|
|
@ -309,7 +305,7 @@
|
|||
</array>
|
||||
</array>
|
||||
<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
|
||||
<string>{{0, 0}, {288, 595}}</string>
|
||||
<string>{{0, 0}, {185, 428}}</string>
|
||||
</dict>
|
||||
<key>PBXTopSmartGroupGIDs</key>
|
||||
<array/>
|
||||
|
|
@ -319,19 +315,19 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 0}, {305, 613}}</string>
|
||||
<string>{{0, 0}, {202, 446}}</string>
|
||||
<key>GroupTreeTableConfiguration</key>
|
||||
<array>
|
||||
<string>MainColumn</string>
|
||||
<real>288</real>
|
||||
<real>185</real>
|
||||
</array>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>52 158 841 654 0 0 1440 878 </string>
|
||||
<string>414 280 810 487 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXSmartGroupTreeModule</string>
|
||||
<key>Proportion</key>
|
||||
<string>305pt</string>
|
||||
<string>202pt</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Dock</key>
|
||||
|
|
@ -340,26 +336,17 @@
|
|||
<key>ContentConfiguration</key>
|
||||
<dict>
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
<string>8BD7274A1D46E5A5000176F0</string>
|
||||
<string>8B376FBC298B1AF20027F1BA</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string>Verbity2.h</string>
|
||||
<string></string>
|
||||
<key>PBXSplitModuleInNavigatorKey</key>
|
||||
<dict>
|
||||
<key>Split0</key>
|
||||
<dict>
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
<string>8BD7274B1D46E5A5000176F0</string>
|
||||
<string>8B376FBD298B1AF20027F1BA</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string>Verbity2.h</string>
|
||||
<key>_historyCapacity</key>
|
||||
<integer>0</integer>
|
||||
<key>bookmark</key>
|
||||
<string>8B71BB2028C6567F0038254A</string>
|
||||
<key>history</key>
|
||||
<array>
|
||||
<string>8BA7F45728C3B858002FBAF8</string>
|
||||
<string>8B71BB1F28C6567F0038254A</string>
|
||||
</array>
|
||||
<string></string>
|
||||
</dict>
|
||||
<key>SplitCount</key>
|
||||
<string>1</string>
|
||||
|
|
@ -372,18 +359,18 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 0}, {531, 202}}</string>
|
||||
<string>{{0, 0}, {603, 0}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>52 158 841 654 0 0 1440 878 </string>
|
||||
<string>414 280 810 487 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXNavigatorGroup</string>
|
||||
<key>Proportion</key>
|
||||
<string>202pt</string>
|
||||
<string>0pt</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Proportion</key>
|
||||
<string>406pt</string>
|
||||
<string>441pt</string>
|
||||
<key>Tabs</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
|
@ -397,9 +384,7 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{10, 27}, {531, 379}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>52 158 841 654 0 0 1440 878 </string>
|
||||
<string>{{10, 27}, {603, 414}}</string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>XCDetailModule</string>
|
||||
|
|
@ -453,7 +438,9 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{10, 27}, {531, 339}}</string>
|
||||
<string>{{10, 27}, {603, 414}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>414 280 810 487 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXBuildResultsModule</string>
|
||||
|
|
@ -462,7 +449,7 @@
|
|||
</dict>
|
||||
</array>
|
||||
<key>Proportion</key>
|
||||
<string>531pt</string>
|
||||
<string>603pt</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Name</key>
|
||||
|
|
@ -481,11 +468,11 @@
|
|||
</array>
|
||||
<key>TableOfContents</key>
|
||||
<array>
|
||||
<string>8B71BB2128C6567F0038254A</string>
|
||||
<string>8B376FBE298B1AF20027F1BA</string>
|
||||
<string>1CA23ED40692098700951B8B</string>
|
||||
<string>8B71BB2228C6567F0038254A</string>
|
||||
<string>8BD7274A1D46E5A5000176F0</string>
|
||||
<string>8B71BB2328C6567F0038254A</string>
|
||||
<string>8B376FBF298B1AF20027F1BA</string>
|
||||
<string>8B376FBC298B1AF20027F1BA</string>
|
||||
<string>8B376FC0298B1AF20027F1BA</string>
|
||||
<string>1CA23EDF0692099D00951B8B</string>
|
||||
<string>1CA23EE00692099D00951B8B</string>
|
||||
<string>1CA23EE10692099D00951B8B</string>
|
||||
|
|
@ -522,7 +509,7 @@
|
|||
<key>Identifier</key>
|
||||
<string>perspective.debug</string>
|
||||
<key>IsVertical</key>
|
||||
<true/>
|
||||
<integer>1</integer>
|
||||
<key>Layout</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
|
@ -541,7 +528,7 @@
|
|||
<key>Module</key>
|
||||
<string>PBXDebugCLIModule</string>
|
||||
<key>Proportion</key>
|
||||
<string>0pt</string>
|
||||
<string>0%</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>ContentConfiguration</key>
|
||||
|
|
@ -560,8 +547,8 @@
|
|||
<string>yes</string>
|
||||
<key>sizes</key>
|
||||
<array>
|
||||
<string>{{0, 0}, {395, 214}}</string>
|
||||
<string>{{395, 0}, {415, 214}}</string>
|
||||
<string>{{0, 0}, {395, 213}}</string>
|
||||
<string>{{395, 0}, {415, 213}}</string>
|
||||
</array>
|
||||
</dict>
|
||||
<key>VerticalSplitView</key>
|
||||
|
|
@ -576,8 +563,8 @@
|
|||
<string>yes</string>
|
||||
<key>sizes</key>
|
||||
<array>
|
||||
<string>{{0, 0}, {810, 214}}</string>
|
||||
<string>{{0, 214}, {810, 227}}</string>
|
||||
<string>{{0, 0}, {810, 213}}</string>
|
||||
<string>{{0, 213}, {810, 225}}</string>
|
||||
</array>
|
||||
</dict>
|
||||
</dict>
|
||||
|
|
@ -590,6 +577,8 @@
|
|||
</dict>
|
||||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>DebugConsoleDrawerSize</key>
|
||||
<string>{100, 120}</string>
|
||||
<key>DebugConsoleVisible</key>
|
||||
<string>None</string>
|
||||
<key>DebugConsoleWindowFrame</key>
|
||||
|
|
@ -597,54 +586,32 @@
|
|||
<key>DebugSTDIOWindowFrame</key>
|
||||
<string>{{200, 200}, {500, 300}}</string>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 5}, {810, 441}}</string>
|
||||
<key>PBXDebugSessionStackFrameViewKey</key>
|
||||
<dict>
|
||||
<key>DebugVariablesTableConfiguration</key>
|
||||
<array>
|
||||
<string>Name</string>
|
||||
<real>120</real>
|
||||
<string>Value</string>
|
||||
<real>85</real>
|
||||
<string>Summary</string>
|
||||
<real>185</real>
|
||||
</array>
|
||||
<key>Frame</key>
|
||||
<string>{{395, 0}, {415, 214}}</string>
|
||||
</dict>
|
||||
<string>{{0, 7}, {810, 438}}</string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXDebugSessionModule</string>
|
||||
<key>Proportion</key>
|
||||
<string>441pt</string>
|
||||
<string>443pt</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Name</key>
|
||||
<string>Debug</string>
|
||||
<key>ServiceClasses</key>
|
||||
<array>
|
||||
<string>XCModuleDock</string>
|
||||
<string>XCModuleDock</string>
|
||||
<string>PBXDebugCLIModule</string>
|
||||
<string>PBXDebugSessionModule</string>
|
||||
<string>PBXDebugProcessAndThreadModule</string>
|
||||
<string>PBXDebugProcessViewModule</string>
|
||||
<string>PBXDebugThreadViewModule</string>
|
||||
<string>PBXDebugStackFrameViewModule</string>
|
||||
<string>PBXNavigatorGroup</string>
|
||||
<string>XCConsole</string>
|
||||
</array>
|
||||
<key>TableOfContents</key>
|
||||
<array>
|
||||
<string>8BD727EC1D46ECF1000176F0</string>
|
||||
<string>1CC8E6A5069209BD00BB180A</string>
|
||||
<string>1CC8E6A6069209BD00BB180A</string>
|
||||
<string>1CCC7628064C1048000F2A68</string>
|
||||
<string>1CCC7629064C1048000F2A68</string>
|
||||
<string>8BD727ED1D46ECF1000176F0</string>
|
||||
<string>8BD727EE1D46ECF1000176F0</string>
|
||||
<string>8BD727EF1D46ECF1000176F0</string>
|
||||
<string>8BD727F01D46ECF1000176F0</string>
|
||||
<string>8BD727E71D46ECD9000176F0</string>
|
||||
<string>1CC8E6A7069209BD00BB180A</string>
|
||||
</array>
|
||||
<key>ToolbarConfigUserDefaultsMinorVersion</key>
|
||||
<string>2</string>
|
||||
<key>ToolbarConfiguration</key>
|
||||
<string>xcode.toolbar.config.debugV3</string>
|
||||
</dict>
|
||||
|
|
@ -658,7 +625,7 @@
|
|||
<key>StatusbarIsVisible</key>
|
||||
<true/>
|
||||
<key>TimeStamp</key>
|
||||
<real>684086911.71858203</real>
|
||||
<real>696982688.58456397</real>
|
||||
<key>ToolbarConfigUserDefaultsMinorVersion</key>
|
||||
<string>2</string>
|
||||
<key>ToolbarDisplayMode</key>
|
||||
|
|
@ -675,11 +642,10 @@
|
|||
<integer>5</integer>
|
||||
<key>WindowOrderList</key>
|
||||
<array>
|
||||
<string>8B71BB2428C6567F0038254A</string>
|
||||
<string>/Users/christopherjohnson/Desktop/airwindows/plugins/MacAU/Verbity2/Verbity2.xcodeproj</string>
|
||||
<string>/Users/christopherjohnson/Desktop/Verbity2/Verbity2.xcodeproj</string>
|
||||
</array>
|
||||
<key>WindowString</key>
|
||||
<string>52 158 841 654 0 0 1440 878 </string>
|
||||
<string>414 280 810 487 0 0 1440 878 </string>
|
||||
<key>WindowToolsV3</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
Binary file not shown.
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1340"
|
||||
LastUpgradeVersion = "1420"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
|
|
|||
|
|
@ -3,9 +3,9 @@
|
|||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 9/3/22
|
||||
* Created: 2/1/23
|
||||
*
|
||||
* Copyright: Copyright © 2022 Airwindows, Airwindows uses the MIT license
|
||||
* Copyright: Copyright © 2023 Airwindows, Airwindows uses the MIT license
|
||||
*
|
||||
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
|
||||
* consideration of your agreement to the following terms, and your use, installation, modification
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -51,13 +51,13 @@
|
|||
PBXFileDataSource_Warnings_ColumnID,
|
||||
);
|
||||
};
|
||||
PBXPerProjectTemplateStateSaveDate = 683218952;
|
||||
PBXWorkspaceStateSaveDate = 683218952;
|
||||
PBXPerProjectTemplateStateSaveDate = 696983498;
|
||||
PBXWorkspaceStateSaveDate = 696983498;
|
||||
};
|
||||
perUserProjectItems = {
|
||||
8BBC47D028B922DE00A201D3 /* PBXTextBookmark */ = 8BBC47D028B922DE00A201D3 /* PBXTextBookmark */;
|
||||
8B377060298B24E90027F1BA /* PBXTextBookmark */ = 8B377060298B24E90027F1BA /* PBXTextBookmark */;
|
||||
8B377061298B24E90027F1BA /* PBXTextBookmark */ = 8B377061298B24E90027F1BA /* PBXTextBookmark */;
|
||||
8BD11A3928B90ADB006EFFE5 /* PBXTextBookmark */ = 8BD11A3928B90ADB006EFFE5 /* PBXTextBookmark */;
|
||||
8BD11A3B28B90ADB006EFFE5 /* PBXTextBookmark */ = 8BD11A3B28B90ADB006EFFE5 /* PBXTextBookmark */;
|
||||
};
|
||||
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
|
||||
userBuildSettings = {
|
||||
|
|
@ -65,18 +65,18 @@
|
|||
};
|
||||
2407DEB6089929BA00EB68BF /* Chamber2.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {930, 3420}}";
|
||||
sepNavSelRange = "{486, 0}";
|
||||
sepNavVisRange = "{1210, 1307}";
|
||||
sepNavWindowFrame = "{{545, 47}, {895, 831}}";
|
||||
sepNavIntBoundsRect = "{{0, 0}, {948, 3366}}";
|
||||
sepNavSelRange = "{500, 1739}";
|
||||
sepNavVisRange = "{5555, 1537}";
|
||||
sepNavWindowFrame = "{{36, 47}, {895, 831}}";
|
||||
};
|
||||
};
|
||||
245463B80991757100464AD3 /* Chamber2.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {696, 2718}}";
|
||||
sepNavIntBoundsRect = "{{0, 0}, {696, 2484}}";
|
||||
sepNavSelRange = "{3592, 0}";
|
||||
sepNavVisRange = "{3489, 180}";
|
||||
sepNavWindowFrame = "{{541, 47}, {895, 831}}";
|
||||
sepNavVisRange = "{3585, 94}";
|
||||
sepNavWindowFrame = "{{56, 47}, {895, 831}}";
|
||||
};
|
||||
};
|
||||
24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = {
|
||||
|
|
@ -89,10 +89,10 @@
|
|||
};
|
||||
24D8286F09A914000093AEF8 /* Chamber2Proc.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {714, 9486}}";
|
||||
sepNavSelRange = "{2487, 0}";
|
||||
sepNavVisRange = "{2348, 153}";
|
||||
sepNavWindowFrame = "{{319, 47}, {895, 831}}";
|
||||
sepNavIntBoundsRect = "{{0, 0}, {966, 9216}}";
|
||||
sepNavSelRange = "{2436, 8573}";
|
||||
sepNavVisRange = "{18031, 1965}";
|
||||
sepNavWindowFrame = "{{13, 47}, {895, 831}}";
|
||||
};
|
||||
};
|
||||
8B02375E1D42B1C400E1E8C8 /* Source Control */ = {
|
||||
|
|
@ -109,15 +109,25 @@
|
|||
isa = PBXCodeSenseManager;
|
||||
indexTemplatePath = "";
|
||||
};
|
||||
8BBC47D028B922DE00A201D3 /* PBXTextBookmark */ = {
|
||||
8B377060298B24E90027F1BA /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 24D8286F09A914000093AEF8 /* Chamber2Proc.cpp */;
|
||||
name = "Chamber2Proc.cpp: 70";
|
||||
rLen = 0;
|
||||
rLoc = 2487;
|
||||
rLoc = 2496;
|
||||
rType = 0;
|
||||
vrLen = 153;
|
||||
vrLoc = 2348;
|
||||
vrLen = 72;
|
||||
vrLoc = 2436;
|
||||
};
|
||||
8B377061298B24E90027F1BA /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 245463B80991757100464AD3 /* Chamber2.h */;
|
||||
name = "Chamber2.h: 120";
|
||||
rLen = 0;
|
||||
rLoc = 3592;
|
||||
rType = 0;
|
||||
vrLen = 94;
|
||||
vrLoc = 3585;
|
||||
};
|
||||
8BD11A3928B90ADB006EFFE5 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
|
|
@ -129,16 +139,6 @@
|
|||
vrLen = 180;
|
||||
vrLoc = 3489;
|
||||
};
|
||||
8BD11A3B28B90ADB006EFFE5 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 24D8286F09A914000093AEF8 /* Chamber2Proc.cpp */;
|
||||
name = "Chamber2Proc.cpp: 70";
|
||||
rLen = 0;
|
||||
rLoc = 2487;
|
||||
rType = 0;
|
||||
vrLen = 250;
|
||||
vrLoc = 2251;
|
||||
};
|
||||
8D01CCC60486CAD60068D4B7 /* Chamber2 */ = {
|
||||
activeExec = 0;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -323,7 +323,7 @@
|
|||
<real>185</real>
|
||||
</array>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>516 278 810 487 0 0 1440 878 </string>
|
||||
<string>21 262 810 487 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXSmartGroupTreeModule</string>
|
||||
|
|
@ -339,7 +339,7 @@
|
|||
<key>PBXProjectModuleGUID</key>
|
||||
<string>8B0237581D42B1C400E1E8C8</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string>Chamber2Proc.cpp</string>
|
||||
<string>Chamber2.h</string>
|
||||
<key>PBXSplitModuleInNavigatorKey</key>
|
||||
<dict>
|
||||
<key>Split0</key>
|
||||
|
|
@ -347,15 +347,15 @@
|
|||
<key>PBXProjectModuleGUID</key>
|
||||
<string>8B0237591D42B1C400E1E8C8</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string>Chamber2Proc.cpp</string>
|
||||
<string>Chamber2.h</string>
|
||||
<key>_historyCapacity</key>
|
||||
<integer>0</integer>
|
||||
<key>bookmark</key>
|
||||
<string>8BBC47D028B922DE00A201D3</string>
|
||||
<string>8B377061298B24E90027F1BA</string>
|
||||
<key>history</key>
|
||||
<array>
|
||||
<string>8B377060298B24E90027F1BA</string>
|
||||
<string>8BD11A3928B90ADB006EFFE5</string>
|
||||
<string>8BD11A3B28B90ADB006EFFE5</string>
|
||||
</array>
|
||||
</dict>
|
||||
<key>SplitCount</key>
|
||||
|
|
@ -369,18 +369,18 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 0}, {603, 117}}</string>
|
||||
<string>{{0, 0}, {603, 51}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>516 278 810 487 0 0 1440 878 </string>
|
||||
<string>21 262 810 487 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXNavigatorGroup</string>
|
||||
<key>Proportion</key>
|
||||
<string>117pt</string>
|
||||
<string>51pt</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Proportion</key>
|
||||
<string>324pt</string>
|
||||
<string>390pt</string>
|
||||
<key>Tabs</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
|
@ -394,9 +394,9 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{10, 27}, {603, 297}}</string>
|
||||
<string>{{10, 27}, {603, 363}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>516 278 810 487 0 0 1440 878 </string>
|
||||
<string>21 262 810 487 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>XCDetailModule</string>
|
||||
|
|
@ -478,11 +478,11 @@
|
|||
</array>
|
||||
<key>TableOfContents</key>
|
||||
<array>
|
||||
<string>8BBC47D128B922DE00A201D3</string>
|
||||
<string>8B377018298B1FCF0027F1BA</string>
|
||||
<string>1CA23ED40692098700951B8B</string>
|
||||
<string>8BBC47D228B922DE00A201D3</string>
|
||||
<string>8B377019298B1FCF0027F1BA</string>
|
||||
<string>8B0237581D42B1C400E1E8C8</string>
|
||||
<string>8BBC47D328B922DE00A201D3</string>
|
||||
<string>8B37701A298B1FCF0027F1BA</string>
|
||||
<string>1CA23EDF0692099D00951B8B</string>
|
||||
<string>1CA23EE00692099D00951B8B</string>
|
||||
<string>1CA23EE10692099D00951B8B</string>
|
||||
|
|
@ -655,7 +655,7 @@
|
|||
<key>StatusbarIsVisible</key>
|
||||
<true/>
|
||||
<key>TimeStamp</key>
|
||||
<real>683221726.47490799</real>
|
||||
<real>696984809.70548403</real>
|
||||
<key>ToolbarConfigUserDefaultsMinorVersion</key>
|
||||
<string>2</string>
|
||||
<key>ToolbarDisplayMode</key>
|
||||
|
|
@ -672,10 +672,11 @@
|
|||
<integer>5</integer>
|
||||
<key>WindowOrderList</key>
|
||||
<array>
|
||||
<string>/Users/christopherjohnson/Desktop/Chamber2/Chamber2.xcodeproj</string>
|
||||
<string>8B377062298B24E90027F1BA</string>
|
||||
<string>/Users/christopherjohnson/Desktop/airwindows/plugins/MacVST/Chamber2/Chamber2.xcodeproj</string>
|
||||
</array>
|
||||
<key>WindowString</key>
|
||||
<string>516 278 810 487 0 0 1440 878 </string>
|
||||
<string>21 262 810 487 0 0 1440 878 </string>
|
||||
<key>WindowToolsV3</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
|
|
|||
|
|
@ -12,15 +12,15 @@
|
|||
24CFB70407E7A0220081BD57 /* PkgInfo in Resources */ = {isa = PBXBuildFile; fileRef = 24CFB70307E7A0220081BD57 /* PkgInfo */; };
|
||||
24D8287009A914000093AEF8 /* Chamber2Proc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 24D8286F09A914000093AEF8 /* Chamber2Proc.cpp */; };
|
||||
24D8287F09A9164A0093AEF8 /* xcode_vst_prefix.h in Headers */ = {isa = PBXBuildFile; fileRef = 24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */; };
|
||||
8B56A30028BAB726009E8E70 /* vstfxstore.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B56A2F428BAB726009E8E70 /* vstfxstore.h */; };
|
||||
8B56A30128BAB726009E8E70 /* aeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B56A2F528BAB726009E8E70 /* aeffect.h */; };
|
||||
8B56A30228BAB726009E8E70 /* aeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B56A2F628BAB726009E8E70 /* aeffectx.h */; };
|
||||
8B56A30328BAB726009E8E70 /* audioeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B56A2FA28BAB726009E8E70 /* audioeffectx.h */; };
|
||||
8B56A30428BAB726009E8E70 /* audioeffect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B56A2FB28BAB726009E8E70 /* audioeffect.cpp */; };
|
||||
8B56A30528BAB726009E8E70 /* audioeffectx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B56A2FC28BAB726009E8E70 /* audioeffectx.cpp */; };
|
||||
8B56A30628BAB726009E8E70 /* aeffeditor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B56A2FD28BAB726009E8E70 /* aeffeditor.h */; };
|
||||
8B56A30728BAB726009E8E70 /* vstplugmain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B56A2FE28BAB726009E8E70 /* vstplugmain.cpp */; };
|
||||
8B56A30828BAB726009E8E70 /* audioeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B56A2FF28BAB726009E8E70 /* audioeffect.h */; };
|
||||
8BC95672298DC3820050FB42 /* vstfxstore.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC95666298DC3820050FB42 /* vstfxstore.h */; };
|
||||
8BC95673298DC3820050FB42 /* aeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC95667298DC3820050FB42 /* aeffect.h */; };
|
||||
8BC95674298DC3820050FB42 /* aeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC95668298DC3820050FB42 /* aeffectx.h */; };
|
||||
8BC95675298DC3820050FB42 /* audioeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC9566C298DC3820050FB42 /* audioeffectx.h */; };
|
||||
8BC95676298DC3820050FB42 /* audioeffect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BC9566D298DC3820050FB42 /* audioeffect.cpp */; };
|
||||
8BC95677298DC3820050FB42 /* audioeffectx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BC9566E298DC3820050FB42 /* audioeffectx.cpp */; };
|
||||
8BC95678298DC3820050FB42 /* aeffeditor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC9566F298DC3820050FB42 /* aeffeditor.h */; };
|
||||
8BC95679298DC3820050FB42 /* vstplugmain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BC95670298DC3820050FB42 /* vstplugmain.cpp */; };
|
||||
8BC9567A298DC3820050FB42 /* audioeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC95671298DC3820050FB42 /* audioeffect.h */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
|
|
@ -30,15 +30,15 @@
|
|||
24CFB70307E7A0220081BD57 /* PkgInfo */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = PkgInfo; path = mac/PkgInfo; sourceTree = "<group>"; };
|
||||
24D8286F09A914000093AEF8 /* Chamber2Proc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Chamber2Proc.cpp; path = source/Chamber2Proc.cpp; sourceTree = "<group>"; };
|
||||
24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = xcode_vst_prefix.h; path = mac/xcode_vst_prefix.h; sourceTree = SOURCE_ROOT; };
|
||||
8B56A2F428BAB726009E8E70 /* vstfxstore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstfxstore.h; sourceTree = "<group>"; };
|
||||
8B56A2F528BAB726009E8E70 /* aeffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffect.h; sourceTree = "<group>"; };
|
||||
8B56A2F628BAB726009E8E70 /* aeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffectx.h; sourceTree = "<group>"; };
|
||||
8B56A2FA28BAB726009E8E70 /* audioeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audioeffectx.h; sourceTree = "<group>"; };
|
||||
8B56A2FB28BAB726009E8E70 /* audioeffect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffect.cpp; sourceTree = "<group>"; };
|
||||
8B56A2FC28BAB726009E8E70 /* audioeffectx.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffectx.cpp; sourceTree = "<group>"; };
|
||||
8B56A2FD28BAB726009E8E70 /* aeffeditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffeditor.h; sourceTree = "<group>"; };
|
||||
8B56A2FE28BAB726009E8E70 /* vstplugmain.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstplugmain.cpp; sourceTree = "<group>"; };
|
||||
8B56A2FF28BAB726009E8E70 /* audioeffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audioeffect.h; sourceTree = "<group>"; };
|
||||
8BC95666298DC3820050FB42 /* vstfxstore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstfxstore.h; sourceTree = "<group>"; };
|
||||
8BC95667298DC3820050FB42 /* aeffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffect.h; sourceTree = "<group>"; };
|
||||
8BC95668298DC3820050FB42 /* aeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffectx.h; sourceTree = "<group>"; };
|
||||
8BC9566C298DC3820050FB42 /* audioeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audioeffectx.h; sourceTree = "<group>"; };
|
||||
8BC9566D298DC3820050FB42 /* audioeffect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffect.cpp; sourceTree = "<group>"; };
|
||||
8BC9566E298DC3820050FB42 /* audioeffectx.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffectx.cpp; sourceTree = "<group>"; };
|
||||
8BC9566F298DC3820050FB42 /* aeffeditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffeditor.h; sourceTree = "<group>"; };
|
||||
8BC95670298DC3820050FB42 /* vstplugmain.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstplugmain.cpp; sourceTree = "<group>"; };
|
||||
8BC95671298DC3820050FB42 /* audioeffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audioeffect.h; sourceTree = "<group>"; };
|
||||
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = mac/Info.plist; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
|
|
@ -66,7 +66,7 @@
|
|||
08FB77ADFE841716C02AAC07 /* Source */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B56A2F128BAB726009E8E70 /* vstsdk2.4 */,
|
||||
8BC95663298DC3820050FB42 /* vstsdk2.4 */,
|
||||
2407DEB6089929BA00EB68BF /* Chamber2.cpp */,
|
||||
24D8286F09A914000093AEF8 /* Chamber2Proc.cpp */,
|
||||
245463B80991757100464AD3 /* Chamber2.h */,
|
||||
|
|
@ -82,59 +82,59 @@
|
|||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B56A2F128BAB726009E8E70 /* vstsdk2.4 */ = {
|
||||
8BC95663298DC3820050FB42 /* vstsdk2.4 */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B56A2F228BAB726009E8E70 /* pluginterfaces */,
|
||||
8B56A2F728BAB726009E8E70 /* public.sdk */,
|
||||
8BC95664298DC3820050FB42 /* pluginterfaces */,
|
||||
8BC95669298DC3820050FB42 /* public.sdk */,
|
||||
);
|
||||
name = vstsdk2.4;
|
||||
path = ../../../../vstsdk2.4;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B56A2F228BAB726009E8E70 /* pluginterfaces */ = {
|
||||
8BC95664298DC3820050FB42 /* pluginterfaces */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B56A2F328BAB726009E8E70 /* vst2.x */,
|
||||
8BC95665298DC3820050FB42 /* vst2.x */,
|
||||
);
|
||||
path = pluginterfaces;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B56A2F328BAB726009E8E70 /* vst2.x */ = {
|
||||
8BC95665298DC3820050FB42 /* vst2.x */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B56A2F428BAB726009E8E70 /* vstfxstore.h */,
|
||||
8B56A2F528BAB726009E8E70 /* aeffect.h */,
|
||||
8B56A2F628BAB726009E8E70 /* aeffectx.h */,
|
||||
8BC95666298DC3820050FB42 /* vstfxstore.h */,
|
||||
8BC95667298DC3820050FB42 /* aeffect.h */,
|
||||
8BC95668298DC3820050FB42 /* aeffectx.h */,
|
||||
);
|
||||
path = vst2.x;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B56A2F728BAB726009E8E70 /* public.sdk */ = {
|
||||
8BC95669298DC3820050FB42 /* public.sdk */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B56A2F828BAB726009E8E70 /* source */,
|
||||
8BC9566A298DC3820050FB42 /* source */,
|
||||
);
|
||||
path = public.sdk;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B56A2F828BAB726009E8E70 /* source */ = {
|
||||
8BC9566A298DC3820050FB42 /* source */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B56A2F928BAB726009E8E70 /* vst2.x */,
|
||||
8BC9566B298DC3820050FB42 /* vst2.x */,
|
||||
);
|
||||
path = source;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B56A2F928BAB726009E8E70 /* vst2.x */ = {
|
||||
8BC9566B298DC3820050FB42 /* vst2.x */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B56A2FA28BAB726009E8E70 /* audioeffectx.h */,
|
||||
8B56A2FB28BAB726009E8E70 /* audioeffect.cpp */,
|
||||
8B56A2FC28BAB726009E8E70 /* audioeffectx.cpp */,
|
||||
8B56A2FD28BAB726009E8E70 /* aeffeditor.h */,
|
||||
8B56A2FE28BAB726009E8E70 /* vstplugmain.cpp */,
|
||||
8B56A2FF28BAB726009E8E70 /* audioeffect.h */,
|
||||
8BC9566C298DC3820050FB42 /* audioeffectx.h */,
|
||||
8BC9566D298DC3820050FB42 /* audioeffect.cpp */,
|
||||
8BC9566E298DC3820050FB42 /* audioeffectx.cpp */,
|
||||
8BC9566F298DC3820050FB42 /* aeffeditor.h */,
|
||||
8BC95670298DC3820050FB42 /* vstplugmain.cpp */,
|
||||
8BC95671298DC3820050FB42 /* audioeffect.h */,
|
||||
);
|
||||
path = vst2.x;
|
||||
sourceTree = "<group>";
|
||||
|
|
@ -146,14 +146,14 @@
|
|||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8B56A30628BAB726009E8E70 /* aeffeditor.h in Headers */,
|
||||
8BC95678298DC3820050FB42 /* aeffeditor.h in Headers */,
|
||||
245463B90991757100464AD3 /* Chamber2.h in Headers */,
|
||||
8B56A30828BAB726009E8E70 /* audioeffect.h in Headers */,
|
||||
8B56A30128BAB726009E8E70 /* aeffect.h in Headers */,
|
||||
8BC9567A298DC3820050FB42 /* audioeffect.h in Headers */,
|
||||
8BC95673298DC3820050FB42 /* aeffect.h in Headers */,
|
||||
24D8287F09A9164A0093AEF8 /* xcode_vst_prefix.h in Headers */,
|
||||
8B56A30328BAB726009E8E70 /* audioeffectx.h in Headers */,
|
||||
8B56A30028BAB726009E8E70 /* vstfxstore.h in Headers */,
|
||||
8B56A30228BAB726009E8E70 /* aeffectx.h in Headers */,
|
||||
8BC95675298DC3820050FB42 /* audioeffectx.h in Headers */,
|
||||
8BC95672298DC3820050FB42 /* vstfxstore.h in Headers */,
|
||||
8BC95674298DC3820050FB42 /* aeffectx.h in Headers */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
|
@ -185,7 +185,7 @@
|
|||
089C1669FE841209C02AAC07 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 1340;
|
||||
LastUpgradeCheck = 1420;
|
||||
};
|
||||
buildConfigurationList = 24BEAAF108919AE700E695F9 /* Build configuration list for PBXProject "Chamber2" */;
|
||||
compatibilityVersion = "Xcode 2.4";
|
||||
|
|
@ -195,8 +195,8 @@
|
|||
Base,
|
||||
fr,
|
||||
de,
|
||||
en,
|
||||
ja,
|
||||
en,
|
||||
);
|
||||
mainGroup = 089C166AFE841209C02AAC07 /* FM-Chopper */;
|
||||
projectDirPath = "";
|
||||
|
|
@ -240,10 +240,10 @@
|
|||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8B56A30528BAB726009E8E70 /* audioeffectx.cpp in Sources */,
|
||||
8BC95677298DC3820050FB42 /* audioeffectx.cpp in Sources */,
|
||||
2407DEB9089929BA00EB68BF /* Chamber2.cpp in Sources */,
|
||||
8B56A30428BAB726009E8E70 /* audioeffect.cpp in Sources */,
|
||||
8B56A30728BAB726009E8E70 /* vstplugmain.cpp in Sources */,
|
||||
8BC95676298DC3820050FB42 /* audioeffect.cpp in Sources */,
|
||||
8BC95679298DC3820050FB42 /* vstplugmain.cpp in Sources */,
|
||||
24D8287009A914000093AEF8 /* Chamber2Proc.cpp in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
|
|
@ -256,10 +256,13 @@
|
|||
buildSettings = {
|
||||
ARCHS = "$(ARCHS_STANDARD)";
|
||||
CLANG_ENABLE_OBJC_WEAK = YES;
|
||||
CODE_SIGN_IDENTITY = "Developer ID Application";
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Developer ID Application";
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEVELOPMENT_TEAM = 9BMAKYA76W;
|
||||
DEAD_CODE_STRIPPING = YES;
|
||||
DEVELOPMENT_TEAM = "";
|
||||
"DEVELOPMENT_TEAM[sdk=macosx*]" = 9BMAKYA76W;
|
||||
FRAMEWORK_SEARCH_PATHS = "";
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_ENABLE_TRIGRAPHS = NO;
|
||||
|
|
@ -298,11 +301,14 @@
|
|||
buildSettings = {
|
||||
ARCHS = "$(ARCHS_STANDARD)";
|
||||
CLANG_ENABLE_OBJC_WEAK = YES;
|
||||
CODE_SIGN_IDENTITY = "Developer ID Application";
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Developer ID Application";
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
COPY_PHASE_STRIP = YES;
|
||||
DEAD_CODE_STRIPPING = YES;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
DEVELOPMENT_TEAM = 9BMAKYA76W;
|
||||
DEVELOPMENT_TEAM = "";
|
||||
"DEVELOPMENT_TEAM[sdk=macosx*]" = 9BMAKYA76W;
|
||||
FRAMEWORK_SEARCH_PATHS = "";
|
||||
GCC_C_LANGUAGE_STANDARD = c99;
|
||||
GCC_ENABLE_TRIGRAPHS = NO;
|
||||
|
|
@ -363,6 +369,7 @@
|
|||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
DEAD_CODE_STRIPPING = YES;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
ENABLE_TESTABILITY = YES;
|
||||
GCC_MODEL_TUNING = G5;
|
||||
|
|
@ -407,6 +414,7 @@
|
|||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
DEAD_CODE_STRIPPING = YES;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = c99;
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1340"
|
||||
LastUpgradeVersion = "1420"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ void Chamber2::processReplacing(float **inputs, float **outputs, VstInt32 sample
|
|||
|
||||
double size = (A*0.9)+0.1;
|
||||
double regen = (1.0-(pow(1.0-B,2)))*0.123;
|
||||
double echoScale = 1.0-(pow(C,3));
|
||||
double echoScale = 1.0-C;
|
||||
double echo = 0.618033988749894848204586+((1.0-0.618033988749894848204586)*echoScale);
|
||||
double interpolate = (1.0-echo)*0.381966011250105;
|
||||
//this now goes from Chamber, to all the reverb delays being exactly the same
|
||||
|
|
@ -41,7 +41,8 @@ void Chamber2::processReplacing(float **inputs, float **outputs, VstInt32 sample
|
|||
//that's so it can be on submixes without cutting back dry channel when adjusted:
|
||||
//unless you go super heavy, you are only adjusting the added verb loudness.
|
||||
|
||||
delayE = delayM = 9900*size;
|
||||
delayM = sqrt(9900*size);
|
||||
delayE = 9900*size;
|
||||
delayF = delayE*echo;
|
||||
delayG = delayF*echo;
|
||||
delayH = delayG*echo;
|
||||
|
|
@ -159,13 +160,13 @@ void Chamber2::processReplacing(float **inputs, float **outputs, VstInt32 sample
|
|||
double outHR = aHR[countH-((countH > delayH)?delayH+1:0)];
|
||||
//third block: final outputs
|
||||
|
||||
feedbackAL = (outEL - (outFL + outGL + outHL));
|
||||
feedbackAR = (outEL - (outFL + outGL + outHL));
|
||||
feedbackBL = (outFL - (outEL + outGL + outHL));
|
||||
feedbackCL = (outGL - (outEL + outFL + outHL));
|
||||
feedbackCR = (outGL - (outEL + outFL + outHL));
|
||||
feedbackDL = (outHL - (outEL + outFL + outGL));
|
||||
feedbackAR = (outER - (outFR + outGR + outHR));
|
||||
feedbackAL = (outER - (outFR + outGR + outHR));
|
||||
feedbackBR = (outFR - (outER + outGR + outHR));
|
||||
feedbackCR = (outGR - (outER + outFR + outHR));
|
||||
feedbackCL = (outGR - (outER + outFR + outHR));
|
||||
feedbackDR = (outHR - (outER + outFR + outGR));
|
||||
//which we need to feed back into the input again, a bit
|
||||
|
||||
|
|
@ -280,7 +281,7 @@ void Chamber2::processDoubleReplacing(double **inputs, double **outputs, VstInt3
|
|||
|
||||
double size = (A*0.9)+0.1;
|
||||
double regen = (1.0-(pow(1.0-B,2)))*0.123;
|
||||
double echoScale = 1.0-(pow(C,3));
|
||||
double echoScale = 1.0-C;
|
||||
double echo = 0.618033988749894848204586+((1.0-0.618033988749894848204586)*echoScale);
|
||||
double interpolate = (1.0-echo)*0.381966011250105;
|
||||
//this now goes from Chamber, to all the reverb delays being exactly the same
|
||||
|
|
@ -296,7 +297,8 @@ void Chamber2::processDoubleReplacing(double **inputs, double **outputs, VstInt3
|
|||
//that's so it can be on submixes without cutting back dry channel when adjusted:
|
||||
//unless you go super heavy, you are only adjusting the added verb loudness.
|
||||
|
||||
delayE = delayM = 9900*size;
|
||||
delayM = sqrt(9900*size);
|
||||
delayE = 9900*size;
|
||||
delayF = delayE*echo;
|
||||
delayG = delayF*echo;
|
||||
delayH = delayG*echo;
|
||||
|
|
@ -414,13 +416,13 @@ void Chamber2::processDoubleReplacing(double **inputs, double **outputs, VstInt3
|
|||
double outHR = aHR[countH-((countH > delayH)?delayH+1:0)];
|
||||
//third block: final outputs
|
||||
|
||||
feedbackAL = (outEL - (outFL + outGL + outHL));
|
||||
feedbackAR = (outEL - (outFL + outGL + outHL));
|
||||
feedbackBL = (outFL - (outEL + outGL + outHL));
|
||||
feedbackCL = (outGL - (outEL + outFL + outHL));
|
||||
feedbackCR = (outGL - (outEL + outFL + outHL));
|
||||
feedbackDL = (outHL - (outEL + outFL + outGL));
|
||||
feedbackAR = (outER - (outFR + outGR + outHR));
|
||||
feedbackAL = (outER - (outFR + outGR + outHR));
|
||||
feedbackBR = (outFR - (outER + outGR + outHR));
|
||||
feedbackCR = (outGR - (outER + outFR + outHR));
|
||||
feedbackCL = (outGR - (outER + outFR + outHR));
|
||||
feedbackDR = (outHR - (outER + outFR + outGR));
|
||||
//which we need to feed back into the input again, a bit
|
||||
|
||||
|
|
|
|||
|
|
@ -49,12 +49,13 @@
|
|||
PBXFileDataSource_Warnings_ColumnID,
|
||||
);
|
||||
};
|
||||
PBXPerProjectTemplateStateSaveDate = 684085851;
|
||||
PBXWorkspaceStateSaveDate = 684085851;
|
||||
PBXPerProjectTemplateStateSaveDate = 696975647;
|
||||
PBXWorkspaceStateSaveDate = 696975647;
|
||||
};
|
||||
perUserProjectItems = {
|
||||
8B71BB5128C65C420038254A /* XCBuildMessageTextBookmark */ = 8B71BB5128C65C420038254A /* XCBuildMessageTextBookmark */;
|
||||
8B71BB5228C65C420038254A /* PBXTextBookmark */ = 8B71BB5228C65C420038254A /* PBXTextBookmark */;
|
||||
8B376F622989BCC00027F1BA /* PBXTextBookmark */ = 8B376F622989BCC00027F1BA /* PBXTextBookmark */;
|
||||
8B376F632989BCC00027F1BA /* PBXTextBookmark */ = 8B376F632989BCC00027F1BA /* PBXTextBookmark */;
|
||||
8B376FD8298B1C860027F1BA /* PBXTextBookmark */ = 8B376FD8298B1C860027F1BA /* PBXTextBookmark */;
|
||||
};
|
||||
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
|
||||
userBuildSettings = {
|
||||
|
|
@ -62,18 +63,18 @@
|
|||
};
|
||||
2407DEB6089929BA00EB68BF /* Verbity2.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {948, 4518}}";
|
||||
sepNavSelRange = "{3158, 0}";
|
||||
sepNavVisRange = "{4802, 1216}";
|
||||
sepNavWindowFrame = "{{513, 47}, {895, 831}}";
|
||||
sepNavIntBoundsRect = "{{0, 0}, {948, 4284}}";
|
||||
sepNavSelRange = "{3953, 0}";
|
||||
sepNavVisRange = "{3399, 1479}";
|
||||
sepNavWindowFrame = "{{14, 47}, {895, 831}}";
|
||||
};
|
||||
};
|
||||
245463B80991757100464AD3 /* Verbity2.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1101, 3384}}";
|
||||
sepNavSelRange = "{4015, 0}";
|
||||
sepNavVisRange = "{3513, 698}";
|
||||
sepNavWindowFrame = "{{550, 47}, {895, 831}}";
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1110, 3510}}";
|
||||
sepNavSelRange = "{2436, 2240}";
|
||||
sepNavVisRange = "{4036, 705}";
|
||||
sepNavWindowFrame = "{{19, 47}, {895, 831}}";
|
||||
};
|
||||
};
|
||||
24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = {
|
||||
|
|
@ -86,10 +87,10 @@
|
|||
};
|
||||
24D8286F09A914000093AEF8 /* Verbity2Proc.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {984, 19692}}";
|
||||
sepNavSelRange = "{4135, 0}";
|
||||
sepNavVisRange = "{4031, 348}";
|
||||
sepNavWindowFrame = "{{189, 38}, {1236, 840}}";
|
||||
sepNavIntBoundsRect = "{{0, 0}, {984, 12852}}";
|
||||
sepNavSelRange = "{4103, 0}";
|
||||
sepNavVisRange = "{4115, 66}";
|
||||
sepNavWindowFrame = "{{3, 38}, {1050, 840}}";
|
||||
};
|
||||
};
|
||||
8B02375E1D42B1C400E1E8C8 /* Source Control */ = {
|
||||
|
|
@ -106,24 +107,35 @@
|
|||
isa = PBXCodeSenseManager;
|
||||
indexTemplatePath = "";
|
||||
};
|
||||
8B71BB5128C65C420038254A /* XCBuildMessageTextBookmark */ = {
|
||||
8B376F622989BCC00027F1BA /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
comments = "'countZL' was not declared in this scope";
|
||||
fRef = 24D8286F09A914000093AEF8 /* Verbity2Proc.cpp */;
|
||||
fallbackIsa = XCBuildMessageTextBookmark;
|
||||
rLen = 1;
|
||||
rLoc = 106;
|
||||
rType = 1;
|
||||
};
|
||||
8B71BB5228C65C420038254A /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 24D8286F09A914000093AEF8 /* Verbity2Proc.cpp */;
|
||||
name = "Verbity2Proc.cpp: 107";
|
||||
fRef = 245463B80991757100464AD3 /* Verbity2.h */;
|
||||
name = "Verbity2.h: 154";
|
||||
rLen = 0;
|
||||
rLoc = 4135;
|
||||
rLoc = 4019;
|
||||
rType = 0;
|
||||
vrLen = 348;
|
||||
vrLoc = 4031;
|
||||
vrLen = 63;
|
||||
vrLoc = 4038;
|
||||
};
|
||||
8B376F632989BCC00027F1BA /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 24D8286F09A914000093AEF8 /* Verbity2Proc.cpp */;
|
||||
name = "Verbity2Proc.cpp: 105";
|
||||
rLen = 0;
|
||||
rLoc = 4103;
|
||||
rType = 0;
|
||||
vrLen = 128;
|
||||
vrLoc = 4115;
|
||||
};
|
||||
8B376FD8298B1C860027F1BA /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 24D8286F09A914000093AEF8 /* Verbity2Proc.cpp */;
|
||||
name = "Verbity2Proc.cpp: 105";
|
||||
rLen = 0;
|
||||
rLoc = 4103;
|
||||
rType = 0;
|
||||
vrLen = 66;
|
||||
vrLoc = 4115;
|
||||
};
|
||||
8D01CCC60486CAD60068D4B7 /* Verbity2 */ = {
|
||||
activeExec = 0;
|
||||
|
|
|
|||
|
|
@ -256,6 +256,8 @@
|
|||
<key>Layout</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>BecomeActive</key>
|
||||
<true/>
|
||||
<key>ContentConfiguration</key>
|
||||
<dict>
|
||||
<key>PBXBottomSmartGroupGIDs</key>
|
||||
|
|
@ -321,7 +323,7 @@
|
|||
<real>185</real>
|
||||
</array>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>608 281 810 487 0 0 1440 878 </string>
|
||||
<string>68 308 810 487 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXSmartGroupTreeModule</string>
|
||||
|
|
@ -349,10 +351,11 @@
|
|||
<key>_historyCapacity</key>
|
||||
<integer>0</integer>
|
||||
<key>bookmark</key>
|
||||
<string>8B71BB5228C65C420038254A</string>
|
||||
<string>8B376FD8298B1C860027F1BA</string>
|
||||
<key>history</key>
|
||||
<array>
|
||||
<string>8B71BB5128C65C420038254A</string>
|
||||
<string>8B376F622989BCC00027F1BA</string>
|
||||
<string>8B376F632989BCC00027F1BA</string>
|
||||
</array>
|
||||
</dict>
|
||||
<key>SplitCount</key>
|
||||
|
|
@ -366,18 +369,18 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 0}, {603, 132}}</string>
|
||||
<string>{{0, 0}, {603, 51}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>608 281 810 487 0 0 1440 878 </string>
|
||||
<string>68 308 810 487 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXNavigatorGroup</string>
|
||||
<key>Proportion</key>
|
||||
<string>132pt</string>
|
||||
<string>51pt</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Proportion</key>
|
||||
<string>309pt</string>
|
||||
<string>390pt</string>
|
||||
<key>Tabs</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
|
@ -391,7 +394,9 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{10, 27}, {603, 282}}</string>
|
||||
<string>{{10, 27}, {603, 363}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>68 308 810 487 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>XCDetailModule</string>
|
||||
|
|
@ -446,8 +451,6 @@
|
|||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{10, 27}, {603, 282}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>608 281 810 487 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXBuildResultsModule</string>
|
||||
|
|
@ -475,11 +478,11 @@
|
|||
</array>
|
||||
<key>TableOfContents</key>
|
||||
<array>
|
||||
<string>8B71BB5328C65C420038254A</string>
|
||||
<string>8B376FD9298B1C860027F1BA</string>
|
||||
<string>1CA23ED40692098700951B8B</string>
|
||||
<string>8B71BB5428C65C420038254A</string>
|
||||
<string>8B376FDA298B1C860027F1BA</string>
|
||||
<string>8B0237581D42B1C400E1E8C8</string>
|
||||
<string>8B71BB5528C65C420038254A</string>
|
||||
<string>8B376FDB298B1C860027F1BA</string>
|
||||
<string>1CA23EDF0692099D00951B8B</string>
|
||||
<string>1CA23EE00692099D00951B8B</string>
|
||||
<string>1CA23EE10692099D00951B8B</string>
|
||||
|
|
@ -632,7 +635,7 @@
|
|||
<key>StatusbarIsVisible</key>
|
||||
<true/>
|
||||
<key>TimeStamp</key>
|
||||
<real>684088386.893942</real>
|
||||
<real>696982662.16158402</real>
|
||||
<key>ToolbarConfigUserDefaultsMinorVersion</key>
|
||||
<string>2</string>
|
||||
<key>ToolbarDisplayMode</key>
|
||||
|
|
@ -649,11 +652,11 @@
|
|||
<integer>5</integer>
|
||||
<key>WindowOrderList</key>
|
||||
<array>
|
||||
<string>8B71BB5628C65C420038254A</string>
|
||||
<string>/Users/christopherjohnson/Desktop/Verbity2/Verbity2.xcodeproj</string>
|
||||
<string>8B376FDC298B1C860027F1BA</string>
|
||||
<string>/Users/christopherjohnson/Desktop/airwindows/plugins/MacVST/Verbity2/Verbity2.xcodeproj</string>
|
||||
</array>
|
||||
<key>WindowString</key>
|
||||
<string>608 281 810 487 0 0 1440 878 </string>
|
||||
<string>68 308 810 487 0 0 1440 878 </string>
|
||||
<key>WindowToolsV3</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
|
|
|||
|
|
@ -12,15 +12,15 @@
|
|||
24CFB70407E7A0220081BD57 /* PkgInfo in Resources */ = {isa = PBXBuildFile; fileRef = 24CFB70307E7A0220081BD57 /* PkgInfo */; };
|
||||
24D8287009A914000093AEF8 /* Verbity2Proc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 24D8286F09A914000093AEF8 /* Verbity2Proc.cpp */; };
|
||||
24D8287F09A9164A0093AEF8 /* xcode_vst_prefix.h in Headers */ = {isa = PBXBuildFile; fileRef = 24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */; };
|
||||
8B1827F228CA4D0E00395412 /* vstfxstore.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B1827E628CA4D0E00395412 /* vstfxstore.h */; };
|
||||
8B1827F328CA4D0E00395412 /* aeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B1827E728CA4D0E00395412 /* aeffect.h */; };
|
||||
8B1827F428CA4D0E00395412 /* aeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B1827E828CA4D0E00395412 /* aeffectx.h */; };
|
||||
8B1827F528CA4D0E00395412 /* audioeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B1827EC28CA4D0E00395412 /* audioeffectx.h */; };
|
||||
8B1827F628CA4D0E00395412 /* audioeffect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B1827ED28CA4D0E00395412 /* audioeffect.cpp */; };
|
||||
8B1827F728CA4D0E00395412 /* audioeffectx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B1827EE28CA4D0E00395412 /* audioeffectx.cpp */; };
|
||||
8B1827F828CA4D0E00395412 /* aeffeditor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B1827EF28CA4D0E00395412 /* aeffeditor.h */; };
|
||||
8B1827F928CA4D0E00395412 /* vstplugmain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B1827F028CA4D0E00395412 /* vstplugmain.cpp */; };
|
||||
8B1827FA28CA4D0E00395412 /* audioeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B1827F128CA4D0E00395412 /* audioeffect.h */; };
|
||||
8BC9568D298DC5650050FB42 /* vstfxstore.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC95681298DC5650050FB42 /* vstfxstore.h */; };
|
||||
8BC9568E298DC5650050FB42 /* aeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC95682298DC5650050FB42 /* aeffect.h */; };
|
||||
8BC9568F298DC5650050FB42 /* aeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC95683298DC5650050FB42 /* aeffectx.h */; };
|
||||
8BC95690298DC5650050FB42 /* audioeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC95687298DC5650050FB42 /* audioeffectx.h */; };
|
||||
8BC95691298DC5650050FB42 /* audioeffect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BC95688298DC5650050FB42 /* audioeffect.cpp */; };
|
||||
8BC95692298DC5650050FB42 /* audioeffectx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BC95689298DC5650050FB42 /* audioeffectx.cpp */; };
|
||||
8BC95693298DC5650050FB42 /* aeffeditor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC9568A298DC5650050FB42 /* aeffeditor.h */; };
|
||||
8BC95694298DC5650050FB42 /* vstplugmain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BC9568B298DC5650050FB42 /* vstplugmain.cpp */; };
|
||||
8BC95695298DC5650050FB42 /* audioeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC9568C298DC5650050FB42 /* audioeffect.h */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
|
|
@ -30,15 +30,15 @@
|
|||
24CFB70307E7A0220081BD57 /* PkgInfo */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = PkgInfo; path = mac/PkgInfo; sourceTree = "<group>"; };
|
||||
24D8286F09A914000093AEF8 /* Verbity2Proc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Verbity2Proc.cpp; path = source/Verbity2Proc.cpp; sourceTree = "<group>"; };
|
||||
24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = xcode_vst_prefix.h; path = mac/xcode_vst_prefix.h; sourceTree = SOURCE_ROOT; };
|
||||
8B1827E628CA4D0E00395412 /* vstfxstore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstfxstore.h; sourceTree = "<group>"; };
|
||||
8B1827E728CA4D0E00395412 /* aeffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffect.h; sourceTree = "<group>"; };
|
||||
8B1827E828CA4D0E00395412 /* aeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffectx.h; sourceTree = "<group>"; };
|
||||
8B1827EC28CA4D0E00395412 /* audioeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audioeffectx.h; sourceTree = "<group>"; };
|
||||
8B1827ED28CA4D0E00395412 /* audioeffect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffect.cpp; sourceTree = "<group>"; };
|
||||
8B1827EE28CA4D0E00395412 /* audioeffectx.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffectx.cpp; sourceTree = "<group>"; };
|
||||
8B1827EF28CA4D0E00395412 /* aeffeditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffeditor.h; sourceTree = "<group>"; };
|
||||
8B1827F028CA4D0E00395412 /* vstplugmain.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstplugmain.cpp; sourceTree = "<group>"; };
|
||||
8B1827F128CA4D0E00395412 /* audioeffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audioeffect.h; sourceTree = "<group>"; };
|
||||
8BC95681298DC5650050FB42 /* vstfxstore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstfxstore.h; sourceTree = "<group>"; };
|
||||
8BC95682298DC5650050FB42 /* aeffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffect.h; sourceTree = "<group>"; };
|
||||
8BC95683298DC5650050FB42 /* aeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffectx.h; sourceTree = "<group>"; };
|
||||
8BC95687298DC5650050FB42 /* audioeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audioeffectx.h; sourceTree = "<group>"; };
|
||||
8BC95688298DC5650050FB42 /* audioeffect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffect.cpp; sourceTree = "<group>"; };
|
||||
8BC95689298DC5650050FB42 /* audioeffectx.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffectx.cpp; sourceTree = "<group>"; };
|
||||
8BC9568A298DC5650050FB42 /* aeffeditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffeditor.h; sourceTree = "<group>"; };
|
||||
8BC9568B298DC5650050FB42 /* vstplugmain.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstplugmain.cpp; sourceTree = "<group>"; };
|
||||
8BC9568C298DC5650050FB42 /* audioeffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audioeffect.h; sourceTree = "<group>"; };
|
||||
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = mac/Info.plist; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
|
|
@ -66,7 +66,7 @@
|
|||
08FB77ADFE841716C02AAC07 /* Source */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B1827E328CA4D0E00395412 /* vstsdk2.4 */,
|
||||
8BC9567E298DC5650050FB42 /* vstsdk2.4 */,
|
||||
2407DEB6089929BA00EB68BF /* Verbity2.cpp */,
|
||||
24D8286F09A914000093AEF8 /* Verbity2Proc.cpp */,
|
||||
245463B80991757100464AD3 /* Verbity2.h */,
|
||||
|
|
@ -82,59 +82,59 @@
|
|||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B1827E328CA4D0E00395412 /* vstsdk2.4 */ = {
|
||||
8BC9567E298DC5650050FB42 /* vstsdk2.4 */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B1827E428CA4D0E00395412 /* pluginterfaces */,
|
||||
8B1827E928CA4D0E00395412 /* public.sdk */,
|
||||
8BC9567F298DC5650050FB42 /* pluginterfaces */,
|
||||
8BC95684298DC5650050FB42 /* public.sdk */,
|
||||
);
|
||||
name = vstsdk2.4;
|
||||
path = ../../../../vstsdk2.4;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B1827E428CA4D0E00395412 /* pluginterfaces */ = {
|
||||
8BC9567F298DC5650050FB42 /* pluginterfaces */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B1827E528CA4D0E00395412 /* vst2.x */,
|
||||
8BC95680298DC5650050FB42 /* vst2.x */,
|
||||
);
|
||||
path = pluginterfaces;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B1827E528CA4D0E00395412 /* vst2.x */ = {
|
||||
8BC95680298DC5650050FB42 /* vst2.x */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B1827E628CA4D0E00395412 /* vstfxstore.h */,
|
||||
8B1827E728CA4D0E00395412 /* aeffect.h */,
|
||||
8B1827E828CA4D0E00395412 /* aeffectx.h */,
|
||||
8BC95681298DC5650050FB42 /* vstfxstore.h */,
|
||||
8BC95682298DC5650050FB42 /* aeffect.h */,
|
||||
8BC95683298DC5650050FB42 /* aeffectx.h */,
|
||||
);
|
||||
path = vst2.x;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B1827E928CA4D0E00395412 /* public.sdk */ = {
|
||||
8BC95684298DC5650050FB42 /* public.sdk */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B1827EA28CA4D0E00395412 /* source */,
|
||||
8BC95685298DC5650050FB42 /* source */,
|
||||
);
|
||||
path = public.sdk;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B1827EA28CA4D0E00395412 /* source */ = {
|
||||
8BC95685298DC5650050FB42 /* source */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B1827EB28CA4D0E00395412 /* vst2.x */,
|
||||
8BC95686298DC5650050FB42 /* vst2.x */,
|
||||
);
|
||||
path = source;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B1827EB28CA4D0E00395412 /* vst2.x */ = {
|
||||
8BC95686298DC5650050FB42 /* vst2.x */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B1827EC28CA4D0E00395412 /* audioeffectx.h */,
|
||||
8B1827ED28CA4D0E00395412 /* audioeffect.cpp */,
|
||||
8B1827EE28CA4D0E00395412 /* audioeffectx.cpp */,
|
||||
8B1827EF28CA4D0E00395412 /* aeffeditor.h */,
|
||||
8B1827F028CA4D0E00395412 /* vstplugmain.cpp */,
|
||||
8B1827F128CA4D0E00395412 /* audioeffect.h */,
|
||||
8BC95687298DC5650050FB42 /* audioeffectx.h */,
|
||||
8BC95688298DC5650050FB42 /* audioeffect.cpp */,
|
||||
8BC95689298DC5650050FB42 /* audioeffectx.cpp */,
|
||||
8BC9568A298DC5650050FB42 /* aeffeditor.h */,
|
||||
8BC9568B298DC5650050FB42 /* vstplugmain.cpp */,
|
||||
8BC9568C298DC5650050FB42 /* audioeffect.h */,
|
||||
);
|
||||
path = vst2.x;
|
||||
sourceTree = "<group>";
|
||||
|
|
@ -146,14 +146,14 @@
|
|||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8B1827F828CA4D0E00395412 /* aeffeditor.h in Headers */,
|
||||
8BC95693298DC5650050FB42 /* aeffeditor.h in Headers */,
|
||||
245463B90991757100464AD3 /* Verbity2.h in Headers */,
|
||||
8B1827FA28CA4D0E00395412 /* audioeffect.h in Headers */,
|
||||
8B1827F328CA4D0E00395412 /* aeffect.h in Headers */,
|
||||
8BC95695298DC5650050FB42 /* audioeffect.h in Headers */,
|
||||
8BC9568E298DC5650050FB42 /* aeffect.h in Headers */,
|
||||
24D8287F09A9164A0093AEF8 /* xcode_vst_prefix.h in Headers */,
|
||||
8B1827F528CA4D0E00395412 /* audioeffectx.h in Headers */,
|
||||
8B1827F228CA4D0E00395412 /* vstfxstore.h in Headers */,
|
||||
8B1827F428CA4D0E00395412 /* aeffectx.h in Headers */,
|
||||
8BC95690298DC5650050FB42 /* audioeffectx.h in Headers */,
|
||||
8BC9568D298DC5650050FB42 /* vstfxstore.h in Headers */,
|
||||
8BC9568F298DC5650050FB42 /* aeffectx.h in Headers */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
|
@ -185,18 +185,18 @@
|
|||
089C1669FE841209C02AAC07 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 1340;
|
||||
LastUpgradeCheck = 1420;
|
||||
};
|
||||
buildConfigurationList = 24BEAAF108919AE700E695F9 /* Build configuration list for PBXProject "Verbity2" */;
|
||||
compatibilityVersion = "Xcode 2.4";
|
||||
developmentRegion = en;
|
||||
hasScannedForEncodings = 1;
|
||||
knownRegions = (
|
||||
de,
|
||||
ja,
|
||||
Base,
|
||||
en,
|
||||
ja,
|
||||
fr,
|
||||
de,
|
||||
en,
|
||||
);
|
||||
mainGroup = 089C166AFE841209C02AAC07 /* FM-Chopper */;
|
||||
projectDirPath = "";
|
||||
|
|
@ -240,10 +240,10 @@
|
|||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8B1827F728CA4D0E00395412 /* audioeffectx.cpp in Sources */,
|
||||
8BC95692298DC5650050FB42 /* audioeffectx.cpp in Sources */,
|
||||
2407DEB9089929BA00EB68BF /* Verbity2.cpp in Sources */,
|
||||
8B1827F628CA4D0E00395412 /* audioeffect.cpp in Sources */,
|
||||
8B1827F928CA4D0E00395412 /* vstplugmain.cpp in Sources */,
|
||||
8BC95691298DC5650050FB42 /* audioeffect.cpp in Sources */,
|
||||
8BC95694298DC5650050FB42 /* vstplugmain.cpp in Sources */,
|
||||
24D8287009A914000093AEF8 /* Verbity2Proc.cpp in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
|
|
@ -256,10 +256,13 @@
|
|||
buildSettings = {
|
||||
ARCHS = "$(ARCHS_STANDARD)";
|
||||
CLANG_ENABLE_OBJC_WEAK = YES;
|
||||
CODE_SIGN_IDENTITY = "Developer ID Application";
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Developer ID Application";
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEVELOPMENT_TEAM = 9BMAKYA76W;
|
||||
DEAD_CODE_STRIPPING = YES;
|
||||
DEVELOPMENT_TEAM = "";
|
||||
"DEVELOPMENT_TEAM[sdk=macosx*]" = 9BMAKYA76W;
|
||||
FRAMEWORK_SEARCH_PATHS = "";
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_ENABLE_TRIGRAPHS = NO;
|
||||
|
|
@ -298,11 +301,14 @@
|
|||
buildSettings = {
|
||||
ARCHS = "$(ARCHS_STANDARD)";
|
||||
CLANG_ENABLE_OBJC_WEAK = YES;
|
||||
CODE_SIGN_IDENTITY = "Developer ID Application";
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Developer ID Application";
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
COPY_PHASE_STRIP = YES;
|
||||
DEAD_CODE_STRIPPING = YES;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
DEVELOPMENT_TEAM = 9BMAKYA76W;
|
||||
DEVELOPMENT_TEAM = "";
|
||||
"DEVELOPMENT_TEAM[sdk=macosx*]" = 9BMAKYA76W;
|
||||
FRAMEWORK_SEARCH_PATHS = "";
|
||||
GCC_C_LANGUAGE_STANDARD = c99;
|
||||
GCC_ENABLE_TRIGRAPHS = NO;
|
||||
|
|
@ -363,6 +369,7 @@
|
|||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
DEAD_CODE_STRIPPING = YES;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
ENABLE_TESTABILITY = YES;
|
||||
GCC_MODEL_TUNING = G5;
|
||||
|
|
@ -407,6 +414,7 @@
|
|||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
DEAD_CODE_STRIPPING = YES;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = c99;
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1340"
|
||||
LastUpgradeVersion = "1420"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ Verbity2::Verbity2(audioMasterCallback audioMaster) :
|
|||
iirAR = 0.0;
|
||||
iirBR = 0.0;
|
||||
|
||||
for(int count = 0; count < 5190; count++) {aZL[count] = 0.0; aZR[count] = 0.0;}
|
||||
//for(int count = 0; count < 5190; count++) {aZL[count] = 0.0; aZR[count] = 0.0;}
|
||||
|
||||
for(int count = 0; count < 5004; count++) {aAL[count] = 0.0; aAR[count] = 0.0;} //AFKPU
|
||||
for(int count = 0; count < 4952; count++) {aFL[count] = 0.0; aFR[count] = 0.0;}
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ private:
|
|||
double iirAL;
|
||||
double iirBL;
|
||||
|
||||
double aZL[5191];
|
||||
//double aZL[5191];
|
||||
|
||||
double aAL[5005]; //AFKPU
|
||||
double aFL[4953];
|
||||
|
|
@ -107,7 +107,7 @@ private:
|
|||
double iirAR;
|
||||
double iirBR;
|
||||
|
||||
double aZR[5191];
|
||||
//double aZR[5191];
|
||||
|
||||
double aAR[5005]; //AFKPU
|
||||
double aFR[4953];
|
||||
|
|
|
|||
|
|
@ -26,10 +26,10 @@ void Verbity2::processReplacing(float **inputs, float **outputs, VstInt32 sample
|
|||
//mulch is tone control, darken to obscure the Chrome Oxide, not as much highpass
|
||||
double size = (pow(A,2.0)*0.9)+0.1;
|
||||
double regen = (1.0-pow(1.0-B,3.0))*0.00032;
|
||||
double mulchSetting = 1.0-pow(1.0-C,2); //modify taper
|
||||
double lowpass = (1.0-(pow(mulchSetting,2)*0.75))/sqrt(overallscale);
|
||||
double highpass = (0.01+(mulchSetting*0.05))/sqrt(overallscale);
|
||||
double interpolateMax = 0.06+(mulchSetting*0.3);
|
||||
double mulchSetting = C;
|
||||
double lowpass = (1.0-(mulchSetting*0.75))/sqrt(overallscale);
|
||||
double highpass = (0.007+(mulchSetting*0.022))/sqrt(overallscale);
|
||||
double interpolateMax = 0.07+(mulchSetting*0.4);
|
||||
double wet = D*2.0;
|
||||
double dry = 2.0 - wet;
|
||||
if (wet > 1.0) wet = 1.0;
|
||||
|
|
@ -40,7 +40,7 @@ void Verbity2::processReplacing(float **inputs, float **outputs, VstInt32 sample
|
|||
//that's so it can be on submixes without cutting back dry channel when adjusted:
|
||||
//unless you go super heavy, you are only adjusting the added verb loudness.
|
||||
|
||||
delayZ = 5189.0*size; //z can be predelay
|
||||
//delayZ = 5189.0*size; //z can be predelay
|
||||
|
||||
delayA = 5003.0*size;
|
||||
delayF = 4951.0*size;
|
||||
|
|
@ -56,7 +56,7 @@ void Verbity2::processReplacing(float **inputs, float **outputs, VstInt32 sample
|
|||
|
||||
delayC = 3323.0*size;
|
||||
delayH = 2791.0*size;
|
||||
delayM= 2767.0*size;
|
||||
delayM = 2767.0*size;
|
||||
delayR = 2389.0*size;
|
||||
delayW = 2347.0*size;
|
||||
|
||||
|
|
@ -104,12 +104,11 @@ void Verbity2::processReplacing(float **inputs, float **outputs, VstInt32 sample
|
|||
feedbackDR = (feedbackDR*(1.0-interpolateR))+(previousDR*interpolateR); previousDR = feedbackDR;
|
||||
feedbackER = (feedbackER*(1.0-interpolateR))+(previousER*interpolateR); previousER = feedbackER;
|
||||
|
||||
aZL[countZ] = inputSampleL;
|
||||
countZ++; if (countZ < 0 || countZ > delayZ) countZ = 0;
|
||||
inputSampleL = aZL[countZ-((countZ > delayZ)?delayZ+1:0)];
|
||||
aZR[countZ] = inputSampleR;
|
||||
countZ++; if (countZ < 0 || countZ > delayZ) countZ = 0;
|
||||
inputSampleR = aZR[countZ-((countZ > delayZ)?delayZ+1:0)];
|
||||
// aZL[countZ] = inputSampleL;
|
||||
// aZR[countZ] = inputSampleR;
|
||||
// countZ++; if (countZ < 0 || countZ > delayZ) countZ = 0;
|
||||
// inputSampleL = aZL[countZ-((countZ > delayZ)?delayZ+1:0)];
|
||||
// inputSampleR = aZR[countZ-((countZ > delayZ)?delayZ+1:0)];
|
||||
//predelay
|
||||
|
||||
aAL[countA] = inputSampleL + (feedbackAL * (regen*(1.0-fabs(feedbackAL*regen))));
|
||||
|
|
@ -273,17 +272,17 @@ void Verbity2::processReplacing(float **inputs, float **outputs, VstInt32 sample
|
|||
//-------- five
|
||||
|
||||
|
||||
feedbackAL = ((outUL*3.0) - ((outVL + outWL + outXL + outYL)*2.0));
|
||||
feedbackAR = ((outUL*3.0) - ((outVL + outWL + outXL + outYL)*2.0));
|
||||
feedbackBL = ((outVL*3.0) - ((outUL + outWL + outXL + outYL)*2.0));
|
||||
feedbackCL = ((outWL*3.0) - ((outUL + outVL + outXL + outYL)*2.0));
|
||||
feedbackCR = ((outWL*3.0) - ((outUL + outVL + outXL + outYL)*2.0));
|
||||
feedbackDL = ((outXL*3.0) - ((outUL + outVL + outWL + outYL)*2.0));
|
||||
feedbackEL = ((outYL*3.0) - ((outUL + outVL + outWL + outXL)*2.0));
|
||||
feedbackER = ((outYL*3.0) - ((outUL + outVL + outWL + outXL)*2.0));
|
||||
|
||||
feedbackAR = ((outUR*3.0) - ((outVR + outWR + outXR + outYR)*2.0));
|
||||
feedbackAL = ((outUR*3.0) - ((outVR + outWR + outXR + outYR)*2.0));
|
||||
feedbackBR = ((outVR*3.0) - ((outUR + outWR + outXR + outYR)*2.0));
|
||||
feedbackCR = ((outWR*3.0) - ((outUR + outVR + outXR + outYR)*2.0));
|
||||
feedbackCL = ((outWR*3.0) - ((outUR + outVR + outXR + outYR)*2.0));
|
||||
feedbackDR = ((outXR*3.0) - ((outUR + outVR + outWR + outYR)*2.0));
|
||||
feedbackER = ((outYR*3.0) - ((outUR + outVR + outWR + outXR)*2.0));
|
||||
feedbackEL = ((outYR*3.0) - ((outUR + outVR + outWR + outXR)*2.0));
|
||||
//which we need to feed back into the input again, a bit
|
||||
|
||||
inputSampleL = (outUL + outVL + outWL + outXL + outYL)*0.0016;
|
||||
|
|
@ -382,10 +381,10 @@ void Verbity2::processDoubleReplacing(double **inputs, double **outputs, VstInt3
|
|||
//mulch is tone control, darken to obscure the Chrome Oxide, not as much highpass
|
||||
double size = (pow(A,2.0)*0.9)+0.1;
|
||||
double regen = (1.0-pow(1.0-B,3.0))*0.00032;
|
||||
double mulchSetting = 1.0-pow(1.0-C,2); //modify taper
|
||||
double lowpass = (1.0-(pow(mulchSetting,2)*0.75))/sqrt(overallscale);
|
||||
double highpass = (0.01+(mulchSetting*0.05))/sqrt(overallscale);
|
||||
double interpolateMax = 0.06+(mulchSetting*0.3);
|
||||
double mulchSetting = C;
|
||||
double lowpass = (1.0-(mulchSetting*0.75))/sqrt(overallscale);
|
||||
double highpass = (0.007+(mulchSetting*0.022))/sqrt(overallscale);
|
||||
double interpolateMax = 0.07+(mulchSetting*0.4);
|
||||
double wet = D*2.0;
|
||||
double dry = 2.0 - wet;
|
||||
if (wet > 1.0) wet = 1.0;
|
||||
|
|
@ -396,7 +395,7 @@ void Verbity2::processDoubleReplacing(double **inputs, double **outputs, VstInt3
|
|||
//that's so it can be on submixes without cutting back dry channel when adjusted:
|
||||
//unless you go super heavy, you are only adjusting the added verb loudness.
|
||||
|
||||
delayZ = 5189.0*size; //z can be predelay
|
||||
//delayZ = 5189.0*size; //z can be predelay
|
||||
|
||||
delayA = 5003.0*size;
|
||||
delayF = 4951.0*size;
|
||||
|
|
@ -412,7 +411,7 @@ void Verbity2::processDoubleReplacing(double **inputs, double **outputs, VstInt3
|
|||
|
||||
delayC = 3323.0*size;
|
||||
delayH = 2791.0*size;
|
||||
delayM= 2767.0*size;
|
||||
delayM = 2767.0*size;
|
||||
delayR = 2389.0*size;
|
||||
delayW = 2347.0*size;
|
||||
|
||||
|
|
@ -460,12 +459,11 @@ void Verbity2::processDoubleReplacing(double **inputs, double **outputs, VstInt3
|
|||
feedbackDR = (feedbackDR*(1.0-interpolateR))+(previousDR*interpolateR); previousDR = feedbackDR;
|
||||
feedbackER = (feedbackER*(1.0-interpolateR))+(previousER*interpolateR); previousER = feedbackER;
|
||||
|
||||
aZL[countZ] = inputSampleL;
|
||||
countZ++; if (countZ < 0 || countZ > delayZ) countZ = 0;
|
||||
inputSampleL = aZL[countZ-((countZ > delayZ)?delayZ+1:0)];
|
||||
aZR[countZ] = inputSampleR;
|
||||
countZ++; if (countZ < 0 || countZ > delayZ) countZ = 0;
|
||||
inputSampleR = aZR[countZ-((countZ > delayZ)?delayZ+1:0)];
|
||||
// aZL[countZ] = inputSampleL;
|
||||
// aZR[countZ] = inputSampleR;
|
||||
// countZ++; if (countZ < 0 || countZ > delayZ) countZ = 0;
|
||||
// inputSampleL = aZL[countZ-((countZ > delayZ)?delayZ+1:0)];
|
||||
// inputSampleR = aZR[countZ-((countZ > delayZ)?delayZ+1:0)];
|
||||
//predelay
|
||||
|
||||
aAL[countA] = inputSampleL + (feedbackAL * (regen*(1.0-fabs(feedbackAL*regen))));
|
||||
|
|
|
|||
|
|
@ -51,13 +51,13 @@
|
|||
PBXFileDataSource_Warnings_ColumnID,
|
||||
);
|
||||
};
|
||||
PBXPerProjectTemplateStateSaveDate = 683218952;
|
||||
PBXWorkspaceStateSaveDate = 683218952;
|
||||
PBXPerProjectTemplateStateSaveDate = 696983498;
|
||||
PBXWorkspaceStateSaveDate = 696983498;
|
||||
};
|
||||
perUserProjectItems = {
|
||||
8BBC47D028B922DE00A201D3 /* PBXTextBookmark */ = 8BBC47D028B922DE00A201D3 /* PBXTextBookmark */;
|
||||
8B377060298B24E90027F1BA /* PBXTextBookmark */ = 8B377060298B24E90027F1BA /* PBXTextBookmark */;
|
||||
8B377061298B24E90027F1BA /* PBXTextBookmark */ = 8B377061298B24E90027F1BA /* PBXTextBookmark */;
|
||||
8BD11A3928B90ADB006EFFE5 /* PBXTextBookmark */ = 8BD11A3928B90ADB006EFFE5 /* PBXTextBookmark */;
|
||||
8BD11A3B28B90ADB006EFFE5 /* PBXTextBookmark */ = 8BD11A3B28B90ADB006EFFE5 /* PBXTextBookmark */;
|
||||
};
|
||||
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
|
||||
userBuildSettings = {
|
||||
|
|
@ -65,18 +65,18 @@
|
|||
};
|
||||
2407DEB6089929BA00EB68BF /* Chamber2.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {930, 3420}}";
|
||||
sepNavSelRange = "{486, 0}";
|
||||
sepNavVisRange = "{1210, 1307}";
|
||||
sepNavWindowFrame = "{{545, 47}, {895, 831}}";
|
||||
sepNavIntBoundsRect = "{{0, 0}, {948, 3366}}";
|
||||
sepNavSelRange = "{500, 1739}";
|
||||
sepNavVisRange = "{5555, 1537}";
|
||||
sepNavWindowFrame = "{{36, 47}, {895, 831}}";
|
||||
};
|
||||
};
|
||||
245463B80991757100464AD3 /* Chamber2.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {696, 2718}}";
|
||||
sepNavIntBoundsRect = "{{0, 0}, {696, 2484}}";
|
||||
sepNavSelRange = "{3592, 0}";
|
||||
sepNavVisRange = "{3489, 180}";
|
||||
sepNavWindowFrame = "{{541, 47}, {895, 831}}";
|
||||
sepNavVisRange = "{3585, 94}";
|
||||
sepNavWindowFrame = "{{56, 47}, {895, 831}}";
|
||||
};
|
||||
};
|
||||
24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = {
|
||||
|
|
@ -89,10 +89,10 @@
|
|||
};
|
||||
24D8286F09A914000093AEF8 /* Chamber2Proc.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {714, 9486}}";
|
||||
sepNavSelRange = "{2487, 0}";
|
||||
sepNavVisRange = "{2348, 153}";
|
||||
sepNavWindowFrame = "{{319, 47}, {895, 831}}";
|
||||
sepNavIntBoundsRect = "{{0, 0}, {966, 9216}}";
|
||||
sepNavSelRange = "{2436, 8573}";
|
||||
sepNavVisRange = "{18031, 1965}";
|
||||
sepNavWindowFrame = "{{13, 47}, {895, 831}}";
|
||||
};
|
||||
};
|
||||
8B02375E1D42B1C400E1E8C8 /* Source Control */ = {
|
||||
|
|
@ -109,15 +109,25 @@
|
|||
isa = PBXCodeSenseManager;
|
||||
indexTemplatePath = "";
|
||||
};
|
||||
8BBC47D028B922DE00A201D3 /* PBXTextBookmark */ = {
|
||||
8B377060298B24E90027F1BA /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 24D8286F09A914000093AEF8 /* Chamber2Proc.cpp */;
|
||||
name = "Chamber2Proc.cpp: 70";
|
||||
rLen = 0;
|
||||
rLoc = 2487;
|
||||
rLoc = 2496;
|
||||
rType = 0;
|
||||
vrLen = 153;
|
||||
vrLoc = 2348;
|
||||
vrLen = 72;
|
||||
vrLoc = 2436;
|
||||
};
|
||||
8B377061298B24E90027F1BA /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 245463B80991757100464AD3 /* Chamber2.h */;
|
||||
name = "Chamber2.h: 120";
|
||||
rLen = 0;
|
||||
rLoc = 3592;
|
||||
rType = 0;
|
||||
vrLen = 94;
|
||||
vrLoc = 3585;
|
||||
};
|
||||
8BD11A3928B90ADB006EFFE5 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
|
|
@ -129,16 +139,6 @@
|
|||
vrLen = 180;
|
||||
vrLoc = 3489;
|
||||
};
|
||||
8BD11A3B28B90ADB006EFFE5 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 24D8286F09A914000093AEF8 /* Chamber2Proc.cpp */;
|
||||
name = "Chamber2Proc.cpp: 70";
|
||||
rLen = 0;
|
||||
rLoc = 2487;
|
||||
rType = 0;
|
||||
vrLen = 250;
|
||||
vrLoc = 2251;
|
||||
};
|
||||
8D01CCC60486CAD60068D4B7 /* Chamber2 */ = {
|
||||
activeExec = 0;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -323,7 +323,7 @@
|
|||
<real>185</real>
|
||||
</array>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>516 278 810 487 0 0 1440 878 </string>
|
||||
<string>21 262 810 487 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXSmartGroupTreeModule</string>
|
||||
|
|
@ -339,7 +339,7 @@
|
|||
<key>PBXProjectModuleGUID</key>
|
||||
<string>8B0237581D42B1C400E1E8C8</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string>Chamber2Proc.cpp</string>
|
||||
<string>Chamber2.h</string>
|
||||
<key>PBXSplitModuleInNavigatorKey</key>
|
||||
<dict>
|
||||
<key>Split0</key>
|
||||
|
|
@ -347,15 +347,15 @@
|
|||
<key>PBXProjectModuleGUID</key>
|
||||
<string>8B0237591D42B1C400E1E8C8</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string>Chamber2Proc.cpp</string>
|
||||
<string>Chamber2.h</string>
|
||||
<key>_historyCapacity</key>
|
||||
<integer>0</integer>
|
||||
<key>bookmark</key>
|
||||
<string>8BBC47D028B922DE00A201D3</string>
|
||||
<string>8B377061298B24E90027F1BA</string>
|
||||
<key>history</key>
|
||||
<array>
|
||||
<string>8B377060298B24E90027F1BA</string>
|
||||
<string>8BD11A3928B90ADB006EFFE5</string>
|
||||
<string>8BD11A3B28B90ADB006EFFE5</string>
|
||||
</array>
|
||||
</dict>
|
||||
<key>SplitCount</key>
|
||||
|
|
@ -369,18 +369,18 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 0}, {603, 117}}</string>
|
||||
<string>{{0, 0}, {603, 51}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>516 278 810 487 0 0 1440 878 </string>
|
||||
<string>21 262 810 487 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXNavigatorGroup</string>
|
||||
<key>Proportion</key>
|
||||
<string>117pt</string>
|
||||
<string>51pt</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Proportion</key>
|
||||
<string>324pt</string>
|
||||
<string>390pt</string>
|
||||
<key>Tabs</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
|
@ -394,9 +394,9 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{10, 27}, {603, 297}}</string>
|
||||
<string>{{10, 27}, {603, 363}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>516 278 810 487 0 0 1440 878 </string>
|
||||
<string>21 262 810 487 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>XCDetailModule</string>
|
||||
|
|
@ -478,11 +478,11 @@
|
|||
</array>
|
||||
<key>TableOfContents</key>
|
||||
<array>
|
||||
<string>8BBC47D128B922DE00A201D3</string>
|
||||
<string>8B377018298B1FCF0027F1BA</string>
|
||||
<string>1CA23ED40692098700951B8B</string>
|
||||
<string>8BBC47D228B922DE00A201D3</string>
|
||||
<string>8B377019298B1FCF0027F1BA</string>
|
||||
<string>8B0237581D42B1C400E1E8C8</string>
|
||||
<string>8BBC47D328B922DE00A201D3</string>
|
||||
<string>8B37701A298B1FCF0027F1BA</string>
|
||||
<string>1CA23EDF0692099D00951B8B</string>
|
||||
<string>1CA23EE00692099D00951B8B</string>
|
||||
<string>1CA23EE10692099D00951B8B</string>
|
||||
|
|
@ -655,7 +655,7 @@
|
|||
<key>StatusbarIsVisible</key>
|
||||
<true/>
|
||||
<key>TimeStamp</key>
|
||||
<real>683221726.47490799</real>
|
||||
<real>696984809.70548403</real>
|
||||
<key>ToolbarConfigUserDefaultsMinorVersion</key>
|
||||
<string>2</string>
|
||||
<key>ToolbarDisplayMode</key>
|
||||
|
|
@ -672,10 +672,11 @@
|
|||
<integer>5</integer>
|
||||
<key>WindowOrderList</key>
|
||||
<array>
|
||||
<string>/Users/christopherjohnson/Desktop/Chamber2/Chamber2.xcodeproj</string>
|
||||
<string>8B377062298B24E90027F1BA</string>
|
||||
<string>/Users/christopherjohnson/Desktop/airwindows/plugins/MacVST/Chamber2/Chamber2.xcodeproj</string>
|
||||
</array>
|
||||
<key>WindowString</key>
|
||||
<string>516 278 810 487 0 0 1440 878 </string>
|
||||
<string>21 262 810 487 0 0 1440 878 </string>
|
||||
<key>WindowToolsV3</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ void Chamber2::processReplacing(float **inputs, float **outputs, VstInt32 sample
|
|||
|
||||
double size = (A*0.9)+0.1;
|
||||
double regen = (1.0-(pow(1.0-B,2)))*0.123;
|
||||
double echoScale = 1.0-(pow(C,3));
|
||||
double echoScale = 1.0-C;
|
||||
double echo = 0.618033988749894848204586+((1.0-0.618033988749894848204586)*echoScale);
|
||||
double interpolate = (1.0-echo)*0.381966011250105;
|
||||
//this now goes from Chamber, to all the reverb delays being exactly the same
|
||||
|
|
@ -41,7 +41,8 @@ void Chamber2::processReplacing(float **inputs, float **outputs, VstInt32 sample
|
|||
//that's so it can be on submixes without cutting back dry channel when adjusted:
|
||||
//unless you go super heavy, you are only adjusting the added verb loudness.
|
||||
|
||||
delayE = delayM = 9900*size;
|
||||
delayM = sqrt(9900*size);
|
||||
delayE = 9900*size;
|
||||
delayF = delayE*echo;
|
||||
delayG = delayF*echo;
|
||||
delayH = delayG*echo;
|
||||
|
|
@ -159,13 +160,13 @@ void Chamber2::processReplacing(float **inputs, float **outputs, VstInt32 sample
|
|||
double outHR = aHR[countH-((countH > delayH)?delayH+1:0)];
|
||||
//third block: final outputs
|
||||
|
||||
feedbackAL = (outEL - (outFL + outGL + outHL));
|
||||
feedbackAR = (outEL - (outFL + outGL + outHL));
|
||||
feedbackBL = (outFL - (outEL + outGL + outHL));
|
||||
feedbackCL = (outGL - (outEL + outFL + outHL));
|
||||
feedbackCR = (outGL - (outEL + outFL + outHL));
|
||||
feedbackDL = (outHL - (outEL + outFL + outGL));
|
||||
feedbackAR = (outER - (outFR + outGR + outHR));
|
||||
feedbackAL = (outER - (outFR + outGR + outHR));
|
||||
feedbackBR = (outFR - (outER + outGR + outHR));
|
||||
feedbackCR = (outGR - (outER + outFR + outHR));
|
||||
feedbackCL = (outGR - (outER + outFR + outHR));
|
||||
feedbackDR = (outHR - (outER + outFR + outGR));
|
||||
//which we need to feed back into the input again, a bit
|
||||
|
||||
|
|
@ -280,7 +281,7 @@ void Chamber2::processDoubleReplacing(double **inputs, double **outputs, VstInt3
|
|||
|
||||
double size = (A*0.9)+0.1;
|
||||
double regen = (1.0-(pow(1.0-B,2)))*0.123;
|
||||
double echoScale = 1.0-(pow(C,3));
|
||||
double echoScale = 1.0-C;
|
||||
double echo = 0.618033988749894848204586+((1.0-0.618033988749894848204586)*echoScale);
|
||||
double interpolate = (1.0-echo)*0.381966011250105;
|
||||
//this now goes from Chamber, to all the reverb delays being exactly the same
|
||||
|
|
@ -296,7 +297,8 @@ void Chamber2::processDoubleReplacing(double **inputs, double **outputs, VstInt3
|
|||
//that's so it can be on submixes without cutting back dry channel when adjusted:
|
||||
//unless you go super heavy, you are only adjusting the added verb loudness.
|
||||
|
||||
delayE = delayM = 9900*size;
|
||||
delayM = sqrt(9900*size);
|
||||
delayE = 9900*size;
|
||||
delayF = delayE*echo;
|
||||
delayG = delayF*echo;
|
||||
delayH = delayG*echo;
|
||||
|
|
@ -414,13 +416,13 @@ void Chamber2::processDoubleReplacing(double **inputs, double **outputs, VstInt3
|
|||
double outHR = aHR[countH-((countH > delayH)?delayH+1:0)];
|
||||
//third block: final outputs
|
||||
|
||||
feedbackAL = (outEL - (outFL + outGL + outHL));
|
||||
feedbackAR = (outEL - (outFL + outGL + outHL));
|
||||
feedbackBL = (outFL - (outEL + outGL + outHL));
|
||||
feedbackCL = (outGL - (outEL + outFL + outHL));
|
||||
feedbackCR = (outGL - (outEL + outFL + outHL));
|
||||
feedbackDL = (outHL - (outEL + outFL + outGL));
|
||||
feedbackAR = (outER - (outFR + outGR + outHR));
|
||||
feedbackAL = (outER - (outFR + outGR + outHR));
|
||||
feedbackBR = (outFR - (outER + outGR + outHR));
|
||||
feedbackCR = (outGR - (outER + outFR + outHR));
|
||||
feedbackCL = (outGR - (outER + outFR + outHR));
|
||||
feedbackDR = (outHR - (outER + outFR + outGR));
|
||||
//which we need to feed back into the input again, a bit
|
||||
|
||||
|
|
|
|||
|
|
@ -49,12 +49,13 @@
|
|||
PBXFileDataSource_Warnings_ColumnID,
|
||||
);
|
||||
};
|
||||
PBXPerProjectTemplateStateSaveDate = 684085851;
|
||||
PBXWorkspaceStateSaveDate = 684085851;
|
||||
PBXPerProjectTemplateStateSaveDate = 696975647;
|
||||
PBXWorkspaceStateSaveDate = 696975647;
|
||||
};
|
||||
perUserProjectItems = {
|
||||
8B71BB5128C65C420038254A /* XCBuildMessageTextBookmark */ = 8B71BB5128C65C420038254A /* XCBuildMessageTextBookmark */;
|
||||
8B71BB5228C65C420038254A /* PBXTextBookmark */ = 8B71BB5228C65C420038254A /* PBXTextBookmark */;
|
||||
8B376F622989BCC00027F1BA /* PBXTextBookmark */ = 8B376F622989BCC00027F1BA /* PBXTextBookmark */;
|
||||
8B376F632989BCC00027F1BA /* PBXTextBookmark */ = 8B376F632989BCC00027F1BA /* PBXTextBookmark */;
|
||||
8B376FD8298B1C860027F1BA /* PBXTextBookmark */ = 8B376FD8298B1C860027F1BA /* PBXTextBookmark */;
|
||||
};
|
||||
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
|
||||
userBuildSettings = {
|
||||
|
|
@ -62,18 +63,18 @@
|
|||
};
|
||||
2407DEB6089929BA00EB68BF /* Verbity2.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {948, 4518}}";
|
||||
sepNavSelRange = "{3158, 0}";
|
||||
sepNavVisRange = "{4802, 1216}";
|
||||
sepNavWindowFrame = "{{513, 47}, {895, 831}}";
|
||||
sepNavIntBoundsRect = "{{0, 0}, {948, 4284}}";
|
||||
sepNavSelRange = "{3953, 0}";
|
||||
sepNavVisRange = "{3399, 1479}";
|
||||
sepNavWindowFrame = "{{14, 47}, {895, 831}}";
|
||||
};
|
||||
};
|
||||
245463B80991757100464AD3 /* Verbity2.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1101, 3384}}";
|
||||
sepNavSelRange = "{4015, 0}";
|
||||
sepNavVisRange = "{3513, 698}";
|
||||
sepNavWindowFrame = "{{550, 47}, {895, 831}}";
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1110, 3510}}";
|
||||
sepNavSelRange = "{2436, 2240}";
|
||||
sepNavVisRange = "{4036, 705}";
|
||||
sepNavWindowFrame = "{{19, 47}, {895, 831}}";
|
||||
};
|
||||
};
|
||||
24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = {
|
||||
|
|
@ -86,10 +87,10 @@
|
|||
};
|
||||
24D8286F09A914000093AEF8 /* Verbity2Proc.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {984, 19692}}";
|
||||
sepNavSelRange = "{4135, 0}";
|
||||
sepNavVisRange = "{4031, 348}";
|
||||
sepNavWindowFrame = "{{189, 38}, {1236, 840}}";
|
||||
sepNavIntBoundsRect = "{{0, 0}, {984, 12852}}";
|
||||
sepNavSelRange = "{4103, 0}";
|
||||
sepNavVisRange = "{4115, 66}";
|
||||
sepNavWindowFrame = "{{3, 38}, {1050, 840}}";
|
||||
};
|
||||
};
|
||||
8B02375E1D42B1C400E1E8C8 /* Source Control */ = {
|
||||
|
|
@ -106,24 +107,35 @@
|
|||
isa = PBXCodeSenseManager;
|
||||
indexTemplatePath = "";
|
||||
};
|
||||
8B71BB5128C65C420038254A /* XCBuildMessageTextBookmark */ = {
|
||||
8B376F622989BCC00027F1BA /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
comments = "'countZL' was not declared in this scope";
|
||||
fRef = 24D8286F09A914000093AEF8 /* Verbity2Proc.cpp */;
|
||||
fallbackIsa = XCBuildMessageTextBookmark;
|
||||
rLen = 1;
|
||||
rLoc = 106;
|
||||
rType = 1;
|
||||
};
|
||||
8B71BB5228C65C420038254A /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 24D8286F09A914000093AEF8 /* Verbity2Proc.cpp */;
|
||||
name = "Verbity2Proc.cpp: 107";
|
||||
fRef = 245463B80991757100464AD3 /* Verbity2.h */;
|
||||
name = "Verbity2.h: 154";
|
||||
rLen = 0;
|
||||
rLoc = 4135;
|
||||
rLoc = 4019;
|
||||
rType = 0;
|
||||
vrLen = 348;
|
||||
vrLoc = 4031;
|
||||
vrLen = 63;
|
||||
vrLoc = 4038;
|
||||
};
|
||||
8B376F632989BCC00027F1BA /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 24D8286F09A914000093AEF8 /* Verbity2Proc.cpp */;
|
||||
name = "Verbity2Proc.cpp: 105";
|
||||
rLen = 0;
|
||||
rLoc = 4103;
|
||||
rType = 0;
|
||||
vrLen = 128;
|
||||
vrLoc = 4115;
|
||||
};
|
||||
8B376FD8298B1C860027F1BA /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 24D8286F09A914000093AEF8 /* Verbity2Proc.cpp */;
|
||||
name = "Verbity2Proc.cpp: 105";
|
||||
rLen = 0;
|
||||
rLoc = 4103;
|
||||
rType = 0;
|
||||
vrLen = 66;
|
||||
vrLoc = 4115;
|
||||
};
|
||||
8D01CCC60486CAD60068D4B7 /* Verbity2 */ = {
|
||||
activeExec = 0;
|
||||
|
|
|
|||
|
|
@ -256,6 +256,8 @@
|
|||
<key>Layout</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>BecomeActive</key>
|
||||
<true/>
|
||||
<key>ContentConfiguration</key>
|
||||
<dict>
|
||||
<key>PBXBottomSmartGroupGIDs</key>
|
||||
|
|
@ -321,7 +323,7 @@
|
|||
<real>185</real>
|
||||
</array>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>608 281 810 487 0 0 1440 878 </string>
|
||||
<string>68 308 810 487 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXSmartGroupTreeModule</string>
|
||||
|
|
@ -349,10 +351,11 @@
|
|||
<key>_historyCapacity</key>
|
||||
<integer>0</integer>
|
||||
<key>bookmark</key>
|
||||
<string>8B71BB5228C65C420038254A</string>
|
||||
<string>8B376FD8298B1C860027F1BA</string>
|
||||
<key>history</key>
|
||||
<array>
|
||||
<string>8B71BB5128C65C420038254A</string>
|
||||
<string>8B376F622989BCC00027F1BA</string>
|
||||
<string>8B376F632989BCC00027F1BA</string>
|
||||
</array>
|
||||
</dict>
|
||||
<key>SplitCount</key>
|
||||
|
|
@ -366,18 +369,18 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 0}, {603, 132}}</string>
|
||||
<string>{{0, 0}, {603, 51}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>608 281 810 487 0 0 1440 878 </string>
|
||||
<string>68 308 810 487 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXNavigatorGroup</string>
|
||||
<key>Proportion</key>
|
||||
<string>132pt</string>
|
||||
<string>51pt</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Proportion</key>
|
||||
<string>309pt</string>
|
||||
<string>390pt</string>
|
||||
<key>Tabs</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
|
@ -391,7 +394,9 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{10, 27}, {603, 282}}</string>
|
||||
<string>{{10, 27}, {603, 363}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>68 308 810 487 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>XCDetailModule</string>
|
||||
|
|
@ -446,8 +451,6 @@
|
|||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{10, 27}, {603, 282}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>608 281 810 487 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXBuildResultsModule</string>
|
||||
|
|
@ -475,11 +478,11 @@
|
|||
</array>
|
||||
<key>TableOfContents</key>
|
||||
<array>
|
||||
<string>8B71BB5328C65C420038254A</string>
|
||||
<string>8B376FD9298B1C860027F1BA</string>
|
||||
<string>1CA23ED40692098700951B8B</string>
|
||||
<string>8B71BB5428C65C420038254A</string>
|
||||
<string>8B376FDA298B1C860027F1BA</string>
|
||||
<string>8B0237581D42B1C400E1E8C8</string>
|
||||
<string>8B71BB5528C65C420038254A</string>
|
||||
<string>8B376FDB298B1C860027F1BA</string>
|
||||
<string>1CA23EDF0692099D00951B8B</string>
|
||||
<string>1CA23EE00692099D00951B8B</string>
|
||||
<string>1CA23EE10692099D00951B8B</string>
|
||||
|
|
@ -632,7 +635,7 @@
|
|||
<key>StatusbarIsVisible</key>
|
||||
<true/>
|
||||
<key>TimeStamp</key>
|
||||
<real>684088386.893942</real>
|
||||
<real>696982662.16158402</real>
|
||||
<key>ToolbarConfigUserDefaultsMinorVersion</key>
|
||||
<string>2</string>
|
||||
<key>ToolbarDisplayMode</key>
|
||||
|
|
@ -649,11 +652,11 @@
|
|||
<integer>5</integer>
|
||||
<key>WindowOrderList</key>
|
||||
<array>
|
||||
<string>8B71BB5628C65C420038254A</string>
|
||||
<string>/Users/christopherjohnson/Desktop/Verbity2/Verbity2.xcodeproj</string>
|
||||
<string>8B376FDC298B1C860027F1BA</string>
|
||||
<string>/Users/christopherjohnson/Desktop/airwindows/plugins/MacVST/Verbity2/Verbity2.xcodeproj</string>
|
||||
</array>
|
||||
<key>WindowString</key>
|
||||
<string>608 281 810 487 0 0 1440 878 </string>
|
||||
<string>68 308 810 487 0 0 1440 878 </string>
|
||||
<key>WindowToolsV3</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ Verbity2::Verbity2(audioMasterCallback audioMaster) :
|
|||
iirAR = 0.0;
|
||||
iirBR = 0.0;
|
||||
|
||||
for(int count = 0; count < 5190; count++) {aZL[count] = 0.0; aZR[count] = 0.0;}
|
||||
//for(int count = 0; count < 5190; count++) {aZL[count] = 0.0; aZR[count] = 0.0;}
|
||||
|
||||
for(int count = 0; count < 5004; count++) {aAL[count] = 0.0; aAR[count] = 0.0;} //AFKPU
|
||||
for(int count = 0; count < 4952; count++) {aFL[count] = 0.0; aFR[count] = 0.0;}
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ private:
|
|||
double iirAL;
|
||||
double iirBL;
|
||||
|
||||
double aZL[5191];
|
||||
//double aZL[5191];
|
||||
|
||||
double aAL[5005]; //AFKPU
|
||||
double aFL[4953];
|
||||
|
|
@ -107,7 +107,7 @@ private:
|
|||
double iirAR;
|
||||
double iirBR;
|
||||
|
||||
double aZR[5191];
|
||||
//double aZR[5191];
|
||||
|
||||
double aAR[5005]; //AFKPU
|
||||
double aFR[4953];
|
||||
|
|
|
|||
|
|
@ -26,10 +26,10 @@ void Verbity2::processReplacing(float **inputs, float **outputs, VstInt32 sample
|
|||
//mulch is tone control, darken to obscure the Chrome Oxide, not as much highpass
|
||||
double size = (pow(A,2.0)*0.9)+0.1;
|
||||
double regen = (1.0-pow(1.0-B,3.0))*0.00032;
|
||||
double mulchSetting = 1.0-pow(1.0-C,2); //modify taper
|
||||
double lowpass = (1.0-(pow(mulchSetting,2)*0.75))/sqrt(overallscale);
|
||||
double highpass = (0.01+(mulchSetting*0.05))/sqrt(overallscale);
|
||||
double interpolateMax = 0.06+(mulchSetting*0.3);
|
||||
double mulchSetting = C;
|
||||
double lowpass = (1.0-(mulchSetting*0.75))/sqrt(overallscale);
|
||||
double highpass = (0.007+(mulchSetting*0.022))/sqrt(overallscale);
|
||||
double interpolateMax = 0.07+(mulchSetting*0.4);
|
||||
double wet = D*2.0;
|
||||
double dry = 2.0 - wet;
|
||||
if (wet > 1.0) wet = 1.0;
|
||||
|
|
@ -40,7 +40,7 @@ void Verbity2::processReplacing(float **inputs, float **outputs, VstInt32 sample
|
|||
//that's so it can be on submixes without cutting back dry channel when adjusted:
|
||||
//unless you go super heavy, you are only adjusting the added verb loudness.
|
||||
|
||||
delayZ = 5189.0*size; //z can be predelay
|
||||
//delayZ = 5189.0*size; //z can be predelay
|
||||
|
||||
delayA = 5003.0*size;
|
||||
delayF = 4951.0*size;
|
||||
|
|
@ -56,7 +56,7 @@ void Verbity2::processReplacing(float **inputs, float **outputs, VstInt32 sample
|
|||
|
||||
delayC = 3323.0*size;
|
||||
delayH = 2791.0*size;
|
||||
delayM= 2767.0*size;
|
||||
delayM = 2767.0*size;
|
||||
delayR = 2389.0*size;
|
||||
delayW = 2347.0*size;
|
||||
|
||||
|
|
@ -104,12 +104,11 @@ void Verbity2::processReplacing(float **inputs, float **outputs, VstInt32 sample
|
|||
feedbackDR = (feedbackDR*(1.0-interpolateR))+(previousDR*interpolateR); previousDR = feedbackDR;
|
||||
feedbackER = (feedbackER*(1.0-interpolateR))+(previousER*interpolateR); previousER = feedbackER;
|
||||
|
||||
aZL[countZ] = inputSampleL;
|
||||
countZ++; if (countZ < 0 || countZ > delayZ) countZ = 0;
|
||||
inputSampleL = aZL[countZ-((countZ > delayZ)?delayZ+1:0)];
|
||||
aZR[countZ] = inputSampleR;
|
||||
countZ++; if (countZ < 0 || countZ > delayZ) countZ = 0;
|
||||
inputSampleR = aZR[countZ-((countZ > delayZ)?delayZ+1:0)];
|
||||
// aZL[countZ] = inputSampleL;
|
||||
// aZR[countZ] = inputSampleR;
|
||||
// countZ++; if (countZ < 0 || countZ > delayZ) countZ = 0;
|
||||
// inputSampleL = aZL[countZ-((countZ > delayZ)?delayZ+1:0)];
|
||||
// inputSampleR = aZR[countZ-((countZ > delayZ)?delayZ+1:0)];
|
||||
//predelay
|
||||
|
||||
aAL[countA] = inputSampleL + (feedbackAL * (regen*(1.0-fabs(feedbackAL*regen))));
|
||||
|
|
@ -273,17 +272,17 @@ void Verbity2::processReplacing(float **inputs, float **outputs, VstInt32 sample
|
|||
//-------- five
|
||||
|
||||
|
||||
feedbackAL = ((outUL*3.0) - ((outVL + outWL + outXL + outYL)*2.0));
|
||||
feedbackAR = ((outUL*3.0) - ((outVL + outWL + outXL + outYL)*2.0));
|
||||
feedbackBL = ((outVL*3.0) - ((outUL + outWL + outXL + outYL)*2.0));
|
||||
feedbackCL = ((outWL*3.0) - ((outUL + outVL + outXL + outYL)*2.0));
|
||||
feedbackCR = ((outWL*3.0) - ((outUL + outVL + outXL + outYL)*2.0));
|
||||
feedbackDL = ((outXL*3.0) - ((outUL + outVL + outWL + outYL)*2.0));
|
||||
feedbackEL = ((outYL*3.0) - ((outUL + outVL + outWL + outXL)*2.0));
|
||||
feedbackER = ((outYL*3.0) - ((outUL + outVL + outWL + outXL)*2.0));
|
||||
|
||||
feedbackAR = ((outUR*3.0) - ((outVR + outWR + outXR + outYR)*2.0));
|
||||
feedbackAL = ((outUR*3.0) - ((outVR + outWR + outXR + outYR)*2.0));
|
||||
feedbackBR = ((outVR*3.0) - ((outUR + outWR + outXR + outYR)*2.0));
|
||||
feedbackCR = ((outWR*3.0) - ((outUR + outVR + outXR + outYR)*2.0));
|
||||
feedbackCL = ((outWR*3.0) - ((outUR + outVR + outXR + outYR)*2.0));
|
||||
feedbackDR = ((outXR*3.0) - ((outUR + outVR + outWR + outYR)*2.0));
|
||||
feedbackER = ((outYR*3.0) - ((outUR + outVR + outWR + outXR)*2.0));
|
||||
feedbackEL = ((outYR*3.0) - ((outUR + outVR + outWR + outXR)*2.0));
|
||||
//which we need to feed back into the input again, a bit
|
||||
|
||||
inputSampleL = (outUL + outVL + outWL + outXL + outYL)*0.0016;
|
||||
|
|
@ -382,10 +381,10 @@ void Verbity2::processDoubleReplacing(double **inputs, double **outputs, VstInt3
|
|||
//mulch is tone control, darken to obscure the Chrome Oxide, not as much highpass
|
||||
double size = (pow(A,2.0)*0.9)+0.1;
|
||||
double regen = (1.0-pow(1.0-B,3.0))*0.00032;
|
||||
double mulchSetting = 1.0-pow(1.0-C,2); //modify taper
|
||||
double lowpass = (1.0-(pow(mulchSetting,2)*0.75))/sqrt(overallscale);
|
||||
double highpass = (0.01+(mulchSetting*0.05))/sqrt(overallscale);
|
||||
double interpolateMax = 0.06+(mulchSetting*0.3);
|
||||
double mulchSetting = C;
|
||||
double lowpass = (1.0-(mulchSetting*0.75))/sqrt(overallscale);
|
||||
double highpass = (0.007+(mulchSetting*0.022))/sqrt(overallscale);
|
||||
double interpolateMax = 0.07+(mulchSetting*0.4);
|
||||
double wet = D*2.0;
|
||||
double dry = 2.0 - wet;
|
||||
if (wet > 1.0) wet = 1.0;
|
||||
|
|
@ -396,7 +395,7 @@ void Verbity2::processDoubleReplacing(double **inputs, double **outputs, VstInt3
|
|||
//that's so it can be on submixes without cutting back dry channel when adjusted:
|
||||
//unless you go super heavy, you are only adjusting the added verb loudness.
|
||||
|
||||
delayZ = 5189.0*size; //z can be predelay
|
||||
//delayZ = 5189.0*size; //z can be predelay
|
||||
|
||||
delayA = 5003.0*size;
|
||||
delayF = 4951.0*size;
|
||||
|
|
@ -412,7 +411,7 @@ void Verbity2::processDoubleReplacing(double **inputs, double **outputs, VstInt3
|
|||
|
||||
delayC = 3323.0*size;
|
||||
delayH = 2791.0*size;
|
||||
delayM= 2767.0*size;
|
||||
delayM = 2767.0*size;
|
||||
delayR = 2389.0*size;
|
||||
delayW = 2347.0*size;
|
||||
|
||||
|
|
@ -460,12 +459,11 @@ void Verbity2::processDoubleReplacing(double **inputs, double **outputs, VstInt3
|
|||
feedbackDR = (feedbackDR*(1.0-interpolateR))+(previousDR*interpolateR); previousDR = feedbackDR;
|
||||
feedbackER = (feedbackER*(1.0-interpolateR))+(previousER*interpolateR); previousER = feedbackER;
|
||||
|
||||
aZL[countZ] = inputSampleL;
|
||||
countZ++; if (countZ < 0 || countZ > delayZ) countZ = 0;
|
||||
inputSampleL = aZL[countZ-((countZ > delayZ)?delayZ+1:0)];
|
||||
aZR[countZ] = inputSampleR;
|
||||
countZ++; if (countZ < 0 || countZ > delayZ) countZ = 0;
|
||||
inputSampleR = aZR[countZ-((countZ > delayZ)?delayZ+1:0)];
|
||||
// aZL[countZ] = inputSampleL;
|
||||
// aZR[countZ] = inputSampleR;
|
||||
// countZ++; if (countZ < 0 || countZ > delayZ) countZ = 0;
|
||||
// inputSampleL = aZL[countZ-((countZ > delayZ)?delayZ+1:0)];
|
||||
// inputSampleR = aZR[countZ-((countZ > delayZ)?delayZ+1:0)];
|
||||
//predelay
|
||||
|
||||
aAL[countA] = inputSampleL + (feedbackAL * (regen*(1.0-fabs(feedbackAL*regen))));
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -25,7 +25,7 @@ void Chamber2::processReplacing(float **inputs, float **outputs, VstInt32 sample
|
|||
|
||||
double size = (A*0.9)+0.1;
|
||||
double regen = (1.0-(pow(1.0-B,2)))*0.123;
|
||||
double echoScale = 1.0-(pow(C,3));
|
||||
double echoScale = 1.0-C;
|
||||
double echo = 0.618033988749894848204586+((1.0-0.618033988749894848204586)*echoScale);
|
||||
double interpolate = (1.0-echo)*0.381966011250105;
|
||||
//this now goes from Chamber, to all the reverb delays being exactly the same
|
||||
|
|
@ -41,7 +41,8 @@ void Chamber2::processReplacing(float **inputs, float **outputs, VstInt32 sample
|
|||
//that's so it can be on submixes without cutting back dry channel when adjusted:
|
||||
//unless you go super heavy, you are only adjusting the added verb loudness.
|
||||
|
||||
delayE = delayM = 9900*size;
|
||||
delayM = sqrt(9900*size);
|
||||
delayE = 9900*size;
|
||||
delayF = delayE*echo;
|
||||
delayG = delayF*echo;
|
||||
delayH = delayG*echo;
|
||||
|
|
@ -159,13 +160,13 @@ void Chamber2::processReplacing(float **inputs, float **outputs, VstInt32 sample
|
|||
double outHR = aHR[countH-((countH > delayH)?delayH+1:0)];
|
||||
//third block: final outputs
|
||||
|
||||
feedbackAL = (outEL - (outFL + outGL + outHL));
|
||||
feedbackAR = (outEL - (outFL + outGL + outHL));
|
||||
feedbackBL = (outFL - (outEL + outGL + outHL));
|
||||
feedbackCL = (outGL - (outEL + outFL + outHL));
|
||||
feedbackCR = (outGL - (outEL + outFL + outHL));
|
||||
feedbackDL = (outHL - (outEL + outFL + outGL));
|
||||
feedbackAR = (outER - (outFR + outGR + outHR));
|
||||
feedbackAL = (outER - (outFR + outGR + outHR));
|
||||
feedbackBR = (outFR - (outER + outGR + outHR));
|
||||
feedbackCR = (outGR - (outER + outFR + outHR));
|
||||
feedbackCL = (outGR - (outER + outFR + outHR));
|
||||
feedbackDR = (outHR - (outER + outFR + outGR));
|
||||
//which we need to feed back into the input again, a bit
|
||||
|
||||
|
|
@ -280,7 +281,7 @@ void Chamber2::processDoubleReplacing(double **inputs, double **outputs, VstInt3
|
|||
|
||||
double size = (A*0.9)+0.1;
|
||||
double regen = (1.0-(pow(1.0-B,2)))*0.123;
|
||||
double echoScale = 1.0-(pow(C,3));
|
||||
double echoScale = 1.0-C;
|
||||
double echo = 0.618033988749894848204586+((1.0-0.618033988749894848204586)*echoScale);
|
||||
double interpolate = (1.0-echo)*0.381966011250105;
|
||||
//this now goes from Chamber, to all the reverb delays being exactly the same
|
||||
|
|
@ -296,7 +297,8 @@ void Chamber2::processDoubleReplacing(double **inputs, double **outputs, VstInt3
|
|||
//that's so it can be on submixes without cutting back dry channel when adjusted:
|
||||
//unless you go super heavy, you are only adjusting the added verb loudness.
|
||||
|
||||
delayE = delayM = 9900*size;
|
||||
delayM = sqrt(9900*size);
|
||||
delayE = 9900*size;
|
||||
delayF = delayE*echo;
|
||||
delayG = delayF*echo;
|
||||
delayH = delayG*echo;
|
||||
|
|
@ -414,13 +416,13 @@ void Chamber2::processDoubleReplacing(double **inputs, double **outputs, VstInt3
|
|||
double outHR = aHR[countH-((countH > delayH)?delayH+1:0)];
|
||||
//third block: final outputs
|
||||
|
||||
feedbackAL = (outEL - (outFL + outGL + outHL));
|
||||
feedbackAR = (outEL - (outFL + outGL + outHL));
|
||||
feedbackBL = (outFL - (outEL + outGL + outHL));
|
||||
feedbackCL = (outGL - (outEL + outFL + outHL));
|
||||
feedbackCR = (outGL - (outEL + outFL + outHL));
|
||||
feedbackDL = (outHL - (outEL + outFL + outGL));
|
||||
feedbackAR = (outER - (outFR + outGR + outHR));
|
||||
feedbackAL = (outER - (outFR + outGR + outHR));
|
||||
feedbackBR = (outFR - (outER + outGR + outHR));
|
||||
feedbackCR = (outGR - (outER + outFR + outHR));
|
||||
feedbackCL = (outGR - (outER + outFR + outHR));
|
||||
feedbackDR = (outHR - (outER + outFR + outGR));
|
||||
//which we need to feed back into the input again, a bit
|
||||
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -23,7 +23,7 @@ Verbity2::Verbity2(audioMasterCallback audioMaster) :
|
|||
iirAR = 0.0;
|
||||
iirBR = 0.0;
|
||||
|
||||
for(int count = 0; count < 5190; count++) {aZL[count] = 0.0; aZR[count] = 0.0;}
|
||||
//for(int count = 0; count < 5190; count++) {aZL[count] = 0.0; aZR[count] = 0.0;}
|
||||
|
||||
for(int count = 0; count < 5004; count++) {aAL[count] = 0.0; aAR[count] = 0.0;} //AFKPU
|
||||
for(int count = 0; count < 4952; count++) {aFL[count] = 0.0; aFR[count] = 0.0;}
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ private:
|
|||
double iirAL;
|
||||
double iirBL;
|
||||
|
||||
double aZL[5191];
|
||||
//double aZL[5191];
|
||||
|
||||
double aAL[5005]; //AFKPU
|
||||
double aFL[4953];
|
||||
|
|
@ -107,7 +107,7 @@ private:
|
|||
double iirAR;
|
||||
double iirBR;
|
||||
|
||||
double aZR[5191];
|
||||
//double aZR[5191];
|
||||
|
||||
double aAR[5005]; //AFKPU
|
||||
double aFR[4953];
|
||||
|
|
|
|||
|
|
@ -26,10 +26,10 @@ void Verbity2::processReplacing(float **inputs, float **outputs, VstInt32 sample
|
|||
//mulch is tone control, darken to obscure the Chrome Oxide, not as much highpass
|
||||
double size = (pow(A,2.0)*0.9)+0.1;
|
||||
double regen = (1.0-pow(1.0-B,3.0))*0.00032;
|
||||
double mulchSetting = 1.0-pow(1.0-C,2); //modify taper
|
||||
double lowpass = (1.0-(pow(mulchSetting,2)*0.75))/sqrt(overallscale);
|
||||
double highpass = (0.01+(mulchSetting*0.05))/sqrt(overallscale);
|
||||
double interpolateMax = 0.06+(mulchSetting*0.3);
|
||||
double mulchSetting = C;
|
||||
double lowpass = (1.0-(mulchSetting*0.75))/sqrt(overallscale);
|
||||
double highpass = (0.007+(mulchSetting*0.022))/sqrt(overallscale);
|
||||
double interpolateMax = 0.07+(mulchSetting*0.4);
|
||||
double wet = D*2.0;
|
||||
double dry = 2.0 - wet;
|
||||
if (wet > 1.0) wet = 1.0;
|
||||
|
|
@ -40,7 +40,7 @@ void Verbity2::processReplacing(float **inputs, float **outputs, VstInt32 sample
|
|||
//that's so it can be on submixes without cutting back dry channel when adjusted:
|
||||
//unless you go super heavy, you are only adjusting the added verb loudness.
|
||||
|
||||
delayZ = 5189.0*size; //z can be predelay
|
||||
//delayZ = 5189.0*size; //z can be predelay
|
||||
|
||||
delayA = 5003.0*size;
|
||||
delayF = 4951.0*size;
|
||||
|
|
@ -56,7 +56,7 @@ void Verbity2::processReplacing(float **inputs, float **outputs, VstInt32 sample
|
|||
|
||||
delayC = 3323.0*size;
|
||||
delayH = 2791.0*size;
|
||||
delayM= 2767.0*size;
|
||||
delayM = 2767.0*size;
|
||||
delayR = 2389.0*size;
|
||||
delayW = 2347.0*size;
|
||||
|
||||
|
|
@ -104,12 +104,11 @@ void Verbity2::processReplacing(float **inputs, float **outputs, VstInt32 sample
|
|||
feedbackDR = (feedbackDR*(1.0-interpolateR))+(previousDR*interpolateR); previousDR = feedbackDR;
|
||||
feedbackER = (feedbackER*(1.0-interpolateR))+(previousER*interpolateR); previousER = feedbackER;
|
||||
|
||||
aZL[countZ] = inputSampleL;
|
||||
countZ++; if (countZ < 0 || countZ > delayZ) countZ = 0;
|
||||
inputSampleL = aZL[countZ-((countZ > delayZ)?delayZ+1:0)];
|
||||
aZR[countZ] = inputSampleR;
|
||||
countZ++; if (countZ < 0 || countZ > delayZ) countZ = 0;
|
||||
inputSampleR = aZR[countZ-((countZ > delayZ)?delayZ+1:0)];
|
||||
// aZL[countZ] = inputSampleL;
|
||||
// aZR[countZ] = inputSampleR;
|
||||
// countZ++; if (countZ < 0 || countZ > delayZ) countZ = 0;
|
||||
// inputSampleL = aZL[countZ-((countZ > delayZ)?delayZ+1:0)];
|
||||
// inputSampleR = aZR[countZ-((countZ > delayZ)?delayZ+1:0)];
|
||||
//predelay
|
||||
|
||||
aAL[countA] = inputSampleL + (feedbackAL * (regen*(1.0-fabs(feedbackAL*regen))));
|
||||
|
|
@ -273,17 +272,17 @@ void Verbity2::processReplacing(float **inputs, float **outputs, VstInt32 sample
|
|||
//-------- five
|
||||
|
||||
|
||||
feedbackAL = ((outUL*3.0) - ((outVL + outWL + outXL + outYL)*2.0));
|
||||
feedbackAR = ((outUL*3.0) - ((outVL + outWL + outXL + outYL)*2.0));
|
||||
feedbackBL = ((outVL*3.0) - ((outUL + outWL + outXL + outYL)*2.0));
|
||||
feedbackCL = ((outWL*3.0) - ((outUL + outVL + outXL + outYL)*2.0));
|
||||
feedbackCR = ((outWL*3.0) - ((outUL + outVL + outXL + outYL)*2.0));
|
||||
feedbackDL = ((outXL*3.0) - ((outUL + outVL + outWL + outYL)*2.0));
|
||||
feedbackEL = ((outYL*3.0) - ((outUL + outVL + outWL + outXL)*2.0));
|
||||
feedbackER = ((outYL*3.0) - ((outUL + outVL + outWL + outXL)*2.0));
|
||||
|
||||
feedbackAR = ((outUR*3.0) - ((outVR + outWR + outXR + outYR)*2.0));
|
||||
feedbackAL = ((outUR*3.0) - ((outVR + outWR + outXR + outYR)*2.0));
|
||||
feedbackBR = ((outVR*3.0) - ((outUR + outWR + outXR + outYR)*2.0));
|
||||
feedbackCR = ((outWR*3.0) - ((outUR + outVR + outXR + outYR)*2.0));
|
||||
feedbackCL = ((outWR*3.0) - ((outUR + outVR + outXR + outYR)*2.0));
|
||||
feedbackDR = ((outXR*3.0) - ((outUR + outVR + outWR + outYR)*2.0));
|
||||
feedbackER = ((outYR*3.0) - ((outUR + outVR + outWR + outXR)*2.0));
|
||||
feedbackEL = ((outYR*3.0) - ((outUR + outVR + outWR + outXR)*2.0));
|
||||
//which we need to feed back into the input again, a bit
|
||||
|
||||
inputSampleL = (outUL + outVL + outWL + outXL + outYL)*0.0016;
|
||||
|
|
@ -382,10 +381,10 @@ void Verbity2::processDoubleReplacing(double **inputs, double **outputs, VstInt3
|
|||
//mulch is tone control, darken to obscure the Chrome Oxide, not as much highpass
|
||||
double size = (pow(A,2.0)*0.9)+0.1;
|
||||
double regen = (1.0-pow(1.0-B,3.0))*0.00032;
|
||||
double mulchSetting = 1.0-pow(1.0-C,2); //modify taper
|
||||
double lowpass = (1.0-(pow(mulchSetting,2)*0.75))/sqrt(overallscale);
|
||||
double highpass = (0.01+(mulchSetting*0.05))/sqrt(overallscale);
|
||||
double interpolateMax = 0.06+(mulchSetting*0.3);
|
||||
double mulchSetting = C;
|
||||
double lowpass = (1.0-(mulchSetting*0.75))/sqrt(overallscale);
|
||||
double highpass = (0.007+(mulchSetting*0.022))/sqrt(overallscale);
|
||||
double interpolateMax = 0.07+(mulchSetting*0.4);
|
||||
double wet = D*2.0;
|
||||
double dry = 2.0 - wet;
|
||||
if (wet > 1.0) wet = 1.0;
|
||||
|
|
@ -396,7 +395,7 @@ void Verbity2::processDoubleReplacing(double **inputs, double **outputs, VstInt3
|
|||
//that's so it can be on submixes without cutting back dry channel when adjusted:
|
||||
//unless you go super heavy, you are only adjusting the added verb loudness.
|
||||
|
||||
delayZ = 5189.0*size; //z can be predelay
|
||||
//delayZ = 5189.0*size; //z can be predelay
|
||||
|
||||
delayA = 5003.0*size;
|
||||
delayF = 4951.0*size;
|
||||
|
|
@ -412,7 +411,7 @@ void Verbity2::processDoubleReplacing(double **inputs, double **outputs, VstInt3
|
|||
|
||||
delayC = 3323.0*size;
|
||||
delayH = 2791.0*size;
|
||||
delayM= 2767.0*size;
|
||||
delayM = 2767.0*size;
|
||||
delayR = 2389.0*size;
|
||||
delayW = 2347.0*size;
|
||||
|
||||
|
|
@ -460,12 +459,11 @@ void Verbity2::processDoubleReplacing(double **inputs, double **outputs, VstInt3
|
|||
feedbackDR = (feedbackDR*(1.0-interpolateR))+(previousDR*interpolateR); previousDR = feedbackDR;
|
||||
feedbackER = (feedbackER*(1.0-interpolateR))+(previousER*interpolateR); previousER = feedbackER;
|
||||
|
||||
aZL[countZ] = inputSampleL;
|
||||
countZ++; if (countZ < 0 || countZ > delayZ) countZ = 0;
|
||||
inputSampleL = aZL[countZ-((countZ > delayZ)?delayZ+1:0)];
|
||||
aZR[countZ] = inputSampleR;
|
||||
countZ++; if (countZ < 0 || countZ > delayZ) countZ = 0;
|
||||
inputSampleR = aZR[countZ-((countZ > delayZ)?delayZ+1:0)];
|
||||
// aZL[countZ] = inputSampleL;
|
||||
// aZR[countZ] = inputSampleR;
|
||||
// countZ++; if (countZ < 0 || countZ > delayZ) countZ = 0;
|
||||
// inputSampleL = aZL[countZ-((countZ > delayZ)?delayZ+1:0)];
|
||||
// inputSampleR = aZR[countZ-((countZ > delayZ)?delayZ+1:0)];
|
||||
//predelay
|
||||
|
||||
aAL[countA] = inputSampleL + (feedbackAL * (regen*(1.0-fabs(feedbackAL*regen))));
|
||||
|
|
|
|||
3
what.txt
3
what.txt
|
|
@ -301,7 +301,8 @@ UltrasonicMed is two stages of supersonic filter, for using inside digital mixes
|
|||
UltrasonX is a method for rolling your own Console-type systems with total control over your ultrasonic filtering.
|
||||
UnBox is a distortion where only the harmonics that don't alias are allowed to distort.
|
||||
VariMu is a more organic variation on Pressure (a compressor)
|
||||
Verbity is my new best reverb, which uses feedforward reverb topology.
|
||||
Verbity is a dual-mono reverb, which uses feedforward reverb topology.
|
||||
Verbity2 adds stereo crossmodulation and expands Verbity's feedforward reverb topology.
|
||||
Vibrato lets you vibrato, chorus, flange, and make odd FM noises.
|
||||
VinylDither is a high-performance dither that converts digital noise to ‘groove noise’.
|
||||
VoiceOfTheStarship is a deep noise tone source.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue