Sign in

username:

password:



Not a member?

Search Online Books



Search tips

Free Online Books

Chapters

Chapter Contents:

Search Physical Audio Signal Processing

  

Book Index | Global Index


Would you like to be notified by email when Julius Orion Smith III publishes a new entry into his blog?

  

Karplus-Strong Digitar Algorithm

Figure D.1: Signal flow graph of the Karplus Strong algorithm viewed as a digital filter excited from initial conditions: The delay line is initially filled with random numbers. The feedback filter $ H(z)=[1+z^{-1}]/2$ can be regarded as a running two-point average.
\includegraphics[width=\twidth]{eps/fkarplusstrongCopy}

This section discusses implementation of the Karplus-Strong (KS) digitar algorithm algorithm using the Faust programming language to generate software plugins in C++. The KS algorithm was derived in §4.7.4 as a simplified digital waveguide synthesis model for an ``idealized'' vibrating string (no stiffness, and very specific damping characteristics resulting in the two-point average). This physical interpretation is used to guide extensions to the basic algorithm.

The basic Karplus-Strong (KS) digitar algorithm [241]D.3consists of a waveform memory that is read out and modified repeatedly each ``period,'' where the modification is to replace each sample in the memory by the average of itself and the previous sample each time it is read. The algorithm is diagrammed as a digital filter in Fig.D.1 (a reprint of Fig.4.12 in §4.7.4). There are other modes of operation of the KS algorithm described in [241], such as for percussive sounds and ``bottle mode'' that are not reviewed here. In other words, we consider only the digitar special case of the KS algorithm which simulates plucked string sounds. We begin our example series with the digitar because it is the simplest known string-synthesis algorithm that is both interesting to hear and derivable (in retrospect) from the physics of vibrating strings.



Subsections

Order a Hardcopy of Physical Audio Signal Processing

Previous: Making Virtual Electric Guitars and Guitar Effects Using Faust and Octave
Next: Exciting the Digitar String

written by Julius Orion Smith III
Julius Smith's background is in electrical engineering (BS Rice 1975, PhD Stanford 1983). He is presently Professor of Music and Associate Professor (by courtesy) of Electrical Engineering at Stanford's Center for Computer Research in Music and Acoustics (CCRMA), teaching courses and pursuing research related to signal processing applied to music and audio systems. See http://ccrma.stanford.edu/~jos/ for details.


Comments


No comments yet for this page


Add a Comment
You need to login before you can post a comment (best way to prevent spam). ( Not a member? )