Navigate this deck with keyboard or touch

type "m" for the menu of pages and
arrow or page keys to advance or rewind

two-finger tap for the menu of pages and
the usual left/right swipe to advance or rewind

embedded media clips (audio and video) use an extra click (or swipe) to begin playing
and another to finish

Extensions to the 2D Waveguide Mesh for Modeling Thin Plate Vibrations

Chris Chafe

Center for Computer Research in Music and Acoustics
Stanford University

The 2D Waveguide Mesh computes realistic-sounding simulations of struck plates. The early 90’s saw an initial flurry of development on the model but it hasn’t yet found the greater musical use that its interesting sonic qualities suggest are possible.

The overall project goal is a synthesis instrument for real-time music performance and studio composition.

Rectilinear mesh using 4-port scattering junctions and unit delays (Julius Smith)

Adding edge filters and reflections, Synthesis Toolkit (12x12 nodes)

Enhancements which will be described (32x8 nodes)

Swinging in space simulated by wavefield synthesis

Synthesis Toolkit's Mesh2D class
  • The C++ implementation has been ported to many computer music languages (ChucK, SuperCollider, Csound, etc.)
  • Mesh size originally limited to 12x12 (probably for historical reasons related to limited CPU)
  • One input (dynamically adjustable location but non-interpolated ie., quantized to an integer X/Y coordinate position)
  • One output (upper right corner)

  • noteOn
    method adds a single sample impulse to the input node (with adjustable amplitude)
  • inputTick
    method adds an external signal to the input node

  • noteOn
    (32x8 nodes)

  • inputTick
    External excitation signal from synthesized stikes (impulsed filters in this example)

  • Geometry scaled to speed of sound in metal
  • Multi-tap outputs and wavefield synthesis
  • Mode stretching and passive nonlinearity (allpass filters at edge nodes)
  • Damping at internal nodes
  • Rectangular interpolation (input, output and damping nodes)
  • Excitation "contact sound" mixed into output

Brass plate in front of 15-channel microphone array

Laser doppler vibrometer

15-channel microphone array, 3 msec (channel 8 muted)

Laser doppler vibrometer

overlay of mic and LDV

speed of sound in brass plate and in air

Testing 15-channel microphone array with an impulse generator

Impulse response across mic (channel 8 muted)

Channels independently normalized (speed of sound in air visible)

Same thing for 15-channel wavefield synthesis (impulse response across array outputs)

Channels independently normalized (speed of sound in air visible)

Impulse response of mesh with 12 output taps

Mesh output (12 channels) fed through WFS array (15 outputs)

Excitation (force hammer recording) added through WFS array

Creates the two wavefronts

Edge Filters

Allpass filters for mode shifting and stretching "A Simplified Approach to Modeling Dispersion Caused by Stiffness in Strings and Plates," Scott Van Duyne and Julius Smith, 1994

no allpass, only lowpass

allpass (order 4) with stretch factor = 0

stretch factor = 0.73

signal dependent, passive nonlinearity "A Passive Nonlinear Digital Filter Design Which Facilitates Physics-based Sound Synthesis of Highly Nonlinear Musical Instruments," John Pierce and Scott Van Duyne, 1997

signal dependent stretch factor (pie pan)

Thanks for listening!

This deck available online at

along with the code: