スタンダードMIDIファイル
MIDIの演奏データを記録するための基本ファイルフォーマットとして、Opcode社のDave Oppenheimが提唱し、デファクトスタンダードとなった。1991年にはMIDIの推奨実施例 (Recommended Practice) の第1号 (RP-001) として承認された。
バイト (情報)単位で記述されたコンピュータ等で演奏が可能なバイナリファイルである。記述内容は通常、2桁毎の16進法で解説されることが一般的である。ミュージックシーケンサーのような専門ソフトで作成・編集・演奏できるほか、バイナリエディタでも作成・修正・編集することが可能である。また、Windowsに附属するWindows Media Playerなどの音楽再生ソフトでも演奏できる。
音色の指定
音色は、「00 C0 XX」によって指定する。XXには、0から127を意味する「00」から「7F」までの128種類の値が入る。何も音色を指定しなければ、「00」としてピアノの音色で演奏される。音色の一覧はGeneral MIDI#Melodic soundsを参照のこと。
ノートナンバー、ベロシティ
音の高さ(ノートナンバー)、音量(ベロシティ値)については、以下を参照のこと。
MIDI#チャンネルメッセージ参照
音を出す・音を止める
どのキーをどの速さで押し下げたか等の音楽データをイベントと呼び、MIDIイベント、システムエクスクルーシブ (SysEx) イベント、メタイベントの3種類がある。 データセクションには時間情報と共にイベントを順次格納する。
なお、時間情報やイベント内のいくつかの数値については、同じくビッグエンディアン形式であるが一種の圧縮形式で格納されている。この形式は1byte~4byteの可変長で、可変長数値表現とも呼ばれ、1byteあたりには7bitの数値情報を持ち、最大28bitの数値情報を表すことができる。そして、それぞれの最上位bitがフラグとなっており、1である場合は次の1byteにビッグエンディアン形式の下位7bitずつの情報を含むことを示す。4byte目の最上位bitは使用しない。