Digital Sound Modelling lecture notes for Com Sci 295

Michael J. O’Donnell

10 March 1994—revised 8 April 1994

Contents

1 Physical and Mathematical Foundations of Sound Modelling 1

1.1 Physics: What Is Sound? . . . . . . . . . . . . . . . . . . . . . 1

1.1.1 Vibrating Springs . . . . . . . . . . . . . . . . . . . . . 1 1.2 Mathematics: How Do We Model Sound? . . . . . . . . . . . . 4

1.2.1 Vibration as the Circular Movement of a Rotor …. 5 1.2.2 Rotor State as a Complex Number . . . . . . . . . . . 10 1.2.3 Sound Signals in the Time Domain . . . . . . . . . . . 19

1.3 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2 Perceptual Foundations of Sound 26 2.1 Sound Imaging—What is “a Sound”? . . . . . . . . . . . . . . 26 2.2 Perceptual Parameters of a Sound . . . . . . . . . . . . . . . . 26

2.2.1 Pitch . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.2.2 Loudness . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.2.3 Timbre . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.2.4 Transient Effects . . . . . . . . . . . . . . . . . . . . . 26 2.2.5 Sound Events . . . . . . . . . . . . . . . . . . . . . . . 26

3 Digital Sampled Sound 27 3.1 Discrete time . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.2 Quantized Vibration State . . . . . . . . . . . . . . . . . . . . 32 3.3 Other Ways to Digitize a Sound Signal . . . . . . . . . . . . . 34 3.4 Direct Manipulation of Digital Sampled Sound . . . . . . . . . 34

4 The Frequency Spectrum 35 4.1 Pure Sinusoidal Sounds . . . . . . . . . . . . . . . . . . . . . . 35 4.2 The Ear as a Spectral Analyzer . . . . . . . . . . . . . . . . . 35

4.2.1 Perceptual Parameters of Sound . . . . . . . . . . . . . 35 4.3 Mathematical Spectral Analysis with the Fourier Transform . 36

4.3.1 Convolution, Enveloping, Filtering . . . . . . . . . . . 36 4.3.2 Discrete Spectra . . . . . . . . . . . . . . . . . . . . . . 36 4.3.3 Continuous Spectra and Noise . . . . . . . . . . . . . . 36

5 Additive Spectral Synthesis 37 5.1 Steady-State Sound . . . . . . . . . . . . . . . . . . . . . . . . 37 5.2 Amplitude Modulation, Enveloping . . . . . . . . . . . . . . . 37

5.2.1 Enveloping a Multifrequency Sound . . . . . . . . . . . 37 5.2.2 Enveloping Individual Spectral Components . . . . . . 37 5.2.3 Frequency Modulation . . . . . . . . . . . . . . . . . . 37

6 Time-Varying Spectral Analysis 38 6.1 Shortcomings of the Fourier Transform . . . . . . . . . . . . . 38 6.2 Time-Varying Spectral Analysis with the Continuous Wavelet

Transform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

7 Synthesis by Resonant Modes 39

7.1 Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

7.1.1 Analyzing Filters with the Z Transform . . . . . . . . 39 7.2 Sound Creation by Modal Synthesis . . . . . . . . . . . . . . . 39

7.2.1 Continuously Driven Resonators . . . . . . . . . . . . . 39 7.2.2 Ringing Resonators . . . . . . . . . . . . . . . . . . . . 39

7.3 Sound Modification with Formant Filters . . . . . . . . . . . . 39

List of Figures

1.1 Ideal spring resonator . . . . . . . . . . . . . . . . . . . . . . . 2 1.2 Qualitative states of spring . . . . . . . . . . . . . . . . . . . . 3 1.3 State and change vectors for vibrating spring . . . . . . . . . . 5 1.4 Spring system vs. rotor . . . . . . . . . . . . . . . . . . . . . . 7 1.5 Rotor state parameters x and y as functions of time t . . . . . 8 1.6 Rotor parameters x and y vs. t as a helix in three dimensions . 9 1.7 Adding two complex numbers . . . . . . . . . . . . . . . . . . 11 1.8 The conjugate of a complex number . . . . . . . . . . . . . . . 11 1.9 Complex number: Cartesian and polar coordinates . . . . . . 15 1.10 The signal e^{−t/8+i2πt/4}: decaying helix . . . . . . . . . . . . . . 21 1.11 The signal e^{i2^{t/8}2πt/4}: increasing frequency . . . . . . . . . . . 22 1.12 The signal e^{i2πt/4} + e^{i4πt/4}/2 + e^{i8πt/4}/4 + e^{i16πt/4}/8: sum of 4

helixes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

For supplementary material, particularly better versions of graphs, see the associated Maple files.

Chapter 1

Physical and Mathematical Foundations of Sound Modelling

In order to have useful discussions about sound, we need a very simplistic, but practical, understanding of the physics and mathematics associated with sound.

1.1 Physics: What Is Sound?

For our purposes, sound is any kind of vibration that is detectible by the ear or devices analogous to the ear. Treatments of sound in physics books tend to focus attention on the transmission of sound vibrations through the air. We will focus instead on the vibrating systems that produce and detect sounds, and just assume that the air is capable of transmitting vibrations from sound producers to the detectors in the ear.

1.1.1 Vibrating Springs

The simplest sort of vibration to understand is that of a spring. To really simplify things, imagine an environment with no gravity, and with a mass (a solid chunk of something) moving along a frictionless track that is fixed so the track cannot move. The track constrains motion of the mass to a

Figure 1.1: Ideal spring resonator

straight line, so we do not need to consider the three dimensions of space. Finally, imagine a spring attached at one end to the mass, and at the other end to some fixed point on the track. Be a bit liberal-minded, and imagine that the spring has length 0 when it is not stretched, and that the mass can move freely past the point where the spring is attached. A picture of our imaginary system is given in Figure 1.1.

