ChucK入門 #5 - 時間の単位

ChucKでは

5::second => now;

として、5秒待つことが出来ますが、今回はこれをもう少し掘り下げてみましょう。

まず、second の部分にはどのような単位が使えるのでしょうか。ChucKのマニュアル(PDF)によると、以下のような定義済みの時間単位があるようです

  • samp ChucKの中での1ティック (1sample)
  • ms
  • second
  • minute
  • hour
  • day
  • week

また、これらは「期間」を示していますが、特定の日時を指すために time という型も定義されています。今回はこちらについての説明は割愛して、期間を示す dur 型についてのみ掘り下げます。

0.5::second => dur hoge;
4::hoge => dur fuga;

fuga => now;

このコードでは、2秒待つ処理が行われます。特徴的なのは、

0.5::second => dur hoge;

したことで、hogeは値であり、時間単位としても使えるようになっていることです。なので

4::hoge => dur fuga;

は、

4*hoge => dur fuga;

と同じです。(どちらのコードも動作します。数値×dur型の演算も出来ることがわかりますね)

0.5秒のhogeを4単位、で2秒になる、というわけですね。

また、dur型同士での除算、剰余、加減算も可能です。イメージ通りの計算結果になると思われますので説明は割愛します。