朝からChucKで遊ぶ。
編集した結果をリアル気味に反映させたくなったのでperlで書いた(loop.pl)。
use Path::Class;
my $file = $ARGV[0] || die "filename not found";
my $t = file($file)->stat->mtime;
system "chuck", "+", $file;
while(1){
sleep 1;
unless ($t == file($file)->stat->mtime) {
system "chuck", "=", "1", $file;
$t = file($file)->stat->mtime;
}
}
あとはChuckのサンプル(test.pl)
SinOsc s => JCRev r => dac;
.5 => s.gain;
.2 => r.mix;
[ 1, 3, 5, 7 ] @=> int note[];
while( true )
{
Std.mtof(Std.rand2(1,3)*12 + 48 + note[Std.rand2(0,note.cap()-1)] ) => s.freq;
140::ms => now;
}
これで、chuckのほうをサバクラにするために
chuck --loop
で動かしておいて、別の端末から
perl loop.pl test.ck
これで、test.ckをエディタで編集して保存すると反映される。
Arduinoとかで制御すればもっと面白くなりそう。CdSセンサとかで変化するようなのをつくってみてもいいし、ChucKをネットワーク越しに制御できるので音サーバーというのも面白いかもしれませんな。