At any moment in time, the state of the spring system can be described by two real numbers: the displacement y of the mass to the right of the point on the track to which the spring is fixed, and the velocity v of the mass to the right. Displacement to the left is represented by negative values of y, and motion to the left is represented by negative values of v. Now, imagine that we displace the mass to the right and hold it in a fixed position, stretching the spring. That is, we establish an initial condition where y > 0 and v = 0. When we release the mass, the spring pulls it to the left, causing a state where y > 0 and v < 0. Eventually the mass reaches the center of the track at y = 0, but at this moment v < 0 and inertia carries the mass beyond the center, to the left where y < 0. Now, the spring pulls the mass to the right, cancelling out the motion v < 0 to the left. Eventually the mass stops with v = 0, but at this moment the spring is stretched to the left with y < 0, so the pull to the right continues and causes the mass to move right with v > 0. This motion to the right eventually moves the mass past the center, so y > 0. The leftward pull of the spring opposes the motion until v = 0. So we return to a condition that is similar to the initial one: y > 0 and v = 0, and the cycle repeats. Figure 1.2 shows a schematic qualitative view of the vibration of the spring.

To complete the simplistic physics of a vibrating spring, we need to convert the qualitative observations above into quantitative information that we

Figure 1.2: Qualitative states of spring

can use in a mathematical analysis. For this purpose, let t be a real number representing the time that has passed since some arbitrary starting moment when t = 0. For any quantity q that depends on time, dq/dt means the instantaneous rate of change of q with respect to t—when the independent variable t is understood from context, dq/dt is often abbreviated q′. When no outside force acts on the spring and mass, its behavior is described by the following two equations:

y′ = Av  (1.1)
v′ = −By  (1.2)

A and B are positive real number constants (independent of time)—their actual values do not matter to us. Equation 1.1 holds because velocity is defined to be the change of location over time, and displacement is just a measure of location from a particular origin—the constant A takes care of any conversion of units between y′ and v (normally the units are the same and A = 1). Equation 1.2 represents the fact that the force exerted by a spring increases in magnitude proportionally to the distance that the spring is stretched, and the force acts to pull the ends of the spring together. The value of B is determined by the stiffness of the spring. Equation 1.2 is an approximation, because no real spring exerts a force precisely proportional to the stretching distance—in particular when a spring is stretched too far it changes radically, becoming stiffer, or becoming softer, or breaking, depending on its construction. The right practical approach to understanding vibration is to do as much analysis as possible based on the simple approximate equations above, and then do the potentially complicated corrections only when greater accuracy is required.

Vibrating objects that produce sound, and others (such as the hairs in the cochlea of the ear) that detect sound, can be modelled fairly well by systems of vibrating springs connected together in various ways. Other vibrating systems have other physical parameters that measure the vibrating behavior, but in most cases there are two real numbers—for example pressure and flow of vibrating air, potential and current of vibrating electrical charge—that behave analogously to displacement and velocity in a vibrating spring.

1.2 Mathematics: How Do We Model Sound?

The key to understanding the mathematical analysis of sound is to visualize the mathematics using graphs and geometric diagrams. The right way to visualize the mathematics does not look like the physical system of vibrating springs or other objects that it is describing. The value of the mathematics is to give us a different way of visualizing sound, that is much more convenient for analytic reasoning than the actual physical configuration of vibrating objects. Mathematically, the important properties of a vibrating spring are just Equations 1.1 and 1.2. We can forget that they arose from the physical properties of a spring, and just consider the numerical behavior of two real numbers x and y as functions of t, when they satisfy the equations.

y′ = Ax  (1.3)
x′ = −By  (1.4)

From now on, lower case Roman variables, such as x and y, stand for real numbers that are functions of a time parameter t. Upper case Roman variables, such as A and B, stand for real number constants, which are the same as unvarying functions of time (but widely used notations, such as e = 2.71828 …, are left alone). Occasionally, we will use the form x(t) to denote the value of a function x at a particular time t, but usually we will refer to entire functions rather than individual values.

Figure 1.3: State and change vectors for vibrating spring

1.2.1 Vibration as the Circular Movement of a Rotor

To visualize all the possible states of a vibrating system, consider a plane in which the horizontal axis gives the value of x and the vertical axis gives the value of y—in this way each possible state of the system is a point in the plane.

First, consider the simple case where B = A, so Equations 1.3 and 1.4 specialize to

y′ = Ax  (1.5)
x′ = −Ay  (1.6)

Figure 1.3(a) shows an example point ⟨x, y⟩ and the corresponding point ⟨x′, y′⟩ = ⟨−Ay, Ax⟩ as vectors in the plane, when A = 3/8. Notice that the angle between these two vectors is always a right angle. Since ⟨x′, y′⟩ represents a change in ⟨x, y⟩ it is useful to displace the origin of the vector representing ⟨x′, y′⟩ to the end of the vector representing ⟨x, y⟩, as shown in Figure 1.3(b). Now, it is easy to see that the state of the system must trace out a circle in the plane centered about the origin, because the direction of change is always at right angles to the state vector. The size of the circle can be any nonnegative real number—setting the size corresponds to providing an initial displacement to the mass on the spring. Furthermore, since the magnitude of the state vector always stays the same, the magnitude of the change vector is also always the same (A times the magnitude of the state vector), so the state moves around the circle at a constant speed. I call such a system with a point moving around a circle at a constant speed a rotor. The time required for one full rotation is the period P of the rotor. The number of full rotations in a unit of time is the frequency of the rotor: its value is 1/P. The magnitude of the state vector is the amplitude of the rotor. The angle of the state vector with respect to the x axis (⟨1, 0⟩) at time t = 0 is the phase of the rotor.

Take 5 minutes to visualize the relationship between the rotor and the vibrating spring system, as suggested in Figure 1.4. Notice that we have no interest in actual physical devices that look like rotors—the rotor is purely a mathematical concept that allows us to analyze the behavior of a vibrating system. Now forget about springs, and always visualize vibration in terms of rotors and similar mathematical systems that we investigate later.

While the speed of a rotor state around its circular path is constant, the x and y components of the rotor state oscillate sinusoidally. Consider a rotor with amplitude R (that is, the circular path has radius R) and frequency F (F full rotations per unit time), starting at time t = 0 in state ⟨x, y⟩ = ⟨R, 0⟩. The values of x and y at any time are given by the trignometric cos and sin functions.

x = R cos(2πF t)  (1.7)
y = R sin(2πF t)  (1.8)

The multiplication by 2π is required because we measure angles in radians, and one full rotation is 2π radians. Notice that the maximum (minimum) values for x and y are both R (−R), and each reaches its maximum and minimum when the other is 0. Figure 1.5 shows x (solid line) and y (dashed line) as functions of time t for a rotor with a frequency of 1/4 rotation per unit time. Figure 1.6 shows a three-dimensional plot of x, y, and t. The path of the state is a helix, circling about the t axis. Think of the helix as the trace of a point running around the circle from Figure 1.3.

