54
D. Rocchesso: Sound Processing
just noticeable difference
In some architectures dedicated to sound processing, memory organization
is optimized for wavetable synthesis, where a stored waveform is read with vari-
able increments of the reading pointer. In these architectures, a quantity of 2
r
memory locations is available, and from these M = 2
s
locations (with s < r)
are uniformly chosen among the 2
r
available cells. In this case the locations of
the circular buffer are not contiguous, and the update of the pointers is done
with the operations
IN
= (IN + 2
r-s
)%2
r
OUT = (OUT + 2
r-s
)%2
r
.
(5)
In practice, since the addresses are r-bit long, there is no need to compute the
modulo explicitly. It is sufficient to do the sum neglecting any possible overflow.
Of course, the (3) is also replaced by
IN = (OUT + m2
r-s
)%2
r
.
(6)
3.2
Fractional-Length Delay Lines
It might be thought that, choosing a sufficiently high sampling rate, it is always
possible to use delay lines having an integer number of samples. Actually, there
are some good reasons that lead us to state that this is not the case in sound
synthesis and processing.
In sound synthesis, the models have to be carefully tuned without resorting
to very high sample rates. In particular, it is easy to verify that using integer-
length delays in physical models we get errors in fundamental frequencies that
go well beyond the just noticeable difference in pitch
1
(see the appendix C).
For instance, for a pressure wave propagating in air at normal temperature
conditions, the spatial discretization given by the sampling rate F
s
= 44100Hz
gives intervals of 0.0075m, a distance that can produce well-perceivable pitch
differences in a wind instrument.
Another reason for using fractional delays is that we often want to vary the
delay lengths continuously, in order to reproduce effects such as glissando or
vibrato. The adoption of integer-length delays would produce annoying discon-
tinuities.
The most widely used techniques for implementing fractional delays are in-
terpolation by FIR filters or by allpass filters. These two techniques are, in some
sense, complementary. The choice of one of the two has to be made according
to the peculiarities of the system to be simulated or of the architecture chosen
for the implementation. In any case, a delay of length m is obtained by means
of a delay line whose length is equal to the integer part of m, cascaded with
a block capable to approximate a constant phase delay equal to the fractional
part of m. We recall that the phase delay at a given frequency is the delay in
time samples experienced by the sinusoidal component at frequency . For in-
stance, consider a linear filtering block enclosed in a feedback loop (see sec. 3.4):
the frequency of the k-th resonance f
k
of the whole feedback system is found
1
To figure this out, the reader can consider an m-sample delay line in a feedback loop. It
gives a harmonic series of partials whose fundamental is f
0
=
F
s
m
(see sec. 3.4). The set of
integer delay lengths that give the best approximation to a tempered scale can be found and
the curve of fundamental frequency errors can be drawn.
Next Page >>
<< Previous Page
Back to the Table of Contents