MIDI

送信

31.25Kbps (±1%) の非同期方式シリアル転送を用いる。

接続

MIDI機器（ハードウェア）は5ピンのDINコネクタで接続するのが一般的である。両端に位置する1番ピンと3番ピンは現在の仕様上では使用されず、中央2番ピンはケーブルのシールド用に、4番、5番ピンがデジタル信号のカレントループ伝送に使用される。MIDIケーブルの両端はどちらもオス端子で、シールドされたツイストペアケーブルとして設計される。
コネクタには、MIDI信号を受け取るMIDI IN、MIDI信号を送信するMIDI OUT、受信したMIDI信号をそのまま送信するMIDI THRUの3種類がある。機器パネル側は常にメス端子となる。グラウンドループや障害の連鎖防止のため、MIDI機器同士には電気的絶縁が規定されており、受信側内部では接地線の2番ピンは接続されず、信号はフォトカプラで受信される基本仕様となっている。フォトカプラを経由するたびに信号波形の再現性が下がるため、MIDI THRUを多段直列すると通信エラーが発生することもある。並列に複数のMIDI機器を接続する場合や、信号系統を簡単に切り替えたい時はMIDIパッチベイを用いるが、これを使うことにより多段時の通信エラーも回避できる。
MIDIはバスではない。MIDI IN端子とMIDI OUT端子が別々で用意されていることから判るように、MIDIケーブル間のデータは一方向に送信される。
後述するアクティブセンシング機能で、接続状態が良好か、断線していないかを常に判定しており、アクティブセンシングが途絶えたとき、お互いのMIDI機器はケーブルが抜けたと判定するように作られている。
現代には、MIDI IN、MIDI OUTを使わずRS-232C、USB、IEEE 1394などの規格を使った接続を行う機器も存在している。この場合、MIDIケーブルではなくこれらの規格のケーブル内をMIDI信号が通るため、転送に関して上記の通りではない。

チャンネル

2本のMIDIケーブルを用い、お互いの機器のMIDI IN、MIDI OUTをそれぞれつないだ状態を1つの「システム」と捉える。このシステム毎に16のチャンネルが用意される。基本的にひとつのチャンネルにひとつの楽器（1パート）が割り当てられる。
これにより、1本のMIDIケーブルで16チャンネル分のデータを送信もしくは受信させることができる。例えば「1チャンネルのピアノと3チャンネルのギターを鳴らす」といったことである。16チャンネル分のデータは、後述する「チャンネルメッセージ」にて正確に分類され、相手機器の各チャンネルに届く。
それ以上のチャンネルを制御するためにはMIDIケーブルが複数本必要となり、MIDIデータのパート数（=チャンネル数）によっては、複数のMIDI音源を用意する必要もでてくる。

MIDIメッセージ

MIDI規格上のデータの送受信は、すべてMIDIメッセージで行われる。MIDIメッセージは、複数のバイト（8ビット）で構成されている。「電子楽器の鍵盤を弾いたことで音が出る」という一連の流れもMIDIメッセージで制御されている。バイト単位で処理していくため、文言上では16進数を用い、数の後にHを付ける。
MIDIメッセージを効率よく送信するために、MIDIメッセージに使用されるバイトは「ステータスバイト」か「データバイト」の大きく2種類に分けられる。ステータスバイトとはMSB (Most Significant Bit)が「1」、すなわち80H - FFHまでの128個のバイトを指し、データバイトとはMSBが「0」、すなわち00H - 7FHまでの128個のバイトを指す。
MIDIメッセージは複数のバイトで構成されていると前述したが、これらの先頭は常にステータスバイトで始まり、ステータスバイトの後に任意の個数のデータバイトが続く。ステータスバイトでは、ノートオンやコントロールチェンジ、システムエクスクルーシブなどを定義する。データバイトは、ステータスバイトで定義したものについて、その内容や数値を指定するのに使用する。
ステータスバイトが80H - FFHのうち何であるかによって、「チャンネルメッセージ」、「システムメッセージ」に分かれる。

チャンネルメッセージ

チャンネルメッセージとは、特にチャンネルを指定して送信するMIDIメッセージのことである。チャンネルメッセージのステータスバイトは80H - EFHである。ここからさらに「チャンネルボイスメッセージ」、「チャンネルモードメッセージ」と分類される。

システムメッセージ

