音色を変える

次に少し明るい音にしてみよう。

入力

 

a=(1-exp(-t/0.01));
r=exp(-t/0.3);
f=440;
m=sin(2*%pi*f*t)*2;
x=a.*r.* sin(2*%pi*f*t+m);
play(x);
clf(); graph1(x);


結果

ビーンという少し濁った音になる。

 

--- m の値を変えて音色の変化を確かめよう ---

mにsin関数や指数関数をかけるとさらに複雑な音になる。

この時掛け算の記号は .* を使うこと。

入力

 

a=(1-exp(-t/0.01));
r=exp(-t/0.3);
f=440;
m=sin(2*%pi*f*t).*sin(20*t)*2;
x=a.*r.* sin(2*%pi*f*t+m);
play(x);
clf(); graph(x);


結果

ビーンという少し濁った音になる。

前に作ったコード進行のプログラムに音色をつけてみよう


// program5 -- 2声の音色を変える
exec("initialize.sce");
// メロディ1
for i=0:63
    a=(1-exp(-t/0.01));
    r=exp(-t/0.3);
    s=int(i*fs/4);
    k=i-int(i/4)*4;
    j=k*2; 
    n=int(j/7*12 + 0.4);
    f=440*2^(n/12);
    m=sin(2*%pi*f*t).*sin(20*t)*1; 
    x(w+s+1)=x(w+s+1)+a.*r.* sin(2*%pi*f*t+m)*.2;
end
//メロディ2
for i=0:63
    a=(1-exp(-t/0.001));
    r=exp(-t/0.1);
    s=int(i*fs/4);
    k=i-int(i/8)*8;
    j=int(k/2)*3+7; 
    n=int(j/7*12 + 0.4);
    f=440*2^(n/12);
    m=sin(3*%pi*f*t).*sin(4*t)*2; 
    x(w+s+1)=x(w+s+1)+a.*r.* sin(2*%pi*f*t+m)*.2;
end
//再生
play(x);
           

赤色の部分の数値を変更すると、様々な音色に変化することを確認しよう。