Numerical Sound Synthesis: Finite Difference Schemes and Simulation in Musical Acoustics
DescriptionDigital sound synthesis has long been approached using standard digital filtering techniques. Newer synthesis strategies, however, make use of physical descriptions of musical instruments, and allow for much more realistic and complex sound production and thereby synthesis becomes a problem of simulation.
This book has a special focus on time domain finite difference methods presented within an audio framework. It covers time series and difference operators, and basic tools for the construction and analysis of finite difference schemes, including frequency-domain and energy-based methods, with special attention paid to problems inherent to sound synthesis. Various basic lumped systems and excitation mechanisms are covered, followed by a look at the 1D wave equation, linear bar and string vibration, acoustic tube modelling, and linear membrane and plate vibration. Various advanced topics, such as the nonlinear vibration of strings and plates, are given an elaborate treatment.
- Includes a historical overview of digital sound synthesis techniques, highlighting the links between the various physical modelling methodologies.
- A pedagogical presentation containing over 150 problems and programming exercises, and numerous figures and diagrams, and code fragments in the MATLAB® programming language helps the reader with limited experience of numerical methods reach an understanding of this subject.
- Offers a complete treatment of all of the major families of musical instruments, including certain audio effects.
Numerical Sound Synthesis is suitable for audio and software engineers, and researchers in digital audio, sound synthesis and more general musical acoustics. Graduate students in electrical engineering, mechanical engineering or computer science, working on the more technical side of digital audio and sound synthesis, will also find this book of interest.
1 Sound synthesis and physical modeling.
1.1 Abstract digital sound synthesis.
1.2 Physical modeling.
1.3 Physical modeling: a larger view.
2 Time series and difference operators.
2.1 Time series.
2.2 Shift, difference, and averaging operators.
2.3 Frequency domain analysis.
2.4 Energetic manipulations and identities.
3 The oscillator.
3.1 The simple harmonic oscillator.
3.2 A finite difference scheme.
3.3 Other schemes.
3.4 Lumped mass–spring networks.
3.8 Programming exercises.
4 The oscillator in musical acoustics.
4.1 Nonlinear oscillators.
4.2 Lossless oscillators.
4.3 Lossy oscillators.
4.5 Programming exercises.
5 Grid functions and finite difference operators in 1D.
5.1 Partial differential operators and PDEs.
5.2 Grid functions and difference operators.
5.3 Coordinate changes.
5.5 Programming exercises.
6 The 1D wave equation.
6.1 Definition and properties.
6.2 A simple finite difference scheme.
6.3 Other schemes.
6.4 Modal synthesis.
6.6 Comparative study I.
6.8 Programming exercises.
7 Linear bar and string vibration.
7.1 The ideal uniform bar.
7.2 Stiff strings.
7.3 Frequency-dependent loss.
7.4 Coupling with bow models.
7.5 Coupling with hammer and mallet models.
7.6 Multiple strings.
7.7 Prepared strings.
7.8 Coupled bars.
7.9 Helical springs.
7.10 Spatial variation and stretched coordinates.
7.12 Programming exercises.
8 Nonlinear string vibration.
8.1 The Kirchhoff–Carrier string model.
8.2 General planar nonlinear string motion.
8.3 Non-planar string motion.
8.5 Programming exercises.
9 Acoustic tubes.
9.1 Webster’s equation.
9.2 The vocal tract and speech synthesis.
9.3 Reed wind instruments.
9.4 Other wind instruments.
9.6 Programming exercises.
10 Grid functions and finite difference operators in 2D.
10.1 Partial differential operators and PDEs in two space variables.
10.2 Grid functions and difference operators: Cartesian coordinates.
10.3 Grid functions and difference operators: radial coordinates.
10.5 Programming exercises.
11 The 2D wave equation.
11.1 Definition and properties.
11.2 A simple finite difference scheme.
11.3 Other finite difference schemes.
11.4 Digital waveguide meshes.
11.5 Lumped mass–spring networks.
11.6 Modal synthesis.
11.7 Finite difference schemes in radial coordinates.
11.8 Comparative study II.
11.10 Programming exercises.
12 Linear plate vibration.
12.1 The Kirchhoff thin plate model.
12.2 Loss and tension.
12.3 Plate excitation.
12.4 Plate–string connections.
12.5 Anisotropic plates.
12.6 The thin plate in radial coordinates.
12.8 Programming exercises.
13 Nonlinear plate vibration.
13.1 The Berger plate model.
13.2 The von Kármán plate model.
13.3 Spherical shell vibration.
13.5 Programming exercises.
14 Conclusion and perspectives.
14.1 A family of musical systems.
14.2 Comparative study III.
14.3 Beyond finite difference methods.
A Matlab code examples.
A.1 The simple harmonic oscillator.
A.2 Hammer collision with mass–spring system.
A.3 Bowed mass–spring system.
A.4 The 1D wave equation: finite difference scheme.
A.5 The 1D wave equation: digital waveguide synthesis.
A.6 The 1D wave equation: modal synthesis.
A.7 The ideal bar.
A.8 The stiff string.
A.9 The Kirchhoff–Carrier equation.
A.10 Vocal synthesis.
A.11 The 2D wave equation.
A.12 Thin plate.
B List of symbols.
"In a nutshell, a very worthy contribution to the field, Bilbao's Numerical Sound Synthesis does a remarkably good job of synthesizing key ideas in a in a lively manner, exploring complex issues in a consistent manner, without simplification, thereby offering an invaluable companion to those who have just entered the field and to experts in coming to grips with the issues involved in numerical sound synthesis." (Current Engineering Practice, 1 November 2010)
"I highly recommend this book as an introduction to the field of physical modeling for sound synthesis, which is becoming more and more popular with the tremendous increase in affordable computer power, through multicore desktops and laptops and supercomputer-like graphics processing unit (GPU) engines." (Computing Reviews, October 2010)