Precomputed Acoustic Transfer: Output-sensitive, Accurate Sound Generation for Geometrically Complex Vibration Sources
Doug L. JamesJernej BarbičDinesh K. Pai
ACM Transactions on Graphics / SIGGRAPH (2006)
teaser

Simulating sounds produced by realistic vibrating objects is challenging because sound radiation involves complex diffraction and interreflection effects that are very perceptible and important. These wave phenomena are well understood, but have been largely ignored in computer graphics due to the high cost and complexity of computing them at audio rates. We describe a new algorithm for real-time synthesis of realistic sound radiation from rigid objects. We start by precomputing the linear vibration modes of an object, and then relate each mode to its sound pressure field, or acoustic transfer function, using standard methods from numerical acoustics. Each transfer function is then approximated to a specified accuracy using low-order multipole sources placed near the object. We provide a low-memory, multilevel, randomized algorithm for optimized source placement that is suitable for complex geometries. At runtime, we can simulate new interaction sounds by quickly summing contributions from each modes equivalent multipole sources. We can efficiently simulate global effects such as interreflection and changes in sound due to listener location. The simulation costs can be dynamically traded-off for sound quality. We present several examples of sound generation from physically based animations.

Doug L. James, Jernej Barbič, Dinesh K. Pai (2006). Precomputed Acoustic Transfer: Output-sensitive, Accurate Sound Generation for Geometrically Complex Vibration Sources. ACM Transactions on Graphics / SIGGRAPH, 25(3).

@article{ James:2006:PAT,
author = "Doug L. James and Jernej Barbi\v{c} and Dinesh K. Pai",
title = "Precomputed Acoustic Transfer: Output-sensitive, Accurate Sound Generation for Geometrically Complex Vibration Sources",
year = "2006",
month = aug,
journal = "ACM Transactions on Graphics / SIGGRAPH",
volume = "25",
number = "3",
image = {http://graphics.cs.cmu.edu/projects/pat/bell-thb.jpg},
}