<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"><channel><title>chuck / Drkcore</title><link>http://blog.kzfmix.com/chuck</link><description>Programming, Music, Snowboarding</description><language>ja</language><lastBuildDate>Sun, 31 May 2009 20:44:58 +0919</lastBuildDate><item><title>Chuckで遊んでみた</title><link>http://blog.kzfmix.com/entry/1243770122</link><description>&lt;p&gt;朝から&lt;a href="http://chuck.cs.princeton.edu/"&gt;ChucK&lt;/a&gt;で遊ぶ。&lt;/p&gt;

&lt;p&gt;編集した結果をリアル気味に反映させたくなったのでperlで書いた(loop.pl)。&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;use Path::Class;

my $file = $ARGV[0] || die "filename not found";

my $t = file($file)-&amp;gt;stat-&amp;gt;mtime;

system "chuck", "+", $file;

while(1){
  sleep 1;
  unless ($t == file($file)-&amp;gt;stat-&amp;gt;mtime) {
    system "chuck", "=", "1", $file;
    $t = file($file)-&amp;gt;stat-&amp;gt;mtime;
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;あとはChuckのサンプル(test.pl)&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;SinOsc s =&amp;gt; JCRev r =&amp;gt; dac;

.5 =&amp;gt; s.gain;
.2 =&amp;gt; r.mix;

[ 1, 3, 5, 7 ] @=&amp;gt; int note[];

while( true )
{
    Std.mtof(Std.rand2(1,3)*12 + 48 + note[Std.rand2(0,note.cap()-1)] ) =&amp;gt; s.freq;
    140::ms =&amp;gt; now;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;これで、chuckのほうをサバクラにするために&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;chuck --loop
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;で動かしておいて、別の端末から&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;perl loop.pl test.ck
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;これで、test.ckをエディタで編集して保存すると反映される。&lt;/p&gt;

&lt;p&gt;Arduinoとかで制御すればもっと面白くなりそう。CdSセンサとかで変化するようなのをつくってみてもいいし、ChucKをネットワーク越しに制御できるので音サーバーというのも面白いかもしれませんな。&lt;/p&gt;

&lt;p&gt;&lt;div class="awsxom"&gt;
&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4873113849/ref=nosim/kaerutyuuihou-22"&gt;
&lt;img src="http://ecx.images-amazon.com/images/I/51i8Q20O9IL._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
&lt;strong&gt;Making Things Talk -Arduinoで作る「会話」するモノたち&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
Tom Igoe &lt;br /&gt;
オライリージャパン / ￥ 3,990 ()&lt;br /&gt;
在庫あり。&lt;br /&gt;
&lt;br clear="all" /&gt;
&lt;/div&gt;&lt;/p&gt;
</description><pubDate>Sun, 31 May 2009 20:44:58 +0919</pubDate><category>perl</category><category>music</category><category>Gainer</category><category>processing</category><category>Arduino</category><category>chuck</category></item></channel></rss>