Next  |  Prev  |  Up  |  Top  |  Index  |  JOS Index  |  JOS Pubs  |  JOS Home  |  Search


The Extended Karplus-Strong Algorithm

Figure 4.13 shows a block diagram of the Extended Karplus-Strong (EKS) algorithm described in the Computer Music Journal by Jaffe and Smith [211].

Figure 4.13: Extended Karplus-Strong (EKS) algorithm.
\begin{figure}\input fig/eks.pstex_t
\end{figure}

The EKS adds the following features to the KS algorithm:

\begin{eqnarray*}
H_p(z) &=& \frac{1-p}{1 - p\,z^{-1}}\eqsp \mbox{pick-direction...
...1-R_L}{1 - R_L\,z^{-1}}\eqsp \mbox{dynamic-level lowpass filter}
\end{eqnarray*}

where

\begin{eqnarray*}
N &=& \mbox{pitch period ($2\times$\ string length) in samples...
...e^{j\omega T})\right\vert &\le& 1 \mbox{ required for stability}
\end{eqnarray*}

Note that while $ \eta\in[0,1)$ can be used in the tuning allpass, it is better to offset it as above in order to avoid delays close to zero in the tuning allpass, since a zero delay is obtained by a pole-zero cancellation on the unit circle. First-order allpass interpolation of delay lines was discussed in §3.2.2.

A history of the Karplus-Strong algorithm and its extensions is given in §D.8. EKS sound examples are also available on the Web. Techniques for designing the string-damping filter $ H_d(z)$ and/or the string-stiffness allpass filter $ H_s(z)$ are summarized below in §4.11.

C++ software that can be quickly adapted to implement a synthesis algorithm along the above lines is given in Appendix C. An implementation of the Extended Karplus-Strong algorithm in the Faust programming language is described (and provided) in [461].


Next  |  Prev  |  Up  |  Top  |  Index  |  JOS Index  |  JOS Pubs  |  JOS Home  |  Search

[How to cite this work]  [Order a printed hardcopy]

``Physical Audio Signal Processing'', by Julius O. Smith III, (August 2007 Edition).
Copyright © 2008-05-16 by Julius O. Smith III
Center for Computer Research in Music and Acoustics (CCRMA),   Stanford University
CCRMA  [About the Automatic Links]