-H:MIDI-EventFile
+F:00 01 # MIDI-Format
+N:00 02 # Track-Number
+D:01 E0 # DTime
-T:84
# Track #0 ----
------0:FF 03 08 55 6E 74 69 74 6C 65 64
…
------0:FF 51 03 07 A1 20
# --- tempo ---
---1920:FF 58 04 04 02 18 08
------0:FF 2F 00
-TE
-T:176
# Track #1 ----
----180:B0 79 00
…
…
----480:90 O5E 64
# -- 960 --
------0:90 O5D 00
----480:90 O5F 64
# -- 1440 --
…
…
----480:C0 00
------0:FF 2F 00
-TE
|
フォーマット
- 先頭行
先頭行は、-H:MIDI-EventFile[CR]しか許されません。これ以外では、変換は為されません。
- ヘッダ情報
トラック情報が始まる前に、以下のヘッダ情報を記載します。記載されていなければ、正常に変換されません。
- +F:に続けて、MIDIフォーマット形式(0,1,2)を、16進数2桁(1バイト単位)で2バイト記載します。
- +N:に続けて、トラック数を16進数で2バイト記載します。
- +D:に続けて、4分音符の分解能(通常480)を、16進数で2バイト記載します。
※+F:,+N:,+D:は行頭から始まって居る事が条件です。
※以降、トラック情報でも同様ですが、16進数の部分は、Byte単位で、空白を空ける,空けない,または、間に複数の空白を挟んでも認識出来る仕様ですが、1バイト分2桁の16進数字を離して書く事は出来ません。尚、リズム楽器の短縮名,MML表記を使う場合は、前後にスペースを空けないと、誤認識されるケースがあります。
- トラック情報
- トラック情報は、-T:〜-TE行の間に記述します。-T:に続けて、トラックのサイズを10進数にて記述しますが、変換される際のデータ長は、Trackデータを作成する途上で、自動で計算されるので、キッチリ書く必要はありません。但し、このデータを元に、Track作成用のメモリを確保するので、若干余裕を持った値を記述した方が安全です。
- トラック内は、1行に1個のイベントを記述します。
- イベントは、最初にデルタタイムを10進数で記載しますが、必ず7桁で、右詰で
記述して下さい。
- 8桁目は、必ずコロン(:)として下さい。
イベントであるか否かの判断は、8桁目に':'が有るか否かで判断しています。コンバータが吐き出すイベントテキストでは、'#'が、あたかもコメントの様に扱われていますが、'#'以降が必ずコメントではありませんので、注意してください。
- イベントの本体を、これ以降に、16進数で記述します。
16進数でイベントの桁数(デルタタイプを省いた部分)分の16進数を記述して下さい。バイト数が不足,余分な記述が有った場合は、正しく変換出来ませんので、イベント行本体への余分な表記は避けて下さい。但し、以下の簡易表記は許されています。
- テンポ指定
テンポの指定では、!に続けて、10進数での指定が出来ます。
左記の例では、
0:FF 51 03 07 A1 20
の代わりに、
0:!120
の様に指定が可能です。
- リズム楽器の短縮名表記
リズムパート(CH=9)の楽器指定には、ESN(Electric Snare),LFT(Low Floor Tom)等の短縮名を利用する事が可能です。この記述は、小文字でも可です。
- 音符のMML表記
リズムパート以外の音程指定は、O5E,O4C#等の、MML記述が使用出来ます。オクターブを指定する、'O'は、小文字を使用出来ますが、音程を示すA〜Cの文字は、小文字にすると、半音上げ(#)を指定したものとして扱われます。O3G+は、O3G#と同様,O3Gb,O3G-は、フラットを示します。
- 注釈(コメント)
上記のフォーマットに合わない部分は、読み飛ばされるので、必然的にコメントとなります。ヘッダ部分では、先頭行に-,+等が無い事,トラックデータ内では、行の8桁目に、(:)が無い事で、注釈行として扱う事が出来ます。尚、ヘッダデータでの、16進数2バイト後は、必然的に注釈になります。
|