To illustrate how significant the computational savings can be, consider the simulation of a ``damped guitar string'' model in Fig.6.11. For simplicity, the length string is rigidly terminated on both ends. Let the string be ``plucked'' by initial conditions so that we need not couple an input mechanism to the string. Also, let the output be simply the signal passing through a particular delay element rather than the more realistic summation of opposite elements in the bidirectional delay line. (A comb filter corresponding to pluck position can be added in series later.)
In this string simulator, there is a loop of delay containing samples where is the desired pitch of the string. Because there is no input/output coupling, we may lump all of the losses at a single point in the delay loop. Furthermore, the two reflecting terminations (gain factors of ) may be commuted so as to cancel them. Finally, the right-going delay may be combined with the left-going delay to give a single, length , delay line. The result of these inaudible simplifications is shown in Fig. 6.12.
If the sampling rate is kHz and the desired pitch is Hz, the loop delay equals samples. Since delay lines are efficiently implemented as circular buffers, the cost of implementation is normally dominated by the loss factors, each one requiring a multiply every sample, in general. (Losses of the form , , etc., can be efficiently implemented using shifts and adds.) Thus, the consolidation of loss factors has reduced computational complexity by three orders of magnitude, i.e., by a factor of in this case. However, the physical accuracy of the simulation has not been compromised. In fact, the accuracy is improved because the round-off errors per period arising from repeated multiplication by have been replaced by a single round-off error per period in the multiplication by .
Choice of Table Size and Word Lengths