デジタルオルゴール

数式を変えることでコードも変化させることができる。

数式でコードもあらわしてしまえば、簡単なプログラムで変化に富んだメロディを作ることもできる。

program4.sce


// program4.sce 電子オルゴール
exec("initialize.sce")
for b=[1,2,4,8]
    for i=0:b:127
        s=int(i*fs/8);
        n=i - int(i/8) * 8+3 - b*int(i/16+2)/2;
        f=440*2^(int(n/7*12+.7)/12);
        x(s+w+1)=x(s+w+1)+a.*r.*sin(2*%pi*f*t)*0.1;
    end
end
play(x);
           

赤色の部分の数式は数値を変化させるといろいろな変化が確認できる。