Free Books

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 $ z$ 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
echo simulation : 3.2.7
energy density : 13.7.8
intensity : 13.7.7
wave simulation : 3.2
acoustic guitars : 10.2
acoustic tube
nonuniform : 14.18
waveguide model : 7.2
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
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
frequency-dependent : 3.3.2
frequency-independent : 3.3.1
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
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
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
general case : 13.4.20.2
vector : 13.4.14
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
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
commuted waveguide synthesis : 9.7
bowed strings : 10.6.4
excitation synthesis : 10.4.4.6
piano : 10.4.4
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
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
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
backward : 8.4.3
forward : 8.4.2
semi-implicit backward : 8.4.7
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
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
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
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
centered : 8.3.1.2 | 12.5.2 | 16.1.1
finite difference string model
frequency-dependent losses : 14.5.5.1
lossless : 14.4.3
lossy : 14.5.5
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
finite-difference time-domain : 16
finite-impulse-response (FIR) filter : 3.5.4
flanger : 6.3 | 6.3.5
depth : 6.3
feedback : 6.3.4
rate : 6.3.1
regeneration : 6.3.4
speed : 6.3.1
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
temperature : 13.7.10
gas law, ideal : 13.7.10
generalized eigenvector : 2.5.9.3
generalized scattering coefficients : 14.18.6
gradient : 13.8.2
gravitation : 13.1.3
group-delay filters : 5.3
guitar
acoustic : 10.2
bridge : 10.2.1
distortion modeling : 10.1.6
electric : 10.1
modeling : 9.7
string damping model : 10.1.2
string modeling : 7
gyration : 13.4.9
gyrator : 14.16.1 | 14.16.1
Hadamard matrix : 4.7.2.1
half-rate waveguide filter : 14.9.3
hard clipping : 10.1.6.3
heat capacity : 13.7.12
Heaviside unit step function : 5.1.3.3
Helmholtz motion : 10.6.4
Hermitian conjugate : 4.7.2.4
Hermitian transpose : 3.7.3 | 3.8.5
history of ideas : 12
Hooke's law : 13.1.4 | 13.1.5
Horner's rule : 5.2.15.3
horns : 14.18
Householder FDN feedback matrix : 4.7.2.2
Householder reflection : 4.7.2.2
Huygens-Fresnel principle : 3.2.5 | 14.18.1.2
hysteresis : 10.3.2.2
ideal bar : 13.5.1.1 | 14.6
ideal gas law : 13.7.10
ideal mass : 8.1.2
ideal spring : 8.1.3
ideal string
digital waveguide model : 14.4.1
idempotent : 13.4.12.1
ill posed PDE : 14.5.2 | 15.2.2.2 | 15.3
image method : 4.2.1
imedance of a terminated string : 7.4.3
immittance : 8.1
impedance : 8.1 | 8.1
impedance analysis : 8.2.5
implicit finite difference scheme : 15.1
implicit method : 8.4.2
impulse expanders : 4.4.2
impulse response sampling : 9.1
impulse-invariant method : 9.2
incompressible flow : 10.7.1
index of refraction : 14.8.2.1
induced norm : 3.7.3
inductor : 8.1.2
inelastic collision : 10.3.1
inertia : 13.1 | 13.1.2
inertial frame : 13.4.20.1
initial conditions : 2.5.7.2 | 13.1.5
initial state : 2.5.7.2
instantaneous nonlinearity : 7.13.1
integrator : 8.1.2
intensity, acoustic : 13.7.7
International Standard (SI) Units : 13.1.3
Internet links : 18
interpolated delay line : 5.1 | 5.2.2
interpolated table lookup : 5.1.1.2
interpolating read : 5
interpolation
allpass : 5.1.2
by differentiator filter bank : 5.2.15.5
by the Farrow structure : 5.2.15
delay and signals : 5
delay lines : 5.1
linear : 5.1.1
intrinsic momentum : 13.4.20
inverse filtering : 9.8.2.2
matlab code : 9.8.2.2
inverse square law : 3.2.5
invfreqz example : 9.6.4
inviscid : 10.7.1
isentropic : 13.7.11
isothermal : 13.7.11
JCRev : 4.5 | 4.6
jets : 13.7.6
joules : 13.2
Karplus-Strong algorithm : 10.1.4
Karplus-Strong history : 12.8
Karplus-Strong, extended : 10.1.5
Kelly-Lochbaum scattering junction : 14.8.4
kinetic energy : 2.5.6.4 | 13.2.4
of a mass : 13.2.2
of rotation : 13.4.3
of translation : 13.4.2
kinetic theory of ideal gases : 13.7.3 | 13.7.10
L2 norm : 3.7.3
ladder filter : 14.9.4 | 14.9.4
normalized : 14.9.5
ladder waveguide filter : 14.9.1
ladder, reflecting termination : 14.9.2
Lagrange interpolation : 5.2
coefficient formula : 5.2.4
coefficient symmetry : 5.2.5
differentiator bank : 5.2.15.5
equivalence to sinc interp. : 5.2.17
Farrow structure : 5.2.15.3
faust function : 5.2.8
fractional-delay filtering : 5.2.2
frequency response : 5.2.9
matlab function : 5.2.6
maxima function : 5.2.7
optimality : 5.2.3
recent developments : 5.2.16
uniform samples : 5.2.1
Laplace transform : 8.1.2
Laplacian operator : 13.8
late reverberation : 4.2.1 | 4.4
lattice filter : 14.9.4
two-multiply section : 3.8.2
law of inertia : 13.1.1
Lax-Richtmyer equivalence theorem : 15.2.4
left wing (FIR filter) : 5.4.3
Leslie block diagram : 6.7.6
Leslie effect : 6.9
lever arm : 13.4.18
leverage : 13.4.18
LFO : see low-frequency oscillatortextbf
linear interpolation : 5.1.1
resampling interpretation : 5.1.3
linear prediction : 9.6.2
loaded waveguide junction : 14.12
longitudinal attack pulse : 10.4.2
longitudinal wave : 7.12.5 | 13.6.2
in rods : 14.8.3
loop filter : see waveguide synthesisloop filter
lossless : 14.15.3
FDN : 14.15.3
filter : 3.8.3
reverberator prototype : 4.7.2
lossy wave propagation : 3.3
low-frequency oscillator (LFO) : 6.3.1
lumped
elements : 2.5.10
model : 8
model digitization : 8.3
lumped-parameter analysis : 8
lumping distributed losses : 3.2.2
magnetic pickup : 7.10.1.2
marginally stable : 15.2.2 | 15.2.3
Mason's gain formula : 3.5.2
mass : 13.1.2
of piano hammer : 10.3.2.3
mass density : 13.4.1
mass disk : 10.4.3.1
mass moment of inertia : 13.4.4
circular disk
about center : 13.4.4.1
about diameter : 13.4.4.2
mass moment of inertia tensor : 13.4.15 | 13.4.15
mass-spring chain : 10.4.3
mass-spring oscillator, energy : 13.2.4
mass-spring-wall : 8.2.2
mass-string collision : 10.3.1
matched z transformation : 9.3 | 9.3.1
matlab
amplitude-response
extrapolation : 9.6.4.1
interpolation : 9.6.4.1
coherence function : 10.2.1.7
inverse filtering : 9.8.2.2
invfreqz example : 9.6.4
Lagrange interpolation : 5.2.6
linear regression : 9.8.1.4
minimum-phase computation : 9.6.4.3
quadratic residue sequence : 14.14.6
sinusoid generators : 14.17.9
time-aliasing check : 9.6.4.2
matrix
determinant : 13.4.12
norm : 3.7.3
matrix, triangular : 4.7.2.5
matrix-pencil method : 9.5
maxima, the symbolic math program : 5.2.7
maximally flat : 5.2.15.5
mean free path : 4.7.3.1
mechanical impedance : 8.2.5
mechanics : 13
membrane wave equation : 14.14.4
memoryless nonlinearity : 7.13.1
mesh
2D, lossy : 14.14.5
2D, rectilinear : 14.14.1
wave equation obeyed : 14.14.4
MIMO allpass filter : 3.9
minimum phase : 9.6.4.3
computation in matlab : 9.6.4.3
mixing matrix : 4.5
modal
expansion : 9.5 | 12.2
extraction techniques : 9.8.1
representation : 2.5.9
from state space : 9.5.1
modal synthesis : 2.5.9 | 9.5 | 9.8.1
mode conversion : 7.2
mode of vibration : 9.5
model : 2.2
modulated delay line : 6.5
molar mass : 13.7.10
moment arm : 13.4.18
moment of force : 13.4.18
moment of inertia : see mass moment of inertiatextbf
momentum : 13.3
angular versus linear : 13.4.13.1
linear+angular : 13.4.10
momentum of center-of-mass : 13.4.1.1
momentum of waves : 13.6.2
moving notches : 6.3
musical acoustics : 12.1
mutually prime : 4.7.3
nested allpass filter : 3.8.2
nested MIMO allpass filter : 3.8.5
Newton's laws of motion : 13.1
examples : 13.1.5
Newton's method
nonlinear minimization : 8.4.5
Newton's second law, rotational : 13.4.19
nodes : 9.5
nonlinear
distortion : 10.1.6
element : 7.13
finite differences : 8.4
length modulation : 10.1.6.2
tension modulation : 10.1.6.1
nonlinear-phase distortion : 5.1.2.1
nonlinearity
aliasing : 7.13.1.6
cubic soft clipper : 7.13.1.3
memoryless : 7.13.1
nonparametric representation : 9.1
normal mode : 9.5
normalized ladder filter : 14.9.4
normalized scattering junction : 14.8.6
normalized waveguide filter : 14.9.5
notch : 6.3
null : 3.6.3 | 6.3
numerical integration : 2.5.6.3 | 8.4
backward Euler : 8.4.3
forward Euler : 8.4.2
semi-implicit : 8.4.6
semi-implicit backward Euler : 8.4.7
semi-implicit trapezoidal : 8.4.8
trapezoidal rule : 8.4.4
odd functions : 7.13.1.5
ODE : see ordinary differential equationtextbf
Ohm's Law : 2.5.11
Ohm's law for traveling waves : 7.1.5 | 14.7.3
one ports
parallel combination : 8.2.3
passivity condition : 8.2.7
series combination : 8.2.1
one-filter scattering junction : 10.3.1.6
one-multiply scattering junction : 14.8.5
one-parameter waves : 14.18.1
one-port network : 8.2
one-to-one : 7.13.1
order of a state-space system : 3.7.1
ordinary differential equation : 2.5.3
orthogonal basis : 13.8.4
orthogonal matrix : 4.7.2.4
oscillator
algorithms : 14.17.2
mass spring : 17.3.6
wave digital : 17.3.6
waveguide : 14.17
outer disk : 14.11.2
parallel axis theorem : 13.4.6
parallel combination of one-ports : 8.2.3
parallel connection : 8.2.3 | 17.2.1
parallel second-order filter bank : 2.5.9
parametric spectrum analysis : 9.5
paraunitary matrix transfer function : 3.8.5
partial derivative : 2.5.4 | 2.5.13
partial differential equation : 8.4.10
partial fraction expansion : 2.5.9
particle velocity : 8.1 | 10.7.1 | 13.7.1
passive : 14.11
finite-difference scheme : 15.2.5
one-port : 8.2.7
reflectance : 14.11.1
string termination : 10.2.1
system properties : 14.11
PDE : see partial differential equationtextbf
percussion synthesis : 10.8.3
perpendicular axis theorem : 13.4.5
PFE : see partial fraction expansiontextbf
phantom partials : 10.4.2
phase shifter : see phasertextbf
phase velocity : 14.3.4 | 15.3
phase vocoder : 2.4.3
phaser : 6.4
allpass chain : 9.9
analog : 9.9.1.1
digital : 9.9.1.2
phasing : see phasertextbf
physical models : 2 | 2.5
physical signal model : 2.3 | 2.5
physical state : 13.1.2
physical units : 13.1.3
physics and mechanics : 13
piano
acoustics : 10.4.5
commuted synthesis : 10.4.4
longitudinal attack pulse : 10.4.2
longitudinal vibrations : 10.4.2
phantom partials : 10.4.2
string : 10.4.1
synthesis : 10.4
piano hammer
hysteresis : 10.3.2.2
mass : 10.3.2.3
models : 10.3.2
nonlinear spring : 10.3.2.1
piano string
damping filter : 10.4.1.2
nonlinear synthesis : 10.4.2.1
nonlinearities : 10.4.2
piano synthesis : 7.9 | 10.4.5
pipe organs : 10.8.2
pitch estimation : 7.11.4
plane wave : 13.8.1
plane-wave scattering
normal incidence : 14.8.1
oblique incidence : 14.8.2
plasmas : 13.7.10
plectrum
damping : 10.3.3.4
impedance : 10.3.3
model : 10.3.3
pluck control : 10.3.3.2
pluck modeling : 10.3.3 | 10.3.3.3
plucked string
digital waveguide model : 10.3.3.1
plucked string synthesis model : 7.5
point mass : 10.3.1
point source : 3.2.5
polarizations (of waves) : 7.1.2
pole mapping : 9.4
pole-zero cancellation : 5.1.2
polynomial growth : 15.2.2
polynomial interpolation : 5.2
port : 3.4.3
positive real : 10.2.1.1 | 10.2.1.8
positive real functions : 14.11.2
positive real impedance : 8.2.7
potential energy : 13.2.1 | 13.2.4
potential energy of a spring : 13.2.1
power complementary : 14.11.1.2
power reflection frequency response : 14.11.1.2
power waves : 14.7.5 | 14.7.5
power-normalized waveguide filters : 14.9.5
preemphasis : 9.8.2.1
pressure in a gas : 8.1 | 13.7.3
pressure recovery : 10.7.1 | 13.7.6
prime-power delay-line lengths : 4.7.3.3
principal axes of rotation : 13.4.16
principal direction : 13.4.16
principal moment of inertia : 13.4.16 | 13.4.16
principle of least action : 13.4
products of inertia : 13.4.16.1
quadratic convergence : 8.4.5
quadratic form : 8.4.5
quadratic residue sequence : 14.14.6
quasi-harmonic series of modes : 9.5.2
radius of gyration : 13.4.9
circular cross-section : 13.4.9.2
rectangular cross-section : 13.4.9.1
reactance : 7.4.3 | 8.1
reaction force : 10.3.1
real-time finite difference schemes : 8.4.10
recorder : 10.8.2
recording-based models : 2.4.1
rectangular pulse : 5.1.3.3
reed instruments : 10.5.1
reed modeling : 10.5.3
reference directions : 10.3.1
reflectance : 10.3.1.2 | 10.3.1.3 | 14.10.1 | 14.11.1
conical cap : 14.18.8.2
reflection
from a yielding termination : 10.2.1
sound waves : 3.2.6
reflection coefficient : 3.9.1 | 7.2 | 17.2.2.2
plane waves : 14.8.1.2
velocity waves : 17.2.4.2
reflection filter : see reflectancetextbf
reflection-free port : 17.2.2.4
refraction : 14.8.2.1
resistor : 8.1.1
resonator factoring : 9.8
resources on the Internet : 18
resultant moment : 13.4.20
reverberation : 3 | 4
delay-line damping : 4.7.4.2
desired qualities : 4.4.1
echo and mode density : 4.2.1
energy decay curve (EDC) : 4.2.2.1
energy decay relief (EDR) : 4.2.2.2
feedback delay network : 3.7 | 4.7
first-order delay filters : 4.7.5.1 | 4.7.5.2
freeverb : 4.6
mesh diffusion : 14.14.6
multiband delay filters : 4.7.5.3
perception of : 4.2
perceptual metrics : 4.2.2
Schroeder : 4.5
Schroeder allpass comb filter : 4.4.2
waveguide : 4.7.11.3
zita-rev1 : 4.7.10
reverberation time : 4.1.2
set by contracting poles : 4.7.4
vs. frequency : 4.7.5.3
reversible adiabatic process : 13.7.11
right wing (FIR filter) : 5.4.3
right-hand rule : 13.4.12
right-hand screw : 13.4.11
rigid body
dynamics : 13.4
equations of motion : 13.4.20
rigid string terminations : 7.3 | 10.2.1
root-power waves : 14.7.7
rotary inertia : 10.4.2.4
rotational dynamics : 13.4
rotational kinetic energy : 13.4.3
rotational relaxation : 13.7.15
sampling an instrument : 2.4.1
sampling synthesis : 2.4.1
scalar product : 13.4.12
scattering : 3.9.1 | 3.9.1
at impedance changes : 14.8
scattering coefficients
at conical taper-angle change : 14.18.6
scattering filter : 14.18.8.1
scattering junction : 3.9.1 | 10.3.1.6
N waveguides : 14.12
scattering theory : 3.9.1
Schroeder allpass comb filter : 3.8 | 4.4.2
waveguide interpretation : 4.4.2
Schroeder reverberators : 4.5 | 4.5.1
Schroeder-Moorer comb filter : 3.6.5 | 4.6.2 | 4.6.2
Schur function : 14.11.1 | 14.11.2.2
semi-implicit
backward Euler : 8.4.7
finite-difference : 2.5.5
numerical integration : 8.4.6
trapezoidal rule : 8.4.8
semitone : 6.5
series combination of one-ports : 8.2.1
series connection : 8.2.1 | 17.2.3
series reflection-free port : 17.2.4.4
shift operator notation : 15.2.1
short-time Fourier transform : 2.4.3
shufflers : 4.7.9
signal models : 2.2.2 | 2.4
signal scattering : 17.2
similarity transformation matrix : 2.5.9.3
similarity transformations : 2.5.7
sinc function : 5.4.1
sine cardinal : 5.4.1
singing voice synthesis : 10.8.1
sinusoid generators : 14.17.2
sinusoidal modeling : 7.9
slap-back effect : 6.2
Snell's Law : 14.8.2.1
soft clipper : 7.13.1.3 | 10.1.6.4
software : see matlabtextbf
acoustic echo simulation : 3.2.8
delay line : 3.1.1
solid of revolution : 13.4.16.1
sound examples : 19
sound speed : 13.7.14
source-filter synthesis : 9.5
space-fixed frame : 13.4.20.1 | 13.4.20.1
sparse state-space model : 3.7
spatial derivatives : 14.7.1
spatial impression : 4.3
spatial phase : 13.8.2
spatial sampling interval : 14.4
specific heat : 13.7.12
spectral modeling synthesis : 2.4.3
spectral norm : 3.7.3
spectral signal models : 2.3 | 2.4.3
specular reflection : 3.2.6
speed of sound : 13.7.14
spherical spreading loss : 3.2.5
spherical wave : 3.2.5
spring and free mass : 17.3.4
spring constant : 13.1.4
spring force : 13.1.4
spring, nonlinear : 10.3.2.1
spring-mass system : 8.2.4
square law nonlinearity : 7.13.1.7
stability margin : 9.6.2
stability of finite differences : 15.2.3
stability of nonlinear delay loops : 7.13.1.11
stability proof for a conical cap : 14.18.8.3
stable system : 15.2.2
standard model (physics) : 13.1.3
standing wave : 13.8.3
state conversions : 14.7.4
state definition : 2.5.6.4
state machines : 2.5.6.3
state of an ideal string : 14.3.6
state space model : 2.5.6
digitization : 2.5.6.3
force-driven mass : 2.5.6.2
linear : 2.5.7
outputs : 2.5.6.1
state space to modal representation : 9.5.1
state transformation, vibrating string : 14.3.6
state transition matrix : 3.7.1
state variable : 2.5.6.4
state variables : 3.7.1
state-space analysis, digital waveguide oscillator : 14.17.6
state-space model : 3.7.1
statistical mechanics : 13.7.10
statistical thermodynamics : 13.7.12
Steiglitz-McBride iterations : 9.6.2
STFT : see short-time Fourier transformtextbf
stiff string F0 estimation : 7.11.4.3
stiff string simulation : 7.9
stiff string synthesis : 7.9.1
stiffness : 13.1.4
stiffness term : 7.9
strain : 14.8.3
stretch rule for moment of inertia : 13.4.7
strictly stable : 15.2.3
string
collision with mass : 10.3.1
coupling : 7.12
dispersion filter design : 10.4.1.3
dispersive (stiff) : 10.4.1 | 14.6
dispersive wave propagation : 7.9
EDR-based loop-filter design : 7.11.5
excitation : 10.3
externally excited : 7.10
finite difference approx. : 14.2.1
frequency-dependent losses : 14.5.2
fundamental freq. estimation : 7.11.4
length modulation : 10.1.6.2
loop filter design : 7.11
modeling for synthesis : 7
moving termination : 7.4
piano : 10.4.1
pitch detection : 7.11.4
plectrum damping : 10.3.3.4
stiff : 7.9
wave equation : 13.6 | 14.1
wave momentum : 13.6.2
waveguide model : 7.1
string-mass
force-wave model : 10.3.1.5
model : 10.3.1.1
reflectance : 10.3.1.2
summary : 10.3.1.6
transmittance : 10.3.1.4
stringed instruments
body models : 10.2.2
bowed : 10.6
bridge reflectance : 10.2.1
commuted synthesis of : 9.7
coupled : 14.13
damping : 7.7
frequency-dep. damping : 7.8
guitar : 7 | 9.7
nonlinear : 10.1.6
yielding terminations : 10.2.1 | 10.2.1.1
struck string
digital waveguide model : 10.3.1.7
ideal mass : 10.3.1
impedance analysis : 10.3.1.3
synthesis model : 7.6
structured sampling : 2.1 | 2.4.2
Sturm-Liouville formulation : 14.18.1.1
susceptance : 8.1
symmetric FIR filters : 7.8
symmetric top : 13.4.16.1
synthesis, modal : see modal synthesis
synthesis, sampling : 2.4.1
synthesis, waveguide : see waveguide synthesis
tangential speed : 13.4.13.1
tapped delay line : 3.5 | 3.5 | 4.1
equiv. to parallel comb filters : 3.6.6
equiv. to series comb filters : 3.6.7
example : 3.5.1
parallel adds : 3.5.3
transposed : 3.5.2
temperature : 13.7.10
tension modulation : 10.1.6.1 | 10.1.6.1
tension of a string : 13.5.2
termination, moving : 7.4
thermal diffusion : 13.7.15
Thiran allpass interpolation : 5.3
time-domain difference operators : 8.3.1.2
Timoshenko beam theory : 10.4.2.4
tonal correction filter : 4.7.7
tonehole modeling : 10.5.4
torque : 13.4.18
total internal reflection : 14.8.2.2
transfer function
matrix : 2.5.8 | 4.1.1
models : 9
transformer, waveguide : 14.16
translational kinetic energy : 13.4.2
transmission coefficient : 3.9.1 | 7.2 | 17.2.2.2
velocity waves : 17.2.4.2
transmission filter : see transmittancetextbf
transmittance : 10.3.1.3
transposed tap : 3.4.2
transposed tapped delay line : 3.5.2
transposition of a flow graph : 3.5.2
transversal filter : 3.5.4
transverse displacement : 2.5.4
transverse waves : 7.12.1
trapezoidal rule : 8.4.4
traveling sinusoidal plane waves : 13.8.3
traveling waves : 3.2.1 | 3.2.1
damped : 3.2.2
dispersive : 3.2.3 | 3.3.3
in lumped systems : 14.10
partial derivatives : 14.3.1
plane waves : 3.3.1
wave equation solution : 14.3 | 14.3.5
tremolo : 6.5 | 10.3.3.3
triangular matrices : 4.7.2.5
tube, waveguide model : 7.2
tunneling : 14.8.2.2
two-multiplier lattice filter : 3.8.2
unit element : 17.1.7
unit-delay operator : 3.8.5
unitary frequency-response matrix : 3.8.5
unitary matrix : 4.7.2.4
feedback : 3.7
Univibe : 6.4 | 9.9.1
vector calculus : 13.4.12
vector cosine : 13.4.12.1
vector cross product : 13.4.12
vector equation of motion : 10.4.3
vector feedback comb filter : 3.7
vector product : 13.4.12
vector wavenumber : 13.8.2 | 13.8.2
velocity
particle : 13.7.1
reflection coefficient : 17.2.4.2
transmission coefficient : 17.2.4.2
volume : 13.7.2
velocity reflectance : 10.3.1.3
velocity reflection transfer function : 10.3.1.2
vibrating string : see string
vibration relaxation : 13.7.15
vibrato simulation : 6.5
virtual analog : 8.4.10 | 9.1 | 9.9.1.2
virtual displacement : 13.2.3
virtual musical instrument : 2 | 10
virtual work : 13.2.3 | 13.2.3
viscosity : 13.7.15
voice modeling history : 12.6.3
voice synthesis : 10.8.1
voltage divider : 8.2.5
voltage source : 2.5.10
voltage transfer interconnections : 3.4.3
volume velocity : 8.1 | 13.7.2
von Neumann analysis : 15.4
wave digital
model examples : 17.3
element : 17.1
filter : 17
mass : 17.3.1 | 17.3.4
mass-spring oscillator : 17.3.6
physical derivation : 17.1.1
spring : 17.3.4
wave digital filter : 17
alpha parameters : 14.12 | 17.2.2.1
beta parameters : 17.2.4.1
wave equation : 14.1
2D : 13.8.3 | 14.14.4
2D boundary conditions : 13.8.4
applications : 7.1.2
damped string : 14.5
in air : 13.8
piano string : 10.4.1.1
vibrating string : 7.1.1 | 13.6
wave momentum : 13.6.2
zero stiffness : 13.6.1
wave impedance : 7.1.5 | 7.1.5 | 8.1 | 14.7.3
arbitrary bore shapes : 14.18.5
cone : 14.18.4
wave momentum : 13.6.2
wave variables : 14.7 | 17.1
wave velocity : 14.3.4
waveform dispersion : 3.3.3
waveguide
collocated input/output : 3.4.3
cone-cylinder intersection : 14.18.8
conical : 14.18.2
conical cap reflectance : 14.18.8.2
conical cap reflectance stability : 14.18.8.3
conical wave impedance : 14.18.4
definition : 3.4
dispersive : 14.6
equivalence to FDTD scheme : 16
generalized impedance : 14.18.6
generalized scattering coefficients : 14.18.7
momentum conservation : 14.18.3
network : 3.9.2
nonuniform : 14.18 | 14.18.5
physical inputs : 3.4.2
physical outputs : 3.4.1
scattering : 3.9.1
scattering filter : 14.18.8.1
waveguide filter : 14.9
conventional ladder : 14.9.4
half-rate structure : 14.9.3
ladder structure : 14.9.1
normalized : 14.9.5
reflective termination : 14.9.2
waveguide junction
loaded : 14.12
N waveguides : 14.12
waveguide mesh : 4.7.11.4 | 14.14 | see mesh
waveguide mesh applications : 10.8.3
waveguide model
bowed strings : 10.6
ideal string : 14.4.1
reed instruments : 10.5.1
waveguide network : 3.9.2
FDN equivalence : 14.15
waveguide oscillator : 14.17 | 14.17
state-space analysis : 14.17.6
waveguide reverb : 4.7.11.3
waveguide synthesis
acoustic strings : 9.7
amplifier feedback simulation : 10.1.7
bowed strings : 10.6
brightness and sustain : 10.1.2
commuted : 9.7
commuted bowed strings : 10.6.4
damping filter design : 7.11.2
dispersion filter design : 7.11.3
distorted strings : 10.1.6
FIR(3) loop filter : 10.1.1
general bore shapes : 14.18
guitar body : 9.8
guitar bridge reflectance : 10.2.1
isolating resonant modes : 9.8.1
loop filter
one-zero : 10.1.3
three-tap : 10.1.1
loop filter design : 7.11.1
piano : 10.4
software : see softwaretextbf
waveguide theory : 14
waveguide transformer : 14.16
waves
longitudinal : 7.12.5
transverse : 13.6 | 14.1
WDF : see wave digital filtertextbf
Webster's horn equation : 14.18.2
wedge product : 13.4.14.1
well posed initial-value problem : 15.2.2
well posed PDE : 15.2.2.1
windowed sinc interpolation : 5.4
work : 13.2
yielding string terminations : 10.2.1
Young's modulus : 13.5.1
zita-rev1 reverberator : 4.7.10

