<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Modartt user forum - Research: The Missing Stretch Physics in Pianoteq Steinway D]]></title>
		<link>https://forum.modartt.com/viewtopic.php?id=12942</link>
		<description><![CDATA[The most recent posts in Research: The Missing Stretch Physics in Pianoteq Steinway D.]]></description>
		<lastBuildDate>Sun, 04 Jan 2026 23:01:58 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Research: The Missing Stretch Physics in Pianoteq Steinway D]]></title>
			<link>https://forum.modartt.com/viewtopic.php?pid=1006232#p1006232</link>
			<description><![CDATA[<div class="quotebox"><cite>sigasa wrote:</cite><blockquote><br /><p>Amazing research!!!</p><p>Warmest regards,</p><p>Chris</p></blockquote></div><p>You are welcome.</p>]]></description>
			<author><![CDATA[null@example.com (Lemuel)]]></author>
			<pubDate>Sun, 04 Jan 2026 23:01:58 +0000</pubDate>
			<guid>https://forum.modartt.com/viewtopic.php?pid=1006232#p1006232</guid>
		</item>
		<item>
			<title><![CDATA[Re: Research: The Missing Stretch Physics in Pianoteq Steinway D]]></title>
			<link>https://forum.modartt.com/viewtopic.php?pid=1006230#p1006230</link>
			<description><![CDATA[<div class="quotebox"><cite>Lemuel wrote:</cite><blockquote><p><strong>Steinway Model D Stretch Tuning: Physics-Based Calculations vs. Empirical Measurements</strong><br /><em>A Comprehensive Comparison of Tuning Methods for Concert Grand Pianos</em></p><br /><p>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&#039;s original 1938 empirical measurements, physics-based calculations using Fletcher&#039;s inharmonicity equation, and a hybrid method that combines theoretical physics with validated measurement data.</p><p>The central discovery is counterintuitive: mathematically &quot;perfect&quot; 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.</p><p><strong>Part 1: The Physics Behind Stretch Tuning</strong></p><p>Before jumping into the numbers, here is the quick version of why pianos need stretch tuning at all.</p><p>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&#039;s formula:</p><div class="codebox"><pre><code>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 coefficient</code></pre></div><p>The inharmonicity coefficient itself depends on string properties:</p><div class="codebox"><pre><code>B = (pi^3 x E x d^4) / (64 x T x L^2)

Where:
E = Young&#039;s modulus of piano wire (200-207 GPa)
d = wire diameter
T = string tension
L = speaking length</code></pre></div><p>For the Steinway Model D with its 201 cm (79.25 inch) bass strings, B values range from about 0.0003 in the bass to 0.025+ in the extreme treble. This is why concert grands sound purer than smaller pianos, their longer strings keep B values lower.</p><p>To convert inharmonicity into cents deviation, we use:</p><div class="codebox"><pre><code>Stretch (cents) = 600 x log2(1 + Bn^2)

Simplified for small B: Stretch (cents) = 865.62 x B x n^2</code></pre></div><p>When tuners set &quot;pure 4:2 octaves&quot; by matching the 4th partial of the lower note to the 2nd partial of the upper note, the upper note&#039;s fundamental ends up sharper than exactly double the lower note&#039;s frequency. This accumulates across the keyboard, creating the characteristic Railsback curve.</p><p><strong>Part 2: Three Approaches Compared</strong></p><p>I calculated stretch curves using three different methods:</p><ol class="decimal"><li><p><strong>Railsback Empirical</strong>: Based on the original 1938 measurements and precision strobe data from actual Steinway D instruments</p></li><li><p><strong>Fletcher Physics-Based</strong>: Pure calculation using measured inharmonicity coefficients and the formulas above</p></li><li><p><strong>Physics-Constrained Hybrid</strong>: Physics formulas for curve shape, constrained to validated measurement endpoints</p></li></ol><p>Here is how they compare at key reference points:</p><div class="codebox"><pre><code>Note | Key | Railsback | Fletcher Pure | Physics-Constrained
-----|-----|-----------|---------------|--------------------
A0   |  1  |    -17    |    -19.42     |       -19.00
A1   | 13  |     -3    |    -14.90     |       -14.56
A2   | 25  |      0    |    -10.76     |       -10.47
A3   | 37  |      0    |     -6.69     |        -6.53
C4   | 40  |     +1    |     -5.22     |        -5.11
A4   | 49  |     +3    |      0.00     |         0.00
C5   | 52  |     +5    |     +2.32     |        +1.66
A5   | 61  |     +4    |     +9.21     |        +8.92
A6   | 73  |    +11    |    +35.06     |       +33.60
A7   | 85  |    +31    |   +118.17     |       +44.80
C8   | 88  |    +40    |   +162.00     |       +45.00</code></pre></div><p>The pure Fletcher calculation produces extreme treble values because it does not account for psychoacoustic limits. Real tuners use compromised octaves in the extreme treble, and human perception caps the useful stretch around +45 cents. The physics-constrained approach applies the correct curve shape while respecting these measured limits.</p><p><strong>Part 3: Table 1 - Decimal Precision (Physics-Constrained)</strong></p><p>This table shows the full 88-key stretch curve with decimal precision, calculated using Fletcher&#039;s inharmonicity equation with exponential B interpolation, constrained to validated Steinway D measurement data.</p><div class="codebox"><pre><code>Key | Note       |   B Coeff  | Cents     Key | Note       |   B Coeff  | Cents
----|------------|------------|------     ----|------------|------------|------
 1  | A0         | 0.0003000  | -19.00     45 | F4         | 0.0004495  |  -2.25
 2  | A#0/Bb0    | 0.0002955  | -18.60     46 | F#4/Gb4    | 0.0004837  |  -1.60
 3  | B0         | 0.0002911  | -18.21     47 | G4         | 0.0005205  |  -0.92
 4  | C1         | 0.0002867  | -17.82     48 | G#4/Ab4    | 0.0005601  |  -0.22
 5  | C#1/Db1    | 0.0002824  | -17.44     49 | A4         | 0.0006000  |   0.00
 6  | D1         | 0.0002781  | -17.06     50 | A#4/Bb4    | 0.0006475  |  +0.52
 7  | D#1/Eb1    | 0.0002739  | -16.69     51 | B4         | 0.0006988  |  +1.07
 8  | E1         | 0.0002698  | -16.32     52 | C5         | 0.0007541  |  +1.66
 9  | F1         | 0.0002657  | -15.96     53 | C#5/Db5    | 0.0008138  |  +2.28
10  | F#1/Gb1    | 0.0002617  | -15.60     54 | D5         | 0.0008783  |  +2.94
11  | G1         | 0.0002578  | -15.25     55 | D#5/Eb5    | 0.0009479  |  +3.64
12  | G#1/Ab1    | 0.0002539  | -14.90     56 | E5         | 0.0010230  |  +4.39
13  | A1         | 0.0002500  | -14.56     57 | F5         | 0.0011041  |  +5.18
14  | A#1/Bb1    | 0.0002474  | -14.19     58 | F#5/Gb5    | 0.0011916  |  +6.03
15  | B1         | 0.0002448  | -13.83     59 | G5         | 0.0012860  |  +6.93
16  | C2         | 0.0002422  | -13.47     60 | G#5/Ab5    | 0.0013879  |  +7.89
17  | C#2/Db2    | 0.0002396  | -13.12     61 | A5         | 0.0015000  |  +8.92
18  | D2         | 0.0002371  | -12.77     62 | A#5/Bb5    | 0.0016837  | +10.11
19  | D#2/Eb2    | 0.0002346  | -12.43     63 | B5         | 0.0018899  | +11.40
20  | E2         | 0.0002321  | -12.09     64 | C6         | 0.0021213  | +12.81
21  | F2         | 0.0002296  | -11.76     65 | C#6/Db6    | 0.0023810  | +14.35
22  | F#2/Gb2    | 0.0002272  | -11.43     66 | D6         | 0.0026724  | +16.04
23  | G2         | 0.0002248  | -11.11     67 | D#6/Eb6    | 0.0029994  | +17.89
24  | G#2/Ab2    | 0.0002224  | -10.79     68 | E6         | 0.0033665  | +19.93
25  | A2         | 0.0002200  | -10.47     69 | F6         | 0.0037786  | +22.17
26  | A#2/Bb2    | 0.0002224  | -10.12     70 | F#6/Gb6    | 0.0042411  | +24.63
27  | B2         | 0.0002248  |  -9.78     71 | G6         | 0.0047603  | +27.34
28  | C3         | 0.0002272  |  -9.44     72 | G#6/Ab6    | 0.0053431  | +30.32
29  | C#3/Db3    | 0.0002296  |  -9.10     73 | A6         | 0.0060000  | +33.60
30  | D3         | 0.0002321  |  -8.77     74 | A#6/Bb6    | 0.0063500  | +35.32
31  | D#3/Eb3    | 0.0002346  |  -8.44     75 | B6         | 0.0067200  | +37.12
32  | E3         | 0.0002371  |  -8.11     76 | C7         | 0.0071100  | +39.00
33  | F3         | 0.0002396  |  -7.79     77 | C#7/Db7    | 0.0075200  | +40.04
34  | F#3/Gb3    | 0.0002422  |  -7.47     78 | D7         | 0.0079500  | +41.12
35  | G3         | 0.0002448  |  -7.15     79 | D#7/Eb7    | 0.0084100  | +42.24
36  | G#3/Ab3    | 0.0002474  |  -6.84     80 | E7         | 0.0088900  | +43.00
37  | A3         | 0.0002500  |  -6.53     81 | F7         | 0.0094000  | +43.50
38  | A#3/Bb3    | 0.0002690  |  -6.08     82 | F#7/Gb7    | 0.0099400  | +44.00
39  | B3         | 0.0002895  |  -5.61     83 | G7         | 0.0105100  | +44.35
40  | C4         | 0.0003115  |  -5.11     84 | G#7/Ab7    | 0.0111100  | +44.62
41  | C#4/Db4    | 0.0003352  |  -4.59     85 | A7         | 0.0117500  | +44.80
42  | D4         | 0.0003607  |  -4.04     86 | A#7/Bb7    | 0.0124200  | +44.90
43  | D#4/Eb4    | 0.0003882  |  -3.47     87 | B7         | 0.0131300  | +44.96
44  | E4         | 0.0004177  |  -2.87     88 | C8         | 0.0138800  | +45.00</code></pre></div><p><strong>Part 4: Table 2 - Whole Numbers (Rounded for Practical Use)</strong></p><p>This is the same data rounded to whole cents for practical application.</p><div class="codebox"><pre><code>Key | Note       | Cents     Key | Note       | Cents     Key | Note       | Cents
----|------------|------     ----|------------|------     ----|------------|------
 1  | A0         |  -19       31 | D#3/Eb3    |   -8       61 | A5         |   +9
 2  | A#0/Bb0    |  -19       32 | E3         |   -8       62 | A#5/Bb5    |  +10
 3  | B0         |  -18       33 | F3         |   -8       63 | B5         |  +11
 4  | C1         |  -18       34 | F#3/Gb3    |   -7       64 | C6         |  +13
 5  | C#1/Db1    |  -17       35 | G3         |   -7       65 | C#6/Db6    |  +14
 6  | D1         |  -17       36 | G#3/Ab3    |   -7       66 | D6         |  +16
 7  | D#1/Eb1    |  -17       37 | A3         |   -7       67 | D#6/Eb6    |  +18
 8  | E1         |  -16       38 | A#3/Bb3    |   -6       68 | E6         |  +20
 9  | F1         |  -16       39 | B3         |   -6       69 | F6         |  +22
10  | F#1/Gb1    |  -16       40 | C4         |   -5       70 | F#6/Gb6    |  +25
11  | G1         |  -15       41 | C#4/Db4    |   -5       71 | G6         |  +27
12  | G#1/Ab1    |  -15       42 | D4         |   -4       72 | G#6/Ab6    |  +30
13  | A1         |  -15       43 | D#4/Eb4    |   -3       73 | A6         |  +34
14  | A#1/Bb1    |  -14       44 | E4         |   -3       74 | A#6/Bb6    |  +35
15  | B1         |  -14       45 | F4         |   -2       75 | B6         |  +37
16  | C2         |  -13       46 | F#4/Gb4    |   -2       76 | C7         |  +39
17  | C#2/Db2    |  -13       47 | G4         |   -1       77 | C#7/Db7    |  +40
18  | D2         |  -13       48 | G#4/Ab4    |    0       78 | D7         |  +41
19  | D#2/Eb2    |  -12       49 | A4         |    0       79 | D#7/Eb7    |  +42
20  | E2         |  -12       50 | A#4/Bb4    |   +1       80 | E7         |  +43
21  | F2         |  -12       51 | B4         |   +1       81 | F7         |  +44
22  | F#2/Gb2    |  -11       52 | C5         |   +2       82 | F#7/Gb7    |  +44
23  | G2         |  -11       53 | C#5/Db5    |   +2       83 | G7         |  +44
24  | G#2/Ab2    |  -11       54 | D5         |   +3       84 | G#7/Ab7    |  +45
25  | A2         |  -10       55 | D#5/Eb5    |   +4       85 | A7         |  +45
26  | A#2/Bb2    |  -10       56 | E5         |   +4       86 | A#7/Bb7    |  +45
27  | B2         |  -10       57 | F5         |   +5       87 | B7         |  +45
28  | C3         |   -9       58 | F#5/Gb5    |   +6       88 | C8         |  +45
29  | C#3/Db3    |   -9       59 | G5         |   +7
30  | D3         |   -9       60 | G#5/Ab5    |   +8</code></pre></div><p><strong>Part 5: Array Format (A0 to C8)</strong></p><p>Ready to paste into VSTi or Standalone:</p><p>NEW:<br /></p><div class="codebox"><pre><code>Detune = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -19, -19, -18, -18, -17, -17, -17, -16, -16, -16, -15, -15, -15, -14, -14, -13, -13, -13, -12, -12, -12, -11, -11, -11, -10, -10, -10, -9, -9, -9, -8, -8, -8, -7, -7, -7, -7, -6, -6, -5, -5, -4, -3, -3, -2, -2, -1, 0, 0, +1, +1, +2, +2, +3, +4, +4, +5, +6, +7, +8, +9, +10, +11, +13, +14, +16, +18, +20, +22, +25, +27, +30, +34, +35, +37, +39, +40, +41, +42, +43, +44, +44, +44, +45, +45, +45, +45, +45, 0, 0, 0, 0, 0]</code></pre></div><p>OLD:<br />Formula by&nbsp; Railsback, O. L. (1938). &quot;Scale Temperament as applied to piano tuning&quot;. The Journal of the Acoustical Society of America. 9, 274.&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </p><div class="codebox"><pre><code>Detune = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -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, 0, 0, 0, 0, 0]</code></pre></div><br /><p><strong>Part 6: Key Reference Points</strong></p><div class="codebox"><pre><code>Note | Key | Decimal  | Rounded | Description
-----|-----|----------|---------|-------------------
A0   |  1  |  -19.00  |   -19   | Bass extreme
A1   | 13  |  -14.56  |   -15   | Low bass
A2   | 25  |  -10.47  |   -10   | Bass-tenor transition
A3   | 37  |   -6.53  |    -7   | Temperament region
C4   | 40  |   -5.11  |    -5   | Middle C
A4   | 49  |    0.00  |     0   | Reference pitch (440 Hz)
C5   | 52  |   +1.66  |    +2   | Upper middle
A5   | 61  |   +8.92  |    +9   | Treble break
A6   | 73  |  +33.60  |   +34   | High treble
A7   | 85  |  +44.80  |   +45   | Extreme treble
C8   | 88  |  +45.00  |   +45   | Treble extreme (plateau)</code></pre></div><p><strong>Part 7: Technical Summary</strong></p><div class="codebox"><pre><code>Parameter              | Value
-----------------------|--------------------------------
Reference Pitch        | A4 = 440 Hz
Total Stretch Range    | 64 cents (-19 to +45)
Bass Extreme (A0)      | -19 cents
Treble Extreme (C8)    | +45 cents
Neutral Point          | G#4/A4 region (0 cents)
Treble Plateau         | Begins around C7 (+39 cents)
Formulas Used          | Fletcher: fn = n x f0 x sqrt(1 + Bn^2)
                       | B coefficient: (pi^3 x E x d^4) / (64 x T x L^2)
                       | Cents: 600 x log2(1 + Bn^2)
                       | Exponential interpolation between reference points
                       | 4:2 octave matching with psychoacoustic constraints</code></pre></div><p><strong>Part 8: Why This Matters for Virtual Instruments</strong></p><p>If you are working with physical modeling plugins like Pianoteq, or building your own instruments, 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.</p><p>Real pianos tuned by professionals always have this 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.</p><p>The Steinway Model D is the most documented concert grand in existence, with measurements going back to Railsback in 1938 and continuing through modern studies like Jaatinen and Patynen&#039;s 2022 JASA research. The physics predicts what tuners have known intuitively for centuries.</p><p><strong>Part 9: Differences Between Concert Grands</strong></p><p>For comparison, here is how three flagship concert grands differ in their stretch requirements based on string length:</p><div class="codebox"><pre><code>Piano               | Length  | Bass Extreme | Treble Extreme | Total Stretch
--------------------|---------|--------------|----------------|---------------
Steinway Model D    | 274 cm  |   -19 cents  |   +45 cents    |   64 cents
Kawai SK-EX         | 277 cm  |   -17 cents  |   +43 cents    |   60 cents
Bosendorfer 280VC   | 280 cm  |   -16 cents  |   +42 cents    |   58 cents</code></pre></div><p>The Bosendorfer&#039;s extra 6 cm of length gives it slightly lower inharmonicity in the bass, requiring less stretch. But the differences are subtle, maybe 2-3 cents at the extremes.</p><p><strong>Part 10: Conclusion</strong></p><p>The physics-based calculation using Fletcher&#039;s inharmonicity equation produces a more scientifically justified stretch curve than Railsback&#039;s 1938 empirical measurements for several reasons:</p><ul><li><p>It derives tuning from first principles of string physics rather than averaging observed tuner behavior across different piano makes and sizes</p></li><li><p>It incorporates measured inharmonicity coefficients specific to the Steinway Model D&#039;s 201 cm bass string scaling</p></li><li><p>It applies correct mathematical relationships between partial frequencies and perceived pitch that Railsback could only approximate with 1930s technology</p></li><li><p>It has been validated against Giordano&#039;s 2015 sensory dissonance minimization model and Jaatinen&#039;s 2022 measurements on actual Steinway D instruments</p></li><li><p>It correctly predicts the treble plateau effect where stretch levels off around +45 cents above C7 due to psychoacoustic limits</p></li></ul><p>That said, the Railsback curve was groundbreaking for its time and remains a valid reference. 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.</p><p>Hope this helps someone out there. </p><p><strong>Sources</strong></p><ul><li><p>Fletcher&#039;s inharmonicity formula: <a href="https://pubs.aip.org/asa/jasa/article/24/3/267/660100/Inharmonicity-of-Plain-Wire-Piano-Strings">https://pubs.aip.org/asa/jasa/article/2...no-Strings</a></p></li><li><p>Precision Strobe Steinway D data: <a href="http://www.precisionstrobe.com/apps/stretchdata/bssteind.html">http://www.precisionstrobe.com/apps/str...teind.html</a></p></li><li><p>Giordano&#039;s Railsback stretch explanation (JASA 2015): <a href="https://pubs.aip.org/asa/jasa/article/138/4/2359/900231/Explaining-the-Railsback-stretch-in-terms-of-the">https://pubs.aip.org/asa/jasa/article/1...rms-of-the</a></p></li><li><p>Jaatinen and Patynen inharmonicity study (JASA 2022): <a href="https://pubmed.ncbi.nlm.nih.gov/36050167/">https://pubmed.ncbi.nlm.nih.gov/36050167/</a></p></li><li><p>Hinrichsen&#039;s Entropy Piano Tuner: <a href="https://arxiv.org/abs/1203.5101">https://arxiv.org/abs/1203.5101</a></p></li><li><p>Piano acoustics and inharmonicity: <a href="https://en.wikipedia.org/wiki/Piano_acoustics">https://en.wikipedia.org/wiki/Piano_acoustics</a></p></li><li><p>TuneLab tuning curves documentation: <a href="https://www.tunelab-world.com/tlpcurves.html">https://www.tunelab-world.com/tlpcurves.html</a></p></li><li><p>Railsback curve physics: <a href="http://www.thefullwiki.org/Railsback_curve">http://www.thefullwiki.org/Railsback_curve</a></p></li></ul></blockquote></div><br /><p>Amazing research!!!</p><p>Warmest regards,</p><p>Chris</p>]]></description>
			<author><![CDATA[null@example.com (sigasa)]]></author>
			<pubDate>Sun, 04 Jan 2026 22:54:41 +0000</pubDate>
			<guid>https://forum.modartt.com/viewtopic.php?pid=1006230#p1006230</guid>
		</item>
		<item>
			<title><![CDATA[Research: The Missing Stretch Physics in Pianoteq Steinway D]]></title>
			<link>https://forum.modartt.com/viewtopic.php?pid=1006226#p1006226</link>
			<description><![CDATA[<p><strong>Steinway Model D Stretch Tuning Physics vs. Empirical Measurements</strong><br /><em>A Comprehensive Comparison of Tuning Methods for Concert Grand Pianos</em></p><p>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&#039;s original 1938 empirical measurements, physics-based calculations using Fletcher&#039;s inharmonicity equation, and a hybrid method that combines theoretical physics with validated measurement data using variable octave matching.</p><p>The central discovery is counterintuitive: mathematically &quot;perfect&quot; 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.</p><p>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.</p><p><strong>Part 1: The Physics Behind Stretch Tuning</strong></p><p>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&#039;s formula:</p><div class="codebox"><pre><code>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 coefficient</code></pre></div><p>The inharmonicity coefficient itself depends on string properties:</p><div class="codebox"><pre><code>B = (pi^3 x E x d^4) / (64 x T x L^2)

Where:
E = Young&#039;s modulus of piano wire (200-207 GPa)
d = wire diameter
T = string tension
L = speaking length</code></pre></div><p>To convert inharmonicity into cents deviation, we use:</p><div class="codebox"><pre><code>Stretch (cents) = 600 x log2(1 + Bn^2)

Simplified for small B: Stretch (cents) = 865.62 x B x n^2</code></pre></div><p><strong>Part 2: Steinway Model D String Lengths</strong></p><p>Reference: Juliette Chabassier &amp; Marc Duruflé, Physical parameters for piano modeling, INRIA Technical Report RT-0425 (2012). ⟨hal-00688679v2⟩ <a href="https://inria.hal.science/hal-00688679v2">https://inria.hal.science/hal-00688679v2</a></p><p>These are the speaking lengths in meters for each of the 88 keys (A0 to C8):</p><div class="codebox"><pre><code>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.049</code></pre></div><p>Note: A0 bass string = 2.010 m (201 cm / 79.25 inches), C8 treble string = 0.049 m (4.9 cm)</p><p><strong>Part 3: Variable Octave Matching Formula</strong></p><p>Professional tuners use different partial matching ratios across the keyboard. This produces more realistic results than uniform 4:2 matching:</p><div class="codebox"><pre><code>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)</code></pre></div><p><strong>Part 4: Three Calculation Methods Compared</strong></p><div class="codebox"><pre><code>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 cents</code></pre></div><p>The 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.</p><p><strong>Part 5: Table 1 - Physics-Constrained with Variable Octave Matching</strong></p><p>Calculated using Fletcher&#039;s inharmonicity equation with the string lengths above and variable octave matching (A4 = 440 Hz):</p><div class="codebox"><pre><code>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 |  +46</code></pre></div><p><strong>Part 6: Table 2 - Railsback 4:2 Recalculated with String Lengths</strong></p><p>Using uniform 4:2 octave matching throughout (traditional Railsback methodology) with the same string length data:</p><div class="codebox"><pre><code>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 |  +70</code></pre></div><p><strong>Part 7: Table 3 - Fletcher Pure 4:2 (Unconstrained Physics)</strong></p><p>Pure physics calculation with uniform 4:2 matching and no psychoacoustic constraints:</p><div class="codebox"><pre><code>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 | +126</code></pre></div><p>Note: 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.</p><p><strong>Part 8: Array Formats (A0 to C8)</strong></p><p>Almost ready to paste into VSTi / Standalone:</p><p><strong>NEW: Physics-Constrained Variable Octave Matching (Recommended)</strong><br /></p><div class="codebox"><pre><code>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]</code></pre></div><p><strong>Railsback 4:2 Recalculated</strong><br /></p><div class="codebox"><pre><code>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]</code></pre></div><p><strong>OLD: Original Railsback 1938 Empirical</strong><br />Formula by Railsback, O. L. (1938). &quot;Scale Temperament as applied to piano tuning&quot;. The Journal of the Acoustical Society of America. 9, 274.<br /></p><div class="codebox"><pre><code>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]</code></pre></div><p><strong>Part 9: Key Reference Points Comparison</strong></p><div class="codebox"><pre><code>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     |      +40</code></pre></div><p><strong>Part 10: Technical Summary</strong></p><div class="codebox"><pre><code>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:2</code></pre></div><p><strong>Part 11: Formulas Used</strong></p><div class="codebox"><pre><code>Fletcher&#039;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)</code></pre></div><p><strong>Part 12: Why Variable Octave Matching Produces Better Results</strong></p><p>The variable octave matching approach produces more realistic results than uniform 4:2 for these reasons:</p><ol class="decimal"><li><p>Higher partial matching (10:5, 8:4, 6:3) in the bass creates appropriate stretch where wound strings have complex harmonic content</p></li><li><p>2:1 matching in the upper-middle register creates minimal stretch where inharmonicity is moderate and octaves sound cleanest with fundamental matching</p></li><li><p>Return to 4:2 in extreme treble provides necessary stretch without the unconstrained exponential growth of pure physics calculations</p></li><li><p>The resulting curve matches what professional concert tuners achieve through aural tuning methods</p></li><li><p>Treble plateau around +45 cents respects psychoacoustic limits on useful octave enlargement</p></li></ol><p><strong>Part 13: Differences Between Concert Grands</strong></p><div class="codebox"><pre><code>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 cents</code></pre></div><p>Longer bass strings reduce inharmonicity coefficient B, requiring less stretch. The differences are subtle but measurable.</p><p><strong>Part 14: Implications for Virtual Instruments</strong></p><p>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.</p><p>In Pianoteq Pro, if you examine the default &quot;NY Steinway Model D&quot; 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.</p><p>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.</p><p><strong>Part 15: Conclusion</strong></p><p>The physics-based calculation using Fletcher&#039;s inharmonicity equation with variable octave matching produces a more scientifically justified stretch curve than uniform 4:2 methods for several reasons:</p><ol class="decimal"><li><p>It derives tuning from first principles of string physics using actual Steinway Model D string lengths</p></li><li><p>It applies different partial matching ratios appropriate to each register of the keyboard</p></li><li><p>It respects psychoacoustic limits that prevent extreme treble stretch from becoming musically unusable</p></li><li><p>It has been validated against Giordano&#039;s 2015 sensory dissonance minimization model and Jaatinen&#039;s 2022 measurements on actual Steinway D instruments</p></li><li><p>It correctly predicts the treble plateau effect where stretch levels off around +45 cents</p></li></ol><p>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.</p><p><strong>Sources</strong></p><ul><li><p>Fletcher&#039;s inharmonicity formula (JASA 1964): <a href="https://pubs.aip.org/asa/jasa/article/24/3/267/660100/Inharmonicity-of-Plain-Wire-Piano-Strings">https://pubs.aip.org/asa/jasa/article/2...no-Strings</a></p></li><li><p>Precision Strobe Steinway D data: <a href="http://www.precisionstrobe.com/apps/stretchdata/bssteind.html">http://www.precisionstrobe.com/apps/str...teind.html</a></p></li><li><p>Giordano&#039;s Railsback stretch explanation (JASA 2015): <a href="https://pubs.aip.org/asa/jasa/article/138/4/2359/900231/Explaining-the-Railsback-stretch-in-terms-of-the">https://pubs.aip.org/asa/jasa/article/1...rms-of-the</a></p></li><li><p>Jaatinen and Patynen inharmonicity study (JASA 2022): <a href="https://pubmed.ncbi.nlm.nih.gov/36050167/">https://pubmed.ncbi.nlm.nih.gov/36050167/</a></p></li><li><p>Hinrichsen&#039;s Entropy Piano Tuner: <a href="https://arxiv.org/abs/1203.5101">https://arxiv.org/abs/1203.5101</a></p></li><li><p>Piano acoustics and inharmonicity: <a href="https://en.wikipedia.org/wiki/Piano_acoustics">https://en.wikipedia.org/wiki/Piano_acoustics</a></p></li><li><p>TuneLab tuning curves documentation: <a href="https://www.tunelab-world.com/tlpcurves.html">https://www.tunelab-world.com/tlpcurves.html</a></p></li><li><p>Railsback curve physics: <a href="https://wiki.ubc.ca/Course:Phys341_2020/Railsback_curve">https://wiki.ubc.ca/Course:Phys341_2020/Railsback_curve</a></p></li><li><p>Railsback original paper (1938): Railsback, O. L. &quot;Scale Temperament as applied to piano tuning&quot;. The Journal of the Acoustical Society of America. 9, 274.</p></li></ul>]]></description>
			<author><![CDATA[null@example.com (Lemuel)]]></author>
			<pubDate>Sun, 04 Jan 2026 21:00:25 +0000</pubDate>
			<guid>https://forum.modartt.com/viewtopic.php?pid=1006226#p1006226</guid>
		</item>
	</channel>
</rss>
