音の高さ
再度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オクターブ音があがる。