Sing along scilab

(scilabで歌おう)

fs=44100;
w=0:fs;
t=w/44100;
t1=0.1;
n=[0,4,7,4,0,4,7,4,12,7,12];
b=[0,1,2,3,4,5,6,7,8,10,12]*0.1;
l=[1,1,1,1,1,1,1,1,1,1,4]*0.05;
x=zeros(1:(44100*4));
for i=1:length(n)
p=int(b(i)*fs)+1;
f=440*2^(n(i)/12);


v=exp(-t/l(i)) * 0.1;
s=(sin(2*%pi*3*f*t)) .* v;
x(p+w)=x(p+w)+s;
end
sound(x,fs);

nは音符(12音音階)

bは音符の位置(秒)

lは音符の長さ(秒)

で、これらの配列にデータを入力すればすべての曲が演奏できる。

なお、平均律以外の音も演奏可能だ。