Airwindows Monitoring REDUX: Mac/Windows/Linux AU/VST
-
- KVRian
- Topic Starter
- 1320 posts since 7 Apr, 2007 from Bellows Falls, VT
long double drySampleL; drySampleL = inputSampleL;
long double drySampleR; drySampleR = inputSampleR; //everything runs 'inside' Console
long double bass; bass = (processing * processing * 0.00001) / overallscale;
//we are using the iir filters from out of SubsOnly
mid = inputSampleL + inputSampleR; side = inputSampleL - inputSampleR;
iirSampleAL = (iirSampleAL * (1.0 - (bass*0.618))) + (side * bass * 0.618); side = side - iirSampleAL;
inputSampleL = (mid+side)/2.0; inputSampleR = (mid-side)/2.0;
//bass narrowing filter
allpasstemp = ax - 1; if (allpasstemp < 0 || allpasstemp > am) allpasstemp = am;
inputSampleL -= aL[allpasstemp]*0.5; aL[ax] = inputSampleL; inputSampleL *= 0.5;
inputSampleR -= aR[allpasstemp]*0.5; aR[ax] = inputSampleR; inputSampleR *= 0.5;
ax--; if (ax < 0 || ax > am) {ax = am;}
inputSampleL += (aL[ax])*0.5; inputSampleR += (aR[ax])*0.5;
if (ax == am) {inputSampleL += (aL[0])*0.5; inputSampleR += (aR[0])*0.5;}
else {inputSampleL += (aL[ax+1])*0.5; inputSampleR += (aR[ax+1])*0.5;}
//a darkened Midiverb-style allpass
if (processing == 12) {inputSampleL *= 0.125; inputSampleR *= 0.125;}
if (processing == 13) {inputSampleL *= 0.25; inputSampleR *= 0.25;}
if (processing == 14) {inputSampleL *= 0.30; inputSampleR *= 0.30;}
if (processing == 15) {inputSampleL *= 0.35; inputSampleR *= 0.35;}
//Cans A suppresses the crossfeed more, Cans B makes it louder
drySampleL += inputSampleR;
drySampleR += inputSampleL; //the crossfeed
allpasstemp = dx - 1; if (allpasstemp < 0 || allpasstemp > dm) allpasstemp = dm;
inputSampleL -= dL[allpasstemp]*0.5; dL[dx] = inputSampleL; inputSampleL *= 0.5;
inputSampleR -= dR[allpasstemp]*0.5; dR[dx] = inputSampleR; inputSampleR *= 0.5;
dx--; if (dx < 0 || dx > dm) {dx = dm;}
inputSampleL += (dL[dx])*0.5; inputSampleR += (dR[dx])*0.5;
if (dx == dm) {inputSampleL += (dL[0])*0.5; inputSampleR += (dR[0])*0.5;}
else {inputSampleL += (dL[dx+1])*0.5; inputSampleR += (dR[dx+1])*0.5;}
//a darkened Midiverb-style allpass, which is stretching the previous one even more
inputSampleL *= 0.25; inputSampleR *= 0.25;
//for all versions of Cans the second level of bloom is this far down
//and, remains on the opposite speaker rather than crossing again to the original side
drySampleL += inputSampleR;
drySampleR += inputSampleL; //add the crossfeed and very faint extra verbyness
This is the piece of the code. I don't know what to tell you when you are telling me I'm not feeding a (granted, nonstandard) allpass from L to R and from R to L. I mean, this is the code. If I just wanted to attenuate the side channel, I'd just attenuate the side channel and it'd be much less trouble.
long double drySampleR; drySampleR = inputSampleR; //everything runs 'inside' Console
long double bass; bass = (processing * processing * 0.00001) / overallscale;
//we are using the iir filters from out of SubsOnly
mid = inputSampleL + inputSampleR; side = inputSampleL - inputSampleR;
iirSampleAL = (iirSampleAL * (1.0 - (bass*0.618))) + (side * bass * 0.618); side = side - iirSampleAL;
inputSampleL = (mid+side)/2.0; inputSampleR = (mid-side)/2.0;
//bass narrowing filter
allpasstemp = ax - 1; if (allpasstemp < 0 || allpasstemp > am) allpasstemp = am;
inputSampleL -= aL[allpasstemp]*0.5; aL[ax] = inputSampleL; inputSampleL *= 0.5;
inputSampleR -= aR[allpasstemp]*0.5; aR[ax] = inputSampleR; inputSampleR *= 0.5;
ax--; if (ax < 0 || ax > am) {ax = am;}
inputSampleL += (aL[ax])*0.5; inputSampleR += (aR[ax])*0.5;
if (ax == am) {inputSampleL += (aL[0])*0.5; inputSampleR += (aR[0])*0.5;}
else {inputSampleL += (aL[ax+1])*0.5; inputSampleR += (aR[ax+1])*0.5;}
//a darkened Midiverb-style allpass
if (processing == 12) {inputSampleL *= 0.125; inputSampleR *= 0.125;}
if (processing == 13) {inputSampleL *= 0.25; inputSampleR *= 0.25;}
if (processing == 14) {inputSampleL *= 0.30; inputSampleR *= 0.30;}
if (processing == 15) {inputSampleL *= 0.35; inputSampleR *= 0.35;}
//Cans A suppresses the crossfeed more, Cans B makes it louder
drySampleL += inputSampleR;
drySampleR += inputSampleL; //the crossfeed
allpasstemp = dx - 1; if (allpasstemp < 0 || allpasstemp > dm) allpasstemp = dm;
inputSampleL -= dL[allpasstemp]*0.5; dL[dx] = inputSampleL; inputSampleL *= 0.5;
inputSampleR -= dR[allpasstemp]*0.5; dR[dx] = inputSampleR; inputSampleR *= 0.5;
dx--; if (dx < 0 || dx > dm) {dx = dm;}
inputSampleL += (dL[dx])*0.5; inputSampleR += (dR[dx])*0.5;
if (dx == dm) {inputSampleL += (dL[0])*0.5; inputSampleR += (dR[0])*0.5;}
else {inputSampleL += (dL[dx+1])*0.5; inputSampleR += (dR[dx+1])*0.5;}
//a darkened Midiverb-style allpass, which is stretching the previous one even more
inputSampleL *= 0.25; inputSampleR *= 0.25;
//for all versions of Cans the second level of bloom is this far down
//and, remains on the opposite speaker rather than crossing again to the original side
drySampleL += inputSampleR;
drySampleR += inputSampleL; //add the crossfeed and very faint extra verbyness
This is the piece of the code. I don't know what to tell you when you are telling me I'm not feeding a (granted, nonstandard) allpass from L to R and from R to L. I mean, this is the code. If I just wanted to attenuate the side channel, I'd just attenuate the side channel and it'd be much less trouble.
-
- KVRist
- 275 posts since 12 Jan, 2016
At first i thought PurestAir's "Limit" doesn't do anything, then someone asked you the same, you checked the code and confirmed that everything is okay, then i checked with analyzers and wow, it is limiting indeed
So now i see the code (didn't understand a thing), but still can't confirm this with analyzers. Will you please help me with this? This thing is bothering me since October. I can show you the same measure i did on Gearslutz. You see, no notches, just dimmed side and slight (nonexistent) stereo roll off
So now i see the code (didn't understand a thing), but still can't confirm this with analyzers. Will you please help me with this? This thing is bothering me since October. I can show you the same measure i did on Gearslutz. You see, no notches, just dimmed side and slight (nonexistent) stereo roll off
You do not have the required permissions to view the files attached to this post.
-
- KVRian
- Topic Starter
- 1320 posts since 7 Apr, 2007 from Bellows Falls, VT
But allpasses are frequency-flat. Comb filters are the ones that get notches. Allpasses totally smear the phase response while remaining completely flat in the frequency domain.
-
AdvancedFollower AdvancedFollower https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=418780
- KVRian
- 1234 posts since 8 May, 2018 from Sweden
It definitely sounds like crossfeed to my ears. If I only listen through one earpiece with any of the "Cans" modes, I can hear hard-panned sounds "meant" for the other channel very faintly. E.g. a channel hard-panned right can still be heard faintly in the left earpiece, while bypassing silences the channel completely.
I've also played with Waves Nx/Abbey Road and Can Opener, but I've found they definitely affect the frequency response, which can be heard and seen on a spectrum meter. If these tools are meant to be used while mixing, that seems like a bad idea.
I've also played with Waves Nx/Abbey Road and Can Opener, but I've found they definitely affect the frequency response, which can be heard and seen on a spectrum meter. If these tools are meant to be used while mixing, that seems like a bad idea.