メロディ
音楽では繰り返しを使うことが多い。
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.
-->