関数の引数
同じ名前の関数を作り引数の数を変えると、
fun void miu(int num1) { <<<num1>>>; } fun void miu(int num1, int num2) { <<<num1 + num2>>>; } miu(1); miu(1,2); miu(1, 2, 3)
当然ですがmiu(1,2,3)はエラーになります。これは関数のオーバーロードと言うらしい。さあ、最後は模写chirp.ckです。
sinosc s => dac; .4 => s.gain; chirp(127, 20, 1::second); chirp(20, 120, 1.5::second, 100::ms); fun void chirp(float src, float target, dur duration) { chirp(src, target, duration, 1::ms); } fun void chirp(float src, float target, dur duration, dur tinc) { src => float freq; duration / tinc => float steps; (target - src) / steps => float inc; float count; while(count < steps) { freq+ inc => freq; 1 +=> count; std.mtof(freq) => s.freq; tinc => now; } }