EE107b | Physical Modeling Synthesis

Background

Physical modeling synthesis is the method of creating audio with a numerical model of a physical system. This method is distinct from other types of synthesis, because a modeling synthesis algorithm attempts to embody the characteristics of 'real' instruments, using a model motivated by a physical analysis of the system. In contrast to modeling synthesis, most other methods of synthesis can be thought of as 'descriptive' sound synthesis, because they use waveform generators and filters in an attempt to emulate the timbre of a real instrument. We can loosely think of modeling synthesis as a 'predictive' sound synthesis method, because the sound is generated in a way that refers to the actual physical response of the system.

It is useful to note that there are many methods of modeling synthesis. I chose the implementation below chiefly for simplicity, and also because it refers more directly to a physically motivated model for the string. There are other models however, which are more computationally efficient than the one I have outlined below. The most successful modeling synthesis scheme is called waveguide synthesis. I have included a link below, for interested readers, to an excellent (if somewhat technical) discussion of waveguide synthesis.

CCRMA Introduction to Waveguide Synthesis

Physical Analysis

To build a simulation, I started by choosing a physical analysis for the string system. A simple model based on coupled oscillators from Crawford's excellent Waves (1) seemed to lend itself to efficient implementation.

CLICK HERE for "Coupled Oscillator Model"

Numerical Integration Schemes

To solve for the physical response of the system, I use a numerical integration procedure to the solution of a second-order initial value problem. I tried two numerical integration schemes, a second-order extension of the Euler-Cauchy method, and the Runge-Kutta-Nystrom method.

CLICK HERE for "Numerical Integration Schemes"

Source Code

I implemented my simulation entirely in MATLAB. I have included source files as well as sample outputs and parameter sets for each. The first simulation I wrote, based on Euler-Cauchy is fairly rudimentary and is only useful for comparison against the simulations using Runge-Kutta-Nystrom.

It is important to note that the RKN simulation requires 3 files. The simulation itself (rkn.m), as well as a file for simulation parameters (params.m) and initial conditions (init.m). The user may define parameters and initial conditions of their own by overriding the definitions given in these default files. See the files attached to the audio examples below to see how this is done.

CLICK HERE for "Source Code"

Visual Output

I have provided some sample output for visualizing propagation of waves in my simulation. The user can set my program to output the motion sequence for any given simulation parameters. Here is a link to the parameters used to produce this output, as well as the image itself.

CLICK HERE for "Wave Propagation"

Sample Audio Output

I have also included some sample audio output, as well as the user-defined parameters associated with each sound file.

CLICK HERE for "Audio Examples"

Further Work

implementation in C/C++ for realtime synthesis, or as part of music package

References

  1. Crawford, Waves, McGraw-Hill 1968 pp. 72-78.
  2. D. DeCogan and A. DeCogan, Applied Numerical Modelling for Engineers, Oxford 1997 pp. 46-47.
  3. J. Smith, A Basic Introduction to Digital Waveguide Synthesis (for the Technically Inclined), Center for Computer Research in Music and Acoustics, Stanford 2002.
3/13/2002
Matthew Ashman
Senior (E&AS)
California Institute of Technology
ashman@cs.caltech.edu