- ... direction.2.1
- To determine whether a surface is
effectively flat, it may first be smoothed so that variations less
than a wavelength in size are ignored. That is, waves do not ``see''
variations on a scale much less than a wavelength.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...2.2
- In the code of Fig.1.9, the first executable line
changes the global STK sampling-rate from 44100 Hz (the default) to
that of the input soundfile. If this is not done, there is a hidden
sampling-rate conversion using linear interpolation when the input
file is read, if its sampling rate is different from the global STK
sampling-rate. This default rate conversion could alternatively be
canceled by saying input.setRate(1.0); after the input file
is opened.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ....2.3
- It is easy to see that the exponential function
has the property
. To show that all
differentiable functions with this property are exponentials, one can
look at the definition of the derivative of
with respect to
:
Since
, we must have
. Therefore, the last
limit above converges to some constant
, and
. In this way, it is shown that
satisfies a differential equation whose solution space consists of
exponential functions of the form
, and to obtain
, we must have
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... dispersion2.4
- Dispersion
occurs in a traveling wave whenever the propagation speed is different
at two or more frequencies.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... as2.5
- Note that
Fig.1.18 is given in direct form 2, so its describing equations are
. To make the figure
correspond exactly to the direct-form-1 difference equation, simply
move
from the output arrow to the input arrow. That is, commute
the scaling by
and the feedback loop so that
is first.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... filter|textbf,2.6
- Readers of this book are not expected to know linear algebra,
but one does not have to learn much to follow the discussion in this
section. See, for example, [456, available online] for the
basic matrix operations. An excellent linear algebra text is
[333].
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ....2.7
- The
superscript denotes matrix
transposition (see any linear algebra text).
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ....2.8
- If
is complex, transposition must include
complex conjugation, i.e.,
. The
conjugate-transpose
is called the Hermitian
transpose of
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
1,2.9
- By definition,
, so that all singular values
of an orthogonal matrix are equal to 1.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... line.2.10
- This
structure may be quickly derived by forming a series combination of a
feedback comb filter followed by a feedforward comb filter, and
noticing that the two delay lines contain the same numbers at all
times. Therefore, the two delay lines can be replaced by a single
shared delay line.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...causal|textbf2.11
- A filter is said
to be causal if its impulse response
is zero for
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...fbffcf.2.12
- Gerzon's starting point was Schroeder's
allpass which differs slightly from Eq.
(1.15), having difference
equation [414]
with
required for stability. This structure can be derived
from Eq.
(1.15) on page
by moving the feedforward path to
the other side of the input summer and deriving the new gain for
. Gerzon's idea was to replace the
-sample delay by a
multi-input, multi-output (MIMO) allpass-filter matrix;
Gerzon's ``unitary frequency-response matrices'' correspond to
paraunitary matrix transfer functions
[455, Appendix D].
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... response|textbf2.13
- A (possibly complex) matrix
is said
to be unitary if
, where the `
'
superscript denotes complex-conjugate transposition:
(also called the Hermitian transpose). A real
unitary matrix is said to be orthogonal, and this is the case
most commonly used in practice.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... impedance2.14
-
See §K.1 for definitions and discussion regarding
impedance.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... ear,3.1
- It is also possible to use one delay
line for a single source to multiple ears, or multiple sources to one
ear.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... time3.2
- Reverberation time is typically defined as
, the time, in seconds, to decay by 60 dB.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... shown3.3
- A simple proof for rectangular rooms can be based on
considering a single spherical wave produced from a point source in
the room. Imagine tesselating all of 3D space with copies of the
original room (minus the source), all in the same orientation. As the
spherical wave expands, it intersects a number of rooms that is
roughly proportional to its radius squared. Since the radius is
proportional to time for an expanding spherical wavefront (
),
the number of rooms containing a wave section grows as
. By
adding all the rooms together (flipping every other one along
and
), we obtain the acoustic field in the original reverberant room at
time
, for the case of lossless wall reflections of pressure waves.
(This is the dual of the usual image method for computing the
impulse response of a room [16].) Since each
wave-section traverses each point exactly once in each room image
(disregarding reflections, which are accounted for by different room
images), the number of echoes at any point in the room during the time
it takes a plane wave to traverse the room is very close to the number
of wave sections in the room at the beginning of that time interval.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... shown3.4
- As described in virtually any acoustics textbook, the resonant modes of a
rectangular room are given by (see, e.g., [353, pp. 284-286])
 |
(3.1) |
where
denotes the
th harmonic frequency (radian/meter)
of the fundamental standing wave in the
direction (
being the
length of the room along
), and similarly for the
and
directions. Thus, the mode frequencies of a room can be enumerated on
a uniform 3D Cartesian grid indexed by
. The grid spacings
along
,
, and
are taken to be
,
, and
, respectively. From Eq.
(2.1), the spatial frequency
of mode
is given by the distance from the origin
of the grid to the point indexed by
. Therefore, the number of room
modes having spatial frequency between
and
is equal to
the number of grid points lying in the spherical annulus between
radius
and
. Since the grid is uniform, this number
grows as
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...3.5
- One definition of when late
reverberation begins is when it begins to look Gaussian, since
a random sum of plane waves uniformly distributed over all angles of
arrival yields a Gaussian distributed pressure field. (The fact that
late reverberation in a rectangular room always approaches a
superposition of plane waves traveling in all directions can be seen
from the ``image-method dual'' argument in §2.2.1.) One way to
test for Gaussianness is to form a histogram of impulse
response sample values over a finite window (say 10ms, or roughly 500
samples), and compare the normalized histogram
to a standard
Gaussian bell curve
computed using the measured sample
variance. A threshold can be placed on
, or some
number of higher order sample moments can be compared. A simpler test
is to determine when roughly 30% of the samples in a frame have
magnitude larger than one standard deviation (
)
[4],
since the probability of this occurring in truly Gaussian sequences is
erf
, where
erf
denotes the ``error function'' (integral from
to
of the
Gaussian probability density function with normalized variance
). For a zero-mean signal
, the sample standard
deviation
is given by the root-mean-square (RMS level).
Another
desired property of ``late reverb'' is that the remaining energy in
the impulse response (Schroeder's Energy Decay Curve (EDC)
[415]), has begun what appears to be an
exponential decay. This can be ascertained by fitting an exponential
to the EDC using, e.g., Prony's method.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...MoorerReverb79.3.6
- In computer music, an old trick
for making a synthesized tone sound reverberated is to randomly modulate
its amplitude envelope, and to append a low-level exponentially decaying
tail to the amplitude envelope (also modulated). This can produce a very
convincing illusion.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...ffcf).3.7
- Since typically
, one might wonder why
is not defined instead as
in order to better model a direct signal and a
secondary reflection (as discussed in §1.2.7). The current
definition is based merely on historical precedent. There is little
or no difference in practice (when
is not too small) because the
amplitude response is the same in both cases.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... filters,3.8
- While
allpass filters are ``colorless'' in theory, perceptually, their
impulse responses are only colorless when they are extremely short
(less than 10 ms or so). Longer allpass impulse responses sound
similar to feedback comb-filters. For steady-state tones, however,
such as sinusoids, the allpass property gives the same gain at every
frequency, unlike feedback comb filters.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... integer.3.9
- As an alternative to
the output delay values shown in Fig.2.5,
the values
have been used.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... alone.3.10
- There is a Freeverb
pd ``external'' in both the pd-extended and
faust-pd packages, and it appears in the muse
sequencer, kdemultimedia, clm, and faust
language packages, all included with Planet CCRMA. Other versions may
be found by a Web search for ``Freeverb source'', but I have not found
any version that isn't essentially the same June 2000 version by Jezar
at Dreampoint.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
(LBCF3.11
- ``Lowpass-Back-Comb-Filter''--to keep all the
comb-filter acronyms down to four characters: FFCF, FBCF, LBCF.
Author's perogative!
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... matrix.3.12
- A second-order Hadamard
matrix may be defined by
with higher order Hadamard matrices defined by recursive embedding, e.g.,
An
Hadamard matrix has the maximum possible determinant of
any
complex matrix containing elements which are bounded
by
in magnitude. This can be seen as an optimal mixing and
scattering property of the matrix.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... diagonal.3.13
- This is easy to
show by performing an expansion by minors to calculate
, always choosing to expand along the top row (for lower
triangular) or first column (for upper triangular).
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...3.14
- This substitution was first applied
to complete reverberators by Jot [217,218]. The
idea is closely related to the approximate pole analysis in
[319, p. 17], [432, pp. 170-172],
and [211], and somewhat also to the allpass conformal
maps used in [320,463].
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ....3.15
- See
[432, pp. 171-172] for a more detailed derivation which allows
to have arbitrary phase, which results in shifting of the pole
frequencies.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...Kendall84.3.16
- Of course, correct angles-of-arrival
for early reflections are more straightforward to implement using an
array of loudspeakers enclosing the listener.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
sound.4.1
- For sound examples, see
http://www.harmony-central.com/Effects/Articles/Flanging/.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...notches4.2
- The term notch here refers to the
elimination of sound energy at a single frequency or over a narrow
frequency interval. Another term for this is ``null''.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
notches.4.3
- The author discovered this by looking at the circuit
for the MXR phase shifter in 1975.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...eq:dopplershift).4.4
- If the tape travels in a loop,
then Fig.3.10 provides a model for the Echoplex (Maestro,
1960), which consists of a tape loop with a fixed write-head and
movable read-head.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... first4.5
- The ``first'' write-pointer is defined as the
one writing farthest ahead in time; it must overwrite memory, instead
of summing into it, when a circular buffer is being used, as is
typical.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... Leslie,4.6
- http://en.wikipedia.org/wiki/Leslie_speaker
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... derivation)5.1
- Note that
and
, as
defined, are traveling-wave components of the force acting to
the right on the string. That is, their sum
is
physically the force that the string-segment to the left of
position
applies (in the upward direction) to the string-segment
to the right of point
. In other words,
denotes
the vertical force applied by the left segment to the right segment at
time
and position
; thus, it ``acts to the right'', even though
its traveling-wave components,
and
, travel to the left and
right, respectively, at speed
. The net physical force acting to
the right at each point is exactly canceled by an equal and opposite
force acting to the left at each point
. See §G.7.2
for a detailed derivation.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
inversion:5.2
- All wave phenomena involve two physical state
variables--one force-like and the other velocity-like. When one of
these variables reflects from a termination with a sign inversion, the
other reflects with no sign inversion, and vice versa. In acoustic
systems, the force-like variable is pressure, and the velocity-like
variable is either particle velocity (in open air) or volume velocity
(in acoustic tubes--see §E.5.2 for definitions). In
electromagnetic systems, the state variables are electric and magnetic
field strengths or voltage and current. In a mass-spring oscillator,
we may choose the velocity and acceleration of the mass as the
coordinates of our state space, or position and velocity. For
transverse waves on vibrating strings, it is usually preferable to use
transverse force and velocity waves as described above.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...fMovingTermb,5.3
- This
diagram can be seen animated along with
Figure 4.3 at
http://ccrma.stanford.edu/~jos/swgt/movet.html .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...,5.4
- In somewhat more detail,
so that
, and
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...fsstring5.5
- We should use the notation
for
this loop-filter, since it depends on the string length
(in
samples). The dependence of
on
is suppressed for
simplicity of notation.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... response:5.6
- The
corresponding impulse response is
, where
occurs at
time 0, and the transfer function is
. In practice, this filter is typically
implemented in causal form, i.e.,
starting at time 0, and one sample of delay is subtracted from a
delay-line preceding or following the filter.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...JOSFP.5.7
- http://ccrma.stanford.edu/~jos/filters/Allpass_Filters.html
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...OppenheimAndSchafer,JOSFP.5.8
- http://ccrma.stanford.edu/~jos/filters/Transposed_Direct_Forms.html
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... transform5.9
- http://ccrma.stanford.edu/~jos/filters/Introduction_Laplace_Transform_Analysis.html
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...JOSFP.5.10
- http://ccrma.stanford.edu/~jos/filters/Differentiation.html
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... function,5.11
for
and 1 for
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...JOSFP,5.12
- http://ccrma.stanford.edu/~jos/filters/Filters_Preserving_Phase.html
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...invfreqz5.13
- In
Matlab, the Signal Processing Tool Box is required, and in Octave, the
Octave-Forge package is needed.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...KlapuriMohonk05,KlapuriSAP03,Klapuri01.5.14
- Klapuri's publication home page: http://www.cs.tut.fi/~klap/iiro/
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
time-slices:5.15
- Note that this derivation also holds if the
power `2' is replaced by an arbitrary
, thereby supporting a
generalization from the EDR to what might be called the ``LPDR'' using
a kind of
norm on the remaining decay, where the EDR is
regarded as the
case.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ....5.16
- The delay-line length
is only the ``quasi-period''
in samples when the phase delay associated with
can be
neglected.
is never a true ``period'' because the synthesized
signal is decaying from one block to the next.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
instrument.5.17
- Electric guitars with magnetic pickups have
nearly rigid terminations, but even then, coupling phenomena are
clearly observed, especially above the sixth partial or so.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... be5.18
- http://ccrma.stanford.edu/~jos/filters/Finding_Eigenvalues_Practice.html
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... law,5.19
- A function
is said
to be odd if
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... function:5.20
- See
http://www.trueaudio.com/at_eetjlm.htm
for further discussion.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...SB.5.21
- SynthBuilder is now a proprietary
in-house tool at Analog Devices, Inc. See Appendix A for a
description of the STK software prototyping environment that many of
us use today. In particular, the Mandolin.cpp patch in the
STK distribution is based on commuted synthesis. Some of us are also
using the STK package in conjunction with pd [361] in
order to obtain drag-and-drop graphical user interface support and a
large library of MIDI processing tools.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... D.6.1
- The PC88 stretching begins in the fourth
octave, while the measured Steinway stretching is greatest in the
first octave (reaching nearly -20 cents relative to ``nominal tuning''
for the first note A0) and picking up again, going sharp, in the sixth
octave. See
http://www.precisionstrobe.com/apps/stretchdata/stretchdata.html
for the measured curves.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
impulse.6.2
- We use the term ``pulse'' to refer to a filtered
impulse, while the term ``impulse'' will always denote an isolated
nonzero sample at some amplitude.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... excited.6.3
- In other
words, to obtain maximum signal-to-noise ratio in a finite dynamic
range, it is better numerically to amplitude-scale at the final output
rather than prior to any recursive digital filters (e.g., at the
excitation before the string). However, such output scaling will
distort the relative amplitude of one note with respect to a previous
note that is still ringing in the string. For this reason, one might
use some scaling both before and after the string, using powers of 2
scaling for one of them to avoid a second multiply.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... manner6.4
- Implementation of a ``soft pedal'' can be done by
suppressing the input to one of the delay lines, as if the hammer were
``shifted over'' a little so as to miss one of the strings.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... signals.6.5
- In the Synthesis Tool Kit
[90], vectorized signals are implemented by the
tickFrame() member function, replacing the single-sample
tick() function.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... order,7.1
- It is
valid to neglect the reed mass when the first reed resonance is well
above the fundamental frequency of the played note, as is normally
the case.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
closure.7.2
- For operation in fixed-point DSP chips, the
independent variable
is generally confined to the interval
. Note that having the
table go all the way to zero at the maximum negative pressure
is not physically reasonable (0.8 would be more reasonable), but it has the
practical benefit that when the lookup-table input signal is about to clip,
the reflection coefficient goes to zero, thereby opening the feedback
loop.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...exponentially9.1
- If the flare of the bell is expressed as
, where
denotes the horn radius at
position
along the bore axis, then
is called the
flare constant of the bell.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... pressure9.2
- As always
in this book, by ``air pressure'' we mean the excess air
pressure above ambient air pressure. In the case of brass
instruments, excess air pressure is created by the muscles of the
lungs.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... mouthpiece.9.3
- When
the kinetic energy of a jet is converted back into air pressure, this
is called pressure recovery. We assume, following
[97] and others, that pressure recovery does not occur
in this model. Instead, the kinetic energy of the ket is assumed to
be dissipated in the form of turbulence (vortices and ultimately
heat). Note that air flow is therefore assumed inviscid within the
mouth and between the lips, but viscous around the jet in the
mouthpiece.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...Putland.9.4
- For velocity waves, the flare may be
hyperbolic [50].
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... STK.A.1
- This procedure is used in the
author's teaching at CCRMA.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...MakefilesA.2
- Only STK makefiles are generated by
configure--the files
myproj/Makefile
and
myproj/Makefile.proj
must be edited by hand, if needed.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... kind.A.3
- The STK has a
compile-time macro called RAWWAVE_PATH which defaults to
``../../rawwaves/''. This works for programs located in
directories such as projects/someproject/ within the
top-level STK directory. One can set the
rawwaves path at run time with the message
Stk::setRawwavePath() sent to the global Stk object;
similar messages set other global variables such as the sampling
rate.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... system.A.4
- http://ccrma.stanford.edu/~jos/mypc/Things_Do_after_Installing.html
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...A.5
- Standard AC '97 single-chip CODECs common on many
PC motherboards, such as the Intel ICH5, do not support a 44100 Hz
sampling rate; however, 48000 Hz is supported in all implementations
of the AC '97 CODEC standard. (See http://www.intel.com/design/chipsets/audio/
for further details on AC
'97.) The STK system-wide default sampling-rate is set by the line
``const StkFloat SRATE = 44100.0;'' in
~/stk/stk/include/Stk.h. The main demo program,
stk/projects/demo/demo.cpp, explicitly sets the sampling rate
to 44100 Hz, so it must be changed there as well if you have this
problem. Search for setSampleRate in demo.cpp to
change it there, or use the '-s' option of the demo program.
Similarly, most of the example programs
(~/stk/stk/projects/examples/) set the sampling rate
explicitly, and must be edited to change it.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... <Enter>.A.6
- The notation M-x,
pronounced ``meta x,'' means to hold down the Alt key and press
the x key. Alternatively, one can type the Esc key
followed by the x key. In either case, emacs
will prompt for a command line input. The notation <Enter>
means, of course, the Enter key (sometimes labeled
Return).
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... below.B.1
- For further introductory information
regarding compiling, linking, and debugging programs in the UNIX
environment, see
http://cslibrary.stanford.edu/107/.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... APIB.2
- API stands for ``Application Programming
Interface''
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... VSTiB.3
- VST stands for ``Virtual Studio Technology,''
and VSTi stands for ``VST Instrument.''
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... daemonB.4
- a daemon is a
program that runs in the ``background'' to provide services to other
programs.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... host.B.5
- While optimization level 2 interferes
with detailed single-stepping and variable inspection, it does not
interfere with setting breakpoints and general looking around, which
is all we need for the host program.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... install.B.6
- Some
prefer to type su -c "make install", but then you have to give
the root password every time.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... messageC.1
- In C++, ``sending message
to object
''
amounts simply to executing function
in struct
. This is
sometimes referred to static binding, as opposed to
dynamic binding.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...dAlembert.D.1
- For a short biography of d'Alembert, see
http:
//www-groups.dcs.st-and.ac.uk/~history/Mathematicians/D'Alembert.html
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... (1685-1731)D.2
- http:
//<ibidem>/Taylor.html
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... (1707-1783)D.3
- http:
//<ibidem>/Euler.html
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
eyeglasses.D.4
- http://www.mathphysics.com/pde/history.html
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... vibrations.D.5
- http:
//www.stetson.edu/~efriedma/periodictable/html/B.html
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...ZadehAndDesoer,Kailath80,Depalle.D.6
- http://ccrma.stanford.edu/~jos/PianoString/
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...strain.D.7
- http://www.efunda.com/formulae/solid_mechanics/mat_mechanics/hooke.cfm
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
public.D.8
- http:
//cnx.rice.edu/content/m0050/latest/
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...FettweisMain.D.9
- Derivation:
http://ccrma.stanford.edu/~jos/pasp/Wave_Digital_Filters.html
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
Belevitch.D.10
- http://www.ieee.org/organizations/history_center/oral_histories/transcripts/fettweis.html
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...Flanagan72,FlanaganAndRabinerEds,RabinerAndSchafer78,SchaferAndMarkel79,OShaughnessy87,DPH93,Keller94.D.11
- The
overview [308] of early speech production models is
freely available online, thanks to the Smithsonian Speech Synthesis
History Project.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... formulation.D.12
- http:
en.wikipedia.org/wiki/Oliver_Heaviside
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... phenomenon.D.13
- http:www.microwaves101.com/encyclopedia/history.cfm
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...D.14
- Scattering
theory:
http://ccrma.stanford.edu/~jos/pasp/Scattering_Impedance_Changes.html
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... method.D.15
- ``Bicycle Built for
Two'' by Kelly, Lochbaum, and Matthews,
1961:
http://ccrma.stanford.edu/~jos/wav/daisy-klm.wav
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... completion.D.16
- http://www.bell-labs.com/news/1997/march/5/2.html
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...PRCT.D.17
- http:
www.cs.princeton.edu/~prc/SingingSynth.html (includes sound
examples)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...PainterAndSpanias2000.D.18
- In particular, CELP is used in the
free, open-source speech codec called Speex
(http://www.speex.org).
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...SchellengA,SchellengB,CremerC.D.19
- http://www.zainea.com/Oscilationsofbowedstring.htm
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
simpleE.1
- While this formula seems fairly simple now, in
Newton's day, it was necessary to invent calculus before it
could be stated in this way.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... velocity.E.2
- The only
massless particles are the photon and graviton (presuming it exists),
and massless particles can only travel at the speed of light. By
Einstein's famous formula
, we know that a particle's mass is
proportional to its energy at rest.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
constant|textbf.E.3
- The gravitation constant is given in
International Standard Units (``SI units'')
by
where the following physical units abbreviations are used:
These physical units for
come directly from Newton's second law of
motion (§E.1).
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...force|textbf.E.4
- From
a modern point of view, all forces are ``mediated'' by some particle,
and there are only four basic forces: The electromagnetic force
is mediated by the photon, the
strong nuclear force is mediated
by the gluon, the weak nuclear force is mediated the
and
bosons, and gravity is thought to be mediated by
the graviton, although gravity is not yet incorporated into the
Standard Model of theoretical physics. Only the electromagnetic
and gravitational forces are encountered in everyday life, since the
strong and weak nuclear forces decay exponentially on the scale of an
atomic nucleus. The approximate relative strengths of the
strong:weak:EM:gravity forces are
. At very high
energies, the weak and EM forces unify, according to the Standard
Model.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... force.E.5
- In this example, the
mass-spring system is in
equilibrium (not moving), so all forces in the system must sum
to zero. Equilibrium also must hold if the whole system is traveling
with a constant velocity; in other words, it is the lack of
relative motion that matters.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... displacements.E.6
- To show
this quantitatively, consider two electrons, each having electric
charge
, separated by
meters. Then the Coulomb force between
the electrons is proportional to
. Adding a small
perturbation
to
yields a new force proportional to
where we used the binomial expansion to obtain the
approximation. (The notation
means ``terms order
of
'', and such terms approach zero as fast as
approaches zero.) Thus, the effective spring constant
connecting the two electrons is
, when
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... yieldingE.7
- A more formal methodology for arriving
at differential equations by applying Newton's law and Hooke's law is
described in Appendix P. In the present example, consideration of the
underlying physics should convince you that the signs in Eq.
(E.4)
are correct. For example, when
is positive, the spring must push
the mass back to the left. Therefore,
means the mass
will be accelerated to the left.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
time:E.8
- See, e.g.,
[455, p. 235-236] for a derivation, and Appendix P,
specifically §P.3.6, for related analysis.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
object.E.9
- In SI units, work is in units called
Joules (abbreviated J).
Thus, Joules are Newtons times meters.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... considered.E.10
- Ok, there does exist energy
fluctuation on the scale of ``Heisenberg uncertainty''. That is, it
is possible to have a violation in energy conservation by an amount
over a time duration
, provided
is sufficiently small (on the order of Planck's constant
).
This can be considered a form of the Heisenberg uncertainty principle.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...MDFT.E.11
- http://ccrma.stanford.edu/~jos/mdft/Projection.html
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... potential:E.12
- This was first pointed out
by Rayleigh
[353, p. 39].
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...E.13
-
http://www.grc.nasa.gov/WWW/K-12/airplane/sound.html
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...G.1
- Any function of
, where
denotes time and
denotes
position along a ``waveshape'', may be interpreted as a fixed
waveshape traveling to the right (positive
direction), with
speed
. Similarly, any function of
may be seen as a
waveshape traveling to the left (negative
direction) at
speed
meters per second. In both cases,
denotes a position
along the waveshape, and
denotes time. For any fixed
, a
``snapshot'' of the waveshape may be seen by evaluating along
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... velocity|textbfG.2
- The term
phase velocity is normally used when it differs
from the group velocity, as in stiff, dispersive strings
(§G.6).
In the present context, the phase velocity and group velocity are
the same, so the term ``wave velocity'' is unambigous here.
See the analogous terms phase delay and group delay
in [455] for more details about the difference.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...G.3
- A detailed derivation of the usual stiff-string wave equation
Eq.
(G.32) is given by Morse in [322] or [323].
Derivations of more elaborate wave equations including rotary inertia
and shear effects are given in Graff [170, pp. 180-195]
(``flexural waves in thin rods''). See also Kolsky [266].
See Fletcher and Rossing [142] regarding stiff
piano strings, and Cremer [94] regarding stiffness effects
in violin strings (principally the prevention of sharp corners in the
string).
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... wave.G.4
- The sum of the left- and right-going components,
, equals the
net force acting to the right.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... junction.G.5
- When the wave impedance
is complex, the junction effectively has state, so that energy, but not
necessarily power, is conserved. See §G.14 for an example.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
scattering.G.6
- Here it is assumed that
and
in
the Kelly-Lochbaum junction can be computed exactly from
in the
number system being used. This is the case in two's complement
arithmetic as is typically used in practice.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
``right-going.''G.7
- In the acoustic tube literature which
involves only a cascade chain of acoustic waveguides,
is
taken to be traveling to the right along the axis of the tube
[298]. In classical network theory [35] and in
circuit theory, velocity (current) at the terminals of an
-port
device is by convention taken to be positive when it flows into
the device.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... foundG.8
- http://ccrma.stanford.edu/~jos/filters/Similarity_Transformations.html
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... magnitude:G.9
- While the
literature seems to mention this property only for prime numbers
,
it is straightforward to show that it holds in fact for all positive odd
integers
. Prime values of
have advantages, however, when harmonics
of the ``design frequency'' are considered.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
algorithms.I.1
- See [102] for discussion of a wider
variety of digital sine generation methods.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... algorithm,I.2
- The
``magic circle'' algorithm is so named because it generates closed
curves in the
plane even when numerical precision is
very low. For this reason, it has long been used as an algorithm
for drawing ``circles'' (actually ellipses) in computer graphics.
The algorithm is derived naturally by numerically integrating the
derivative relationships between sine and cosine:
The magic circle algorithm is easily shown to be equivalent to the
lowpass output of the infinite-
digital state variable
filter in ``Chamberlin form'' (defined
in, e.g., [486,81]).
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
amplitude),I.3
- When
is constant, the time constant
of the ensuing exponential growth or decay may be found by
solving
for
to obtain
ln
, where
denotes the sampling interval, and
ln
denotes the natural
logarithm of
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... analysisI.4
- http://ccrma.stanford.edu/~jos/filters/State_Space_Models.html
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... samples.J.1
- Classically, an interpolati