システムメッセージとは、チャンネルに関係なくMIDIシステム全体に対する命令を行うMIDIメッセージである。システムメッセージのステータスバイトはF0H - FFHである。機能ごとに「システムエクスクルーシブメッセージ」、「システムコモンメッセージ」、「システムリアルタイムメッセージ」の分類される。

システムエクスクルーシブメッセージ

システムエクスクルーシブメッセージ（Sys-Ex、またはSysExと略記し、シスイーエックスと読む場合もある）は、MIDI機器のより細かい設定を行ったり、音色データやサンプリングデータを送受信するなど、各メーカーのMIDI機器の固有のデータのやりとりに使用できるシステムメッセージである。ステータスバイトF0Hで始まる。
MIDIメッセージは大抵2バイト程度のデータバイトで成り立つが、SysExはMIDIメッセージ中、唯一データバイト長が指定されていない。可変長のため、最後にシステムコモンメッセージとして定義されているF7H エンドオブエクスクルーシブ (EOX) を送信することでSysExの終了を表現する。

サンプルダンプ

サンプルダンプとは、システムエクスクルーシブメッセージを使用してサンプラーとMIDI機器間でサンプリングデータを通信する規格である。サンプルダンプに関するフォーマットをサンプルダンプスタンダード (SDS) という。MMAが1987年に提案した規格で、MMA-0003として定義されている。
ただし、前述の通りMIDIの通信速度は31.25Kbpsと、データ転送用途としては非常に遅い上、現代にはUSBやIEEE 1394などの高速シリアルバス普及しているため、一部の学習・研究用途を除き使われることは無くなった。

RP

RP (Recommended Practice) とは、MIDI規格策定後、利便性を高めるための推奨実施例として拡張された規格である。現在すでに複数の拡張規格がAMEIとMMAにより承認されており、いずれも共通規格としてMIDI規格に組み込まれている。

スタンダードMIDIファイル

スタンダードMIDIファイル(SMF)とは、MIDI機器やMIDIメッセージを用いる演奏に関するデータの保存形式であり、メーカー毎のソフトやハードに関係なく使用できる共通のファイルフォーマットである。拡張子は.mid。いわゆる「MIDIデータ」は演奏形式である前述した「MIDIデータフォーマット」の略称であるが、このスタンダードMIDIファイルを指すべく拡大使用される場合がある。
Opcode社により独自規格として提案されたが、1991年7月にAMEIとMMAによりRPの第1号(RP-001)に追認された。

MIDIショーコントロール

MIDIショーコントロール (MIDI Show Control, MSC) とは、照明や映像機器など、ショーの演出をコントロールする目的で策定されたRPである。1991年にRP-002、のちにRP-014にて定義されている。

MIDIタイムコード

MIDIタイムコード (MIDI Time Code, MTC) は、同期システムを組むことを目的として策定されたRPである。1987年に、RP-004にて定義されている。
MIDI規格策定時に、同時に策定されたMIDIタイミングクロックは絶対時間を持たなかったが、SMPTEの普及につれMIDI上でも絶対時間を持ったクロックが必要となってきたことが、MTC策定の背景である。
MIDI策定団体であるMMAが中心に提案したため、RPのほかにMMA-0001としても定義されている。

記譜情報

記譜情報はMIDIデータ（MIDIメッセージの集合）を楽譜上に音符として表示するために策定されたRPである。RP-005、RP-006にて定義されている。

ファイルダンプ

ファイルダンプとは、MIDIケーブルを使ってSMFデータを転送するために策定されたRPである。RP-009にて定義されている。

MIDIマシンコントロール

MIDIマシンコントロールとは、システムエクスクルーシブメッセージを用いてMTRやVTRを制御するために策定されたRPである。1992年に、RP-013にて定義されている。

SMF with Lyrics

SMF with Lyrics (SMF Language and Display extensions) とは、SMFのメタイベントとして用意されている歌詞格納機能を拡張したRPである。1999年に、RP-026にて定義されている。
メタイベントと違い、表示を目的としており、曲タイトル、作曲者名、作詞者名、歌詞やふりがなを格納できる。カラオケの歌詞表示や楽譜上の歌詞表記などの用途を想定されている。また、日本語 (Shift JIS) も使用できる。

MIDI Media Adaptation Layer for IEEE-1394

MIDI Media Adaptation Layer for IEEE-1394は、MIDIインタフェースなどのMIDI機器をIEEE 1394を用いて接続することに関するRPである。2000年に、RP-027にて定義されている。

SP-MIDI

