From 4565bdd7ceb21e424ea3266e8c191725f5c575db Mon Sep 17 00:00:00 2001 From: Chris Robinson Date: Thu, 19 Nov 2009 10:42:41 -0800 Subject: Make sure there's at least a one-sample delay for the echo's first tap --- Alc/alcEcho.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'Alc') diff --git a/Alc/alcEcho.c b/Alc/alcEcho.c index 66710cc4..ea4af8dd 100644 --- a/Alc/alcEcho.c +++ b/Alc/alcEcho.c @@ -71,9 +71,9 @@ ALboolean EchoDeviceUpdate(ALeffectState *effect, ALCdevice *Device) // Use the next power of 2 for the buffer length, so the tap offsets can be // wrapped using a mask instead of a modulo - maxlen = (ALuint)(AL_ECHO_MAX_DELAY * Device->Frequency); - maxlen += (ALuint)(AL_ECHO_MAX_LRDELAY * Device->Frequency); - maxlen = NextPowerOf2(maxlen+1); + maxlen = (ALuint)(AL_ECHO_MAX_DELAY * Device->Frequency) + 1; + maxlen += (ALuint)(AL_ECHO_MAX_LRDELAY * Device->Frequency) + 1; + maxlen = NextPowerOf2(maxlen); if(maxlen != state->BufferLength) { @@ -100,7 +100,7 @@ ALvoid EchoUpdate(ALeffectState *effect, ALCcontext *Context, const ALeffect *Ef ALuint frequency = Context->Device->Frequency; ALfloat lrpan, cw, a, g; - state->Tap[0].delay = (ALuint)(Effect->Echo.Delay * frequency); + state->Tap[0].delay = (ALuint)(Effect->Echo.Delay * frequency) + 1; state->Tap[1].delay = (ALuint)(Effect->Echo.LRDelay * frequency); state->Tap[1].delay += state->Tap[0].delay; -- cgit v1.2.3