やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

音階を算出する(平均律、純正律)

十二平均律が一般的かつ簡単そう。

参考

奥が深すぎる。

十二平均律

簡単に算出できそう。

C
C
ド# C#
D
レ# D#
E
ファ F
G
ソ# G#
A
ラ# A#
B
  • ラ(A)の音が基準。440Hzらしい
  • ラ(A)の音から十二平均律を使って他の音を算出する
    • この音階すべての範囲を「1オクターブ」という
    • 1オクターブを12等分する

十二平均律

2**(n/12)
  • n=1〜12の正数

ラ(A)の音440Hz

440 * (2**(n/12))
  • n=1〜12の正数
key_name = ['C','C#','D','D#','E','F','F#','G','G#','A','A#','B']
key_diff = [-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2]
key_frequency = {}
for key,diff in zip(key_name,key_diff):
    key_frequency[key] = 440 * math.pow(2,diff * (1/12.0))

オクターブ高めるには各周波数を整数倍すればいいらしい。

所感

物理や音楽の知識なんて何もないから受け売りやコピペしかできない。