aboutsummaryrefslogtreecommitdiffstats
path: root/alc/alu.cpp
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2019-09-28 01:58:29 -0700
committerChris Robinson <[email protected]>2019-09-28 01:58:29 -0700
commit882b4acae80f41547a9e16b7def02a972842c857 (patch)
tree3c4474c01bcfc33ef2973f06adb4edca6ea8b5a0 /alc/alu.cpp
parent00d5356b96d29775653bc6816fafff9cc94ef3ec (diff)
Add "fast" variants for the bsinc resamplers
This simply omits the scale factor from the filter, similar to how up-sampling does. The consequence of this is less smooth transitions when ramping the pitch while down-sampling, but otherwise behaves fine.
Diffstat (limited to 'alc/alu.cpp')
-rw-r--r--alc/alu.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/alc/alu.cpp b/alc/alu.cpp
index 86d2789e..5df1c3a2 100644
--- a/alc/alu.cpp
+++ b/alc/alu.cpp
@@ -947,9 +947,9 @@ void CalcNonAttnSourceParams(ALvoice *voice, const ALvoicePropsBase *props, cons
voice->mStep = MAX_PITCH<<FRACTIONBITS;
else
voice->mStep = maxu(fastf2u(Pitch * FRACTIONONE), 1);
- if(props->mResampler == Resampler::BSinc24)
+ if(props->mResampler == Resampler::BSinc24 || props->mResampler == Resampler::FastBSinc24)
BsincPrepare(voice->mStep, &voice->mResampleState.bsinc, &bsinc24);
- else if(props->mResampler == Resampler::BSinc12)
+ else if(props->mResampler == Resampler::BSinc12 || props->mResampler == Resampler::FastBSinc12)
BsincPrepare(voice->mStep, &voice->mResampleState.bsinc, &bsinc12);
voice->mResampler = SelectResampler(props->mResampler, voice->mStep);
@@ -1277,9 +1277,9 @@ void CalcAttnSourceParams(ALvoice *voice, const ALvoicePropsBase *props, const A
voice->mStep = MAX_PITCH<<FRACTIONBITS;
else
voice->mStep = maxu(fastf2u(Pitch * FRACTIONONE), 1);
- if(props->mResampler == Resampler::BSinc24)
+ if(props->mResampler == Resampler::BSinc24 || props->mResampler == Resampler::FastBSinc24)
BsincPrepare(voice->mStep, &voice->mResampleState.bsinc, &bsinc24);
- else if(props->mResampler == Resampler::BSinc12)
+ else if(props->mResampler == Resampler::BSinc12 || props->mResampler == Resampler::FastBSinc12)
BsincPrepare(voice->mStep, &voice->mResampleState.bsinc, &bsinc12);
voice->mResampler = SelectResampler(props->mResampler, voice->mStep);