Do reverb modulation before band-pass filtering

Ideally the band-pass should probably happen closer to output, like gain is.
However, doing that would require 16 filters (4 early + 4 late channels, each
with a low-pass and high-pass filter), compared to the two needed to do it on
input.
This commit is contained in:
Chris Robinson
2016-09-06 07:02:17 -07:00
parent b1f70b5b78
commit 1541ff24b8
+6 -7
View File
@@ -1378,15 +1378,14 @@ static inline ALvoid EAXVerbPass(ALreverbState *State, ALuint todo, const ALfloa
{
ALuint i;
// Band-pass and modulate the incoming samples (use the early buffer as temp storage).
ALfilterState_process(&State->LpFilter, &early[0][0], input, todo);
ALfilterState_process(&State->HpFilter,
/* Perform any modulation on the input (use the early buffer as temp storage). */
EAXModulation(State, State->Offset, &early[0][0], input, todo);
/* Band-pass the incoming samples */
ALfilterState_process(&State->LpFilter,
&early[MAX_UPDATE_SAMPLES/4][0], &early[0][0], todo
);
// Perform any modulation on the input.
EAXModulation(State, State->Offset,
&early[MAX_UPDATE_SAMPLES*2/4][0], &early[MAX_UPDATE_SAMPLES/4][0],
todo
ALfilterState_process(&State->HpFilter,
&early[MAX_UPDATE_SAMPLES*2/4][0], &early[MAX_UPDATE_SAMPLES/4][0], todo
);
// Feed the initial delay line.