CAL Reference<CALを使ってみよう>

「CAL」で作成したプログラミング例を紹介しています。このままでは使用できませんので実践もかねて自分の環境に合った設定に変更してお使い下さい。



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

〜CALプログラミング<1>〜

プログラム解説

(getInt wid "Scale?" -127 127)

(forEachEvent
  (if (== Event.Kind NOTE)
   (do
    (= VEL (+ Note.Vel wid))

   (if (< VEL 1)
     (= VEL 1)
    )
    (if (> VEL 127)
     (= VEL 127)
    )

    (= Note.Vel VEL)
   )
  )
)

選択範囲内のベロシティを入力値で、変化させるものです。

  • wid:入力用パラメータ
  • VEL:ベロシティ計算用パラメータ

計算後、VELの範囲をチェックしています。これはベロシティの使用範囲の値を超えないようにするためです。


プログラム解説

(forEachEvent
 (if (!= Event.Kind NOTE)
  (delete)
 )
)

指定範囲のノート以外のイベントを消します。

シンプルですが、意外とあると便利なプログラムです。また、イベントの種類の判定を変えると色々使えます。


プログラム解説

  (= VELA Note.Vel)
  (= TEMP (tick Event.Time))
  (if (== TEMP 0)
   (= VELB (/ (* VELA 105) 100))
  )
  (if (&& (> TEMP 0) (<= TEMP 120))
   (= VELB (/ (* VELA 80) 100))
  )
  (if (&& (> TEMP 120) (<= TEMP 240))
   (= VELB (/ (* VELA 85) 100))
  )
  (if (&& (> TEMP 240) (<= TEMP 360))
   (= VELB (/ (* VELA 90) 100))
  )
  (if (&& (> TEMP 360) (<= TEMP 480))
   (= VELB (/ (* VELA 95) 100))
  )

ドラム等の連打に強弱を自動的につけるものです。

タイムベースは480で作られています。

  • VELA:入出力用パラメータ
  • VELB:入出力用パラメータ
  • TEMP:Tickの判定用パラメータ

計算パラメータを二つに分けることで、入出力を比較するプログラム等が組み込めます。

4部音符を4分割し、最初を105%に変換し、分割した範囲を、80%,85%,90%,95%に変換しています。(%の値は好みで直してください。)


プログラム解説

(do
 (int NO 1)
 (getInt NO "Change CH(1-16)?" 1 16)
 (forEachEvent
   (do
      (= Event.Chan (- NO 1))
   )
 )
)

コピー&ペーストで、滅茶苦茶になったCHを統一します。

  • NO:入力用パラメータ

変換する部分を選択したあとに実行させ、選択した部分の設定するCHの値を入力します。

(注意)このプログラムでは、トラックを選択し、そのトラックの値を入力するものと想定してます。そのため、実際に入力した数値から1引いた数に設定されています。

ここで紹介したプログラムは、過去に" CakeWalk7.0J ProAudio " にて、動作確認を行ったものです。紹介したプログラムを使用して生じた損害に対し、何ら責任を負いません。



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

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