エコーをかける

最後にちょっとエコーをかけてみよう。以下の計算をすると、xに残っている音にエコーをかけたた音を計算し、結果をw2に代入する。


p1=log(20*t+1)*500+sin(t);
p2=exp(-100000*(sin(p1)^2)) * 0.2;
w2=convol(p2 .* exp(-t* 4.0),x);
play(w2);

エコーをかけているのは、


w2=convol(p2 .* exp(-t* 4.0),x);

という部分だ。たとえば、

 

この p2 はこんな波形になっている。


graph(p2);

 

この波形にexp(-t* 4.0)を乗算すると以下のようになる。

yahoo.wav というファイルをダウンロードして、 以下のプログラムで再生することができるが、


x=loadwave("yahoo.wav");
play(x);

ここで以下の計算をして、4.0の部分を様々な値に変更すると、エコーの長さが変化する。


play(convol(p2 .* exp(-t* 4.0),x))