Book Series Overview

This book is the third in my music signal processing series, after [451] and [449]. The books can be loosely summarized by the following ``design goals'':
  1. MATHEMATICS OF THE DISCRETE FOURIER TRANSFORM
    All about the DFT formula and its constituents, with frequent references to audio applications.
  2. INTRODUCTION TO DIGITAL FILTERS
    A gentle introduction to the analysis and implementation of digital filters, with particular emphasis on audio applications.
  3. PHYSICAL AUDIO SIGNAL PROCESSING
    Efficient computational physical models for delay effects and virtual acoustic musical instruments.
  4. SPECTRAL AUDIO SIGNAL PROCESSING
    Analysis, processing, and synthesis of audio signals in terms of spectral representations computed using the Fast Fourier Transform (FFT).
Figure 1: Schematic of interdependencies in the music signal processing book series, along with some closely related topics.
\includegraphics[width=4in]{eps/bookseries}
Figure 1 illustrates the dependencies. A solid line indicates a strong dependence, while a dotted line indicates a weaker (optional) dependence. The student is expected to pick up elementary physics [180] and programming skills [443,86] elsewhere. In all books, the main chapters contain approximately what is covered in class, while the appendices provide both elementary background material and additional advanced topics.

Acknowledgments

Thanks to my current and former graduate students Edgar Berdahl, Juan Pablo Caceres, Patty Huang, Reeve Ingle, Tatsuki Kashitani, Minjong Kim, John Nolting, Gary Scavone, and Matt Wright for useful feedback regarding the contents of this book. Matt Wright, in particular, contributed by far the largest number of errata notes and suggested improvements. Thanks also to netizens Arnold Bomans, Ayoub Banoushi, Niels Farver, Todd Lehman, Alastair Moore, Niels Moseley, and Bernhard Neugebauer for reporting errata they noted in the earlier Web versions. The exercises in this book were developed with much help from my former teaching assistants, Patty Huang and Pamornpol (Tak) Jinachitra. Last but certainly not least, thanks to my wife Carol and son Harrison for allowing me to bear down on this book with relatively obsessed focus at ``finishing time''.
Next Section:
Introduction to Physical Signal Models