6.2. SMCの書式


[表紙に戻る] [<<<<<] [>>>>>]


SMCは、行単位で処理を行ないます。SMCは、以下の手順でSMCファイルからSMCが処理する1行を読み込みます。

  1. 入力バッファをクリアします。
  2. SMCファイルから改行文字までを読み込み、入力バッファの右側に追加します。
  3. 「注釈文字“;”」から右側の文字を(“;”も含め)切り捨てます。
  4. 右端のスペース・タブを切り捨てます。
  5. 行末の文字が「行接続文字“\”」である場合、“\”をスペースに変換して、再び2.から処理を行ないます。
  6. 行内のマクロを展開します。

行内で、“""”で囲まれた部分は「文字列」です。文字列内では、さらに以下の変換が行なわれます。

  1. 「エスケープ文字“\10進数値}”」・「エスケープ文字“\$16進数値}”」をASCII文字コードに変換します。
  2. 「エスケープ文字“\"”」を“"”に変換します。
  3. 「変数“\?変数名}”」・「システム変数“\??変数名}”」を変数内容に変換します。

1行の長さは4096文字までです。

SMCは、1行を読み込んだあと、行の左端の文字が何であるかによって、以下から選択された作業を行ないます。

文字 解説
“<19>” 1〜255までのトラック番号であるとみなして、トラックデータ行として処理します。
トラック1は“T”・“@{TEMPO:}”・“@{TEMPO-M:}”命令によるテンポの設定にのみ使用します。
,”で区切った複数のトラック番号を与えることで、複数のトラックに同時にデータを与えることができます。
; 3トラックにcdefgを与える
3 cdefg
; 3,4,5トラックにcdefgを与える
3,4,5 cdefg
# グローバル命令行として処理します。
@ データ・ブロック定義行として処理します。
; 注釈行として読み飛ばします。処理はしません。
それ以外 注釈行として読み飛ばします。


[表紙に戻る] [<<<<<] [>>>>>]