Figure 1.4: Spring system vs. rotor

When A ≠ B in Equations 1.3 and 1.4, the state vector traces out an ellipse, whose aspect ratio is \sqrt{A/B}. The speed of the state vector around the ellipse is not constant (but the period and frequency are still well defined). Instead of figuring out a detailed description of an elliptical rotor, notice that we can always normalize a rotor to have circular motion, by changing the units in which x and y are measured. In an elliptical rotor with frequency F, starting at time t = 0 in state ⟨x, y⟩ = ⟨R_{x}, 0⟩ and crossing the y axis in state ⟨x, y⟩ = ⟨0, R_{y}⟩, the values of x and y at any time are still given by the cos and sin functions, but with different scaling factors for each.

x = R_{x} cos(2πF t)  (1.9)
y = R_{y} sin(2πF t)  (1.10)

In this case, the maximum (minimum) value for x is R_{x} (−R_{x}), and for y it is R_{y} (−R_{y}). As before, each parameter reaches its maximum and minimum when the other is 0. x = cos(2πt/4) solid line y = sin(2πt/4) dashed line

Figure 1.5: Rotor state parameters x and y as functions of time t

t  breadth axis
x = cos(2πt/4) depth axis
y = sin(2πt/4) vertical axis

Figure 1.6: Rotor parameters x and y vs. t as a helix in three dimensions

1.2.2 Rotor State as a Complex Number

It is mathematically convenient to think of the two-dimensional rotor state vector ⟨x, y⟩ as a single complex number x + iy, where i is the “imaginary” number defined to be the principal square root of −1 (if you read engineering books and articles, you may see this number written as j instead of i). Do not look for deep significance in the names “real number,” “imaginary number,” “complex number.” These names are just tags made up by mathematicians— “real” numbers are no more real than other numbers, “imaginary” numbers are no more imaginary, and “complex” numbers are used to simplify a lot of the analysis that we need to do. For our purposes, the complex number x + iy is just a particular notation for the vector ⟨x, y⟩, which is particularly convenient because the familiar operations of addition, multiplication, and exponentiation on the real numbers extend very naturally to operations on complex numbers that are just right for analyzing vibration.

Review of Complex Arithmetic

From now on, we use greek letters α, β, γ, etc. as variables ranging over complex number functions depending on the time variable t. Complex number constants independent of time are denoted by bold face greek letters α, β, γ, etc. (but widely used notations, such as π = 3.14159 … are left alone). It is important to be fluent in the following facts about complex numbers, and to be able to do complex arithmetic and algebra just as easily as you learned to do real arithmetic and algebra in calculus class. Make sure that you visualize each of the facts below in terms of vectors in the plane.

Cartesian form of complex numbers

x_{1} + iy_{1} = x_{2} + iy_{2} if and only if x_{1} = x_{2} and y_{1} = y_{2}  (1.11)

Addition and multiplication extend to complex numbers by using the commutative, associative, and distributive laws, and the fact that ii = i^{2} = −1. Addition of complex numbers may be visualized in terms of the vectors represented by the two numbers: shift the origin of one vector to the head of the other vector as shown in Figure 1.7. The conjugate of a complex number, written \overline{α}, is the reflection of α through the real axis, as shown in Figure 1.8.

Figure 1.7: Adding two complex numbers Figure 1.8: The conjugate of a complex number

(x_{1} + iy_{1}) + (x_{2} + iy_{2}) = (x_{1} + x_{2}) + i(y_{1} + y_{2})  (1.12)
(x_{1} + iy_{1})(x_{2} + iy_{2}) = (x_{1}x_{2} − y_{1}y_{2}) + i(x_{1}y_{2} + x_{2}y_{1}) (1.13)
\overline{x_{1} + iy_{1}} = x_{1} − iy_{1}  (1.14)
α + β = β + α  (1.15)
(α + β) + γ = α + (β + γ)  (1.16)
0 + α = α  (1.17)
αβ = βα  (1.18)
(αβ)γ = α(βγ)  (1.19)
1α = α  (1.20)
0α = 0  (1.21)
α(β + γ) = αβ + αγ  (1.22)

The real and imaginary parts of a complex number are defined to select out the two components of the vector.

ℜ(x + iy) = x  (1.23)
ℑ(x + iy) = y  (1.24)
ℜ(α + β) = ℜ(α) + ℜ(β)  (1.25)
ℑ(α) + ℑ(β) = ℑ(α) + ℑ(β)  (1.26)
ℜ(αβ) = ℜ(α)ℜ(β) − ℑ(α)ℑ(β)  (1.27)
ℑ(αβ) = ℜ(α)ℑ(β) + ℑ(α)ℜ(β)  (1.28)
α = ℜ(α) + iℑ(α)  (1.29)
α = β if and only if ℜ(α) = ℜ(β) and ℑ(α) = ℑ(β)  (1.30)

ℜ(α) and ℑ(α) are called the Cartesian coordinates of the complex number α.

Polar form of complex numbers. The reason why complex numbers are particularly convenient for analyzing vibration is that they may be manipulated according to the magnitude (length of the vector) and argument (angle of the vector with respect to 1) as well. A magnitude is just a real number ≥ 0, representing the length of a vector. Angles are a bit trickier.

Rotational and directional angles. There are really two connected but different concepts that are both called “angles.” First, there are rotational angles that measure an amount of rotation. A rotational angle may be any real number—positive numbers represent counterclockwise rotation, and negative numbers represent clockwise rotation. A rotational angle of 2π represents a full rotation clockwise. Even though the direction that an object points after a full rotation is the same as before the rotation, 2π represents a different rotation than 0 or −2π or 4π—suppose for example that we are measuring rotation of a wheel that winds up a spring.

The other sorts of angles are directional angles that measure the direction that a vector is pointing with reference to some conventional 0 direction (for complex numbers, 0 is the directional angle of the vector represented by 1). Directional angles must be in the half-open interval [0, 2π). Many books and articles prefer to describe directional angles in the interval (−π, π] (so, for example, the angle 3π/2 in our notation becomes −π/2). It makes no essential difference which interval is used, since all arithmetic on directional angles is done on a circle of circumference 2π, rather than the usual real line. We may convert rotational angles to directional angles with the function mod2π.

