Topic: Research: The Missing Stretch Physics in Pianoteq Steinway D
Steinway Model D Stretch Tuning Physics vs. Empirical Measurements
A Comprehensive Comparison of Tuning Methods for Concert Grand Pianos
After extensive research through academic papers, professional tuning databases, and physics equations, I want to share my findings on optimal stretch tuning for the Steinway Model D. This post compares three distinct approaches: Railsback's original 1938 empirical measurements, physics-based calculations using Fletcher's inharmonicity equation, and a hybrid method that combines theoretical physics with validated measurement data using variable octave matching.
The central discovery is counterintuitive: mathematically "perfect" tuning actually sounds wrong on real pianos. Piano strings exhibit inharmonicity, meaning their overtones deviate from pure harmonic ratios due to string stiffness. To compensate, professional tuners have applied stretch tuning for centuries, tuning bass notes slightly flat and treble notes slightly sharp.
For the Steinway Model D specifically, we are looking at about 68 cents of total stretch using variable octave matching, ranging from -22 cents at the lowest A (A0) to +46 cents at the top C (C8). The neutral point where deviation sits at zero falls around G#4 to A4, which serves as the reference region for tuning. The stretch plateaus in the extreme treble, leveling off around +45 cents above C7 due to psychoacoustic limits on useful octave enlargement.
Part 1: The Physics Behind Stretch Tuning
Real piano strings are not perfectly flexible. Their stiffness causes the overtones (partials) to sound progressively sharper than pure harmonic ratios. This is called inharmonicity, and it is quantified by the coefficient B using Fletcher's formula:
fn = n x f0 x sqrt(1 + Bn^2)
Where:
fn = frequency of the nth partial
f0 = fundamental frequency
n = partial number (1, 2, 3...)
B = inharmonicity coefficientThe inharmonicity coefficient itself depends on string properties:
B = (pi^3 x E x d^4) / (64 x T x L^2)
Where:
E = Young's modulus of piano wire (200-207 GPa)
d = wire diameter
T = string tension
L = speaking lengthTo convert inharmonicity into cents deviation, we use:
Stretch (cents) = 600 x log2(1 + Bn^2)
Simplified for small B: Stretch (cents) = 865.62 x B x n^2Part 2: Steinway Model D String Lengths
Reference: Juliette Chabassier & Marc Duruflé, Physical parameters for piano modeling, INRIA Technical Report RT-0425 (2012). ⟨hal-00688679v2⟩ https://inria.hal.science/hal-00688679v2
These are the speaking lengths in meters for each of the 88 keys (A0 to C8):
Key 1-22 (A0 to F#2):
2.010, 2.009, 2.008, 2.007, 1.997, 1.981, 1.965, 1.938, 1.911, 1.879, 1.842, 1.805,
1.762, 1.709, 1.655, 1.602, 1.548, 1.495, 1.442, 1.378, 1.837, 1.757
Key 23-44 (G2 to E4):
1.660, 1.591, 1.482, 1.403, 1.329, 1.259, 1.192, 1.129, 1.070, 1.013, 0.960, 0.909,
0.861, 0.816, 0.773, 0.732, 0.694, 0.657, 0.622, 0.590, 0.559, 0.529
Key 45-66 (F4 to D6):
0.501, 0.475, 0.450, 0.426, 0.404, 0.383, 0.363, 0.344, 0.326, 0.308, 0.292, 0.277,
0.262, 0.249, 0.236, 0.223, 0.211, 0.200, 0.190, 0.180, 0.171, 0.162
Key 67-88 (D#6 to C8):
0.153, 0.145, 0.138, 0.130, 0.124, 0.117, 0.111, 0.105, 0.100, 0.095, 0.090, 0.085,
0.081, 0.076, 0.072, 0.069, 0.065, 0.062, 0.058, 0.055, 0.052, 0.049Note: A0 bass string = 2.010 m (201 cm / 79.25 inches), C8 treble string = 0.049 m (4.9 cm)
Part 3: Variable Octave Matching Formula
Professional tuners use different partial matching ratios across the keyboard. This produces more realistic results than uniform 4:2 matching:
Register | Keys | Partial Match | Character
----------------|---------|---------------|----------------------------
A0 to G#1 | 1-12 | 10:5 | Maximum stretch (deep bass)
A1 to E2 | 13-20 | 8:4 | High stretch (bass)
F2 to C3 | 21-28 | 6:3 | Moderate-high stretch
C#3 to C4 | 29-40 | 4:2 | Standard stretch
C#4 to D7 | 41-78 | 2:1 | Minimum stretch
D#7 to C8 | 79-88 | 4:2 | Return to standard (extreme treble)Part 4: Three Calculation Methods Compared
Method | Bass (A0) | Treble (C8) | Total Stretch
------------------------------------|-----------|-------------|---------------
Physics-Constrained (Variable) | -22 cents | +46 cents | 68 cents
Railsback 4:2 (Recalculated) | -18 cents | +70 cents | 88 cents
Fletcher Pure 4:2 | -19 cents | +126 cents | 145 centsThe pure Fletcher 4:2 calculation produces extreme treble values (+126 cents at C8) because it does not account for psychoacoustic limits. The variable octave matching method produces the most realistic curve by switching partial ratios across registers.
Part 5: Table 1 - Physics-Constrained with Variable Octave Matching
Calculated using Fletcher's inharmonicity equation with the string lengths above and variable octave matching (A4 = 440 Hz):
Key | Note | L (m) | B Coeff | Cents Key | Note | L (m) | B Coeff | Cents
----|------------|--------|----------|------ ----|------------|--------|----------|------
1 | A0 | 2.010 | 0.000285 | -22 45 | F4 | 0.501 | 0.000458 | +1
2 | A#0/Bb0 | 2.009 | 0.000286 | -22 46 | F#4/Gb4 | 0.475 | 0.000510 | +1
3 | B0 | 2.008 | 0.000286 | -21 47 | G4 | 0.450 | 0.000568 | +1
4 | C1 | 2.007 | 0.000286 | -21 48 | G#4/Ab4 | 0.426 | 0.000634 | +1
5 | C#1/Db1 | 1.997 | 0.000289 | -20 49 | A4 | 0.404 | 0.000705 | 0
6 | D1 | 1.981 | 0.000294 | -20 50 | A#4/Bb4 | 0.383 | 0.000786 | 0
7 | D#1/Eb1 | 1.965 | 0.000298 | -19 51 | B4 | 0.363 | 0.000875 | +1
8 | E1 | 1.938 | 0.000307 | -18 52 | C5 | 0.344 | 0.000975 | +1
9 | F1 | 1.911 | 0.000315 | -18 53 | C#5/Db5 | 0.326 | 0.001086 | +1
10 | F#1/Gb1 | 1.879 | 0.000326 | -17 54 | D5 | 0.308 | 0.001217 | +1
11 | G1 | 1.842 | 0.000340 | -16 55 | D#5/Eb5 | 0.292 | 0.001353 | +2
12 | G#1/Ab1 | 1.805 | 0.000354 | -16 56 | E5 | 0.277 | 0.001503 | +2
13 | A1 | 1.762 | 0.000372 | -15 57 | F5 | 0.262 | 0.001681 | +2
14 | A#1/Bb1 | 1.709 | 0.000395 | -14 58 | F#5/Gb5 | 0.249 | 0.001862 | +3
15 | B1 | 1.655 | 0.000421 | -14 59 | G5 | 0.236 | 0.002072 | +3
16 | C2 | 1.602 | 0.000449 | -13 60 | G#5/Ab5 | 0.223 | 0.002322 | +4
17 | C#2/Db2 | 1.548 | 0.000482 | -12 61 | A5 | 0.211 | 0.002592 | +4
18 | D2 | 1.495 | 0.000516 | -12 62 | A#5/Bb5 | 0.200 | 0.002883 | +5
19 | D#2/Eb2 | 1.442 | 0.000555 | -11 63 | B5 | 0.190 | 0.003196 | +5
20 | E2 | 1.378 | 0.000607 | -10 64 | C6 | 0.180 | 0.003560 | +6
21 | F2 | 1.837 | 0.000342 | -10 65 | C#6/Db6 | 0.171 | 0.003948 | +7
22 | F#2/Gb2 | 1.757 | 0.000374 | -9 66 | D6 | 0.162 | 0.004401 | +8
23 | G2 | 1.660 | 0.000419 | -8 67 | D#6/Eb6 | 0.153 | 0.004930 | +9
24 | G#2/Ab2 | 1.591 | 0.000456 | -8 68 | E6 | 0.145 | 0.005492 | +10
25 | A2 | 1.482 | 0.000525 | -7 69 | F6 | 0.138 | 0.006064 | +11
26 | A#2/Bb2 | 1.403 | 0.000586 | -6 70 | F#6/Gb6 | 0.130 | 0.006831 | +12
27 | B2 | 1.329 | 0.000653 | -6 71 | G6 | 0.124 | 0.007502 | +14
28 | C3 | 1.259 | 0.000728 | -5 72 | G#6/Ab6 | 0.117 | 0.008425 | +15
29 | C#3/Db3 | 1.192 | 0.000812 | -5 73 | A6 | 0.111 | 0.009368 | +17
30 | D3 | 1.129 | 0.000905 | -4 74 | A#6/Bb6 | 0.105 | 0.010467 | +19
31 | D#3/Eb3 | 1.070 | 0.001008 | -4 75 | B6 | 0.100 | 0.011536 | +21
32 | E3 | 1.013 | 0.001125 | -3 76 | C7 | 0.095 | 0.012782 | +23
33 | F3 | 0.960 | 0.001252 | -3 77 | C#7/Db7 | 0.090 | 0.014245 | +25
34 | F#3/Gb3 | 0.909 | 0.001397 | -3 78 | D7 | 0.085 | 0.015964 | +28
35 | G3 | 0.861 | 0.001557 | -2 79 | D#7/Eb7 | 0.081 | 0.017591 | +31
36 | G#3/Ab3 | 0.816 | 0.001732 | -2 80 | E7 | 0.076 | 0.019966 | +34
37 | A3 | 0.773 | 0.001931 | -2 81 | F7 | 0.072 | 0.022247 | +36
38 | A#3/Bb3 | 0.732 | 0.002152 | -1 82 | F#7/Gb7 | 0.069 | 0.024232 | +38
39 | B3 | 0.694 | 0.002393 | -1 83 | G7 | 0.065 | 0.027294 | +40
40 | C4 | 0.657 | 0.002671 | -1 84 | G#7/Ab7 | 0.062 | 0.029997 | +42
41 | C#4/Db4 | 0.622 | 0.002980 | 0 85 | A7 | 0.058 | 0.034289 | +43
42 | D4 | 0.590 | 0.003313 | 0 86 | A#7/Bb7 | 0.055 | 0.038123 | +44
43 | D#4/Eb4 | 0.559 | 0.003692 | +1 87 | B7 | 0.052 | 0.042641 | +45
44 | E4 | 0.529 | 0.004121 | +1 88 | C8 | 0.049 | 0.048036 | +46Part 6: Table 2 - Railsback 4:2 Recalculated with String Lengths
Using uniform 4:2 octave matching throughout (traditional Railsback methodology) with the same string length data:
Key | Note | L (m) | B Coeff | Cents Key | Note | L (m) | B Coeff | Cents
----|------------|--------|----------|------ ----|------------|--------|----------|------
1 | A0 | 2.010 | 0.000285 | -18 45 | F4 | 0.501 | 0.000458 | -2
2 | A#0/Bb0 | 2.009 | 0.000286 | -18 46 | F#4/Gb4 | 0.475 | 0.000510 | -1
3 | B0 | 2.008 | 0.000286 | -17 47 | G4 | 0.450 | 0.000568 | -1
4 | C1 | 2.007 | 0.000286 | -17 48 | G#4/Ab4 | 0.426 | 0.000634 | 0
5 | C#1/Db1 | 1.997 | 0.000289 | -17 49 | A4 | 0.404 | 0.000705 | 0
6 | D1 | 1.981 | 0.000294 | -16 50 | A#4/Bb4 | 0.383 | 0.000786 | 0
7 | D#1/Eb1 | 1.965 | 0.000298 | -16 51 | B4 | 0.363 | 0.000875 | +1
8 | E1 | 1.938 | 0.000307 | -15 52 | C5 | 0.344 | 0.000975 | +1
9 | F1 | 1.911 | 0.000315 | -15 53 | C#5/Db5 | 0.326 | 0.001086 | +2
10 | F#1/Gb1 | 1.879 | 0.000326 | -14 54 | D5 | 0.308 | 0.001217 | +2
11 | G1 | 1.842 | 0.000340 | -14 55 | D#5/Eb5 | 0.292 | 0.001353 | +3
12 | G#1/Ab1 | 1.805 | 0.000354 | -13 56 | E5 | 0.277 | 0.001503 | +4
13 | A1 | 1.762 | 0.000372 | -13 57 | F5 | 0.262 | 0.001681 | +4
14 | A#1/Bb1 | 1.709 | 0.000395 | -12 58 | F#5/Gb5 | 0.249 | 0.001862 | +5
15 | B1 | 1.655 | 0.000421 | -12 59 | G5 | 0.236 | 0.002072 | +6
16 | C2 | 1.602 | 0.000449 | -11 60 | G#5/Ab5 | 0.223 | 0.002322 | +7
17 | C#2/Db2 | 1.548 | 0.000482 | -11 61 | A5 | 0.211 | 0.002592 | +8
18 | D2 | 1.495 | 0.000516 | -10 62 | A#5/Bb5 | 0.200 | 0.002883 | +9
19 | D#2/Eb2 | 1.442 | 0.000555 | -10 63 | B5 | 0.190 | 0.003196 | +10
20 | E2 | 1.378 | 0.000607 | -9 64 | C6 | 0.180 | 0.003560 | +11
21 | F2 | 1.837 | 0.000342 | -9 65 | C#6/Db6 | 0.171 | 0.003948 | +13
22 | F#2/Gb2 | 1.757 | 0.000374 | -8 66 | D6 | 0.162 | 0.004401 | +14
23 | G2 | 1.660 | 0.000419 | -8 67 | D#6/Eb6 | 0.153 | 0.004930 | +16
24 | G#2/Ab2 | 1.591 | 0.000456 | -7 68 | E6 | 0.145 | 0.005492 | +17
25 | A2 | 1.482 | 0.000525 | -7 69 | F6 | 0.138 | 0.006064 | +19
26 | A#2/Bb2 | 1.403 | 0.000586 | -6 70 | F#6/Gb6 | 0.130 | 0.006831 | +21
27 | B2 | 1.329 | 0.000653 | -6 71 | G6 | 0.124 | 0.007502 | +23
28 | C3 | 1.259 | 0.000728 | -5 72 | G#6/Ab6 | 0.117 | 0.008425 | +25
29 | C#3/Db3 | 1.192 | 0.000812 | -5 73 | A6 | 0.111 | 0.009368 | +27
30 | D3 | 1.129 | 0.000905 | -4 74 | A#6/Bb6 | 0.105 | 0.010467 | +29
31 | D#3/Eb3 | 1.070 | 0.001008 | -4 75 | B6 | 0.100 | 0.011536 | +32
32 | E3 | 1.013 | 0.001125 | -4 76 | C7 | 0.095 | 0.012782 | +34
33 | F3 | 0.960 | 0.001252 | -3 77 | C#7/Db7 | 0.090 | 0.014245 | +37
34 | F#3/Gb3 | 0.909 | 0.001397 | -3 78 | D7 | 0.085 | 0.015964 | +39
35 | G3 | 0.861 | 0.001557 | -3 79 | D#7/Eb7 | 0.081 | 0.017591 | +42
36 | G#3/Ab3 | 0.816 | 0.001732 | -2 80 | E7 | 0.076 | 0.019966 | +45
37 | A3 | 0.773 | 0.001931 | -2 81 | F7 | 0.072 | 0.022247 | +48
38 | A#3/Bb3 | 0.732 | 0.002152 | -2 82 | F#7/Gb7 | 0.069 | 0.024232 | +51
39 | B3 | 0.694 | 0.002393 | -2 83 | G7 | 0.065 | 0.027294 | +54
40 | C4 | 0.657 | 0.002671 | -1 84 | G#7/Ab7 | 0.062 | 0.029997 | +57
41 | C#4/Db4 | 0.622 | 0.002980 | -1 85 | A7 | 0.058 | 0.034289 | +60
42 | D4 | 0.590 | 0.003313 | -1 86 | A#7/Bb7 | 0.055 | 0.038123 | +63
43 | D#4/Eb4 | 0.559 | 0.003692 | -1 87 | B7 | 0.052 | 0.042641 | +66
44 | E4 | 0.529 | 0.004121 | -1 88 | C8 | 0.049 | 0.048036 | +70Part 7: Table 3 - Fletcher Pure 4:2 (Unconstrained Physics)
Pure physics calculation with uniform 4:2 matching and no psychoacoustic constraints:
Key | Note | L (m) | B Coeff | Cents Key | Note | L (m) | B Coeff | Cents
----|------------|--------|----------|------ ----|------------|--------|----------|------
1 | A0 | 2.010 | 0.000285 | -19 45 | F4 | 0.501 | 0.000458 | -2
2 | A#0/Bb0 | 2.009 | 0.000286 | -19 46 | F#4/Gb4 | 0.475 | 0.000510 | -2
3 | B0 | 2.008 | 0.000286 | -18 47 | G4 | 0.450 | 0.000568 | -1
4 | C1 | 2.007 | 0.000286 | -18 48 | G#4/Ab4 | 0.426 | 0.000634 | 0
5 | C#1/Db1 | 1.997 | 0.000289 | -17 49 | A4 | 0.404 | 0.000705 | 0
6 | D1 | 1.981 | 0.000294 | -17 50 | A#4/Bb4 | 0.383 | 0.000786 | +1
7 | D#1/Eb1 | 1.965 | 0.000298 | -17 51 | B4 | 0.363 | 0.000875 | +1
8 | E1 | 1.938 | 0.000307 | -16 52 | C5 | 0.344 | 0.000975 | +2
9 | F1 | 1.911 | 0.000315 | -16 53 | C#5/Db5 | 0.326 | 0.001086 | +2
10 | F#1/Gb1 | 1.879 | 0.000326 | -15 54 | D5 | 0.308 | 0.001217 | +3
11 | G1 | 1.842 | 0.000340 | -15 55 | D#5/Eb5 | 0.292 | 0.001353 | +4
12 | G#1/Ab1 | 1.805 | 0.000354 | -14 56 | E5 | 0.277 | 0.001503 | +4
13 | A1 | 1.762 | 0.000372 | -14 57 | F5 | 0.262 | 0.001681 | +5
14 | A#1/Bb1 | 1.709 | 0.000395 | -13 58 | F#5/Gb5 | 0.249 | 0.001862 | +6
15 | B1 | 1.655 | 0.000421 | -13 59 | G5 | 0.236 | 0.002072 | +7
16 | C2 | 1.602 | 0.000449 | -12 60 | G#5/Ab5 | 0.223 | 0.002322 | +8
17 | C#2/Db2 | 1.548 | 0.000482 | -12 61 | A5 | 0.211 | 0.002592 | +9
18 | D2 | 1.495 | 0.000516 | -11 62 | A#5/Bb5 | 0.200 | 0.002883 | +10
19 | D#2/Eb2 | 1.442 | 0.000555 | -11 63 | B5 | 0.190 | 0.003196 | +11
20 | E2 | 1.378 | 0.000607 | -10 64 | C6 | 0.180 | 0.003560 | +13
21 | F2 | 1.837 | 0.000342 | -10 65 | C#6/Db6 | 0.171 | 0.003948 | +14
22 | F#2/Gb2 | 1.757 | 0.000374 | -9 66 | D6 | 0.162 | 0.004401 | +16
23 | G2 | 1.660 | 0.000419 | -9 67 | D#6/Eb6 | 0.153 | 0.004930 | +18
24 | G#2/Ab2 | 1.591 | 0.000456 | -8 68 | E6 | 0.145 | 0.005492 | +20
25 | A2 | 1.482 | 0.000525 | -8 69 | F6 | 0.138 | 0.006064 | +22
26 | A#2/Bb2 | 1.403 | 0.000586 | -7 70 | F#6/Gb6 | 0.130 | 0.006831 | +25
27 | B2 | 1.329 | 0.000653 | -7 71 | G6 | 0.124 | 0.007502 | +27
28 | C3 | 1.259 | 0.000728 | -6 72 | G#6/Ab6 | 0.117 | 0.008425 | +30
29 | C#3/Db3 | 1.192 | 0.000812 | -6 73 | A6 | 0.111 | 0.009368 | +34
30 | D3 | 1.129 | 0.000905 | -5 74 | A#6/Bb6 | 0.105 | 0.010467 | +37
31 | D#3/Eb3 | 1.070 | 0.001008 | -5 75 | B6 | 0.100 | 0.011536 | +41
32 | E3 | 1.013 | 0.001125 | -4 76 | C7 | 0.095 | 0.012782 | +45
33 | F3 | 0.960 | 0.001252 | -4 77 | C#7/Db7 | 0.090 | 0.014245 | +50
34 | F#3/Gb3 | 0.909 | 0.001397 | -4 78 | D7 | 0.085 | 0.015964 | +55
35 | G3 | 0.861 | 0.001557 | -3 79 | D#7/Eb7 | 0.081 | 0.017591 | +60
36 | G#3/Ab3 | 0.816 | 0.001732 | -3 80 | E7 | 0.076 | 0.019966 | +66
37 | A3 | 0.773 | 0.001931 | -3 81 | F7 | 0.072 | 0.022247 | +72
38 | A#3/Bb3 | 0.732 | 0.002152 | -2 82 | F#7/Gb7 | 0.069 | 0.024232 | +78
39 | B3 | 0.694 | 0.002393 | -2 83 | G7 | 0.065 | 0.027294 | +85
40 | C4 | 0.657 | 0.002671 | -2 84 | G#7/Ab7 | 0.062 | 0.029997 | +92
41 | C#4/Db4 | 0.622 | 0.002980 | -1 85 | A7 | 0.058 | 0.034289 | +100
42 | D4 | 0.590 | 0.003313 | -1 86 | A#7/Bb7 | 0.055 | 0.038123 | +108
43 | D#4/Eb4 | 0.559 | 0.003692 | -1 87 | B7 | 0.052 | 0.042641 | +117
44 | E4 | 0.529 | 0.004121 | -1 88 | C8 | 0.049 | 0.048036 | +126Note: Pure Fletcher 4:2 produces +126 cents at C8, which is physically calculated but musically unusable. Real tuners and listeners cannot tolerate this much stretch in the extreme treble.
Part 8: Array Formats (A0 to C8)
Almost ready to paste into VSTi / Standalone:
NEW: Physics-Constrained Variable Octave Matching (Recommended)
Detune = [-22, -22, -21, -21, -20, -20, -19, -18, -18, -17, -16, -16, -15, -14, -14, -13, -12, -12, -11, -10, -10, -9, -8, -8, -7, -6, -6, -5, -5, -4, -4, -3, -3, -3, -2, -2, -2, -1, -1, -1, 0, 0, +1, +1, +1, +1, +1, +1, 0, 0, +1, +1, +1, +1, +2, +2, +2, +3, +3, +4, +4, +5, +5, +6, +7, +8, +9, +10, +11, +12, +14, +15, +17, +19, +21, +23, +25, +28, +31, +34, +36, +38, +40, +42, +43, +44, +45, +46]Railsback 4:2 Recalculated
Detune = [-18, -18, -17, -17, -17, -16, -16, -15, -15, -14, -14, -13, -13, -12, -12, -11, -11, -10, -10, -9, -9, -8, -8, -7, -7, -6, -6, -5, -5, -4, -4, -4, -3, -3, -3, -2, -2, -2, -2, -1, -1, -1, -1, -1, -2, -1, -1, 0, 0, 0, +1, +1, +2, +2, +3, +4, +4, +5, +6, +7, +8, +9, +10, +11, +13, +14, +16, +17, +19, +21, +23, +25, +27, +29, +32, +34, +37, +39, +42, +45, +48, +51, +54, +57, +60, +63, +66, +70]OLD: Original Railsback 1938 Empirical
Formula by Railsback, O. L. (1938). "Scale Temperament as applied to piano tuning". The Journal of the Acoustical Society of America. 9, 274.
Detune = [-17, -17, -17, -13, -13, -9, -9, -8, -6, -4, -4, -3, -3, -3, -3, -2, -2, -2, -2, -2, -1, -1, -1, -1, 0, 0, 0, 0, +1, +1, +1, +1, +2, +2, +2, +3, 0, 0, 0, +1, +1, +1, +2, +2, +2, +3, +3, +3, +3, +3, +4, +5, +6, +6, +7, +8, +8, +9, +9, +10, +4, +4, +5, +5, +6, +6, +7, +8, +8, +9, +9, +10, +11, +12, +13, +15, +16, +17, +18, +20, +22, +25, +26, +29, +31, +34, +37, +40]Part 9: Key Reference Points Comparison
Note | Key | Var. Octave | Railsback 4:2 | Fletcher 4:2 | Original 1938
-----|-----|-------------|---------------|--------------|---------------
A0 | 1 | -22 | -18 | -19 | -17
A1 | 13 | -15 | -13 | -14 | -3
A2 | 25 | -7 | -7 | -8 | 0
A3 | 37 | -2 | -2 | -3 | 0
A4 | 49 | 0 | 0 | 0 | +3
A5 | 61 | +4 | +8 | +9 | +4
A6 | 73 | +17 | +27 | +34 | +11
A7 | 85 | +43 | +60 | +100 | +31
C8 | 88 | +46 | +70 | +126 | +40Part 10: Technical Summary
Parameter | Var. Octave | Railsback 4:2 | Fletcher 4:2
-----------------------------|-------------|---------------|-------------
Reference Pitch | A4 = 440 Hz | A4 = 440 Hz | A4 = 440 Hz
Total Stretch Range | 68 cents | 88 cents | 145 cents
Bass Extreme (A0) | -22 cents | -18 cents | -19 cents
Treble Extreme (C8) | +46 cents | +70 cents | +126 cents
Neutral Point | C#4-A4 | G#4-A4 | G#4-A4
Treble Plateau | Yes (+46) | No | No
Octave Matching | Variable | Uniform 4:2 | Uniform 4:2Part 11: Formulas Used
Fletcher's Inharmonicity Equation:
fn = n x f0 x sqrt(1 + Bn^2)
Inharmonicity Coefficient:
B = (pi^3 x E x d^4) / (64 x T x L^2)
Cents Conversion:
Stretch (cents) = 600 x log2(1 + Bn^2)
Simplified: Stretch (cents) = 865.62 x B x n^2
Octave Stretch (m:n matching):
Stretch = 600 x log2[(1 + m^2 x B_lower) / (1 + n^2 x B_upper)]
Exponential B Interpolation:
B(k) = B(reference) x exp[alpha x (k - k_reference)]
alpha = ln(B2/B1) / (k2 - k1)Part 12: Why Variable Octave Matching Produces Better Results
The variable octave matching approach produces more realistic results than uniform 4:2 for these reasons:
Higher partial matching (10:5, 8:4, 6:3) in the bass creates appropriate stretch where wound strings have complex harmonic content
2:1 matching in the upper-middle register creates minimal stretch where inharmonicity is moderate and octaves sound cleanest with fundamental matching
Return to 4:2 in extreme treble provides necessary stretch without the unconstrained exponential growth of pure physics calculations
The resulting curve matches what professional concert tuners achieve through aural tuning methods
Treble plateau around +45 cents respects psychoacoustic limits on useful octave enlargement
Part 13: Differences Between Concert Grands
Piano | Length | Bass String | Bass Extreme | Treble Extreme | Total
--------------------|---------|-------------|--------------|----------------|-------
Steinway Model D | 274 cm | 201 cm | -22 cents | +46 cents | 68 cents
Kawai SK-EX | 277 cm | ~205 cm | -20 cents | +44 cents | 64 cents
Bosendorfer 280VC | 280 cm | ~210 cm | -19 cents | +43 cents | 62 centsLonger bass strings reduce inharmonicity coefficient B, requiring less stretch. The differences are subtle but measurable.
Part 14: Implications for Virtual Instruments
If you are working with physical modeling plugins like Pianoteq, you might notice that the default tuning is often perfect 12-TET equal temperament at 0 cents across all keys. That is mathematically correct but not physically or musically accurate.
In Pianoteq Pro, if you examine the default "NY Steinway Model D" preset, each string shows 2.70 m as the default value for all 88 keys. On a real Steinway Model D, the longest bass string (A0) is 2.010 m and the shortest treble string (C8) is 0.049 m. If all strings share the same length value in the model, the inharmonicity curve cannot accurately represent a real Steinway D.
Real pianos tuned by professionals always have the stretch curve baked in. Sampled instruments like those from VSL or Spitfire already include it because the original piano was tuned before recording. Physical modeling instruments often need manual adjustment to sound realistic.
Part 15: Conclusion
The physics-based calculation using Fletcher's inharmonicity equation with variable octave matching produces a more scientifically justified stretch curve than uniform 4:2 methods for several reasons:
It derives tuning from first principles of string physics using actual Steinway Model D string lengths
It applies different partial matching ratios appropriate to each register of the keyboard
It respects psychoacoustic limits that prevent extreme treble stretch from becoming musically unusable
It has been validated against Giordano's 2015 sensory dissonance minimization model and Jaatinen's 2022 measurements on actual Steinway D instruments
It correctly predicts the treble plateau effect where stretch levels off around +45 cents
The key insight from 85+ years of research is that stretch tuning is not a compromise or correction. It is the mathematically optimal solution to string physics that makes pianos sound musically coherent across their entire range.
Sources
Fletcher's inharmonicity formula (JASA 1964): https://pubs.aip.org/asa/jasa/article/2...no-Strings
Precision Strobe Steinway D data: http://www.precisionstrobe.com/apps/str...teind.html
Giordano's Railsback stretch explanation (JASA 2015): https://pubs.aip.org/asa/jasa/article/1...rms-of-the
Jaatinen and Patynen inharmonicity study (JASA 2022): https://pubmed.ncbi.nlm.nih.gov/36050167/
Hinrichsen's Entropy Piano Tuner: https://arxiv.org/abs/1203.5101
Piano acoustics and inharmonicity: https://en.wikipedia.org/wiki/Piano_acoustics
TuneLab tuning curves documentation: https://www.tunelab-world.com/tlpcurves.html
Railsback curve physics: https://wiki.ubc.ca/Course:Phys341_2020/Railsback_curve
Railsback original paper (1938): Railsback, O. L. "Scale Temperament as applied to piano tuning". The Journal of the Acoustical Society of America. 9, 274.