|


Tuning a PianoDate: 05/28/2002 at 14:14:27 From: Mike Turley Subject: 3-point quadratic intorpolation I need help understanding 3-point interpolation. I am a music teacher who is working on writing a computer program to tune pianos and other musical instruments. I have three college degrees in music; but unfortunately 3-point quadratic interpolation was never covered. I need to be able to figure the tuning curve on a piano. A piano is perfectly in tune in the middle range but flat in the lower range and sharp in the upper range. Each piano has a unique tuning curve that can be measured and calculated through 3-point quadratic interpolation. I need to be able to come up with a formula that will allow me to measure three different notes on the piano and find the tuning curve in between these points. Two octaves on a piano are made up of 25 succesive keys numbered from 0-24. I would take the following three measurements: A0, A12, and A24. The readings would be measured in cents sharp or flat. Let's suppose A0 was 1.5 cents sharp, A12 was 3 cents sharp, and A24 was 9.5 cents sharp. I need a formula that will tell me the cents of all the points inbetween. I have read several different web pages on 3-point interpolation and know that this equation is possible, I just don't understand all of the language that is used (keep in mind that I'm a musician, not a mathmatician). I need to find someone who can help me find this equation. Sincerely, Mike Turley
Date: 05/30/2002 at 12:29:18
From: Doctor Douglas
Subject: Re: 3-point quadratic intorpolation
Hi, Mike.
Thanks for submitting your question to the Math Forum.
Let's suppose that the keys are labelled by x and the measurements
are labelled by y. Thus the first note is x=0 and the last note is
x=24. The measurement from the lowest note (x=0) is y=A0, and
the measurement from the highest note (x=24) is y=A24. Here, x and
y are variables, and A0 and A24 are numbers (which might be 1.5 and
9.5).
Now we want to find a function f such that it takes x to y [i.e.,
f(x) = y], and such that f(0) = A0, f(12) = A12, and f(24) = A24.
Furthermore, we want a function f that is a quadratic polynomial
[i.e. is of the form f(x) = P*x^2 + Q*x + R for some constants
P,Q,R].
Without going into all of the details of showing where it might
come from, here is that quadradic function:
A0 * (x-12)(x-24) A12 * (x-0)(x-24) A24 * (x-0)(x-12)
f(x) = ----------------- + ----------------- + -----------------
(0-12)(0-24) (12-0)(12-24) (24-0)(24-12)
You can simplify the denominators, and if you multiply everything
out, you can get it in the form Px^2 + Qx + R, if you wish. But
in this form above it's easy to see that this function is quadratic
(since in each term you only get powers of x^2 and x and constants).
Also, it is easy to see that the first term is what gives us A0
when x=0, because when x=0, the second and third terms vanish by the
(x-0) factor in the numerator, and only the first term remains. And
it is easy to see that the terms in parentheses cancel each other
when x=0, so that f(0) ends up being equal to A0, as we require.
Note that you can change this expression to handle points other than
at x=0,12, and 24. Of course, the points where you take measurements
must be different from each other, but they need not be equally
spaced (for example, if a piano has a steep tuning curve at the
bottom but is relatively flat in the upper octave), you might choose
to measure at x=2,x=8, and x=16, and then hope that what happens for
x<2 and x>16 is well-modeled by the quadratic. There is nothing
special about the numbers 0,12, and 24 in the above example, and
you can convince yourself that a similar expression with 2,8, and 16
will do exactly the same thing (i.e., will equal A2 at x=2, etc.).
Note also that you can make a polynomial of the next higher order by
making some simple changes. Suppose you have the quadratic above and
you make one more measurement, where the tuning curve is steep at say
x=7 (let the measurement there be equal to A7). Then the CUBIC
polynomial that interpolates through all four points (0,A0),(7,A7),
(12,A12),(24,A24) is
A0(x-7)(x-12)(x-24) A7(x-0)(x-12)(x-24)
f(x) = ------------------- + -------------------
(0-7)(0-12)(0-24) (7-0)(7-12)(7-24)
A12(x-0)(x-7)(x-24) A24(x-0)(x-7)(x-12)
+ ------------------- + -------------------
(12-0)(12-7)(12-24) (24-0)(24-7)(24-12).
Incidentally, these expressions are known as Lagrange's form
of the interpolating polynomial. For a small number of data
points it's fine to use these expressions, but as the number of
data points gets large, these expressions become cumbersome, and
errors may arise from numerical inaccuracies when making actual
computations. These are more advanced topics, of course.
I hope this helps.
- Doctor Douglas, The Math Forum
http://mathforum.org/dr.math/
Date: 06/08/2002 at 20:56:14 From: Mike Turley Subject: Thank you (3-point quadratic intorpolation) Doctor Douglas, I very much appreciate the time that you took to help me understand 3-point interpolation. I have done my best to understand your explanation but I'm afraid I need a little more help. Could you please show me an example or two of how to solve for the different points of my tuning curve? I will be measuring, for instance: A0 (1.5 cents #), A12 (3 cents #), and A24 (9.5 cents #). Could you please give me an example of how to solve for the other points of the tuning curve? For instance how would the equation look to solve for A#1, and then what would I have to do change the equation to solve for B2? Please understand that I have not had to use much algebra at all in the last 20 years so I think that to see a more specific example would help me greatly. Sincerely, Mike Turley
Date: 06/09/2002 at 10:31:47
From: Doctor Douglas
Subject: Re: Thank you (3-point quadratic intorpolation)
Hi again, Mike!
Let's suppose, as you said that A0 = 1.5, A12 = 3, and A24 = 9.5. Now
we need to solve for the interpolated value of A1. Let's start from
the function that I gave earlier:
A0 * (x-12)(x-24) A12 * (x-0)(x-24) A24 * (x-0)(x-12)
f(x) = ----------------- + ----------------- + -----------------
(0-12)(0-24) (12-0)(12-24) (24-0)(24-12)
Now we ask, what is f when x=1? We just plug in the number "1"
everywhere that x appears, and we plug in the measurements for A0,
A12 and A24. So now it's nothing more than pressing the right
buttons on your calculator:
A0 * (1-12)(1-24) A12 * (1-0)(1-24) A24 * (1-0)(1-12)
f(1) = ----------------- + ----------------- + -----------------
(0-12)(0-24) (12-0)(12-24) (24-0)(24-12)
A0 * (-11)(-23) A12 * (1)(-23) A24 * (1)(-11)
= ---------------- + ---------------- + ---------------
(-12)(-24) (12)(-12) (24)(12)
253 A0 23 A12 11 A24
= ------ + ------- - ------
288 144 288
253 * 1.5 23 * 3 11 * 9.5
= --------- + ------ - --------
288 144 288
= 1.318 + 0.479 - 0.363
= 1.434 cents sharp
To solve for the next note, you simply use x=2. In other words,
you compute f(x=2). And for the next note after that, you use x=3
to compute the polynomial value for A3. The data points A0, A12,
and A24 of course don't change. And if you try checking the notes
f(x=0), f(x=12), and f(x=24), you will get back A0, A12, and A24
respectively. The polynomial f passes through those points
because of the way in which we constructed it.
- Doctor Douglas, The Math Forum
http://mathforum.org/dr.math/
|
Search the Dr. Math Library: |
[Privacy Policy] [Terms of Use]


Ask Dr. MathTM
© 1994-2011 The Math Forum
http://mathforum.org/dr.math/