x mod 2π = x − 2π⌊x/(2π)⌋  (1.31)
0 ≤ x mod 2π < 2π  (1.32)

When x mod z = y mod z we often write x = y (mod z) instead. This form suggests an alternate view of modular arithmetic: x = y (mod z) means that x and y are two names for the same thing in the (mod z) universe, even though they may be different numbers in the usual real number universe. If we apply a rotational angle x to rotate a vector from a starting position with directional angle 0, we get a new vector with directional angle x mod 2π. Notice that all rotational angles x + 2kπ for integers k correspond to the same directional angle. Given a directional angle x resulting from a rotation, there is no way to tell which of the infinitely many possible rotational angles generated x. To avoid becoming confused by the ambiguity in the word “angle,” visualize each angle as either an amount of rotation or a static direction, instead of a pure abstract real number.

The angle of a complex number is a directional angle, so it is restricted to the interval [0, 2π).

|x + iy| = \sqrt{x^{2} + y^{2}}  (1.33)
arg(x + iy) = arctan(y/x) mod 2π  (1.34)
|α| ≥ 0  (1.35)
arg(α) ≥ 0  (1.36)
arg(α) < 2π  (1.37)

(1.38)

α = β if and only if |α| = |β| and arg(α) arg(β)  (1.39)

arg(0) is undefined, since it makes no sense to take the angle of a vector with magnitude 0. But, we let arg(iy) = π/2 for y > 0 and arg(iy) = 3π/2 for y < 0 in spite of the division by 0 in Equation 1.34, since i and −i are clearly at a right angles to the real axis (notice that lim_{z→∞} arctan(z) = π/2, lim_{z→−∞} arctan(z) + 2π = −π/2 + 2π = 3π/2). Figure 1.9 shows the relation between ℜ(α), ℑ(α), |α|, and arg(α) when α is drawn as a vector in a two-dimensional space. |α| and arg(α) are called the polar coordinates of the complex number α. Addition of complex numbers is easiest to do by manipulating the real and imaginary parts, but multiplication and division may be defined very nicely on the magnitude and angle.

|αβ| = |α||β|  (1.40)
arg(αβ) = arg(α) + arg(β) mod 2π  (1.41)
|α/β| = |α|/|β|  (1.42)
arg(α/β) = arg(α) − arg(β) mod 2π  (1.43)
| − α| = |α|  (1.44)
arg(−α) = arg(α) + π mod 2π  (1.45)
|xα| = | − xα| = x|α| for x ≥ 0  (1.46)
arg(xα) = arg(α) for x > 0  (1.47)
arg(−α) = arg(α) + π mod 2π  (1.48)
|\overline{α}| = |α|  (1.49)
arg(\overline{α}) = − arg(α) mod 2π  (1.50)
α = |α|(cos(arg(α)) + i sin(arg(α)))  (1.51)

Figure 1.9: Complex number: Cartesian and polar coordinates 15 Using Equations 1.40 and 1.41, we see that a complex number α of magnitude 1 acts as a rotator: the multiplication αβ rotates β by the angle arg(α). In particular, multiplication by i rotates a vector counterclockwise by π/2 (right angle). So, letting the single complex number ρ = x + iy represent the rotor state ⟨x, y⟩, we may express Equations 1.5 and 1.6 as a single equation.

ρ′ = iAρ  (1.52)

The elliptical rotor system of Equations 1.3 and 1.4 may also be expressed as a single equation using the conjugate operation.

ρ′ = i((A + B)ρ + (A − B)\overline{ρ})/2  (1.53)

Complex number to real power. Equation 1.41 is also the key to understanding exponentiation of complex numbers. Notice that the angle behaves logarithmically with respect to addition and multiplication (think of the analogous equation ln(xy) = ln(x) + ln(y)). Since exponentiation is essentially iterated multiplication, and complex multiplication is additive on angles, complex exponentiation has a multiplicative effect on angles. Consider first a complex number α raised to the power of a real number x.

|α^{x}| = |α|^{x}  (1.54)
arg(α^{x}) = x arg(α)  (1.55)
α^{x+y} = α^{x}α^{y}  (1.56)
α^{xy} = (α^{x})^{y}  (1.57)
(αβ)^{x} = α^{x}β^{x}  (1.58)
\overline{α}^{x} = \overline{α^{x}}  (1.59)
α^{1} = α  (1.60)
α^{0} = 1  (1.61)

Equation 1.55 begins to reveal the power of complex numbers for analyzing vibration. Think of a rotor with amplitude R, frequency F, and phase 0 (starting value R + i0 at time t = 0). The state of the rotor at any time t is ρ = Ri^{4F t} (we multiply F by 4 because arg(i) = π/2 is 1/4 of a full rotation). For an elliptical rotor with starting value R_{1} that crosses the imaginary axis at iR_{2}, the state at time t is (R_{1} + R_{2})i^{4F t}/2 + (R_{1} − R_{2})\overline{i^{4F t}}/2.

Equivalent expressions include (R_{1} + R_{2})i^{4F t}/2 + (R_{1} − R_{2})(−i)^{4F t}/2 and (R_{1} + R_{2})i^{4F t}/2 + (R_{1} − R_{2})i^{−4F t}/2. The last of these is the most popular, and leads to the notion of a −F frequency component in an elliptical rotor.

Complex exponents. The most important fact about complex numbers for the study of vibration is the rule for raising the real number e = 2.71828 … to a complex power.

e^{iy} = cos(y) + i sin(y)  (1.62)
e^{x+iy} = e^{x}(cos(y) + i sin(y))  (1.63)
|e^{α}| = e^{ℜ(α)}  (1.64)
arg(e^{α}) = ℑ(α) mod 2π  (1.65)
e\overline{α} = \overline{e^{α}}  (1.66)
α = |α|e^{iarg(α)}  (1.67)
α = e^{ln(|α|)+iarg(α)} for α ≠ 0  (1.68)

Equation 1.62, known as Euler’s formula in honor of the famous mathematician who discovered it, is the most important single equation for the study of vibration. It allows us to reason about trigonometric functions by using the relatively easy-to-remember properties of exponentiation. Computer algebra systems typically convert trigonometric formulae into exponential form in order to simplify them more efficiently. Euler’s formula also gives us another way to represent each complex number α—instead of the usual form ℜ(α) + iℑ(α) we may write |α|e^{iarg(α)}. For α ≠ 0 we may also write e^{ln(|α|)+iarg(α)}. Unlike the additive Cartesian form x + iy, the exponential polar re^{iw} form for a complex number is not unique, since re^{iw} = re^{i(w+2kπ)} and 0e^{iw_{1}} = 0e^{iw_{2}}.

