Karplus-Strong string synthesis

 related topics {system, computer, user} {math, number, function} {math, energy, light} {album, band, music} {acid, form, water} {@card@, make, design}

Karplus-Strong string synthesis is a method of physical modelling synthesis that loops a short waveform through a filtered delay line to simulate the sound of a hammered or plucked string or some types of percussion. Although it is useful to view this as a subtractive synthesis technique based on a feedback loop similar to that of a comb filter for z-transform analysis, it is better viewed as the simplest of a class of wavetable-modification algorithms now known as digital waveguide synthesis, as the delay line acts to store one period of the signal.

Alexander Strong invented the algorithm, and Kevin Karplus did the first analysis of how it worked. Together they developed software and hardware implementations of the algorithm, including a custom VLSI chip. They named the algorithm "Digitar" synthesis, as an abbreviation for "digital guitar".

Contents

Tuning the string

The period of the resulting signal is the period of the delay line plus the average group delay of the filter; the fundamental frequency, as usual, is the reciprocal of the period. The required delay D for a given fundamental frequency F1 is therefore calculated according to D = Fs/F1 where Fs is the sampling frequency.

The length of any digital delay line is a whole-number multiple of the sampling period. In order to obtain a fractional delay, interpolating filters are used with parameters selected to obtain an appropriate group delay at the fundamental frequency. Either IIR or FIR filters may be used, however FIR have the advantage that transients are suppressed if the fractional delay is changed over time. The most elementary fractional delay is the linear interpolation between two samples (e.g., s(4.2) = 0.8s(4) + 0.2s(5)). If the group delay varies too much with frequency, harmonics may be sharpened or flattened relative to the fundamental frequency. The original algorithm used equal weighting on two adjacent samples, as this can be achieved without multiplication hardware, allowing extremely cheap implementations.

Z-transform analysis can be used to get the pitches and decay times of the harmonics more precisely, as explained in the 1983 paper that introduced the algorithm.