Functions and Other Functionality
初めての音出し。
{ [SinOsc.ar(440, 0, 0.2), SinOsc.ar(442, 0, 0.2)] }.play;
おお、サイン派がなった。 Not too inspiring? いや、感動したよ。
この例では、2つのサイン派を合成しているみたい。[ ]は配列だと思われる。
ショートカット
- Cmd + .
- 音を止める
次は関数の定義、
f = { "Hoge".postln; }; f;
実行すると a Function が表示される。実行してくれたらいいのに..
実行するには
f.value;
とする。なんか面倒くせ。
関数に引数を与えるには
f = { arg a, b; a + b; }; f = { |a, b| a + b; }; // ショートカット
呼び出すには
f.value( 5, 4 ); f.value( a:5, b:4 ); // キーワード付きの呼び出し方
とする。
両方組み合わせた
f.value( 5, b:4 );
みたいな書き方も OK らしいがエラーになる。こんど調べる。
寝て起きたら出来るようになった。??やりかた違ってたか??とりあえずOK
引数にデフォルト値をつける場合は、
f = { arg a = 2, b = 5; a + b; };
とする。
変数の宣言は var を使うが、ブロックの先頭で宣言しないといけない。
ブロックの中で宣言された変数はそのスコープを外れると死ぬ。
ただし、 a から z までの1文字の変数は、グローバル変数とのこと。
これは注意が必要そう。いつかハマる気がする。