r_{1}e^{iw_{1}} = r_{2}e^{iw_{2}} if and only if r_{1} = r_{2} = 0 or r_{1} = r_{2} and w_{1} = w_{2} (mod 2π) (1.69)

In essence, exponentiation is a kind of conversion between Cartesian and polar coordinates: the polar coordinates of e^{α} are |e^{α}| = e^{ℜ(α)} and arg(e^{α}) = (ℑ(α) mod 2π). So, the Cartesian coordinates of α turn into the polar coordinates of e^{α}.

Euler’s formula (Equation 1.62) allows an even nicer way to analyze a rotor with amplitude R, frequency F, and phase 0 (starting value R+i0 = Re^{0} at time t = 0): the state at any time t is just ρ = Re^{i2πF t} (such exponential expressions are sometimes called phasors in the engineering literature) . For the elliptical rotor starting at R_{1} and crossing the imaginary axis at iR_{2}, the state at time t is ((R_{1} + R_{2})e^{i2πF t} + (R_{1} − R_{2})\overline{e^{i2πF t}})/2, or ((R_{1} + R_{2})e^{i2πF t} + (R_{1} − R_{2})e^{−i2πF t})/2. And, it is particularly easy to construct a complex number with magnitude 1 to rotate other numbers by a given angle w: use e^{iw}. Look back at Figures 1.3 and 1.6 again, and interpret them in terms of complex numbers.

Now, the way to understand exponentiation β^{α} with an arbitrary complex base β is to first write β = |β|e^{iarg(β)}, and then use the rules for exponentiation with base e.

(re^{iw})^{x+iy} = r^{v}e^{−wy}e^{i(wx+y ln(r))}  (1.70)
|β^{α}| = |β|^{ℜ(α)}e^{− arg(β)ℑ(α)}  (1.71)
arg(β^{α}) = arg(β)ℜ(α) + ln(|β|)ℑ(α)  (1.72)

These equations are rather complicated, and fortunately we will not be using them much. Work them through for exercise with complex numbers, and convince yourself that they follow from the earlier rules. Notice how exponentiation mixes together the Cartesian coordinates of the exponent with the polar coordinates of the base.

Complex logarithms. Euler’s formula makes it easy to define the natural (base e) logarithm of a complex number.

ln(α) = ln |α| + i arg(α) for α ≠ 0  (1.73)
e^{ln(α)} = α for α ≠ 0  (1.74)
ℜ(ln(α)) = ln(|α|)  (1.75)
ℑ(ln(α)) = arg(α)  (1.76)

ln(0) is undefined. Notice that, for positive real numbers x > 0 there is a unique real number y such that e^{y} = x. But, even for positive real numbers x there are infinitely many complex numbers β such that e^{β} = x. That is, while Equation 1.74 defines the natural logarithm uniquely as a real value, it has infinitely many complex solutions, since e^{α} = e^{α+2kπ} for all integers k.

The particular choice above for the imaginary part of ln(α) is arbitrary, just as the particular interval [0, 2π) for direeectional angles is arbitrary.

log_{β}(α) = ln(α)/ ln(β) for α, β ≠ 0  (1.77)

1.2.3 Sound Signals in the Time Domain

In general, the sounds that we would like to create and analyze are much more complicated than the sounds produced by simple rotors. But, we will continue to model sounds by complex-valued functions σ depending on a real number parameter t standing for time. Such functions are called sound signals in the time domain. Later, in Chapters 4 and 6, we will see other mathematical representations of sound, but signals in the time domain are the easiest models to relate intuitively to the physical signals that enter the ear. Widely used digital input and output devices for sound are also most easily understood in terms of signals in the time domain. Most books and papers on sound consider real-valued time signals, and most electronic devices, both digital and analog, for analyzing or creating sound deal only with real values. Many analysis and synthesis techniques, however, are best understood in terms of a complex signal σ. We may always project the complex signal σ to a real signal by taking ℜ(σ). Just as many systems for manipulating graphic images deal with three dimensional models, and project them to two dimensions at the last stage before displaying them on video screens, we will think of sound signals as two dimensional, and project to one dimension at the last stage before rendering them through loudspeakers.

Given a sound signal σ in the time domain, and a particular time t, the instantaneous amplitude of σ at time t is |σ(t)|, the instantaneous phase is arg(σ(t)), and the instantaneous frequency is (d arg(σ)/dt)(t). These are interesting quantities to discuss, and may be useful in analyzing sound, but they do not necessarily have the perceptual impact of the corresponding constant quantities associated with a simple rotor.

Not every complex-valued function σ of t makes sense as a sound signal in the time domain. Some reasonable relation must hold between the real and complex components of σ. But, it is not clear precisely what relation to require in general. Particular physical interpretations of σ impose certain constraints—for example if ℜ(σ) is the velocity of a physical object, and ℑ(σ) is the displacement of the same object, then ℜ(σ) = dℑ(σ)/dt. When ℑ(σ) = R sin(F t), dℑ(σ)/dt = F R cos(F t), so this derivative constraint forces rotors to be elliptical, with aspect ratio proportional to the frequency. Circular rotors are much more convenient mathematically. Roughly speaking, we would like to restrict sound signals σ so that ℑ(σ) is essentially the same as ℜ(σ) with a phase difference of π (90^{∘})—such signals are said to be in quadrature, since the angle π is one quarter of the full circle. The problem is that many different frequencies may be present in σ. In Chapter 4 we see a precise definition of this quadrature constraint.

Figures 1.10, 1.11, and 1.12 show examples of sound signals in the time domain that are slightly more complicated than the basic helix. In each case, part (a) shows a three-dimensional plot of the complex-valued function, and part (b) shows a two-dimensional plot of the real and imaginary components.

1.3 Exercises

1. Take the spring system of Figure 1.1, rotate the track to a vertical orientation, and let a constant gravitational force act on the mass. The stable position about which the mass oscillates is no longer at the point where the spring attaches to the track, but some distance below that point where the force exerted by the spring exactly cancels gravity. Does the frequency of the vibrating spring increase or decrease as a result of the influence of gravity? Explain briefly.