SP-MIDI (Scalable Polyphony MIDI) は、あらゆる音源で最適なデータを再生するために策定されたRPである。2002年に、RP-034、RP-035にて定義されている。
例えば、通常だと24ボイス（パート数）を持つ音源用に作られたデータを16ボイスの音源で再生すると、8ボイス分は無視されてしまう。このままではデータ制作者の意図した再生ができないため、従来なら24ボイス用、16ボイス用と複数のデータを用意する必要が有った。このSP-MIDIの規格に従うと、ひとつのデータに前もって複数環境分の情報を収録できるので、少ない工数で、あらゆる音源で問題なく再生が出来るようになる。この技術は主に携帯電話向けに使用される。

MIDI XML

MIDI XML ("MIDI Names, Device Types, & Events in XML") は、SMFをXMLで記述することを目的として策定されたRPである。2003年に、RP-038にて定義されている。

その他の規格

RPとして承認されていないが、各メーカーが独自に打ち出した規格も存在する。中には、比較的一般的となった規格も存在する。ただしメーカーに左右されるため、メーカーを越えた互換性は無い場合が多い。
なお、現在はこれ以上の音色配列などに関する規格の複雑化を防ぐため、AMEI、MMA共にGM2に一本化することを求めており、また、GS・XGはお互い規格をオープンにして相互にサポートすべきとしている。しかし、実際にはローランド製、ヤマハ製の製品であってもGS・XG自体をサポートしない製品が増えてきたことも事実である。
同じ楽譜で演奏をしても、演奏者や楽器が異なると音が違って聴こえるように、使用する音源を変えれば出音は違ってくる。そのため、例えばインターネット上で配布されているMIDIデータをデータ制作者の意図した通りに演奏するためには、制作者が使ったものと同じ、音色設定を完全に一致させた音源が必要になる。たとえGS対応と謳っていてもGS対応音源なら何でもいいというわけではなく、どの音源モジュールを使うかによって音は異なる。

GSフォーマット

GSフォーマットは、1991年にローランドが提唱、策定した音色配列などに関する独自規格。RP-003であるGMを拡張して作られたと思われがちだが、こちらが先行している。GMは、GSから他社と共有できる部分を抜粋し標準化したものである。
GSに対応した音源には、SC-55やSC-88Proなどのローランド・SCシリーズが有名。

XGフォーマット

XGフォーマットは、1994年にヤマハが提唱、策定した音色配列などに関する独自規格。ヤマハ製の音源モジュールやシンセサイザーの互換性を持たせるためにGMを拡張する形で作られた。
XGに対応した音源には、MU80やMU500などのヤマハ・MUシリーズが有名。

用途と機器

本項ではMIDI規格が使われる用途と、MIDI規格を使用するハードウェア（機器）、ソフトウェアについて解説する。なお、箇条書きにしているハードウェアやソフトウェアは一例である。

カラオケ

カラオケ機器は、MIDIデータを再生する機能が備わっている。各カラオケ店舗では、インターネット回線を通じて最新曲のMIDIデータを受信する仕組みになっており、通信カラオケと呼ばれるのはこのためである。ブロードバンドインターネット接続が普及する以前は、現在のように大量の音声データをインターネットで送受信するのは困難であったが、MIDIデータであれば、当時の低速な回線でも十分に送受信可能であった。
なお、カラオケ用MIDIデータはカラオケデータ制作専門のプログラマなどが、ソフトシーケンサーなどを用いて制作し、通信カラオケ配信会社に卸す仕組みとなっている。

モバイル機器・着信メロディ

スマートフォンの登場以前、携帯電話の着信メロディにおいてMIDI規格が利用されていた。携帯電話内のデータを、携帯電話内に搭載された音源が処理し音を鳴らしている。携帯電話向けのRPも複数拡張された。

その他

鉄道のプラットホームで流れる発車メロディや、学校・会社で流れるチャイムを再生するタイマーなどでもMIDI規格が応用されることがある。

MIDI検定

MIDIの基礎知識や、業務レベルの細かい知識などを問うMIDI検定が1999年より実施された。現在4,3,2,1級の4階級が用意されており、2級には2級筆記試験と2級実技試験の2段階が用意されている。
3,2級検定試験は年1回の実施、MIDI4級検定試験は各公認講師・指定校による随時開催となっている。
MIDI検定開始から11年間、1級試験は実施されず2級実技試験が最高級とされていたが、2010年1月15日より、1級試験が新設された。