不協和音の研究
周波数aとbの音波を混ぜると図1のようなうなり波形になる。和音は、我々の耳に届くときこの波形になっている。つまり、この波形で考えなくてはいけない。
図1 うなり波形
(cは被変調波の周波数、dはうなり周波数)
■2音の場合
このことは、正弦波に関する「加法定理」から出てくる。
a>bとすると、
c=(a+b)/2 ーー(1)
d=(aーb)/2 ーー(2)
a:b=A:B ーー(3)
とすれば、
c/d=(A+B)/(AーB) ーー(4)
c:dが整数比n:mの時、mの周期があります。
c:d=n:1のばあいもっともいい。
これが協和音の条件であると思われる。逆は不協和音であることが次の資料からわかる。周期がない。この条件から、A,Bは簡単な整数で、差が1がいい。そうでないと(4)式が整数になりづらい、といえる。
■3音の場合
周波数がe、f、gの場合、各周期は、
Te=1/e
Tf=1/f
Tg=1/g
ここで、
Ne/e=Nf/f=Ng/g
なる最小のNe,Nf,Ngをかんがえると、
T=Ne/e=Nf/f=Ng/g
が和音の周期となる。
e:f:g=E:F:G
とし、E,F,Gを最も簡単な比とすれば、
E/e=F/f=G/g
だから、
Ne=E
Nf=F
Ng=g
となり、E,F,Gが小さいほど、周期は小さくなる。
これはいい和音の条件である、コレが長いと、小さなうねりだけではなく、大きなうねりが生じてしまう。不協和音である。
■音階の周波数
12音調律(平均律)
より、
【初心者向け】純正律と平均律の違い【音大卒が教える】 - YouTube
より、
■参考動画
和音が気持ち良い数値的な理由〜音楽と物理をつなぐ - YouTube
から次のことが言える。
■例1
a=466
b=440
比率:簡単ではない
c=453
d=13 ーー>小さすぎる
c/d=34.8461538ーー>整数にならない
ーー>不協和音
■例2
a=440
b=352
比率:5:4
c=396
d=44
c/d=9
ーー>協和音
■例3
a=880
b=440
比率:2:1
c=660
d=220
c/d=3
ーー>協和音
■例4
a=528
b=440
比率:6:5
c=484
d=44
c/d=11
ーー>協和音
■とりあえずの結論
①合成波のうなり周波数はある程度大きくないといけない。そうでないと、うなりが気持ち悪い。
②合成波の周波数とうなり周波数の比c/dは、簡単な整数でなければいけない。そうでないと周期性がなくなる。
③c、dの周期の最小公倍数が周期になります。必ず周期はありますが、長い周期となります。
うねりが、さらに長い周期でうねる!
2重うねりです。ーー>不協和音
④3音以上では、それらの最も簡単な整数比*波長が和音の周期となる。
■c:dが整数比になっていない場合、どうなるかを以下に示す。
スケール・ビジュアライザー~和音の合成波形を分析 (asahi-net.or.jp)
によると、ドとミの和音の波形は下になる。
図2 ピタゴラス調律 c:dが整数比
上の動画ではこうなる
図3 12音調律 c:dが整数比ではない
上の動画ではこうなる
12音調律では、c:dが整数比でないため、うなり波形は周期的になっていない。これが不協の原因なのかもしれない。
■3音の場合 以下純正律で
ドミソーー>周期的ーー>協和音
f1=264
f2=330
f3=396
参考 ドミーー>周期的ーー>協和音
f1=264
f2=330
ドミラーー>周期的ではないーー>不協
f1=264
f2=330
f3=440
長い周期で見ると、周期がある。
レファシーー>周期的ではないーー>不協
f1=297
f2=352
f3=495
ドファソ周期的ーー>協和音
f1=264
f2=352
f3=396
ドミソシ周期的ーー>協和音
f1=264
f2=330
f3=396
f4=495
以下12音律で
■プログラム
REM
REM
REM
DIM v(100000),v1(100000),v2(100000),v3(100000)
DIM vv(100000),vvv(100000),vvvv(100000),d(100000)
LET n=1000
LET f1=264
LET f2=330
LET f3=396
LET k1=2*PI*f1
LET k2=2*PI*f2
LET k3=2*PI*f3
LET MAX=0
SET WINDOW 0,n,-3,3
FOR i=1 TO n
LET dt=0.00005
LET v1(i)=SIN(k1*dt*i)
LET v2(i)=SIN(k2*dt*i)
LET v3(i)=SIN(k3*dt*i)
LET v(i)=v1(i)+v2(i)
LET v(i)=v(i)+v3(i)
NEXT i
FOR I=2 TO n
PLOT LINES: i, v(i);
NEXT I
END