2. Consider a vibrating spring system in which the motion of the mass is opposed by a certain amount of friction. In order to analyze such a system, do we change Equation 1.1, Equation 1.2, both, or neither? Explain briefly.

3. Consider a vibrating system with a mass that is attracted to the center of vibration by a gravitational force instead of a spring. In such a system, the period of vibration depends on the amplitude. As the amplitude of the vibration increases, does the period increase or decrease? Explain briefly.

4. Notice how Equation 1.5 has a positive multiplier A, while Equation 1.6 has a negative multiplier −A. There are three other possibilities: (a)

Figure 1.10: The signal e^{−t/8+i2πt/4}: decaying helix

21 Figure 1.11: The signal e^{i2^{t/8}2πt/4}: increasing frequency

22 Figure 1.12: The signal e^{i2πt/4} + e^{i4πt/4}/2 + e^{i8πt/4}/4 + e^{i16πt/4}/8: sum of 4 helixes both multipliers negative, (b) both multipliers positive, (c) the first multiplier negative and the second positive. Describe briefly and qualitatively the behavior of a system described by each of the variants (a–c). Draw pictures analogous to Figure 1.3(b) to help explain.

5. When A > B in Equations 1.3 and 1.4, the path of the state vector ⟨x, y⟩ is an ellipse. Which axis of the ellipse is longer, the x axis or the y axis? Explain briefly, using precise mathematical information derived from Equations 1.3 and 1.4. Hint: Derive slightly different equations relating C_{y}y′ to C_{x}x and C_{x}x′ to C_{y}y for cleverly chosen constant multipliers C_{x} and C_{y}.

6. Derive simple formulae representing the frequency and period of the vibrating system of Equations 1.3 and 1.4 in terms of the constants A and B. Hint: Look at Equations 1.7 and 1.8. Differentiate both sides of both equations. Solve the special case where A = B. Then, apply the scaling of x and y by constants C_{x} and C_{y} that you used in Exercise 5.

7. For each of the following operations on complex numbers α and β, state whether it is more convenient to represent each number in Cartesian or polar coordinates, or whether both are equally convenient. Sometimes the answer is different for β than for α.

(a) α + β

(b) α − β

(c) \overline{(}α)

(d) αβ

(e) α/β

(f) β^{(}α)

(g) log_{β}(α)

8. Derive formulae for the Cartesian coordinates ℜ(β^{α}) and ℑ(β^{α}) of β^{α} in terms of Cartesian and/or polar coordinates of α and β.

9. Derive the following trigonometric identities, using Euler’s formula (Equation 1.62) and easy algebraic manipulations of additions, subtractions, multiplications, and divisions of complex numbers. Note that cos^{2}(x) and sin^{2}(x) are conventional ways of writing (cos(x))^{2} and (sin(x))^{2}, respectively.

(a)  cos(2x) = cos^{2}(x) − sin^{2}(x)
(b)  sin(2x) = 2 cos(x) sin(x)
(c)  cos^{2}(x) = (1 + cos(2x))/2
(d)  sin^{2}(x) = (1 − cos(2x))/2
(e) cos(x) + cos(y) = 2 cos((x + y)/2) cos((x − y)/2)
(f) sin(x) + sin(y) = 2 sin((x + y)/2) cos((x − y)/2)
(g) cos(x) cos(y) = (cos(x − y) + cos(x + y))/2
(h)  sin(x) sin(y) = (cos(x − y) − cos(x + y))/2
(i)  sin(x) cos(y) = (sin(x − y) + sin(x + y))/2
(j)  cos(x + y) = cos(x) cos(y) − sin(x) sin(y)
(k)  sin(x + y) = sin(x) cos(y) + cos(x) sin(y)

10. We saw how to express the state of an elliptical rotor at time t in the form ae^{i2πft} + b\overline{e^{i2πft}}, where a is the average of the real and imaginary intercepts of the ellipse, and b is half their difference. Derive a nice formula for the state of an elliptical rotor whose major and minor axes are different from the real and imaginary axes.

Perceptual Foundations of Sound

In every section: limits of human sound perception.

2.1 Sound Imaging—What is “a Sound”?

2.2 Perceptual Parameters of a Sound

2.2.1 Pitch 2.2.2 Loudness 2.2.3 Timbre 2.2.4 Transient Effects 2.2.5 Sound Events

Digital Sampled Sound

In Chapter 1 we modelled sound as a function from a real value t representing time to a complex value σ representing a two-dimensional state of some vibrating system. In order to deal with sound digitally, we must somehow reduce such a signal to a finite number of symbols from a discrete set of possibilities, such as the bits 0 and 1 that current digital computers use to represent all information. The digitization of sound is normally achieved by two independent steps, each of which has consequences for the fidelity with which sound is produced digitally.

3.1 Discrete time

Sound signals in the discrete time domain. The usual first logical step in digitizing sound is to approximate the continuous domain of real values representing time by a discrete set of equally spaced values. Let S be a positive real number, called the sampling rate (the number of samples to take in a unit of time). N represents the set of all positive and negative integers. T_{S} represents the domain of discrete time with sampling rate S.

N = {…, −2, −1, 0, 1, 2, 3, …}  (3.1)
T_{S} = {k/S : k ∈ N }  (3.2)

Every finitely represented sound spans some finite interval {tmin, …, tmax} rather than the infinite domain T_{S}, but we may only listen to a finite timespan of sound in a lifetime anyway, so the discretization of time is much more important than the limitation to a finite interval. A sound signal in the discrete time domain with sampling rate S is a complex-valued function σ on T_{S}. When discussing the domain T_{S}, we write the members of the domain as …, t_{−2}, t_{−1}, t_{0}, t_{1}, t_{2}, t_{3}, …, where

t_{k} = k/S  (3.3)

Converting from continuous to discrete. Given a continuous sound signal σ, the obvious and natural choice for a discrete sound signal to represent it is D_{S}(σ) where

D_{S}(σ)(t) = σ(t) for t ∈ T_{S}  (3.4)

D_{S}(σ) is just σ restricted to the domain T_{S}. Such a representation is inherently ambiguous—there are an infinite number of different continous sound signals represented by the same discrete sound signal. The confusion resulting from this ambiguity is called aliasing.

