Analysis of a Vibrating String As It Relates To the Guitar Peter P. Poworoznek April 20, 2006 MANE-7000, AEM2 1. Abstract Apart from percussion instruments, which in their most basic form consist of simply beating two objects together, string instruments were among the earliest devices created for the pure pleasure of their sound. They exist in multiple forms today - from the classical violin to the bluegrass banjo, and they all have one thing in common - they rely on the vibration of a string (or multiple strings) to produce tones and chords. These are then amplified and conditioned by the instrument body to produce the final sound. Even the piano has at its heart a string which vibrates when struck by a hammer. This paper will examine the mathematics behind the vibration of a plucked guitar string. It will start with the simplest form – an ideal string with no damping. This case will be examined from an analytical standpoint and then the equations behind the motion will be solved using numerical methods. Damping will then be added to produce a more complex case, and the same techniques will be applied to obtain a solution. 2. Introduction and Historical Background Discovering the mathematics behind music has its roots in ancient Greece. According to legend [3], Pythagoras was among the first to study the relationship between the geometry of a plucked string and the note it produced. His early experiments were on a monochord, a simple device with a single string on a soundboard that featured a movable bridge to vary the tone. Plucking the string without the bridge produced a fundamental tone of the string, but putting the bridge in the middle of the string produced a note one octave higher. Placing the bridge so that two-fifths of the string was on one side and three-fifths on the other produces two notes which formed the “perfect fifth.” Other positions on the soundboard were mapped out in an attempt to discover the harmony of the universe. Later in the 17th century, Pére Mersenne [4] noted how the sound of a string varied with the length, mass, and tension of the string (his observations are known as Mersenne's Laws today). Today we can analyze that string with mathematical tools unavailable to Pythagoras which allow us to understand the behavior of the string and the notes it produces. This paper will attempt to investigate this behavior for a range of examples and conditions. 3. Basic Equations and Derivations Page 2 Figure 1 - The Vibrating String Figure 1 shows the basic setup for this problem. A flexible string of length L is fixed at both ends and tightened to some initial constant tension T. The string is free to vibrate in the transverse direction. It is assumed that the string has a constant mass/unit length and that gravity and string stiffness are negligible. Also, the displacements of the individual string sections are assumed to be small. The only force acting on the string is the initial tension which acts as a restorative force after the string is displaced. The tension in the string is assumed to be constant regardless of the displacement. Summing the forces in the x direction: $T1cosq1 C T2cosq2 = 0 T1cosq1 = T2cosq2 = (Eq. 1) Applying Newton's 2nd Law to the u direction: F = ma T2sinq2 $ T1sinq1 = ma m is the mass which is m = r $Dx , where ρ is the mass/unit length and Δx is the length of the string segment. The acceleration is the second partial derivative of u with respect to t. Also, the substitution will be made for T1 = T2 = T. Tsinq2 $ Tsinq1 = r $Dx v2u v t2 (Eq. 2) Dividing equation (2) by equation (1) and dividing both sides by Δx and T gives: 1 Dx sinq2 cosq2 $ sinq1 cosq1 Page 3 = r v2u $ T v t2 For small segments and angles, the tangent of the angle is equal to the slope (or first derivative) of the string: 1 Dx vu vx $ Dx xC vu vx x = r v2u $ T v t2 Taking the limit as Δx →c20: r v2u v2u = $ T v t2 v x2 if we make the substitution: c= T r where c is the phase velocity and we move c to the other side of the equation, we get the classic one-dimensional traveling wave equation: 2 v2 u 2 v u = c $ (Eq. 3) v t2 v x2 4. Undamped Vibration of a String The first situation to be considered is the undamped string. It will be looked at with both an analytical and a numerical approach. 4.1 Analytical Method The one-dimensional wave equation (Eq. 3) can be solved by separation of variables. If we assume u(x,t)=X(x)T(t) and substitute it into the wave equation: v2 XT v t2 = c2$ v2 XT v x2 d2 T d 2X 2 X 2 = c $T dt d x2 divide by c2XT : 1 d2 T 1 d2 X = X d x2 Tc2 d t 2 the only way two equations of independent variables can be equal is if they are equal to a constant. Assume that constant is $k 2. Page 4 1 d 2T 1 d2X = = $k 2 2 2 2 X dx Tc d t Multiplying and grouping the equations gives: X ''C k 2X = 0 (Eq. 4) T ''C c2k 2T = 0 (Eq. 5) Because the string is fixed at both ends, two boundary conditions for equation 4 emerge: X 0 = 0 (Eq. 6) X L = 0 (Eq. 7) For initial conditions, we can assign two arbitrary functions for the initial shape and velocity due to the plucking of the string. T 0 = f x (Eq. 8) dT dt t=0 = g x (Eq. 9) Equation (4) has the general solution: X = Asin kx C Bcos kx (Eq. 10) Applying the boundary condition in equation (6) gives condition in equation (7) gives kn = B = 0. Applying the boundary np L Xn = Asin np x L (Eq. 11) Prior to solving equation (5), make the substitution: l n = k nc = Making equation (5): Page 5 npc L 2 T ''C l nT = 0 This has the general solution: T = Csin l nt C Dcos l nt (Eq. 12) This gives a value for un : np x L un = Asin Csin l nt C Dcos l nt or by combining constants: np x L un = sin ansin l nt C bncos l nt (Eq. 13) Performing a linear combination: N u x, t = > sin n=1 np x L ansin l nt C bncos l nt where l n= (Eq. 14) npc L Equation (14) is the Fourier series solution to the one-dimensional wave problem. To get the Fourier coefficients the initial conditions must be addressed. Using equation (8): N N np u x, 0 = f x = sin x L n=1 > ansin 0 C bncos 0 This is the general Fourier sine series, with the solution for L 2 bn = L f x sin = > sin n=1 np x L bn from [2] of: np x dx (Eq. 15) L 0 Now using equation (9), the derivative of u x, t with respect to time at t = 0 is: Page 6 bn N u ' x, 0 = g x == > sin n=1 N > sin n=1 np x L anl np x L anl ncos 0 $ bnl nsin 0 == n which gives: L 2 anl n = L g x sin np x dx L 0 substituting for l n= npc and dividing both sides by l n: L L 2 an = npc g x sin np x dx L (Eq. 16) 0 Equations (15) and (16) are the Fourier coefficients for equation (14). 4.2 Numerical Method In order to solve this problem numerically, an explicit finite-difference method will be used. A graphical representation of the method is shown below: Figure 2 - The Finite-Difference Method Mesh The string is broken up into a finite number of elements, each Time is also divided up into discreet lengths, each Page 7 Dx (or h in these formulas) long. Dt (or k here) long. Taylor series expansion produces the following central difference formula for the second derivative of u with respect to x: 1 i, j = 2 u i C 1, j $ 2u i, j C u i $ 1, j h uxx h2 C u 12 4 e By discarding the error, we get the approximation: wxx i, j = 1 w i C 1, j $ 2w i, j C w i $ 1, j h2 where w i, j z u i, j Using the same technique we can also get a similar equation for w . Placing these terms into the one-dimensional wave equation (Eq. 3) gives: 1 w i, j C 1 $ 2w i, j C w i, j $ 1 k2 ,j C w i $ 1, j Letting v= wi, c2 w i C 1, j $ 2w i h2 = ck and solving for w i, j C 1 gives: h jC 1 = 2 1 $ v 2 wi, j C v 2 wi C for 1, j C wi $ 1, j $ wi, j $ 1 (Eq. 17) i = 1, 2, 3 ...N and j=1,2,3...M For the initial condition involving du/dt, a second-order Taylor series expansion can be used to give: wi, 2 = wi, 1 C kg x i C v2 f xi C 2 1 $ 2f x i C f x i $ 1 (Eq. 18) In order for this solution to be stable, the Courant-Friedrichs-Lewy (CFL) condition must be satisfied as follows: ck % 1 (Eq. 19) h 4.3 Solution Page 8 In order to validate and understand the analytical solution in section 4.1, a Maple worksheet (vibe-string.mw) was created to model the equations above. Variables in the worksheet are length of the string (L), tension in the string (Te), mass/unit length of the string (rho), the maximum amplitude of the initial displacement (h), the desired number of terms in the Fourier series (terms), and the overall time of the solution (Time). Also defined are the initial functions for the displacement (f) and velocity (g). The worksheet first computes the terms and then the Fourier coefficients Xnand Tn, an and bn. The functions are then summed over the desired number of terms and the results plotted. The Maple worksheet commands for a function (f) representing the string plucked at the center and an initial velocity of zero are shown below: For a typical guitar pluck, there will be no initial velocity imparted to the string. Define the problem specific variables: > restart: L:=1: Te:=1: rho:=1: c:=sqrt(Te/rho): h:=1: terms:=10: Time:=1: assume(n, integer): k[n]:=n*Pi/L: lambda[n]:=k[n]*c: Define the initial postion/velocity functions: > f:=piecewise(x>=0 and x<=L/2, (2*h/L)*x, x>L/2 and x<=L, (2*h/L)*(L-x)): g:=0*x: Calculate X and T: > X[n]:=sin(k[n]*x): T[n]:=a[n]*sin(lambda[n]*t)+b[n]*cos(lambda[n]*t): Calculate Fourier coefficients: > a[n]:=(2/(L*lambda[n]))*int(g*X[n], x=0..L): b[n]:=(2/L)*int(f*X[n], x=0..L): Calculate the Fourier series: > u:=sum(X[n]*T[n], n=1..terms): For the numerical solution, a Maple worksheet (fdm1.mw) was created to perform the finitedifference method calculations. The pertinent commands are shown below, the variables are the same as in the analytical solution. Begin finite difference algorithm. First step - define and set the x (NNX) and t (NNT) counters: > restart: assume(NNX::integer, NNT::integer, IX::integer, IT::integer): NNX:=51: NNT:=101: Now define the initial displacement and velocity functions: Page 9 > f:=x->piecewise(0<=x and x<=L/2, 2*h*x/L, L/2<x and x<=L, (2*h/L)*(L-x)): g:=x->0*x: Now define some problem specific variables: > Te:=1: rho:=1: c:=sqrt(Te/rho): h:=1: L:=1: tmax:=1: Set the space and time segments: > dx:=L/(NNX-1): dt:=tmax/(NNT-1): Check CFL condition (ck/h <=1) and set variable v for later use: > v:=evalf(c*dt/dx): Initialize w array: > w:=Array(1..NNX, 1..NNT): Set boundary values: > for IT from 1 to NNT do w[1, IT]:=0; w[NNX, IT]:=0; end do: Set initial values: > for IX from 2 to NNX-1 do w[IX,1]:=f((IX-1)*dx); w[IX,2]:=f((IX-1)*dx)+dt*g(IX*dx)+(v^2/2)*(f((IX+1)*dx)2*f(IX*dx)+f((IX-1)*dx)); end do: Compute the solution: > for IT from 2 to NNT-1 do for IX from 2 to NNX-1 do w[IX, IT+1]:=2*(1-v^2)*w[IX,IT]+v^2*(w[IX+1,IT]+w[IX1,IT])-w[IX,IT-1]; end do; end do; In order to extract the results from the w array and plot them, the results are written to an external file and read back in. 4.4 Results In order to compare the results between the two methods, a series of plots will be generated for a few different conditions - each will be plotted using both the analytical and numerical solutions. Case 1) L = 1, Te = 1, r = 1, h = 1, terms = 10, Time = 1. Page 10 f = 2hx/L from 0 to L/2 and (2h/L)(L-x) for L/2 to L. (pluck at 1/2 L) g=0. The plot on the left is a plot of u vs. x for the analytical solution at t= Time , the plot on the 4 x= L and t = 5$Time, 2 right is the numerical solution for the same parameters. The plot on the left is a plot of u vs. t for the analytical solution at the plot on the right is the numerical solution for the same parameters. Case 2) L = 3, Te = 5, r = 1, h = 0.5, terms = 10, Time = 2. f = 2hx/L from 0 to L/2 and (2h/L)(L-x) for L/2 to L. (pluck at 1/2 L) Page 11 g=0. The plot on the left is a plot of u vs. x for the analytical solution at t= 3$Time , the plot on 8 L= L and t = 5$Time, 4 the right is the numerical solution for the same parameters. The plot on the left is a plot of u vs. t for the analytical solution at the plot on the right is the numerical solution for the same parameters. Case 3) L = 5, Te = 10, r = 1, h = 0.75, terms = 10, Time = 3. f = 5hx/L from 0 to L/5 and (5h/4)(1-x/L) for L/5 to L. (pluck at 1/5 L) g=0. Page 12 The plot on the left is a plot of u vs. x for the analytical solution at t= Time , the plot on the 4 L= L and t = 5$Time, 4 right is the numerical solution for the same parameters. The plot on the left is a plot of u vs. t for the analytical solution at the plot on the right is the numerical solution for the same parameters. As can be seen, the numerical method does a decent job of following the "exact" analytical results. The analytical results can be improved slightly by adding more terms to the Fourier series, but even with just a few terms it is pretty close. The most important thing in the numerical method is to make sure that the mesh size is chosen so that the problem does not violate the CFL criteria. 5. Vibration of a String with Damping Page 13 There are several real world effects that alter the vibration of a string. Internal stiffness of the string - which adds a term of the form: $S v 4u v x4 where S is a constant related to the string material, area, and Young's modulus - tends to raise the fundamental frequency of the string (thus thicker strings tend to be formed by coiling a string around a solid core to provide the desired mass but keep the stiffness effects low). There are also several damping forces which can also affect the frequencies, but whose biggest effect is to dampen the amplitude of the vibration. Hiller and Ruiz [5] found that the simplest explanation for the loss of energy through the actual radiation of sound can be expressed by adding a term of the form: - r v3u v t3 to the wave equation. There is also damping due to the energy lost through the string supports. The other main damping force, and the one that will be examined here, is the damping due to air resistance. 5.1 Analytical Method The amount of damping due to air resistance will be proportional to the velocity of the string multiplied by a physical constant that represents the damping factor for the string. Thus the revised wave equation (Eq. 3) will look like this: 2 v2u vu 2 v u C r = c $ (Eq. 20) vt v t2 v x2 Where is damping factor. Performing a separation of variables similar to the one about leaves two equations: X ''C k 2X = 0 (Eq. 21) T ''C rT 'C k 2c2T = 0 (Eq. 22) Page 14 The solution to equation 21 is the same as before, and after the consideration of the boundary conditions leaves: Xn = Asin k nx kn = where np (Eq. 23) L Equation 22 is a second-order linear ODE with constant coefficients. a$ T=e . Assume a solution of the form Differentiating gives 2 T '= aea $ and T ''= a ea $t. Substituting into the original equation gives: 2 a$t a ea $t C aea $t C k 2c2 e =0 a$ e can never be zero, so that means that: 2 a C ra C k 2c2 = 0 This quadratic equation has roots: a= r G 2 r 2 2 $ k 2c2 This equation will have three solutions depending on the value under the radical. If it is greater than zero, two distinct real roots exist. If it is equal to zero, a double real root exists. If less than zero, a set of complex conjugate roots exist. It can be assumed that the value of the damping factor (r) will be small compared to the value of kc or even kc/2. From this the value under the radical will be negative leading to the complex solution. Kreysig [2], gives the solution for this type of problem to be: Let: mn = $ T=e rt 2 r 2 2 $ k 2c2 Cncos mnt C Dnsin mnt (Eq. 24) Combining the X and T terms and constants and performing a linear combination gives: Page 15 N rt $ np u x, t = sin x e 2 ansin mnt C bncos mnt L n=1 > r 2 mn = where 2 (Eq. 25) $ k 2c2 Using the first initial condition T(0)=f(x): N np u x, 0 = f x = sin x e0 ansin 0 C bncos 0 L n=1 > N = > sin n=1 np x L Which as before reduces to: L 2 bn = L f x sin np x dx (Eq. 26) L 0 Using T'(0)=g(x): T'= d dt $ e rt 2 $ ansin mnt C bncos mnt =e rt 2 anmncos mnt $ bnmnsin rt mnt $ r $2 e ansin mnt C bncos mnt 2 N u ' x, 0 = g x == > sin n=1 np x L e0 anmncos 0 $ bnmnsin 0 N r 0 e ansin 0 C bncos 0 2 == > sin n=1 np x L r b 2 n Finally, continuing the process: L anmn $ r b = 2 n 2 L g x sin 0 Page 16 np x dx L anmn $ $ bn L an = r b C 2mn n 2 mnL g x sin np x dx (Eq. 27) L 0 Equations (25), (26), and (27) make up the complete analytical solution with equations (26) & (27) being the Fourier coefficients to equation (25). 5.2 Numerical Method Once again, a centered finite difference method will be used to model the string with damping. The equation to be modeled is (Eq. 20): 2 v2u vu 2 v u C r = c $ vt v t2 vx Making the substitutions: wxx i, j = 1 w i C 1, j $ 2w i, j C w i $ 1, j h2 wtt i, j = 1 w i, j C 1 $ 2w i, j C w i, j $ 1 k2 and wt i, j = 1 w i, j C 1 $ w i, j $ 1 2k we get: 1 w i, j C 1 $ 2w i, j C w i, j $ 1 k2 C r w i, j C 1 $ w i, j $ 1 2k c2 w i C 1, j $ 2w i, j C w i $ 1, j h2 multiplying through by k2 : w i, j C 1 $ 2w i, j C w i, j $ 1 C Page 17 rk w i, j C 1 $ w i, j $ 1 2 = = c2k 2 w i C 1, j $ 2w i, j C w i $ 1, j h2 Collecting terms (and switching subscript schemes to avoid confusion): rk wi, j C 1 $ 2wi, j 2 rk c2k 2 C 1$ wi, j $ 1 = 2 wi C 2 h 1C Moving terms around and substituting v= 1, j $ 2wi, j C wi $ 1, j ck : h rk wi, j C 1 = 2 1 $ v 2 wi, j C v 2 wi C 2 rk C $ 1 wi, j $ 1 2 1C 1, j C wi $ 1, wi $ 1, j j Dividing through by the first coefficient: 2 1 $ v2 v2 wi, j C 1 = wi, j C rk rk 1C 1C 2 2 rk $1 2 C w rk i, j $ 1 1C 2 wi C 1, j C (Eq. 28) The initial condition equations and the CFL criteria remain the same as in the undamped case. 5.3 Solution As with the undamped case, a Maple worksheet (vibe-string-damped.mw) was created to model the analytical solution. The variables are the same as in the undamped case with the addition of the damping constant (r) to the list. Below is a sample set of commands from this worksheet for a string plucked at the center with no initial velocity. Define the problem specific variables: > restart: L:=1: r:=0.1: Te:=1: rho:=1: c:=sqrt(Te/rho): h:=1: terms:=10: Time:=1: assume(n, integer): k[n]:=n*Pi/L: Page 18 mu[n]:=sqrt(abs((r/2)^2-k[n]^2*c^2)): Define the initial position/velocity functions: > f:=piecewise(x>=0 and x<=L/2, (2*h/L)*x, x>L/2 and x<=L, (2*h/L)*(L-x)): g:=0*x: Calculate X and T: > X[n]:=sin(k[n]*x): T[n]:=exp(r*t/2)*(a[n]*sin(mu[n]*t)+b[n]*cos(mu[n]*t)): Calculate the Fourier coefficients: > b[n]:=(2/L)*int(f*X[n], x=0..L): > a[n]:=(r/(2*mu[n]))*b[n]+(2/(mu[n]*L))*int(g*X[n], x=0..L): Calculate the Fourier series: > u:=sum(X[n]*T[n], n=1..terms): For the numerical solution, another Maple worksheet (fdm3.mw) was created to perform the finite-difference calculations. A sample set of commands is shown below. Begin finite difference algorithm. First step - define and set the x and t counters: > restart: assume(NNX::integer, NNT::integer, IX::integer, IT::integer): NNX:=51: NNT:=1001: Now define the initial displacement and velocity functions: > f:=x->piecewise(0<=x and x<=L/2, 2*h*x/L, L/2<x and x<=L, (2*h/L)*(L-x)): g:=x->0*x: Now define some problem specific variables: > L:=1: r:=0.1: Te:=1: rho:=1: c:=sqrt(Te/rho): h:=1: tmax:=10: Set the space and time segments: > dx:=L/(NNX-1): dt:=tmax/(NNT-1): Check CFL condition (ck/h <=1) and set variable v for later use: > v:=evalf(c*dt/dx): Set a common term to be used later: > dmc:=(1+r*dt/2): Initialize w array: > w:=Array(1..NNX, 1..NNT): Set boundary values: > for IT from 1 to NNT do w[1, IT]:=0: Page 19 w[NNX, IT]:=0: end do: Set initial values: > for IX from 2 to NNX-1 do w[IX,1]:=f((IX-1)*dx): w[IX,2]:=f((IX-1)*dx)+dt*g(IX*dx)+(v^2/2)*(f((IX+1)*dx)2*f(IX*dx)+f((IX-1)*dx)): end do: Compute the solution: > for IT from 2 to NNT-1 do for IX from 2 to NNX-1 do w[IX, IT+1]:=(2*(1v^2)/dmc)*w[IX,IT]+(v^2/dmc)*(w[IX+1,IT]+w[IX-1,IT])+(((r*dt/2)1)/dmc)*w[IX,IT-1]: end do: end do: Again, the results are written to a file and then read back in to plot. This is done in order to get the x-axis values computed correctly. 5.4 Results In order to compare the results between the two methods, a series of plots will be generated for a few different conditions - each will be plotted using both the analytical and numerical solutions. Case 1) L = 1, r = 0.1, Te = 1, r = 1, h = 1, terms = 10, Time = 1. f = 2hx/L from 0 to L/2 and (2h/L)(L-x) for L/2 to L. (pluck at 1/2 L) g=0. Page 20 The plot on the left is a plot of u vs. x for the analytical solution at t= Time , the plot on the 4 x= L and 2 right is the numerical solution for the same parameters. The plot on the left is a plot of u vs. t for the analytical solution at t = 10$Time, the plot on the right is the numerical solution for the same parameters.The effects of the damping are readily apparent. Case 2) L = 3, r = 0.3, Te = 3, r = 1, h = 2, terms = 20, Time = 5. f = 2hx/L from 0 to L/2 and (2h/L)(L-x) for L/2 to L. (pluck at 1/2 L) g=0. Page 21 The plot on the left is a plot of u vs. x for the analytical solution at t= Time , the plot on the 2 x= L and t = 5$Time, 2 right is the numerical solution for the same parameters. The plot on the left is a plot of u vs. t for the analytical solution at the plot on the right is the numerical solution for the same parameters.The effects of the damping are readily apparent. Case 3) L = 10, r = 0.2, Te = 5, r = 1, h = 0.5, terms = 20, Time = 5. f = 5hx/L from 0 to L/5 and (5h/4)(1-x/L) for L/5 to L. (pluck at 1/5 L) g=0. The plot on the left is a plot of u vs. x for the analytical solution at Page 22 t= Time , the plot on the 2 right is the numerical solution for the same parameters. The plot on the left is a plot of u vs. t for the analytical solution at x= L and 2 t = 10$Time, the plot on the right is the numerical solution for the same parameters.The effects of the damping are readily apparent. Again, even with damping added the numerical solution tracks the analytical solution very well. 6. The Math Behind The Music When a guitar string is plucked, the string responds with several modes of vibration (or harmonics). The first mode is known as the "fundamental" frequency of vibration. This frequency can be calculated by using the wave velocity ("c" in the wave equation) and the wavelength. The fundamental frequency (see below) of a guitar string is simply a half-sinusoid wave. For the full wavelength, by definition it must be 2L. The fundamental frequency can then be calculated by the equation: Page 23 f= c 2L where "c" is the wave velocity (length/time) and L is the wavelength (length). This leaves units of 1/time for the frequency. Remembering that the wave velocity can be expressed by: c= T r The fundamental frequency can be expressed by: f1 = T r 2L (Eq. 29) From this some basic relationships fall out. For a string of a given fundamental frequency, to double the frequency the string can either be made half as long, have four times the tension, or have one-quarter the mass. Each subsequent harmonic frequency can be calculated by: fn = n$f1 for n=1,2,3... A plot of the second, third, and fourth harmonics is shown below. They are derived by computing the Fourier series for just that value of n. It should be noted that these were generated using the model where the string was plucked at a distance of L/5 from one end. For a string plucked in the center, all even harmonics cancel each other out. The distance between the frets is also subject to mathematical calculation. For a guitar string with a given free (unfretted) length of L, the distance from the nut (top) to the first fret is given by the formula: Page 24 d= L 17.817 The distance to the next fret is calculated using the same formula with the remaining length. This is frequently called the "rule of 18" as the "rule of 17.817" doesn't sound quite so nice. 7. Conclusions Although the vibration of the strings is only a small part of the overall sound of the guitar, it is the most important. The rest of the instrument exists to amplify that sound and combine it with the sounds of the other strings. The tools available to the modern engineer, whether in the form of advanced analytical techniques or solving the problem using computer horsepower, can help the user understand the complex interplay between the various modes and harmonics of vibration. 8. References [1] N.H. Fletcher, T.D. Rossing, The Physics of Musical Instruments, Springer, NY, 1998. [2] E. Kreyszig, Advanced Engineering Mathematics, Wiley, NJ, 1999 [3] Charles Seife, Zero: The Biography of a Dangerous Idea, Penguin, NY, 2000 [4] J.B. Calvert, "Strings", Home Page, 27 June 2000, <http://www.du.edu/~jcalvert/waves/strings.htm> [5] L. Hiller, P. Ruiz, Synthesizing musical sounds by solving the wave equation for vibrating objects, Journal of the Audio Engineering Society, 19(6 and 7):462-470 (Part I), 542-551 (PartII), June and August 1971. Page 25