グローバル命令は、SMCファイル全体の動作を決定する命令です。多くは、MIDファイルのヘッダおよびメタイベントを決定する要素となります。
#INCLUDE ファイルを読み込み、その行へ挿入します。 #COMMENT #END-COMMENTまでを注釈化します。 #END-COMMENT #COMMENTによる注釈化を解除します。 #DEFINE マクロを定義します。 #DIVISION 4分音符の分解能を設定します。 #TEMPO テンポを設定します。 #TEMPO-M テンポを設定します。 #COPYRIGHT 著作権表記を設定します。 #MUSIC-NAME 曲名を設定します。 #PROGRAMMER プログラマ名を設定します。 #INSTRUMENT 音源名を設定します。 #MEMO ファイルに関するメモを設定します。 #BEAT 拍子に関する情報を設定します。 #KEY 調に関する情報を設定します。 #FADEOUT-SPEED フェードアウト速度を設定します。 #FADEOUT-LOOP-COUNT フェードアウトまでのループ回数を設定します。
書式 #INCLUDE <{挿入ファイル名}>
#INCLUDE "{挿入ファイル名}"解説 ファイルを読み込み、その行へ挿入します。
{挿入ファイル名}は、挿入するファイルの名前です。“<>”または“""”でくくった文字列を指定します。 ファイル名がフルパス名でない場合は、以下の順でディレクトリを検索します。
“<>” 「環境変数“SMC_INCLUDE”で示すディレクトリ」
「SMC.EXE(SMC.X)の存在するディレクトリ」“""” 「カレントディレクトリ」 参照
用例 “SMFSTD.SMI”ファイルを挿入します。
#INCLUDE <SMFSTD.SMI>
書式 #COMMENT {条件} 解説 #END-COMMENTまでを注釈化します。 {条件}は、注釈化の条件です。省略または0以外の数値のとき、注釈化を行ないます。 参照 #END-COMMENT 用例 注釈化を行ないます。
#COMMENT この部分は注釈となります。 #END-COMMENT
書式 #END-COMMENT 解説 #COMMENTによる注釈化を解除します。 参照 #COMMENT 用例 注釈化を行ないます。
#COMMENT この部分は注釈となります。 #END-COMMENT
書式 #DEFINE {マクロ名}:{マクロ内容} 解説 マクロを定義します。
{マクロ名}は、マクロの名前です。
{マクロ内容}は、マクロに定義する内容です。
詳しくは「6.4 マクロ機能について」を参照してください。参照 マクロ機能について 用例 マクロ名“OCTAVE”にマクロ内容“CDEFAGB<C>”を定義します。
#DEFINE OCTAVE:CDEFGAB<C>
書式 #DIVISION {MIDIクロック数} 解説 4分音符の分解能を設定します。
{MIDIクロック数}は、4分音符のMIDIクロック数です。24・48・96・192・384・480などを指定します。初期値は48が与えられています。
通常は上に挙げたような「2および3で割り切れる数」を指定するのが便利です。参照
用例 4分音符の分解能を96にします。
#DIVISION 96
書式 #TEMPO {テンポ} 解説 テンポを設定します。
{テンポ}は、1分あたりの4分音符の拍数です。30〜1024を指定します。初期値は120が与えられています。参照 #TEMPO-M
T
@{TEMPO:}
@{TEMPO-M:}用例 1分間150拍にします。
#TEMPO 150
書式 #TEMPO-M {テンポ} 解説 テンポを設定します。 {テンポ}は、4分音符1拍あたりの時間をμ秒単位で表わしたものです。50000〜2000000程度を指定します。初期値は500000が与えられています。 参照 #TEMPO
T
@{TEMPO:}
@{TEMPO-M:}用例 4分音符1拍を0.5秒(500000μ秒)にします。
#TEMPO-M 500000
書式 #COPYRIGHT "{著作権表記}" 解説 著作権表記を設定します。
{著作権表記}は、著作権を表わす文字列です。“""”でくくった文字列を指定します。
普通は年号と著作権所有者を書きます。作詞・作曲・編曲者などがプログラム者本人でない場合は、それらを先に書くようにします。参照 @{COPYRIGHT:} 用例 著作権表記を設定します。
; 私の著作権表記 #COPYRIGHT "(C)1996 GORRY" ; 現著作者とプログラム者が異なる場合の表記 #COPYRIGHT "作詞:AAA/作曲:BBB/編曲:CCC/(C)1996 DDD"
書式 #MUSIC-NAME "{曲名}" 解説 曲名を設定します。
{曲名}は、曲の名前を表わす文字列です。“""”でくくった文字列を指定します。
トラック1の最初に置かれた“@{TRACK-NAME:}”命令と同じ働きをします。参照 @{TRACK-NAME:} 用例 “SPICEのテーマ”という曲名を設定します。
#MUSIC-NAME "SPICEのテーマ"
書式 #PROGRAMMER "{プログラマ名}" 解説 プログラマ名を設定します。
{プログラマ名}は、データ作者の名前を表わす文字列です。“""”でくくった文字列を指定します。
トラック1の最初に置かれた“@{REM:}”命令と同じ働きをします。参照 @{REM:} 用例 私の名前を設定します。
#PROGRAMMER "GORRY"
書式 #INSTRUMENT "{音源名}" 解説 音源名を設定します。
{音源名}は、音源の名前を表わす文字列です。“""”でくくった文字列を指定します。
トラック1の最初に置かれた“@{TRACK-INST:}”命令と同じ働きをします。参照 @{TRACK-INST:} 用例 いろいろな音源名を設定します。
#INSTRUMENT "GM" ; General MIDI #INSTRUMENT "Roland GS" ; ローランドGSスタンダード #INSTRUMENT "Roland SC-55" ; ローランドSC-55 #INSTRUMENT "YAMAHA XG" ; ヤマハXG #INSTRUMENT "YAMAHA MU80" ; ヤマハMU80
書式 #MEMO "{メモ}" 解説 ファイルに関するメモを設定します。
{メモ}は、メモを表わす文字列です。“""”でくくった文字列を指定します。
トラック1の最初に置かれた“@{REM:}”命令と同じ働きをします。参照 @{REM:} 用例 “"サンプル曲です。"”を設定します。
#MEMO "サンプル曲です。"
書式 #BEAT {拍子},{メトロノームクロック数},{32分音符数} 解説 拍子に関する情報を設定します。
{拍子}は、曲が何拍子であるかを示します。“4/4”・“6/8”などの形で指定します。それぞれ「4分の4拍子」・「8分の6拍子」を表わします。
{メトロノームクロック数}は、メトロノームを鳴らすタイミングです。MIDIクロック数を指定します。通常は4分音符のMIDIクロック数を指定します。
{32分音符数}は、4分音符内に置ける32分音符の数です。数値を指定します。通常は8以外を指定することはありません。参照 @{BEAT:} 用例 4分の4拍子、メトロノームクロック数48mc、32分音符数8を設定します。
#BEAT 4/4,48,8
書式 #KEY {調号数},{調スケール} 解説 調に関する情報を設定します。
{調号数}はシャープまたはフラットの数です。-7〜+7を指定します。負であればフラットの、正であればシャープの個数を表わします。
{調スケール}は長調か短調かを示します。0または1を指定します。0であれば長調、1であれば短調です。参照 @{KEY:} 用例 へ長調(フラット1個)に設定します。
#KEY -1,0
書式 #FADEOUT-SPEED {フェードアウト速度} 解説 無限ループを終了するときのフェードアウト速度を設定します。
{フェードアウト速度}はフェードアウトの速度です。1〜256〜16384を指定します。256が標準(1倍)となっており、1〜16384が1/256倍速〜64倍速となります。初期値は256が与えられています。
標準のフェードアウト速度の場合、4分音符10個分の間にメイン・ボリューム(CCナンバー7)を0にします。
SMCのコマンドラインでオプション-F[n]が設定された場合、オプションの数値のほうが優先されます。参照 #FADEOUT-LOOP-COUNT 用例 フェードアウト速度を256に設定します。
#FADEOUT-SPEED 256
書式 #FADEOUT-LOOP-COUNT {ループ回数} 解説 無限ループの実ループ回数を設定します。標準MIDIファイルには無限ループを表現する方法がないため、SMCはこの命令で設定された回数だけループしたあと、フェードアウトするようなデータを出力します。
{ループ回数}はフェードアウトを始めるまでの繰り返し回数です。1〜127を指定します。初期値は2が与えられています。 参照:参照 #FADEOUT-SPEED
|:〜:〜:|用例 無限ループの実ループ回数を4に設定します。
#FADEOUT-LOOP-COUNT 4