Aliasing. —Note: serious problems with functional notation— Whenever two continuous sound signals σ_{1} and σ_{2} agree on every point in T_{S} (σ_{1}(t) = σ_{2}(t) for all t ∈ T_{S}), then they have the same representation σ_{d} = D_{S}(σ_{1}) = D_{S}(σ_{2}) as a discrete sound signal, and we say that σ_{1} and σ_{2} are aliases. The famous problem of wagon wheels appearing to roll backwards in old movies is an example of aliasing in a sampled video signal. But, when we generate a real physical sound from σ_{d}, a listener can only hear one of the infinitely many continous sound signals that it might represent. This is undesirable in the case where we discretize one continous sound, and the listener hears a different one. In particular, two continuous helical signals are aliases if and only if their amplitudes and phases are exactly the same, and their frequencies are the same (mod S).

For R_{1}, R_{2} > 0, P_{1}, P_{2} ∈ [0, 2π):
D_{S}(R_{1}e^{i(P_{1}+2πF_{1}t)}) = D_{S}(R_{2}e^{i(P_{2}+2πF_{2}t)}) for all t ∈ T_{S}

if and only if

R_{1} = R_{2} and P_{1} = P_{2} and F_{1} = F_{2} (mod S)

(3.5)

For real-valued signals, there is even more aliasing. Frequencies F_{1} and F_{2} may be aliased when F_{1} = −F_{2} (mod S) and the signals are out of phase by exactly π (half a period).

For R_{1}, R_{2} > 0, P_{1}, P_{2} ∈ [0, 2π), F_{1}, F_{2} ≠ 0 (mod S/2):
D_{S}(R_{1} sin(P_{1} + 2πF_{1}t)) = D_{S}(R_{2} sin(P_{2} + 2πF_{2}t)) for all t ∈ T_{S}

if and only if

R_{1} = R_{2} and P_{1} = P_{2} and F_{1} = F_{2} (mod S) or R_{1} = R_{2} and P_{1} = P_{2} + π (mod 2π) and F_{1} = −F_{2} (mod S)

(3.6)

For frequencies that are exact multiples of half the sampling rate, there is even confusion about the amplitude and phase. In the case of odd multiples of half the sampling rate, the samples are all equal in magnitude, and alternating in sign. The amplitude of the samples depends on the phase at which the samples are taken, which is the same for each half wave.

For R_{1}, R_{2} > 0, P_{1}, P_{2} ∈ [0, 2π), F_{1} = F_{2} = S/2 (mod S):
D_{S}(R_{1} sin(P_{1} + 2πF_{1}t)) = D_{S}(R_{2} sin(P_{2} + 2πF_{2}t)) for all t ∈ T_{S}

if and only if

R_{1} sin(P_{1}) = R_{2} sin(P_{2})

(3.7)

In the special case where P_{1} = P_{2} = 0, the amplitudes could have any values. For multiples of the sampling rate, all samples have the same value, and again there is a tradeoff between amplitude and phase.

For R_{1}, R_{2} > 0, P_{1}, P_{2} ∈ [0, 2π), F_{1} = F_{2} = 0 (mod S):
D_{S}(R_{1} sin(P_{1} + 2πF_{1}t)) = D_{S}(R_{2} sin(P_{2} + 2πF_{2}t)) for all t ∈ T_{S}

if and only if

R_{1} sin(P_{1}) = R_{2} sin(P_{2})

(3.8)

Finally, for completeness, notice that an odd multiple of half the sampling rate aliases with a multiple of the sampling rate precisely when the phases are both 0, so that all samples have the value 0.

For R_{1}, R_{2} > 0, P_{1}, P_{2} ∈ [0, 2π), F_{1} = 0 (mod S), F_{2} = S/2 (mod S):

D_{S}(R_{1} sin(P_{1} + 2πF_{1}t)) = D_{S}(R_{2} sin(P_{2} + 2πF_{2}t)) for all t ∈ T_{S}

if and only if

P_{1} = P_{2} = 0 (3.9)

Rendering a discrete sound signal as continuous sound. Having computed a discrete sound signal σ_{d}, we need to render it through a loudspeaker or similar controllable vibrating device in order to hear the sound. At some point in the rendering process, σ_{d} is converted to a continuous signal σ_{c}. It is natural to choose one of the infinitely many continous sound signals that σ_{d} might represent. In particular, it is natural to create σ_{c} by interpolating values between the ones given by σ_{d} in such a way as to make the resulting sound signal as smooth as possible, according to some appropriate definition of smoothness. The interpolating is normally done, not by a digital computation, but by the analog machinery, usually electronic, controlled by the computation. In Chapter 4 we find that when the sampling rate is high enough, the precise nature of the interpolation is relatively unimportant. But, the sorts of analog devices commonly used for sound production typically interpolate so that the final result is close to a sum of sinusoidal signals of the lowest possible frequency. So, if σ_{d}(t) = Re^{i2πF t}, is a discrete helical signal, it is normally rendered as something very close to the continuous signal σ_{c}(t) = Re^{i2Π(F modS)t}.

Not all aliases of a helical or sinusoidal signal are helical or sinusoidal themselves. For real-valued signals the frequencies, the frequencies near half the sampling rate (S/2) alias to signals that are amplitude modulations of a carrier with frequency S (see Figure ???). In many cases, these amplitudemodulated signals represent the way that a rendered signal is likely to be heard. For complex-valued helical signals, the problem of non-helical aliases seems to be less important, but I know very little about the rendering of complex-valued signals. It is interesting to note that we seem to need two real numbers per period to represent a given frequency, whether those two reals are separate samples or whether they are bundled into a single complex sample. But, we really need only the sign of the imaginary component, along with the entire value of the real component of a complex sample, to resolve the ambiguity between helical frequencies F_{1} = −F_{2} (mod S), although the full value of both real and complex components is required to get full information about amplitude and phase, and about multiple frequency components.

Causes of and cures for aliasing. Aliasing occurs any time a continuous signal is converted to a discrete signal by sampling. It is natural to think of the case where a physical continuous signal is read by an electronic sampler, but this is not really the most important cause of aliasing. The engineers who design and build samplers are pretty smart, and they have had plenty of time to worry about aliasing and find ways to prevent its harmful consequences. The most troublesome cases of aliasing arise when a continuous mathematical model of a sound signal is converted to a calculation of samples. The original continuous model may only exist in the mind of a person who is designing sound—it need not be present as a data structure in a computer, or in any other realization in an artificial medium. Even when there is an explicit representation of the continuous sound signal available as a data structure, the problem of avoiding aliasing in software is far more complex, due to the variety of conceptual sources for continuous signals. Flexible soundprocessing software has largely failed to prevent the introduction of harmful aliasing in sampled signals.

