ブラックホール
スピーカーからの出力がいらないときはdacの代わりにユニットジェネレータblackholeを使う。dacと同じくスコープはグローバル。
Noise n => WvOut w => blackhole; "foo.wav" => w.wavFilename; 2::second => now; w.closeFile();
blackholeは名前の通り何も吐き出さない。上のコードの一行目を
Noise n => blackhole => WvOut w => dac;
に置き換えるとデータは書き込まれないしスピーカーからの出力もない。それに対してdacは出力があるから、下のコードに置き換えるとデータは書き込まれる。
Noise n => dac => WvOut w => blackhole;
exampleをいくつか眺めてみると、blackholeは音の /dev/null みたいな感じだ。そっから思ったんだけどChucK演算子でユニットジェネレータをつないでいって信号を処理するのって、UNIXのシェルでパイプを使ってそれぞれの役割に特化したプログラムをつなぐのとよく似ている。左から右への流れも同じだし。もしかしてUNIXでCUIに慣れた人にとってはChucKの方法は自然で違和感ないんだろうか。