音の高さ

再度sin関数で音を作る。

x=sin(2*%pi*1000*t)*0.1;
play(x);

この波形をグラフ表示する。


graph1(x);


するとこんなグラフが表示された。

この時、横軸は「秒」をあらわしているが、0.000から0.010の間に10個の波がある。このことから以下のことがわかる。

0.01秒の間10個の波がつまっている。

1秒間には1000個の波がある。

1個の波は 1/1000秒の長さである。

この波の数を「周波数」と呼び、Hz(ヘルツ)であらわす。

(このことは高校の物理で習った人もいると思う)

1秒間に1000回の波があれば1000Hz(ヘルツ)

1秒間に3000回の波があれば3000Hz(ヘルツ)

となる。

では、2000Hzの音を作ってみよう。1000のところを2000にすればよい。


x=sin(2*%pi*2000*t)*0.1;
sound(x,fs);


このとき、1オクターブ上の音になった。

法則: 2000Hzは1000Hzの1オクターブ上の音になる。

問題: では1000アップして3000Hzにするとどうなるだろうか?


x=sin(2*%pi*3000*t)*0.1;
sound(x,fs);


1オクターブ上の音にはならず、音程が3度半上の音になった。

4000Hzにすると、


x=sin(2*%pi*4000*t)*0.1;
sound(x,fs);


2000Hzの1オクターブ上の音になる。

1000Hzと2000Hz 1オクターブ

2000Hzと3000Hz 5度程度

2000Hzと4000Hz 1オクターブ

法則2: 周波数は「2倍」になる毎に1オクターブ音があがる。