The only cure for the harmful consequences of aliasing is prevention. Once a continuous sound signal has been replaced by a sampled discrete representation, and the continuous signal is no longer available for inspection, there is no way to determine which of the infinitely many possible continuous signals was truly intended. In order to prevent one continuous sound signal σ_{1}, converted to the discrete signal σ_{d} = D_{S}(σ_{1}, from being rendered continuously as some alias σ_{2} that sounds quite different, we must sample only signals that will be rendered accurately. With the usual “smooth” rendering techniques, a sampled complex-valued signal produces frequencies in the range [0, S), and a sampled real-valued signal produces frequencies in the range [0, S/2). To avoid harmful aliasing, all higher frequencies must be filtered out from the continuous signal before sampling. For this reason, sampling converters have analog filters that eliminate high frequencies before sampling. Even though digital filters have many advantages, they cannot be applied to the aliasing problem, because they cannot distinguish frequencies that differ by multiples of the sampling rate. To avoid the aliasing of frequencies near S/2 with an amplitude-modulated signal (and presumably there are simlar problems for complex-valued signals at frequencies near S), continuous signals should in fact be filtered to an even smaller frequency interval, but it is not clear precisely how much smaller it needs to be.

Discrete signal values other than samples.

• intervals values

• average values—equivalent to filtering

3.2 Quantized Vibration State

Even a finite time segment from a discrete sound signal is an infinite object if the sample values are complex or real numbers. In order to get a completely digital representation of a sound signal, we must also approximate the continuous range of real or complex numbers by a discrete subset. Since the consequences of this quantization of the domain of values are largely independent of the consequences of discretizing the time domain, we consider signals from the continuous time domain to a discrete subset of the complex or real numbers.

Discrete sets of complex or real values. A subset V of the complex numbers is discrete if we may draw a circle around each point in V, so that each circle contains only one point in V. If V contains only real numbers, then it is also a discrete subset of the reals. While the discretization of time seems to make sense only with a constant interval between points, there are a number of different popular ways to quantize the real or complex values σ(t). For the domain of real numbers, the two basic ideas are linear and logarithmic quantization.

Given a real number Q > 0, V_{Q} represents the linear quantization of the real domain with quantum interval Q.

V_{Q} = {k/S : k ∈ N }  (3.10)

Yes, this is mathematically the same thing as the discrete time domain T_{Q}, but we think of it as having a different physical dimension. Just as in the case of the discrete time domain, a digital representation requires that we limit ourselves to a finite interval within V_{Q}, but it is the use of a discrete subset of values, rather than the limitation to a finite interval, that has the most interesting consequences for sound modelling.

Given two real numbers B > 1 and M > 0, L_{B} represents the logarithmic quantization of the real domain with base B and minimum nonzero value M.

L_{B,M} = {0} ∪ {B^{k}, −B^{k} : k ∈ N and B^{k} ≥ M}  (3.11)

Notice that the minimum value M is required to make the domain discrete, even if the 0 value is omitted. L_{B,M} is an idealized abstraction of several different essentially logarithmic quantizations, such as “mu-law” encoding, but it does not represent them precisely. The crucial quality of logarithmic domains is that the interval between points goes up exponentially with the magnitude of the points: the L_{B,M}s are the mathematically simplest sort of domains with that crucial quality. Floating-point domains are a funny hybrid of linear and logarithmic: they consist of finite segments of different linear domains pieced together so that the progression over larger segments is essentially logarithmic.

The usual way to quantize the complex domain is to pick a quantization of the real domain, and then apply it to the real and imaginary components of complex numbers. So, we can define

V_{Q}^{2} = {x + iy : x, y ∈ V_{Q}}  (3.12)
L_{B,M}^{2} = {x + iy : x, y ∈ L_{B,M}}  (3.13)

Polar versions, others.

• Quantization (roundoff) noise.

• Nonlinear encodings.

• Recovering complex data from real.

3.3 Other Ways to Digitize a Sound Signal

• Delay conversion to discrete sampled representation as long as possible (analogy to bitmapping in graphics).

3.4 Direct Manipulation of Digital Sampled

Sound

• Time shifting.

• Amplitude scaling.

• Amplitude clipping.

• Frequency/speed shifting.

• Time stretching by repetition of a “period”.

• Changing sampling rate.

• AM enveloping.

• Adding sounds.

• Nonlinear waveshaping.

• Frequency modulation.

The Frequency Spectrum

• Steady-state sound.

4.1 Pure Sinusoidal Sounds

• Circular vs. elliptical.

• Negative frequency.

4.2 The Ear as a Spectral Analyzer

• Apparent insensitivity to absolute phase.

• Relative phase of components is important.

4.2.1 Perceptual Parameters of Sound

• Clustering of partials.

• Logarithmic pitch.

• Logarithmic loudness.

• Loudness/pitch interactions.

• Interactions of loudness and pitch with timbre.

4.3 Mathematical Spectral Analysis with the

Fourier Transform

• Normalized transforms of various sorts.

4.3.1 Convolution, Enveloping, Filtering 4.3.2 Discrete Spectra

Generalized Functions

4.3.3 Continuous Spectra and Noise

Stochastic Functions

Additive Spectral Synthesis

5.1 Steady-State Sound

5.2 Amplitude Modulation, Enveloping

5.2.1 Enveloping a Multifrequency Sound 5.2.2 Enveloping Individual Spectral Components 5.2.3 Frequency Modulation

Time-Varying Spectral Analysis

• Dual use of time—sonic time vs. variation time.

6.1 Shortcomings of the Fourier Transform

• Implications for sampling rate.

6.2 Time-Varying Spectral Analysis with the

Continuous Wavelet Transform

• Windowing.

• Window shape.

• Constant Q.

• Causality.

• Phase vocorder.

Synthesis by Resonant Modes

• Shortcomings of additive synthesis w.r.t. simplicity, transformability.

7.1 Filters

7.1.1 Analyzing Filters with the Z Transform

7.2 Sound Creation by Modal Synthesis

7.2.1 Continuously Driven Resonators 7.2.2 Ringing Resonators

7.3 Sound Modification with Formant Filters