ONGEN OPT

DTMについて役立ちそうな情報をまとめてるブログ

【Cakewalk by BandLab】CALファイルでMIDIを自動編集【サンプル紹介】

f:id:hatemani:20211018155255p:plain

cakewalkにはCAL(Cakewalk Application Language)というcakewalk上のMIDIを編集することができるプログラム言語があります。そのためCALを扱うには文法や関数などを覚えなければなりません。しかしcakewalkインストール時にすぐに使うことができるCALファイルもインストールされています。今回はこのCALファイルの使い方を解説します。

 

CALの使い方

 

MIDIノートを選択している状態で、プロセス>CALの実行をクリックします。ファイルダイアログが表示されるため、その中から使用するCALファイルを選択しましょう。
CALファイルは通常「C:\Cakewalk Content\Cakewalk Core\CAL Scripts」のフォルダに格納され、Ctrl+F1でも実行できます。

f:id:hatemani:20210923111521p:plain

 

参考にノートに対して「Major 7th Chord.cal」を実行すると図のようになります。

f:id:hatemani:20210923111535p:plain

 

CAL:MIDIノートの生成関連(和音・オクターブ)

 

MIDIノートの生成系は選択したノートに対して同じ長さで音を重ねます。複数のノートが選択されている場合は、選択された全てのノートに対して音を重ねます。

 

メジャーコード ■(Major Chord)

選択したノートをベース音として「長3度」「完全5度」を追加します。ノートがCの場合、Cメジャーコードになります。

f:id:hatemani:20210923111625p:plain

 

メジャーセブンスコード ■M7(Major 7th Chord)

選択したノートをベース音として「長3度」「完全5度」「長7度」を追加します。ノートがCの場合、Cメジャーセブンスコードになります。

f:id:hatemani:20210923112521p:plain

 

セブンスコード ■7(Dominant 7th Chord)

選択したノートをベース音として「長3度」「完全5度」「短7度」を追加します。ノートがCの場合、Cセブンスコードになります。

f:id:hatemani:20210923112616p:plain

 

マイナーコード ■m(Minor Chord)

選択したノートをベース音として「短3度」「完全5度」を追加します。ノートがCの場合、Cマイナーコードになります。

f:id:hatemani:20210923112642p:plain

 

マイナーセブンスコード ■m7(Minor 7th Chord)

選択したノートをベース音として「短3度」「完全5度」「短7度」を追加します。ノートがCの場合、Cマイナーセブンスコードになります。

f:id:hatemani:20210923112925p:plain

 

ノートにオクターブ追加 (DOUBLE)

選択したノートのオクターブ上または下の音を追加します。CAL実行時にオクターブ値と追加するノートのベロシティー加算値を指定します。

f:id:hatemani:20210923112934p:plain

 

和音を追加:ハーモナイズ(HARMONYZ)

ノートに対して和音を追加します。リズムとトニック(keyの1度の音)を指定しランダムにノートの生成または移動します。このCALは実行するたびに結果が変わります。

f:id:hatemani:20210923112947p:plain

 

CAL:トラック分割関連

 

トラック分割は1つのトラック内のMIDIデータを複数のトラックに分割します。

 

ノートを音程ごとにトラック分割 (Split Note to Tracks)

指定したノートを音程ごとに別トラックへ分割します。Split Note to Tracksはドラムトラックなどの分割で役立ちます。

f:id:hatemani:20210923113000p:plain

 

ノートをチャンネルごとにトラック分割 (Split Channel to Tracks)

前述したノートを音程ごとにトラック分割 (Split Note to Tracks)と似ていますが、Split Channel to Tracksは選択したノートをMIDIチャンネルごとにトラックを分割します。
例えば1つのクリップ内に複数のMIDIチャンネルのノートがある場合、そのノートをトラックごとに分割することができます。

 

CAL:ノートの時間変更関連

 

ノートの開始タイミングまたはデュレーション(ノートの長さ)を調整します。

 

イベントの開始時間をランダムに変更 (Random Time)

ノートの開始時間をランダムにずらします。ずらし量はCAL実行時にTick数で設定します。1Tickあたりの時間は環境設定のクロックタブで設定している値となり、通常は960Tickで四分音符相当の時間となります。

f:id:hatemani:20210923113010p:plain

 

前のノートの長さを次のノートの開始に合わせる:レガート(LEGATO)

選択したノートを次のノートの開始に合うようにデュレーションを調整します。割合は設定可能で、図は100%設定時のMIDIノートの変化となります。

f:id:hatemani:20210923113019p:plain

 

重なったノートの長さ調整(SINGLE)

時間軸で重なったノートの長さの調整します。前のノート短くすることでノートの重なりをなくします。この操作によってベースやシンセなどでノートが重なった時の音の問題を解消します。またマージン設定として最大10Tickの空きを作ることができます。

f:id:hatemani:20210923113029p:plain

 

ノートにスウィングを追加(SWING8、SWING16)

ノートにスウィングを追加します。スウィングの強さは10%~90%で指定します。

f:id:hatemani:20210923113038p:plain

 

CAL:ノートのベロシティ変更関連

 

ノートのベロシティ(強さ)を変更します。

ベロシティを次第に強くする:クレッシェンド(CRESCEND)

選択したノートのベロシティに対して係数をかけます。開始ノートの係数と終了ノートの係数を指定し、開始係数より終了係数が多くなるように指定しなければなりません(図は開始50%・終了100%で指定した場合)
元のベロシティに対する係数が開始より終了が多くなるため、CAL適用後の結果が必ずしも開始ノートより終了ノートが大きくなるわけではありません。

f:id:hatemani:20210923113051p:plain

 

ノートのベロシティをランダムに変更する(VARYVEL)

ノートのベロシティを上下限で指定した範囲内にランダムで変更します。

f:id:hatemani:20210923113100p:plain

 

CAL:ノートの音程変更関連

 

ノートの音程を変更します。

 

ノートをランダムに変更する(RANDNOTE)

ノートを指定した範囲でノートの高さ(音程)をランダムに変更します(コードや曲のキーなどは考慮されません

f:id:hatemani:20210923113108p:plain

 

関連記事まとめ