CAL Reference<CAL簡易リファレンス>

プログラム制御
CAL関数リファレンス プログラム紹介1

[プログラム制御] [変数宣言] [演算子] [イベント変数] [バッファ関数] [時間変数] [入出力関数]
do
CALで命令を実行する時に常に必要となる関数です。これを記述しないとエラーが発生しますので注意が特に必要です。
命令1,2を順番に実行します
(do
 命令1
 命令2
)
if
<条件>が「0」で無い場合に指定された命令を実行します。なおCALは'else'など、条件分岐は使用できないので注意が必要です。
<条件>が0で無い場合に、命令1,2を順番に実行します
(if <条件>
 (do
  命令1
  命令2
 )
)


<例>
conditionが1の場合に、conditionをメッセージとして表示します。
(do
 (int condition 1)
 (if (== condition 1)
  (do
   (message condition)
  )
 )
)
while
<条件>が「0」で無ければ命令を実行し続けます。(※ループに陥らないよう注意が必要)
<条件>が0で無い限りは、命令1,2を実行しつづけます。
(while <条件>
 (do
  命令1
  命令2
 )
)

<例>
countが100から0になるまで実行し続けます。
(do
 (int count 100)
 (while (!= count 0)
  (do
   (-- count)
  )
 )
)
switch
<条件>と適合する項目を実行します。分岐が無いCALでは分岐処理の代用としても使います。(※命令の優先順位は上からです。一度命令を実行すると他の項目は実行されません。)
<条件>一致する<項目>の命令を実行します。
(switch <条件>
 項目1
  (do
   命令
  )
 項目2
  (do
   命令
  )
 項目3...

)

<例>
(do
 (switch item
     1 (pause "1" ) ;itemが1の場合に実行されます。
    10 (pause "10") ;itemが10の場合に実行されます。
  item (pause item) ;上記以外のitemの場合に実行されます。
 )
)
(forEachEvent)
選択範囲内にある各イベントについて個別に命令を実行していきます。CALプログラミングで最も重要な要素と言えます。
範囲内のイベント情報全てに命令を実行します。
(forEachEvent
 (do
  命令
 )
)

<例>
範囲内にある全てのノート・イベントのベロシティーを100に設定します。
(do

 (int amt 100)

 (forEachEvent

  (if (== Event.Kind NOTE)
   (do
    (= Note.Vel amt)
   )
  )

 )

)



[プログラム制御] [変数宣言] [演算子] [イベント変数] [バッファ関数] [時間変数] [入出力関数]
CAL関数リファレンス プログラム紹介1

Copyright (c) 1998-2008 Toy's Music Room All Right Reserved.