音楽の小理屈

フレット計算


フレット間隔を分数で表す

平均律の半音の振動比は、そのまま、弦長の比になります。今ならば、(1/2)12を電卓で計算すれば良いのですが、昔は電卓など無いので、簡単な分数比で近似してフレット楽器の製作をしていました。

無理数を有理数(分数)で表すなど、無意味だと書いてあった推理小説があったのですが、実用上差し支えの無い値を求めることは、十分実用的なことだったのです。

半音の振動比を整数比で近似する式は次のとおりです。

(n/m)12=1/2

これを変形して、

(n/m)*21/12=1

左辺の値を評価して、1に近いものを選べばよいことになります。

整数比表(1-1000)
n/m 誤差(cent)

左の表は、誤差 1cent(半音の1/100)以内で、最小の誤差の値を分母の小さい方から求めたものです。計算の範囲は分母を1-1000としました。

現実の楽器で使用される値は、この表の 17/18 です。誤差は半音あたり、0.1cent(1/1000半音)。オクターブでおよそ 1cent です。工作精度や、他の部分の誤差など考えると十分すぎるほどの値です。

ある長さの弦長があれば、その 17/18 の位置が次のフレットの位置となります。それをさらに17/18すれば、次が求まり…といった具合で決めることが出来ます。これは学校で習った、コンパスと定規を使った図形問題の範囲で、かつては、実際に作図してフレット図を作っていたようです。

仮に 17/18 より精度の高い値、例えば、50/53 を使うと理論的な精度は上がりますが、繰り返し作図(53等分を作る)の誤差の方が高くなるので、返って実用的でなくなりそうです。

整数比表(1000-10000)
n/m 誤差(cent)
1009/10690.9999983743765473-0.000234528079989157
1194/12650.9999991578379436-0.0001214983534035402
1379/14610.9999997310893006-0.00003879561845927012
1564/16571.000000168725370.000024341923388831465
2943/31180.9999999636624137-0.000005242405646685395
4507/47751.00000003482248040.000005023821898876984
7450/78931.00000000671186489.683174089728285e-7

ちなみに、左の表は、同じ計算を1000-10000の範囲までしたもの(スクリプトが遅いので、元の表に入れられませんでした)。最後の 7450/7893 なんて、ものすごい精度ですね。百万分の一centの誤差ですが、4桁の計算だけです。関数電卓を使わなくても計算できそうです。


実際のフレット位置の計算

弦長L= mm
フレット番号ブリッジからの位置(mm)

現在は計算機という文明の利器があるので、理論的なフレット位置は簡単に計算できます。計算式は弦長を L 、フレット位置を n (開放弦が0)とすれば、ブリッジからの長さは、

nlen = 2(12-n)/12*L/2

となります。

左の表は弦長 650mm に対応したブリッジからのフレット位置を24フレットまで求めたものです。弦長の欄に値を入れ、「再計算」を押せば、任意の弦長に対して計算できます。

デフォルトの 650mm はクラシックギターの標準的な値です。実際の楽器では 630mm から 650mm の間にあるようです。


ついでに円周率を分数で表すと

n/m計算値|誤差|

ついでに円周率を分数で近似する計算をしてみました。左の表は分母が1-1000の範囲で最小の誤差の値を分母の小さい方から求めたものです。

πの値は、およそ、 (Javascript での値)。

1/1000ぐらいの精度でよければ、22/7が有効です。

表で一番最後の 355/113 で、誤差は百万分の一より小さくなっています。十分に実用的な値なので、昔はこの値を使っていたそうです。

355/113は非常に優秀で、この後、分母を十万まで拡げて計算して最初に355/113の精度を上回るのが、52163/16604 = 3.141592387376536で、この誤差が 2.662132572162079e-7。十万までの間で最も精度が高いのが、312689/99532 = 3.1415926536189364で、誤差は 2.914335439641036e-11 となります。

メニューへ戻る
アルゴ算法堂へ戻る