Handbook for Sound Engineers

(Wang) #1

962 Chapter 25


rewritten somewhere else. The complexity is merely
keeping track of those read and write pointers, which is
in reality simple arithmetic and indeed an automated
function in many processors.


25.20.3 Echo, Echo, Echo


Reentrant, or recursive, delay (spin echo) where a
delayed signal repeats continuously until fading away is
achieved by attenuating the delayed words (in the multi-
plier) and adding them in the accumulator with the
concurrent new input words.


If the delay is made very short, and the delay is
summed in the accumulator with the new, direct sample,
something interesting happens—a direct parallel with
the analog world. The direct and delayed signals sum
and interfere. A 1 ms delay corresponds to a half wave-
length of 500 Hz; in other words at 500 Hz with 1 ms
delay, the delayed signal will be out of phase by 180°
from the input signal. They will cancel and a notch at
500 Hz (and every 500 Hz interval up the spectrum) will
occur. Altering the delay time alters the frequencies at
which cancellation occurs; studio people call it flanging;
we’ll call it a comb filter, our very first digital filter.


25.20.4 Reverberation


In real acoustic environments, reverberation is the
summation of countless random time-delayed reflec-
tions and rereflections from floors, walls, ceilings, and
obstacles. Complications set in with differing reflec-
tions having differing frequency aberrations due to
varying surface absorption coefficients, but in essence it
is an accumulation of time-delayed signals of various
and decreasing levels. As such it can be reasonably well
emulated in DSP by more or less complex variations on
time delay; relatively long time delay loops are estab-
lished to emulate major room reflective modes. Many
short loops and all-pass configurations are used to
emulate the decorrelation that occurs in an acoustic
space by multiple short reflections and diffraction. The
output-to-input feedback—terms for each of these
elements is adjustable and equalization, typically in the
form of simple roll-offs—are applied either after a loop
or within its feedback path to mimic the typically higher
absorption at higher frequencies in an acoustic environ-
ment. There are a lot of small and large elements, all
with a lot of handles, or things that need to be fed
parameters.


Basically, the number of elements and the skill in
determining their convoluted interaction and parameters
decide how convincing the reverberant effect is and its
characteristics. Some astonishingly good results have
been had from DSPs with quite small (64 k word)
external memories.
As DSPs become more powerful and much cheaper,
becoming increasingly practical is a class of reverbera-
tion units that in effect perform a very, very long convo-
lution of an applied audio signal with a digital recording
of the reverberation tail of a real venue (see Section
25.21.1, Transversal Filters, for the basic technique).
This can involve hundreds of thousands of DSP multi-
plies (meaning lots and lots of DSPs) but is as one
would expect highly impressive and flexible. Proprie-
tary convolution algorithms can reduce the computa-
tional burden, but it is still nevertheless a big
proposition.

25.20.5 Averaging

An average of a number of input samples is achieved by
adding all the input word values for the period of time
over which the average is required; this is normally
figured out by numbers of samples—20 ms worth of
samples at a 48 kHz rate equates to 960 samples. (This
would be a l-o-n-g train of samples.) These samples are
all added in the accumulator and then divided by the
number of samples—the result is an average value for
that 20 ms. If each sample is stored elsewhere, then a
rolling average becomes possible; for each new input
sample added in, the first sample of the 960 is
subtracted, and a new average for that instant is
calculated.
Division, as such, is something undertaken only under
extreme duress in DSP; it is very thirsty and inefficient.
A division in such a case as creating an average as here
could be achieved by first arranging, if possible, that the
average length is a binary interval (2, 4, 8, 16, etc.).
Then the end result of all the additions could be
bit-shifted right the corresponding number of times. An
arithmetic shift right (moving a digital word one step to
the right, filling in the now missing top bit with a zero)
is the same as dividing by two; an average of 64
samples would thus need six right shifts. Alternatively,
a single multiply by 0.015625 (1/64) (or the reciprocal
of whatever the arbitrary number of samples may be)
does the job. Either is an awful sight quicker to do in a
DSP than a 24 bit division. Anything rather than divide.
Free download pdf