もちろんプログラムですから、 考えて書いてテストするのに手間と時間がかかります。 1回限りの利用では全然意味がありません。 しかし、同じ処理を何度も操作するのであれば、 苦しみは最初の1回だけですみます。 使えば使うほどにそのありがたみが分かるのでございますよ。
文法は簡単ですが、まったくプログラム経験のない人には とっつきにくいかも知れません。 インターネットではさまざまな CAL が公開されていますが、 そこから目的の CAL を探すのは結構たいへんです。 あるかどうかも分かりません。 ないものは自分で作りませう。
CALのマニュアルは市販されておりませんで、 ProAudio/Professional の HELP に こっそりと書かれているだけです。 ProAudio/Professional をお持ちの方はご参照ください。 "CAL" の項では概要と Cakewalk からの呼び出し方 、文法の説明が、 また "リファレンス"の項には使える数値型と関数の説明が ございます。
で、このページは、いちいち HELPのページを めくってリファレンスを調べるのが面倒なので、 私的に一覧できるように整理したのが 始まりです。
ProAudio/Professional ユーザ 以外の方が CAL でどんなことができるのか、 自分に扱えそうかどうかを判断するための 材料としてもお使いいただけるのではないかと存じます。
なお、実用プログラムは蛞蝓式 CAL プログラム のページにございますので、ご参照ください。
なおなお、下記の記述は間違っているところがあるかも知れません。 あはは。
TrackSelect の2つめの引数が0から始まるトラック番号で、 5というのは実は6トラックのことなのです。
- CAL はインタプリタです。実行時にエラーチェックが行われます。 文法エラーや宣言されていない変数名、 とり得る値の範囲を超えた場合などは検出されます。
- CAL は関数型言語で、関数の羅列で記述します。 "if" や "switch" のような分岐処理、 "do" や "while" のような 繰り返し処理も関数の形で書きます。
- CALの関数は( )で囲みます。
- 関数は次の書式で記述します。
(関数 [引数 引数...])たとえば、1+2 は (+ 1 2) となります。 '+'が加算を示す関数で、 '1'と'2'が引数になります。 関数によっては引数のないもの、 たくさんあるものがあります。
関数は入れ子になっていてもかまいません。
- 関数は戻り値を持ちます。
- 関数と関数の間、関数と引数の間、引数と引数の間は スペースまたはタブが必要です。改行は入れても影響ありません。 行の左側にタブを打っておきましょう。
- 手続き全体を(do )関数でくくっておく必要が あります。(do )関数は、複数の関数を あたかもひとつの関数であるかのように見せる働きがあります。
- ";" から行末まではコメントとして扱われます。
- ファイル名以外の大文字と小文字は区別されます。
- 拡張子は ".CAL" とします。
- コメント行以外では日本語は使えません。 文字列にも使えません。 実行すると不正な処理でOSごと死んでしまったりします。あはは。
- 半角カナとか全角文字でなければ、 変数名には英数字、記号、なんでも使えるようです。
型名 長さ 最小値 最大値 int 16 bit -32,676 32,767 word 16 bit 0 65,535 long 32 bit -2,147,483,648 +2,147,483,647 dword 32 bit 0 +4,294,967,296 string − " "で囲まれたテキスト
NIL CAL FALSE TRUE NOTHING TIMEBASE VERSION Now From Thru End
NOTE KEYAFT CONTROL PATCH CHANAFT WHEEL SYSX SYSXDATA TEXT LYRIC
WAVE MCI EXPRESSION HAIRPIN CHORD RPN NRPN
Event.Kind Event.Chan Note.Key Note.Vel Patch.Num Patch.Bank
Control.Num Control.Val KeyAft.Key KeyAft.Val ChanAft.Val Wheel.Val
また下記の関数が用意されています。関数名を変数名に使うことはできますが、
混乱するので避けた方がよかろうと思います。
if do switch while forEachEvent = < > <= >= == != && || + -
* / % += -= *= /= %= random ++ -- index delete insert meas
beat tick makeTime SetCurrentTrack GetCurrentTrack int word long
dword string undef message pause format getInt getWord getTime
error exit beep include delay sendMIDI DLL FileNew FileSave
FileSaveAs FileOpen FileMerge FileExtract EditCopy EditCopy40 EditCut
EditCut40 EditDelete40 EditPaste EditPasteToTrack EditPaste40
EditQuantize EditQuantize40 EditSlide EditSlide40 EditTranspose
EditTranspose40 EditLength EditLength40 EditControlFill
EditGrooveQuantize EditGrooveQuantize40 EditRetrograde EditRetrograde40
EditVelocityScale EditVelocityScale40 EditFitToTime EditFitToTime40
EditFitImprov EditFitImprov40 EditInterpolate ResetFilter SetFilterKind
SetFilterRange Play Record Rewind GotoSearch GotoSearchNext TrackName
TrackActive TrackArchive TrackKey+ TrackVel+ TrackTime+ TrackPort
TrackChannel TrackBank TrackPatch TrackVolume TrackPan TrackSelect
TrackClone TrackArmAudio TrackSolo TrackRecordEnable SettingsMetronome
SettingsMidiThru SettingsMidiOut SettingsMidiIn SettingsRecordFilter
SettingsChannelTable SettingsChannelTable70 MaxEvalStack HeapInitSize
CalSendMIDIRaw RxEventMask
"forEachEvent" 式の内側では、参照のみ可能です。 新たな値を代入することはできません。
変数名 データ型 意 味 From dword 始点マーカー (選択範囲の始点) Now dword 現在マーカー (現在の注目点) Thru dword 終点マーカー (選択範囲の終点) End dword 全トラックの最後のイベントのタイム
・すべての種類のイベントに対する変数
変数名 データ型 値の範囲 意 味 Event.Chan int 0〜15 イベントのMIDIチャンネル。 Event.Time dword − イベントの始点タイム。 Event.Kind int 値 定数名 イベントの種類 0 SYSX SysEx バンク。 1 TEXT テキスト。 2 LYRIC 歌詞。 3 WAVE オーディオ。 4 MCI MCI コマンド。 5 EXPRESSION 強弱記号。 6 HAIRPIN ヘアピン。 7 CHORD コード。 8 SYSXDATA SysEx データ。 9 RPN RPN。 10 NRPN NRPN。 144 NOTE ノート。 160 KEYAFT キーアフタータッチ。 176 CONTROL コントローラ。 192 PATCH パッチチェンジ。 208 CHANAFT チャンネルアフター。 224 WHEEL ピッチベンド。
・特定のイベントに対する変数
変数名 イベントの種類 最小値 最大値 意 味 Note.Key NOTE 0 127 キーナンバー (音の高さ)。 Note.Vel NOTE 0 127 ベロシティ。 Note.Dur NOTE 0 65535 音の長さ (tick)。 Patch.Num PATCH 0 127 パッチナンバー (音色番号)。 Patch.Bank PATCH -1 16383 バンクナンバー (-1 は無指定のとき)。 Control.Num CONTROL 0 127 コントローラ番号。 Control.Val CONTROL 0 127 コントローラの値。 KeyAft.Key KEYAFT 0 127 キーナンバー (音の高さ)。 KeyAft.Val KEYAFT 0 127 値 (プレッシャー量)。 ChanAft.Val CHANAFT 0 127 値 (プレッシャー量)。 Wheel.Val WHEEL -8192 +8191 ピッチベンド値。
特定のイベントに対する変数は、イベントの種類を確認した上で、 そのイベントにふさわしい値を設定する必要があります。 "Note.Key" に256 とか代入しても無意味です。
・VERSION
定数名 値 意 味 TIMEBASE タイムベース値 四分音符あたりのtick数 Cakewalk で指定できるタイムベース値は下記の通りです。
48, 72, 96, 120, 144, 168, 192, 216, 240, 360, 384, 480
定数名 値 意 味 VERSION CALのバージョン バージョンは10倍した値が返される。 Cakewalkのバージョンではなく、CALのバージョンでおます。
変数は、使用前に宣言が必要です。 宣言も「関数」の形をとります。 書式は下記の通りです。
(型名 変数名 [初期値])
初期値を指定すれば、宣言と同時に初期化することができます。
初期値を指定しないときの変数の値は不定です。
(例) (int var 127)
(string mes "Hello, CAL!")
関数(型)名 書式 戻り値 意 味 int (int var [val]) varの値 int型の変数としてvarを宣言し、 初期値としてvalを代入する。 word (word var [val]) varの値 word型の変数としてvarを宣言し、 初期値としてvalを代入する。 long (long var [val]) varの値 long型の変数としてvarを宣言し、 初期値としてvalを代入する。 dword (dword var [val]) varの値 dword型の変数としてvarを宣言し、 初期値としてvalを代入する。 string (string var [val]) varの値 string型の変数としてvarを宣言し、 初期値としてvalを代入する。 val は、" "で囲まれたテキスト。 undef (undef var) NIL 変数の型宣言を取り消す。
演算結果が、それぞれのデータ型の表現できる範囲を超えないよう、 注意しませう。
関数 書式 戻り値 意 味 + (+ op1 op2) op1とop2を加えた和 加算 - (- op1 op2) op1からop2を引いた差 減算 * (* op1 op2) op1とop2を掛けた積 乗算 / (/ op1 op2) op1をop2で割った商 除算 % (% op1 op2) op1をop2で割った剰余 剰余算 ++ (++ var) varに1を加えた値 インクリメント -- (-- var) varから1を引いた値 デクリメント random (random min max) mixからmaxまでの擬似乱数 乱数発生
いずれも、条件が「真」のときに TRUE (0以外)を、「偽」のときに FALSE (0)を返します。TRUE は「0以外」ですが、 実際には 1 を返してきます。
関数 書式 戻り値 意 味 < (< op1 op2) op1 < op2 のとき TRUE, それ以外は FALSE より小さい > (> op1 op2) op1 > op2 のとき TRUE, それ以外は FALSE より大きい <= (<= op1 op2) op1 <= op2 のとき TRUE, それ以外は FALSE 以下 >= (>= op1 op2) op1 >= op2 のとき TRUE, それ以外は FALSE 以上 == (== op1 op2) op1 と op2 が等しいとき TRUE, それ以外は FALSE 等しい != (!= op1 op2) op1 と op2 が等しくないとき TRUE, それ以外は FALSE 等しくない
いずれも、結果が「真」のときに TRUE (0以外)を、「偽」のときに FALSE (0)を返します。TRUE は「0以外」ですが、 実際には 1 を返してきます。
関数 書式 戻り値 意 味 && (&& op1 op2) op1 と op2 のどちらも TRUE のときに TRUE, それ以外は FALSE 論理積(AND)。 || (|| op1 op2) op1 と op2 のどちらかが TRUE のときに TRUE, それ以外は FALSE 論理和(OR)。
割当演算では、演算と代入をひとつの命令で行えます。 下記の左右は同じ操作です。
関数 書式 戻り値 意 味 = (= var exp) 代入後の var の値。 var に exp を代入する。 += (+= var exp) 代入後の var の値。 (+ var exp) を varに代入する。 -= (-= var exp) 代入後の var の値。 (- var exp) を varに代入する。 *= (*= var exp) 代入後の var の値。 (* var exp) を varに代入する。 /= (/= var exp) 代入後の var の値。 (/ var exp) を varに代入する。 %= (%= var exp) 代入後の var の値。 (% var exp) を varに代入する。
割当演算 演算と割当 (+= var val) (= var (+ var val)) (-= var val) (= var (- var val)) (*= var val) (= var (* var val)) (/= var val) (= var (/ var val)) (%= var val) (= var (% var val))
insert関数では、挿入するイベントの種類によって、 引数の数や指定できる値の範囲が違います。 kind に指定するイベントの種類は NOTE や WHEEL など、 ディフォルトで定義済みの定数で指定します。
関数 書式 戻り値 意 味 index (index) イベントのインデックス番号。 現在参照中のイベントのインデックスを調べる。 delete (delete) NIL 現在のイベントを削除し、 後続のイベントのインデックス番号を前に詰める。 insert (insert time chan kind [引数...]) NIL イベントを挿入し、 後続のイベントのインデックス番号を後ろにずらす。
time : イベントの開始タイム (dword)。
chan : MIDI チャンネル (0〜15)。
kind : イベントの種類 (次表参照)。
引数 : イベントの種類に応じた引数 (次表参照)。
forEachEvent内で挿入されたイベントは、可視状態になりません。
挿入データの種類 書式 引数の意味 ノートデータ (insert time chan NOTE key velocity duration) key : キー番号。
velocity : ベロシティ値。
duration : 音の長さ (tick)。コントローラ (insert time chan CONTROL cont-no value) cont-no : コントローラ番号。
value : 値。キーアフター (insert time chan KEYAFT key amount) key : キー番号。
amount : アフタータッチ量。チャンネルアフター (insert time chan CHANAFT amount) amount : アフタータッチ量。 パッチチェンジ (insert time chan PATCH patch-no [bank-no]) patch-no : パッチ番号。
bank-no : バンク番号。省略時は -1 (バンク指定なし)。ピッチベンド (insert time chan WHEEL value) value : ピッチベンド値。
小節番号、拍番号は 1 から始まります。0を指定しないように。
関数 書式 戻り値 意 味 meas (meas time) 小節 time の属する小節。 beat (beat time) 拍 time の属する拍。 tick (tick time) ティック time の属するティック。 makeTime (makeTime measure beat tick) タイム 小節, 拍, ティック をタイムに変換する。
messageもpauseも、引数の型はなんでもよく、 直接値を書き込んでもよいし、変数名でもよく、 たくさん並べて書くこともできます。
関数 書式 戻り値 意 味 message (message val [val...]) NIL ウィンドウ左下に、メッセージを表示する。 pause (pause val [val...]) NIL 新たな窓を開いてメッセージを表示し、停止する。 format (format val [val...]) val の文字列 val を文字列として返す。
messageの場合は表示するだけですが、pauseの場合は 表示後に停止し、[OK] をクリックするか [ESC]以外のキーを押すと処理を再開し、 [キャンセル]をクリックするか [Esc]キーを押すとプログラムはそこで終了します。
formatは、画面への表示はありませんが、 文字列を返してくるので、戻り値を利用することができます。
(例)
関数 書式 戻り値 意 味 getInt (getInt var prompt min max) 入力された値 ユーザの入力をint型変数varに代入する。 getWord (getWord var prompt min max) 入力された値 ユーザの入力をword型変数varに代入する。 getTime (getTime var prompt min max) 入力された値 ユーザの入力をdword型変数varに代入する。
:
(int vel 100)
(getInt vel "velocity ?" 0 127)
:
上記のCALを実行すると、こんな画面が現れます。ユーザがキャンセルをクリックすると、 エラー・メッセージが出てCALプログラムがそこで終了します。 なお、getLong とか getString というような関数は ございません。
・do 関数
関数 書式 意 味 do (do func1 [func2...]) ひとつの関数を指定すべきところに、 複数の関数を使いたいときに do 関数で囲みます。 if (if condition func1 [func2]) conditionを評価して、真のときにfunc1を、偽のときにfunc2を 実行します。真は0以外で、偽は0です。 while (while condition func) conditionを評価して、真のときに funcを繰り返し実行します。 1回めに conditionが偽であれば、funcはまったく実行されません。 真は0以外で、偽は0です。 switch (switch index case1 func1 [case2 func2]...) indexを評価して、case1... と比較し、合致すればその後の funcを実行します。合致するものがなければ何も実行されません。 forEachEvent (forEachEvent func) 指定範囲のすべてのイベントをひとつひとつ順番に調べるループです。
CALは、なぜか関数を並べただけではだめで、 全体を(do )で囲まねばなりません。・switch 関数とやると、OK を押しても繰り返し表示してきますし、(int a 0) (pause a)
では、34 という怪しい値が表示されたりします。(int a 0) (+= a 1) (pause a)
全体を(do )で囲んで
のように指定すると、正しく動作します。(do (int a 0) (pause a) )
if関数のtrue, false、while関数やswitch関数の actionでは、複数の関数を複文のように並べることが多いですが、 そんなときに(do )で括ってしまいます。
switch で、どの条件にも合致しないときのディフォルトの操作を 指定するときは、index そのものをcaseに指定します。・forEachEvent関数(例)
上の例では、 swの値が1のときに durに2を加え、 swの値が2のときに durから4を引き、 swの値が3のときに durに8を掛け、 swの値がそれ以外のときには、durに120を代入します。(switch sw 1 (+= dur 2) 2 (-= dur 4) 3 (*= dur 8) sw (= dur 120) )
指定範囲内のすべてのイベントをチェックして、 さまざまな操作が可能です。
イベントパラメータ変数はそのとき評価している イベントに応じた値を保持します。
・DLL関数
関数 書式 意 味 include (include filename) その位置に指定した CALのファイルを挿入して実行します。 filename は拡張子 .CALを含めて記述し、 " "で囲みます。 DLL (DLL szLibName szProcedureName [arguments]) WindowsDLLの関数を呼び出します。戻り値は dword です。 sendMIDI (sendMIDI port chan kind data1 [data2]) MIDIイベントを送出します。 delay (delay ms) ms ミリ秒待ちます。
DLL関数を間違った引数で呼び出した場合の エラー・チェック機能および予防措置はありません。・sendMIDI関数
port 送出ポート。0〜15。-1 ですべてのポートに出力。 chan 送出チャネル。0〜15。-1 ですべてのチャネルに出力。 kind NOTE、CONTROLなどの定数。 data1 0〜127の値。出力メッセージに応じた値を指定する。 data2 0〜.127の値。NOTE、CONTROL、KEYAFT以外の場合は無視。 kindがSYSXの場合、指定できるのは最大200バイトで、 始めのF0と最後のF7バイトを含んではいけません。
関数 書式 対応コマンド コメント FileNew (FileNew [template]) ファイル|新規作成 FileOpen (FileOpen [pathname]) ファイル|開く FileSave (FileSave) ファイル|上書き保存 FileSaveAs (FileSaveAs [pathname]) ファイル|名前をつけて保存 FileMerge (FileMerge [pathname]) ファイル|マージ 旧バージョンとの互換用。 FileExtract (FileExtract [pathname]) ファイル|抽出 旧バージョンとの互換用。 templete には、拡張子なしでテンプレートファイル名を指定します。
pathname には、拡張子付きでファイル名を指定します。
いずれも、" "で囲みます。カレントパスに注意しませう。ファイルの読み込み または 書き込みに失敗すると FALSE(0)を返します。
関数 書式 対応コマンド コメント EditCopy40 (EditCopy40 [bEvents bTempos bMeters bMarkers]) 編集|コピー EditCut40 (EditCut40 [bEvents bTempos bMeters bMarkers bDelHole]) 編集|切り取り EditPaste40 (EditPaste40 [tToTime nToTrack bOneTrack nReps tRepLen bAsNewClips bEvents bTempos bMeters bMarkers]) 編集|貼り付け EditQuantize40 (EditQuantize40 [wResolution nPercent bTimes bDurations nSwingPct nWindow nOffset bNoteLyricAudioOnly]) 編集|クォンタイズ EditGrooveQuantize40 (EditGrooveQuantize40 [wRes nWindow nTimePct nDurPct nVelPct OutOfWindowMode szFile szPattern bNoteLyricAudioOnly]) 編集|グルーブクォンタイズ EditSlide40 (EditSlide40 [nAmount bUnitTicks]) 編集|スライド bUnitTicks==TRUE : nAmountはティック。
bUnitTicks==FALSE : nAmountは小節。EditTranspose40 (EditTranspose40 [nAmount bDiatonic) 編集|トランスポーズ EditLength40 (EditLength40 [nPercent bStartTimes bDurations]) 編集|長さ EditRetrograde40 (EditRetrograde40) 編集|反転 EditControlFill (EditControlFill [tFrom tThru nCtrl nChan nBeg nEnd]) 挿入|コントローラ Chan : 1〜16
nBeg : 0〜127
nEnd : 0〜127。
旧バージョンとの互換用EditVelocityScale40 (EditVelocityScale40 [nBeg nEnd bUnitsPercent]) 編集|ベロシティスケール bUnitsPercen==TRUE : nBegとnEndはパーセンテージ。
bUnitsPercen==FALSE : nBegとnEndはベロシティ値。EditFitImprov (EditFitImprov [nReferenceTrack]) 編集|タップトラックにフィット EditFitToTime (EditFitToTime [tFrom tThru tNewThru nMethod]) 編集|タイムにフィット EditInterpolate (EditInterpolate) 編集|書き換え 書き換えの実行(?) ResetFilter (ResetFilter nFilter bEverything) 編集|書き換え フィルタの用途設定。
nFilter==0 : 書換え以外。
nFilter==1 : 書換えの検索フィルタ
nFilter==2 : 書換えの置換フィルタSetFilterKind (SetFilterKind nFilter nKind bInclude) 編集|書き換え フィルタ設定。
nFilter==0 : 書換え以外。
nFilter==1 : 検索。
nFilter==2 : 置換。
nKind : 下記のいずれか1つ。
NOTE, KEYAFT, CONTROL, PATCH
CHANAFT, WHEEL, SYSX, TEXT
LYRIC, WAVE, MCI
bInclude : そのイベント種類を含むかどうか。SetFilterRange (SetFilterRange nFilter nRange bInRange wMin wMax) 編集|書き換え フィルタ設定。
nFilter==0 : 書換え以外。
nFilter==1 : 検索。
nFilter==2 : 置換。
nRange==0 : ノート/キー
nRange==1 : ノート/ベロシティ
nRange==2 : ノート/音の長さ
nRange==3 : キーアフター/キー
nRange==4 : キーアフター/プレッシャー
nRange==5 : コントローラ/コントローラ番号
nRange==6 : コントローラ/値
nRange==7 : パッチ/パッチ番号
nRange==8 : チャンネルアフター/プレッシャー
nRange==9 : ピッチベンド/値
nRange==10 : チャンネル
nRange==11 : 拍
nRange==12 : ティック
nRange==13 : パッチ/バンク
bInRange==FALSE : exec がチェックされている。
bInRange==TRUE : exec がチェックされていない。
wMin : 範囲の最小値。
wMax : 範囲の最大値。EditCopy (EditCopy [tFrom tThru bEvents bEvtFilt bTempos bMeters bMarkers]) 編集|コピー CAL3.0互換関数 EditCut (EditCut [tFrom tThru bEvents bEvtFilt bTempos bMeters bMarkers bDelHole]) 編集|切り取り CAL3.0互換関数 EditPaste (EditPaste [tTo wReps nHoleKind bEvents bTempos bMeters bMarkers]) 編集|貼り付け CAL3.0互換関数。 nHoleKindは無視される。 EditPasteToTrack (EditPasteToTrack [tTo wReps nHoleKind bEvents bTempos bMeters bMarkers nTrack]) 編集|貼り付け CAL3.0互換関数。 nHoleKindは無視される。nTrackから貼り付けらる。 EditQuantize (EditQuantize [tFrom tThru bEvtFilt wRes nPct bTimes bDurs]) 編集|クォンタイズ CAL3.0互換関数。 EditGrooveQuantize (EditGrooveQuantize [tFrom tThru bEvtFilt wRes nWindow nTimePct nDurPct nVelPct OutOfWindowMode szFilePattern]) 編集|グルーブクォンタイズ CAL3.0互換関数。 EditSlide (EditSlide [tFrom tThru bEvtFilt nAmount bUnitTicks]) 編集|スライド CAL3.0互換関数。
bUnitTicks==TRUE : nAmountはティック。
bUnitTicks==FALSE : nAmountは小節。EditTranspose (EditTranspose [tFrom tThru bEvtFilt nAmount bDiatonic) 編集|トランスポーズ CAL3.0互換関数。
bUnitTicks==TRUE : nAmountはティック。
bUnitTicks==FALSE : nAmountは小節。EditLength (EditLength [tFrom tThru bEvtFilt nPercent bStartTimes bDurations]) 編集|長さ CAL3.0互換関数。 EditRetrograde (EditRetrograde [tFrom tThru bEvtFilt]) 編集|反転 CAL3.0互換関数。 EditVelocityScale (EditVelocityScale [tFrom tThru bEvtFilter nBeg nEnd bUnitsPercent]) 編集|ベロシティスケール CAL3.0互換関数。
bUnitsPercent==TRUE : nBegとnEndはパーセンテージ。
bUnitsPercent==FALSE : nBegとnEndはベロシティ値。
関数 書式 対応コマンド コメント GotoSearch (GotoSearch [NoPrompt]) ジャンプ|検索 GotoSearchNext (GotoSearchNext) ジャンプ|次を検索
トラック番号(nTrack)は0から255までの数値です。
関数 書式 対応コマンド コメント TrackName (TrackName [szName [nTrack]]) トラック|プロパティ|名前 TrackActive (TrackActive [nActive [nTrack]]) トラック|ミュート nActive==1 : 演奏
nActive==0 : ミュート
nActive==-1 : トグルTrackArchive (TrackArchive [nArchive [nTrack]]) トラック|アーカイブ nArchive==1 : アーカイブ
nArchive==0 : 非アーカイブ
nArchive==-1 : トグルTrackKey+ (TrackKey+ [nAmount [nTrack]]) トラック|プロパティ|キー+ nAmount 範囲は -127〜127。 TrackVel+ (TrackVel+ [nAmount [nTrack]]) トラック|プロパティ|ベロシティ+ nAmount 範囲は -127〜127。 TrackTime+ (TrackTime+ [lAmt [nTrack]]) トラック|プロパティ|タイム+ TrackPort (TrackPort [nPort [nTrack]]) トラック|プロパティ|ポート nPort 範囲は 0〜15 TrackChan (TrackChan [nChan [nTrack]]) トラック|プロパティ|チャンネル nChan 範囲は 0〜15 TrackBank (TrackBank [nBank [nTrack]]) トラック|プロパティ|バンク nBank 範囲は -1(無指定)〜16384 TrackPatch (TrackPatch [nPatch [nTrack]]) トラック|プロパティ|パッチ nPatch 範囲は -1(無指定)〜127 TrackVolume (TrackVolume [nVolume [nTrack]]) トラック|プロパティ|ボリューム nVolume 範囲は -1(無指定)〜127 TrackPan (TrackPan [nPan [nTrack]]) トラック|プロパティ|パン nPan 範囲は -1(無指定)〜127 TrackSelect (TrackSelect nState nTrack) トラック CAL3.0互換関数。
nState==1 : 選択
nState==0 : 選択解除
nState==-1 : トグル
nTrack==-1 : すべてのトラック
関数 書式 対応コマンド コメント SettingsMetronome (SettingsMetronome [bPlay bRec bAcc nCount nPort nChan nKey nVel wDur bBeep]) ツール|プロジェクトオプション|メトロノーム SettingsMidiIn (SettingsMidiIn [n1 n2 n3 n4 n5 n6 n7 n8 n9 n10 n11 n12 n13 n14 n15 n16]) ツール|プロジェクトオプション|MIDI入力 n1〜n16はMIDIチャンネル。
0 : 非録音(非エコー)。
1 : 録音(エコー)。SettingsMidiThru (SettingsMidiThru [nMode nPort nChan nKey nVel nLocalOnPort]) ツール|プロジェクトオプション|MIDI入力|Thruマッピング SettingsMidiOut (SettingsMidiOut [bTxMidiRt bSendCont bSendSPP nSPPDelay bCtrlZero bCtrlChase]) ツール|プロジェクトオプション|MIDI出力 SettingsRecordFilter (SettingsRecordFilter [bNote bKeyAft bControl bPatch bChanAft bWheel]) ツール|グローバルオプション|MIDI SettingsChannelTable (SettingsChannelTable [bOn n1 n2 n3 n4 n5 n6 n7 n8 n9 n10 n11 n12 n13 n14 n15 n16])