スタンダードMIDIファイル
具体的には、音の長さを2進数で記載し、下7桁ずつで区切り、最下位の7桁に8桁目として0を付記し、次の7桁に8桁目として1を付記し、さらに次の7桁が存在すれば8桁目として1を付記し、それぞれの8桁の2進数を16進法表記に変換して時間情報(デルタタイム)を表現する。
例えば、2進法で10000 00000000(16進法で10 00、10進法で4096)ならば、100000 0000000のように下7桁毎に区切られて、最初の下7桁の冒頭に0を書き加え、次の下7桁の8桁目になる部分に1と間の桁に必要な数の0を書き加えて16桁の10 10000 0 0000000となる。これをそのまま2進法にすると10100000 00000000となる。これを16進法に変換するとA0 00という可変長数値表現が得られる。時間情報(デルタタイム)はこのような可変長数値表現が用いられる。
データセクションでは、音を出す、音を止める、の操作指示を出している。音を出す場合には、デルタタイム(待ち時間)、ノートオンコマンド「90」、音の高さ(ノートナンバー)、音量(ベロシティ値)、の4つのデータを示す。音を消す場合には、デルタタイム、ノートオフコマンド「80」、音の高さ、音量「00」、の4つのデータを示す。音を消す際のデルタタイムが、音を消す待ち時間となり、実際には音を出している時間に相当する。
ノートオンコマンド「90」の前半の「9」は音を出す指示を意味し、後半の「0」は16チャンネルあるうちの最初のチャンネル番号を意味する。同様に、ノートオフコマンド「80」の前半の「8」は音を止める指示を意味する。
トラックチャンクには、実際の演奏データが格納される。それぞれのチャンクには
トラックチャンクであることを示す識別子"MTrk" 「4D 54 72 6B」(4バイト)
データ長(このトラックに入っているデータセクションのデータの長さ(16進法データの個数)。) (4バイト)
データセクション(可変長)
が格納される。データセクションの長さはデータ長で示される。データ長を数え誤って入力するなどデータ構成の整合性を欠くと標準MIDIファイルは演奏されない。
スタンダードMIDIファイル(Standard MIDI File、SMF)は、MIDI用ファイルフォーマットの一つである。Format0/Format1/Format2の3タイプが存在する。一般的に用いられている拡張子は .mid。標準MIDIファイルとも呼ばれる。