Julius O. Smith III
Ctr. for Comput. Res. in Music and Acoust. CCRMA), Music Dept., Stanford Univ., Stanford, CA 94305
The ``digital audio revolution'' has made it possible to routinely analyze and process acoustic signals entirely in the ``digital domain.'' In this domain, some conceptually simple operations, such as ``speeding up'' or ``slowing down'' the playback of a sound are no longer so simple; one can no longer merely change the speed of the tape-drive mechanism. Since the sampling rate in a D/A converter is usually not variable in a general way, changing the playback speed requires resampling the stream of numbers that represent the signal, or sampling rate conversion. Sampling-rate conversion is a special case of the problem of evaluating a sampled signal at an arbitrary time. The easiest algorithm, analogous to a sample-and-hold circuit, is to simply take the sample nearest the desired sample time. A much higher quality algorithm, costing two additions and one multiply per sample, is to linearly interpolate using the two samples on either side of the desired sample time. Doing it ``really right'' requires bandlimited interpolation which is implemented by convolving the signal samples with a sin(x)/x function translated to the desired sample time and sampled at the signal's sampling instants. The cost is of course an infinity of multiplies and adds per sample of output, so this is not possible in practice. This presentation will describe practical algorithms for sampling-rate conversion and discuss some of the tradeoffs involved.