イベント名
|
イベントコード
|
説明
|
シーケンス番号
|
FF 00 02 ss ss
|
フォーマット2の場合、このシーケンス番号でパターンを認識することがありますが、
通常のフォーマット0、1では使用されません。FF 00 02 ss ssの後、2バイトで書かれます。
|
テキストイベント
|
FF 01 len text
|
任意のテキストデータを書き込むことができますが、著作権に関する記述や、曲名などは、
専用のエリアに書き込むべきです。また、ここに限らず、メタイベント内のテキストデータは、
ASCII文字に変換できる英文字にすべきで、互換性のためには日本語(2バイト文字)は書かないほうがいいでしょう。
「len」はその後に続く長さを宣言し、「text」はASCII文字コード表より、16進数で書かれます。
|
著作権表示
|
FF 02 len text
|
曲に関しての権利関係を表明する場合、このイベントによりできるだけ冒頭の部分に書き込むべきです。
内容は任意のテキストデータですが、(C)(コピーライトマーク)や、年号、管理者名などは
可能な限り入れるべきです。
|
シーケンス名/トラック名
|
FF 03 len text
|
フォーマット0の場合はこれがソング名となります。
フォーマット1の場合は第1トラックのトラック名がソング名となり、
以下のトラック名はそれぞれのトラック名となります。
|
楽器名
|
FF 04 len text
|
インストゥルメントネームとも言って、使用チャンネルとの関連を明確にするために、
MIDIチャンネルプリフィックスと一緒に使用するのがよいでしょう。
|
歌詞
|
FF 05 len text
|
曲中にタイミング情報(デルタタイム)を伴ったイベントとして記述されます。
そのタイミングにおいて、任意の文字列を表示することができます。
しかし文字列を表示できるのは再生ソフトがこのイベントに対応している場合のみです。
|
マーカー
|
FF 06 len text
|
タイミング情報とともにリハーサル記号や、任意の文字列を書き込むことができます。
|
キューポイント
|
FF 07 len text
|
マーカーに似ていますが、マーカーが曲中の進行にかかわるコメントなのに対し、
キューポイントはそれ以外の進行に対するコメントを記述するものです。
(例=ここで歌い手登場、映写開始など。テレビの本番を始めるときの「3、2、1、キュー」のキューのことです。)
|
MIDIチャンネルプリフィクス
|
FF 20 01 cc
|
MIDIイベントのように、それ自体チャンネル情報をもつイベント以外の全てのイベントとチャンネルを関連付けるメタイベントです。
次のMIDIチャンネルプリフィックス、またはMIDIイベントが来るまで、その値は有効です。
「cc」には具体的にチャンネル番号が入ります。
|
エンドオブトラック
|
FF 2F 00
|
このイベントは必ず入れなくてはなりません。正真正銘の曲の終わりのタイミングです。
問いにノートイベントのリリースがこのポイントを超えてしまわないようにする必要があります。
(JunzのオリジナルMIDIで最後の音が途切れているものがありますが、それはこのエンドオブトラックの設定が
間違っているからです。でも直そうとしない…)
|
セットテンポ
|
FF 51 03 tt tt tt
|
テンポ情報を記述しますが、気をつけなければならないのは設定する値の単位です。
FF 51 03の後の3バイトで4分音符の長さをマイクロ秒で記述します。
1秒は1,000,000マイクロ秒です。
例えば4分音符の長さを0.4秒に設定するとします。0.4秒は400,000マイクロ秒で6桁の16進数で表わすと
06 1A 80となります。よって4分音符の長さを0.4秒にするには「FF 51 03 06 1A 80」とすればいいのです。
またこのときのテンポは60÷0.4=150で4部音符=150(1分間に4部音符を150回打つ速度)です。
|
SMPTEオフセット
|
FF 54 05 hr mm se fr ff
|
タイムコードによる時間管理の場合に有効で、ヘッダーチャンクに続くトラックチャンクの
開始時間を指定することができます。
MIDIの時間管理は通常デルタタイムによって管理されているのでほとんど関係ありません。
「hr」は時間とフレームのタイプをエンコードした数値、「mm」は分、
「se」は秒、「fr」はフレーム、「ff」はフラクショナルフレーム(常に1/100)となります。
|
拍子/メトロノーム設定
|
FF 58 04 nn dd cc bb
|
何分の何拍子というのを設定するイベントです。「nn」は分子、「dd」は分母を表わします。
ただし分母は「2のマイナスdd乗」という形で指定しますので4分の4拍子を表す時は
nn=4、dd=2となります。また「cc」は1拍あたりのクロック数、
「bb」は1つのMIDI4分音符中の32部音符の数を表わします。
通常はcc=18(1拍あたり24のクロック)、bb=08(4分音符中に32分音符が8個)になっています。
例えば6/8拍子を設定するには「FF 58 04 06 03 18 08」となります。
|
調号
|
FF 59 02 sf mi
|
調号は♯(シャープ)の数、♭(フラット)の数、それと長調か短調かで表されます。
「sf」は1の補数表現でプラスであれば♯、マイナスであれば♭となります。「sf」は具体的には
♯の数=(1,2,3,4,5,6,7)=(01,02,03,04,05,06,07)
♭の数=(1,2,3,4,5,6,7)=(FF,FE,FD,FC,FB,FA,F9)
となります。また「mi」が00のときは長調、01のときは短調になります。例えばFメジャー(ヘ長調)は
B(シ)がフラットになるだけなので、フラットの数が1となり「FF 59 02 FF 00」となります。
|
シーケンサ固有メタイベント
|
FF 7F len data
|
名前の通りシーケンサ固有のメタイベントです。
「data」は可変長ですが1バイト目にはメーカーIDが入ります。ですから、IDを取得しているメーカーでなければ使うことはできません。
YAMAHAであれば「FF 7F len 43 data'」、Rolandであれば「FF 7F len 41 data'」となります。
その他の主なメーカーIDはKAWAI-40、korg-42、AKAI-47、CASIO-44、SONY-4Cなどです。
|