Banded waveguide synthesis

From Infogalactic: the planetary knowledge core
Jump to: navigation, search

Lua error in package.lua at line 80: module 'strict' not found. Banded Waveguides Synthesis is a physical modeling synthesis method to simulate sounds of dispersive sounding objects, or objects with strongly inharmonic resonant frequencies efficiently. It can be used to model the sound of instruments based on elastic solids such as vibraphone and marimba bars, singing bowls and bells. It can also be used for other instruments with inharmonic partials, such as membranes or plates. For example simulations of tabla drums and cymbals have been implemented using this method. Because banded waveguides retain the dynamics of the system, complex non-linear excitations can be implemented. The method was originally invented in 1999 by Georg Essl and Perry Cook to synthesize the sound of bowed vibraphone bars (Essl Cook 1999).

In the case of the standard one-dimensional wave equation y_{tt}=c^2y_{xx} disturbances of all frequencies travel with the same constant speed c. In dispersive media the traveling speed of disturbances depends on their frequency and we get c(\omega) where \omega is the frequency of the disturbance. Many physical systems are dispersive, for example the elastic beams described by the Euler-Bernoulli beam equation y_{tt}=ky_{xxxx} where k is a material constant.

Banded waveguides model dispersive behavior by splitting the propagation of disturbances into frequency bands. Each frequency band is modeled using a band-limited version of the standard digital waveguide method. Each frequency band is tuned to the resonant frequencies of the sounding object to be modeled to avoid any discretization error at the dominant and audible frequencies (Essl Serafin Cook Smith 2003).

Banded waveguide synthesis is implemented in most available sound synthesis libraries and programs such as:

Sources

  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.