ピタゴラス音律と純正律・平均律の数学
ドレミの起源と和音の美学 — 整数比 3/2(完全5度)とピタゴラスコンマの矛盾
- 1
- 古代ギリシャのピタゴラスが弦をはじいて発見した『弦の長さが 2:3(周波数が 3:2)のとき、もっとも美しく響き合う(完全5度:ドとソ)』という音楽の基本原理
- 2
- 3/2 倍を累積してオクターブ(2倍)で割ることで、ピアノの白鍵・黒鍵の12音階すべてが数学的に生み出される
- 3
- しかし完全5度を12回積み重ねても となり、(7オクターブ)と完全一致せず、わずかな隙間『ピタゴラスコンマ』が生じるため、人類は現代の平均律(公比 )を編み出した
なぜこれを学ぶのか? — 現実社会とテクノロジーでの価値
なぜ生まれたのか?
『音楽は耳で聴く感情のもの』と思われがちですが、その根底にある音階や和音の美しさはすべて分数の整数比という純粋な数学によって支配されています。Web Audio APIを活用して、数式の比率が実際にどんな『心地よい和音』として聴こえるのかをブラウザ上で体感できます。
身につく武器・思考力
周波数と波長・比率の直感的理解、無理数 $\sqrt[12]{2}$(等比数列)の必然性の把握、音響信号処理への導入
実社会・ITでの活躍現場
- •シンセサイザー・DTM音楽制作ソフト(Logic Pro, Ableton Live)のマイクロチューニング・調律設定
- •クラシック管弦楽団やアカペラ合唱におけるリアルタイム純正律ハーモニーの響き合わせ
- •デジタルオーディオワークステーション(DAW)のピッチ補正(Auto-Tune)アルゴリズム
- •ゲーム音響(サウンドプログラミング)における動的インタラクティブBGMの和音生成
Layer 1 — 直感・シミュレーター
音階ボタン(ド・レ・ミ・ファ・ソ・ラ・シ・高ド)を選んで『音を聴く』ボタンを押すと、Web Audio APIがその周波数の正弦波を生成してスピーカーから再生します。『基音(ド)と和音で鳴らす』をONにすると、完全5度(ソ: 3/2)が濁りなく澄み渡って響く感動を耳で直接確かめられます。
C (ド) — 完全1度(ユニゾン)
ピタゴラスは弦の長さを 2/3(周波数 3/2 倍) に短縮すると、もっとも調和して心地よく響く「完全5度(ドとソ)」が生まれることを発見しました。
3/2 倍を12回繰り返してオクターブを一周すると $(3/2)^12 \approx 129.746$ となり、$2^7 = 128$(7オクターブ)と一致せず、わずかなズレ(比率約 1.01364)が生じます。これが現代の「平均律」が考案された数学的理由です。
完全5度(3/2倍)を12回積み重ねたとき、7オクターブ(2^7 = 128倍)との間に生じるわずかなズレを何と呼ぶか?
Layer 2 — 定義・受験・証明
定義
**ピタゴラス音律(Pythagorean Tuning)**とは、基音の周波数に対して完全5度(周波数比 )の整数比を繰り返し乗算し、オクターブ(周波数比 )で除算して の範囲に正規化することで12音階を生成する調律法である。
公式・数理モデル
証明・導出
**ピタゴラスコンマ(音律の不完全性)の数論的証明(素因数分解の一意性)** 完全5度(周波数比 )を 回重ねた音と、オクターブ(周波数比 )を 回重ねた音が完全に同一の音程に一致すると仮定する:
両辺に を掛けると:
算術の基本定理(素因数分解の一意性)より、 は素因数3のみを持ち、 は素因数2のみを持つ。 奇数である左辺と偶数である右辺が自然数 において等しくなることは数学的にあり得ない。 したがって、完全5度を何度積み重ねても、オクターブと完全一致して円環が閉じることは絶対にない。 12回重ねたときもっとも惜しく近似するが:
この比率 が『ピタゴラスコンマ』と呼ばれるズレである(Q.E.D.)。現代の平均律はこの隙間を12等分して全半音を等比数列 で均等に割り振ることで解決している。
押さえておきたいポイント
- 完全5度(3/2)と完全4度(4/3)は非常に美しく調和するが、ピタゴラスの長3度(81/64 ≈ 1.2656)は純正律の長3度(5/4 = 1.25)より高く、和音で濁りが生じる
- 平均律はどの調でも自由に転調できる万能性を持つ代償として、完全5度や長3度がわずかに濁る妥協の上に成り立っている
- 数学の素因数分解の不一致が、人類数千年の音楽史と楽器設計の進化を駆動した
本トピックの内容・数理モデルは、文部科学省学習指導要領(算数・数学・情報)および国際標準カリキュラムに準拠し、エンジニアリング現場の実装事例と照らし合わせてMath World Lab編集部により検証・作成されています。
Layer 3 — 工学応用・現場実装
ピタゴラス音律 vs 平均律の周波数・セント差分計算コード
基音周波数(A4=440Hz)からピタゴラス音律と12平均律の各音階の周波数およびセント誤差(100セント=半音)を比較出力するPythonコードです。
1import numpy as np23# A4 = 440 Hz を基準とする4f_base = 440.05notes = ["C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B"]67# 12平均律 (Equal Temperament: 2^(semitone / 12))8# A4 をセミトーン9としてC4からの音階を算出9freqs_et = {note: f_base * (2 ** ((i - 9) / 12.0)) for i, note in enumerate(notes)}1011# ピタゴラス音律の主要音(C基準)12pythagorean_ratios = {13 "C": 1.0,14 "D": 9.0 / 8.0,15 "E": 81.0 / 64.0,16 "F": 4.0 / 3.0,17 "G": 3.0 / 2.0,18 "A": 27.0 / 16.0,19 "B": 243.0 / 128.0,20}2122c4_freq_et = freqs_et["C"]23print(f"基準 C4 (平均律): {c4_freq_et:.2f} Hz\n")24print(f"{'音名':<4} | {'ピタゴラス (Hz)':<15} | {'平均律 (Hz)':<12} | {'誤差 (Cent)':<10}")25print("-" * 50)2627for note, ratio in pythagorean_ratios.items():28 f_pyth = c4_freq_et * ratio29 f_eq = freqs_et[note]30 cents = 1200.0 * np.log2(f_pyth / f_eq)31 print(f"{note:<4} | {f_pyth:<15.2f} | {f_eq:<12.2f} | {cents:+6.2f} cent")
次に学ぶならコレ!おすすめトピック
この単元と深い繋がりを持つ、あわせて学ぶと理解が深まるおすすめ単元