ならば

音とかで遊んでいたログ

音を鳴らす

今のままだとジョン・ケージの有名な曲くらいしか再現できないので音の鳴らし方を。チュートリアルを見ると、まずはサイン波を作って鳴らそう、と書いてある…。音は波だそうで、波の形とか高さによって異なる音になるらしい。つまり適当な波を作ってそれをいじってやれば色々な音が出せる。波形のひとつがサイン波(正弦波)で、オルガンの音に近い音になる。
サイン波を作って2秒鳴らすコードは、

SinOsc s => dac;
2::second => now;
続きを読む

乱数

チュートリアルで「昔のSF映画に出てくる大型コンピュータっぽい音」を出すといってるコード。

SinOsc s => dac;
while( true ) {
    100::ms => now;
    //30.0から1000.0までのランダムな数を周波数に設定
    Std.rand2f(30.0, 1000.0) => s.freq;
}

ぎりぎりな高周波を聴いたあとだとこれを聴くだけでも安心できる…。
ChucKには標準ライブラリがネームスペースでまとめられていて、現在は標準のStdの他に、VMのインタフェースを提供するMachine、数学関係のMathがある。Stdの関数rand2fは[第一引数, 第二引数]の範囲で乱数(浮動小数点数)を生成する。乱数の種は勝手に(多分時間か何かを使って)初期化してくれるが、乱数列を固定したい場合はStd.srand(int)によって自分で種を設定可能。
なぜかsrandはProgramming Guideの一覧には載ってないんだが。10月8日追記:マニュアルの一覧にはある。