SMF2Q1 標準MIDIファイルをQ1形式に変換する

書法

SMF2Q1 [filename]* [option]*

SHELLMODE

@記述、!記述、^記述

詳細

標準MIDIファイルをQ1形式に変換して出力する
ファイル名を省略すると標準入力を取り扱う。

取り扱う標準MIDIファイルは format 0のものだけ。

Q1形式

MIDIシーケンスの処理を簡易とするために設けた形式。
テンポ情報を持ち、時間に関しては相対的な記述になっている。 ティックの分解能は1拍あたり480に固定されている。

記述

単純にメッセージを時間軸に沿って並べる。 最後のメッセージは、後述の、EOTメッセージであること。
全てのメッセージの先頭には1バイトのデルタタイムがつく。 このデルタタイムは、先行するメッセージとの差分のティック数。
SYSEXの2種類のメッセージを除けば、すべて、4バイトの固定長である。 従って、通常の使用法では、単純にメッセージ配列として取り扱える。

メッセージ

CHANNEL DB delta,status,val1,val2 MIDIのChannelメッセージに相当する。
TEMPO DB delta,0xf1
DW tempo
テンポを表わす。tempはBPM*100の値。
TIMING DB delta,0xf8,0,0 デルタタイムのオーバーフローを補うためのダミーメッセージ
EOT DB delta,0ffh,0,0 一番最後のメッセージ。
sysexF0 DB delta,0xf0
DWORD len
DB body.....
SYSEXメッセージ。可変長。
データ先頭のF0は省略されている。 もし、このメッセージ内で完了するならば、データの最後にはF7があるべき。
sysexF7 DB delta,0xf7
DWORD len
DB body.....
SYSEXメッセージ。可変長。
このメッセージの内容は、そのまま出力される。
通常は使用すべきではない。 sysex内部で複雑な時間管理が必要な場合にのみ使用する。

OPTION

-Ofilename
指定のファイルに出力を切り替える。
-X
SYSTEM EXCLUSIVEメッセージも変換する。デフォルトは変換しない。

用例

参考

バージョン

Ver 1.00初版