メロディ

音楽では繰り返しを使うことが多い。

n=i-int(i/4)*4

という式ででnを4個毎にくりかえすことができる。

i 0 1 2 3 4 5 6 7 8 9 10
n 0 1 2 3 0 1 2 3 0 1 2

 


exec("initialize.sce");
for i=0:63
    s=int(i*fs/4);
    k=i-int(i/4)*4;
    m=k*2; 
    n=int(m/7*12 + 0.4);
    f=440*2^(n/12);
    x(w+s+1)=x(w+s+1)+a.*r.*sin(2*%pi*f*t)*.1; 
end
play(x);

メロディの繰り返し

以下のようにscilabでは数字の列を変数に保存できる。これを配列と呼ぶ。

 

-->p=[0,23,4,2];

-->p(2)
ans =

23.

 

これをパターンを繰り返すことができる。


exec("initialize.sce");
p=[2,6,4,6];
for i=0:63
    s=int(i*fs/4);
    k=i-int(i/4)*4;
    m=p(k+1); 
    n=int(m/7*12 + 0.4);
    f=440*2^(n/12);
    x(w+s+1)=x(w+s+1)+a.*r.*sin(2*%pi*f*t)*.1; 
end
play(x);

注意: 配列を使うと、以下のようなエラーが出ることがある。p(0)やp(4)など、存在しない要素を使用しようとすると、エラーが表示されて実行が止まる。

-->p=[1,2,3];

-->p(0)
!--error 21
Invalid index.



-->p(4)
!--error 21
Invalid index.



-->p(3)
ans =

3.

-->