Preface
This book was developed for my course entitled ``Signal Processing Models in Musical Acoustics,'' which I have given at the Center for Computer Research in Music and Acoustics (CCRMA) every year since 1984. The course was created primarily as a research preparation and dissemination vehicle intended for graduate students in computer music and engineering interested in efficient computational modeling of musical instruments. Ideally, in addition to a first course in digital signal processing [451,449], the student will also have studied elementary physics, including waves, and a prior first course in acoustics is desirable. The Web version of this book contains hypertext links to more elementary material, thus rendering it more self contained.
The driving goal behind the research and course leading to this book is the development of ``virtual musical instruments'' and audio effects in the form of efficient algorithms suitable for real-time execution on general purpose computers or embedded processors. As a result, the emphasis is on ``signal processing models of physical models'' of musical instruments and audio effects. The starting point is typically a mathematical model of a musical instrument from the field of musical acoustics, or a circuit description of an audio effect, and the final algorithms are expressed as computational forms from the field of signal processing. In the realm of computational physics, such algorithms might be called ``real-time finite-difference/solution-propagation schemes''.
In one sense, this book is about how to avoid the computational expense associated with using general purpose differential equation solvers, such as most finite difference schemes, applied in a ``brute force'' way. In other respects, it is about the art of homing in on the ``essential ingredients'' of an acoustic instrument and taking advantage of ``data reduction'' inherent in human hearing in order to minimize computational expense. In the early days of computer music, it was not uncommon to run ``acoustic compilers'' orders of magnitude slower than real time to compute sound. Nowadays, computers are so fast that physical modeling synthesis can be (and is) integrated in software synthesizers running on inexpensive personal computers without special synthesizer hardware. However, to obtain the best results on a given machine, it is still necessary to simplify computational complexity relative to more general numerical simulation techniques.
As indicated in the foregoing, the material of this book is multidisciplinary, building on results from physics, musical acoustics, psychoacoustics, signal processing, control engineering, computer music, and computer science. Such diversity is typical of applied research.
Organization
The chapters are generally organized as a series of ``theory'' and ``application'' chapters, working up from delay effects through virtual musical instruments. The purpose of mixing theory and application is to put useful techniques to work soon after they are covered, instead of spending forever in preliminaries before getting to musically interesting applications. Thus, for example, acoustic modeling with delay is followed by artificial reverberation, delay-line interpolation is followed by time-varying delay effects, and so on.
The style of the chapters is relatively concise and bottom-line oriented, with more detailed coverage deferred to the appendices when reasonable. In the Web version, many technical terms are linked to associated tutorials (and this work is ongoing). All software examples in the text are freely available, and perhaps most easily obtained via copy/paste from the Web version.
For class use, the design is approximately one chapter per week,
spanning a quarter.
There is a significant rise in difficulty level when
``lumped models'' are reached, presumably due to the use of complex
impedances in the Laplace and/or domains. Extra time should be
allowed to practice problems such as a point-mass
colliding with an ideal string (§9.3.1). For a semester
course, one could include more material on digitizing differential
equations, such as in the appendices regarding finite difference
schemes and/or wave digital filters. Alternatively, one could expand
the final chapter entitled Virtual Musical Instruments to include more
case studies.
Index for this Document
- 3D sound
: 13.8.5
- acceleration due to gravity : 13.1.4
- acoustic
- acoustic guitars : 10.2
- acoustic tube
- acoustical ohms : 14.7.3
- acoustics : 13
- action : 13.4
- action force : 10.3.1
- adaptor : 17.2
- series, reflection free : 17.2.4.4
- two-port parallel : 17.2.1
- unit element : 17.1.7
- two-port parallel : 17.2.1
- additive synthesis : 2.4.3
- adiabatic gas constant : 13.7.12
- admittance : 8.1
- aerofoil : 13.7.5
- air absorption : 4.1.1 | 13.7.15
- air jets : 13.7.6
- air pressure : 13.7.3
- airfoil : 13.7.5
- aliasing : 7.13.1.6
- allpass comb filter : 3.8.1
- allpass condition
- equivalence to losslessness : 3.8.3
- allpass filter : 3.8 | 3.8.1
- examples : 3.8.4
- general case : 3.8.3
- Gerzon nested MIMO : 3.8.5
- maximally flat group delay : 5.3
- nested : 3.8.2 | 4.4.3
- Thiran : 5.3
- waveguide : 3.9
- general case : 3.8.3
- allpass phase shifter : 9.9.1
- second-order case : 9.9.2
- allpass reflectance : 14.11.1
- alpha parameters : 17.2.2.1 | 17.2.2.1
- amplification factor : 15.4
- amplifier
- cabinet filter : 10.1.8
- distortion : 10.1.10
- feedback simulation : 10.1.7
- distortion : 10.1.10
- amplitude complementary : 10.5.1.1
- amplitude envelopes : 7.11.1
- analog circuit : 2.5.10
- angular acceleration : 13.4.19
- angular momentum : 13.4.13
- angular velocity vector : 13.4.11
- arctangent nonlinearity : 7.13.1.2
- area moment of inertia : 13.4.8
- artificial reverberation : 4.5
- backward difference : 2.5.5 | 8.3.1
- backward Euler method : 8.4.3
- bandlimited interpolation : 5.4
- Bark scale : 9.6.2
- beaded strings : 10.4.3
- bell models : 10.7.2
- Bernoulli effect : 13.7.5
- Bernoulli equation : 10.7.1 | 13.7.4
- Bessel filter : 5.3
- beta parameters (WDF) : 17.2.4.1
- bidirectional delay line : 3.4
- bilinear transform : 8.3.2
- bilinear transform vs. finite differences : 8.3.2.1
- Bode plot : 9.9.1.1
- body factoring : 9.8
- by sinusoidal modeling : 9.8.1.4
- example : 9.8.6
- resonator extraction : 9.8
- example : 9.8.6
- body-fixed frame : 13.4.10.2 | 13.4.20.1 | 13.4.20.1
- Boltzmann's constant : 13.7.10
- boundary conditions : 13.8.4
- boundary element method : 14.18.1.1
- boundary losses : 13.7.15
- bowed strings : 10.6
- bow-string junction : 10.6.2
- linear commuted synthesis of : 10.6.4
- brass instruments : 10.7
- brass mouthpiece : 10.7.1
- break frequency : 9.9.1.1 | 9.9.1.1
- bridge power splitting : 14.11.1.2
- bridge velocity transmittance : 14.11.1.1
- butterflies : 4.7.9
- cabinet filtering : 10.1.8
- capacitor : 8.1.3
- cardinal sine : 5.4.1
- causal : 3.5.4 | 3.8.3
- center of gravity : 13.4.1
- center of mass : 13.4.1
- center of mass, momentum : 13.4.1.1
- center-of-mass frame : 13.4.10.2
- centered finite difference : 8.3.1.2 | 12.5.2 | 16.1.1
- centroid : 13.4.1
- cepstral method : 9.6.4.3
- chain rule : 14.3.2 | 14.3.2
- change of coordinates: : 2.5.9.3
- characteristic impedance : see wave impedancetextbf
- characteristic polynomial equation : 15.2.2.1 | 15.3
- Chebyshev optimality : 5.2.3
- chorus effect : 3 | 6.8
- clarinet tonehole two-port junction : 10.5.4.1
- classical mechanics : 13.4
- clipping distortion : 10.1.6.3 | 10.1.6.4
- clipping nonlinearity : 7.13.1.1
- closed waveguide networks : 3.9
- coefficient of inharmonicity : 7.11.4.3 | 10.4.1.3
- collision detection : 10.3.3.2
- comb filter : 3.6
- amplitude response : 3.6.3
| 3.6.4
- feedback : 3.6.2
- feedforward : 3.6.1
- filtered feedback : 3.6.5
- lowpass feedback : 4.6.2
- Schroeder-Moorer : 3.6.5 | 4.6.2
- feedback : 3.6.2
- commuted waveguide synthesis : 9.7
- compatible port connection : 17.2.1.1
- complete response : 2.5.7.2
- compliance of springs : 8.1.3
- compression velocity : 8.1.3
- cone wave impedance : 14.18.4
- cone-cylinder intersection : 14.18.8
- conformal map interpretation of damping : 4.7.4.1
- conical acoustic tubes : 14.18.2
- conical cap reflectance : 14.18.8.2
- conical diffuser : 6.9.1
- conical tube junction : 14.18.8.1
- conservation of energy : 13.2.6
- conservation of momentum : 13.1.1 | 13.3.1 | 13.3.1
- conservative forces : 13.2
- consistency of finite differences : 15.2.1
- convergence of finite-difference schemes : 15.2
- Coulomb force : 13.1.4
- coupled strings : 7.12 | 14.13
- coupled strings eigenanalysis : 14.13.2
- coupling of horizontal and vertical transverse waves : 7.12.2
- coupling of two ideal strings : 14.13.1
- crests : 13.8.1
- cubic nonlinearity : 10.1.6.4
- cubic soft clipper : 7.13.1.3
- cylinder with conical cap : 14.18.8
- damping filter design : 7.11.1 | 7.11.2
- damping, plectrum : 10.3.3.4
- dashpot : 2.5.3 | 8.1.1 | 8.1.1
- degree of freedom : 2.5.6.4
- delay effects : 3 | 6 | 6
- delay line : 3.1 | 3.1
- bidirectional : 3.4
- interpolation : 5.1
- software : 3.1.1
- tapped : 3.5
- time varying : 6.1
- time-varying reads : 6.7.2
- interpolation : 5.1
- delay loop expansion : 9.5.2
- delay operator notation : 8.3.1.2
- delay-line lengths, reverberation : 4.7.3
- dependent port : 17.2.2.1
- diatomic gas : 13.7.12
- difference equation : 2.5.2
- differential equation : 13.1.5
- differentiator : 8.1.3 | 9.6.1
- diffuse field : 4.2.1 | 4.3 | 4.7.3.1
- diffuse reflection : 3.2.6
- diffusers : 4.5
- digital waveguide
- mesh : 10.8.3
- digital sinusoid generators : 14.17.2
- digital state variable filter : 14.17.2
- digital waveguide : 3.4
- animation : 7.4.2
- equivalent forms : 7.10.1
- history : 12.9
- mesh : 4.7.11.4 | see mesh
- synthesis : see waveguide synthesis
- equivalent forms : 7.10.1
- digital waveguide filter : 12.6.3 | 14.9
- digitization of lumped models : 8.3
- digitizing systems : 2.5.2
- directional derivative : 13.8.2
- dispersion : 3.3.3 | 3.4
- dispersion filter design : 7.11.3 | 10.4.1.3
- dispersion filtering : 7.9.1
- dispersion relation : 13.8.3 | 15.3
- dispersive : 3.2.3
- dispersive 1D wave equation : 14.6
- dispersive wave propagation : 3.3.3 | 7.9
- displacement waves : 10.2.1
- distributed mass : 13.4
- distributed parameters : 2.5.10
- Doppler effect : 6.6
- doubling effect : 6.2 | 6.2
- driving force : 10.3.1
- driving-point impedance : 4.4.2 | 8.1
- dualizer : 14.16.1
- duty-cycle modulation : 10.1.9
- DWF : see digital waveguide filtertextbf
- dynamic scattering junction : 10.3.1.6
- dynamically balanced : 13.4.14.1
- early reflections : 4.2.1 | 4.3
- echo : 3.2.7
- Echoplex : 6.7
- EDC : see energy decay curvetextbf
- EDR : see energy decay relieftextbf
- EDR-based loop filter design : 7.11.5
- eigenpolarizations : 7.12.2
- elastic collision : 10.3.1
- elastic solids : 13.5
- electric guitars : 10.1
- elliptic norm : 14.15.3
- energy conservation : 13.2.6
- energy conservation in volumes : 13.7.9
- energy decay curve (EDC) : 4.2.2.1
- energy decay relief (EDR) : 4.2.2.2
- energy density : 13.7.8
- energy density waves : 14.7.6
- energy in a vibrating string : 14.7.8
- energy of a mass : 13.2.2
- energy of a mass-spring system : 13.2.5
- equations of motion, rigid bodies : 13.4.20
- equilibrium : 13.1.4
- equivalent circuit : 2.5.10
- ERB scale : 9.6.2
- Euler method
- Euler's equations, rotations : 13.4.20.3
- evanescent wave : 14.8.2.2
- even part : 7.13.1.5
- excess air pressure : 10.7.1
- excitation factoring : 10.4.4.5
- excitation noise substitution : 9.8.5
- excitation table : 10.4.4.3
- exciting a string : 10.3
- experimental fact : 13.1.3
- explicit finite-difference scheme : 10.4.3.3 | 15.1
- explicit method : 8.4.2
- Extended Karplus-Strong (EKS) : 10.1.5
- F0 estimation : 7.11.4
- factoring excitations : 10.4.4.5
- factoring resonators : 9.8
- Farrow structure : 5.2.15.3 | 5.2.15.3
- coefficients formula : 5.2.15.4
- FDN : see feedback delay networktextbf
- FDN reverberation in Faust : 4.7.9
- FDTD : see finite difference time domaintextbf
- feedback comb filter : 3.6.2 | 3.6.2 | 4.6.2
- feedback delay network : 3.7 | 4.7
- as a digital waveguide network : 4.7.8
- relation to state space : 3.7.1
- single input : 3.7.2
- stability : 3.7.3
- relation to state space : 3.7.1
- feedback howl : 10.1.7
- feedforward comb filter : 3.6.1 | 3.6.1
- filter
- allpass : 3.8
| 3.9
- allpass examples : 3.8.4
- allpass from two combs : 3.8.1
- allpass, Gerzon nested MIMO : 3.8.5
- allpass, nested : 3.8.2
- ladder structure
- Kelly-Lochbaum section : 14.8.4
- one-multiply section : 14.8.5
- lattice section : 3.8.2
- lossless : 3.8.3
- transposition : 3.5.2
- vectorized comb : 3.7
- allpass examples : 3.8.4
- filter bank : 4.7.5.3
- filter design : 9.6
- differentiator : 9.6.3
- dispersion filter : 10.4.1.3
- invfreqz : 9.6.4
- minimum phase conversion : 9.6.4.3
- reading : 9.6.5
- summary : 9.6.2
- dispersion filter : 10.4.1.3
- filtered node variables : 14.5.5.1
- filtered-feedback comb filter : 3.6.5
- filtering per sample : 3.3.2 | 4.7.4
- finite difference approximation : 8.3.1 | 14.2 | 14.2
- finite difference approximation vs. bilinear transform : 8.3.2.1
- finite difference scheme
- finite difference string model
- frequency-dependent losses : 14.5.5.1
- lossless : 14.4.3
- lossy : 14.5.5
- lossless : 14.4.3
- finite state machines : 2.5.6.3
- finite-difference equations : 8.3
- finite-difference scheme : 15 | 15.1
- consistency : 15.2.1
- convergence : 15.2
- explicit : 15.1
- FDTD and digital waveguides : 16
- implicit : 15.1
- passivity : 15.2.5
- stability : 15.2.3
- well posed initial-value problem : 15.2.2
- convergence : 15.2
- finite-difference time-domain : 16
- finite-impulse-response (FIR) filter : 3.5.4
- flanger : 6.3 | 6.3.5
- flanging : see flangertextbf
- flare constant : 10.7
- flow-graph reversal theorem : 3.5.2
- flute synthesis : 10.8.2
- FM synthesis : 2.4.3
- force : 13.1.3
- force of gravity : 13.1.3
- force reflectance : 10.3.1.3
- force times distance : 13.2
- force transmittance : 10.3.1.5 | 14.11.1.1
- force wave variable : 14.7.2
- force waves : 7.1.5 | 14.7.2
- forced response : 2.5.7.2
- formant synthesis : 9.5
- forward Euler method : 8.4.2
- fractional delay : 5.1.1.2
- fractional delay filter : 5.1.1.2 | 5.2.1
- fractional-delay filter : 5.2.2
- frame of reference : 13.4.20.1
- frequency shift : 6.5
- friction force : 8.1.1
- fundamental frequency
- estimation : 7.11.4
- gas
- heat capacity : 13.7.13
- pressure : 13.7.3
- properties : 13.7
- pressure : 13.7.3
- acceleration due to gravity : 13.1.4