General MIDI

General MIDI，簡稱GM，是MIDI的統一規格。雖然MIDI自己本身提供了使不同儀器能夠在基礎水平上互用的協定，但General MIDI提供了更進一步的規範：它要求所有的GM相容儀器達到一些共同的特點，像是能夠同時演奏至少24個音符（複音），而且它包含了許多未在MIDI中規範，關於參數和控制訊息的解釋，像是定義儀器可以擁有128個發聲數。

最初標準化General MIDI是在1991年，由MIDI制造商协会（MMA）以及（JMSC）共同制定，此後就獲採用作為MIDI標準的追加。該標準要求至少能滿足以下條件：
允許同時24個發聲數（包含16個旋律，和8個打擊樂的聲音）
能對應音符力度
能同時使用16個頻道（頻道10預留為打擊樂用）
每個頻道能夠演奏複音

概要 

在制定GM之前，MIDI的音色訊號以及控制訊息會因MIDI音源的製造商以及機種而不同。這使的不同的儀器之間並沒有互換性。由不同的MIDI儀器做出來的曲子，在其他的MIDI儀器上播放會導致與結果可能與作者原本想表達的不同的問題。為了解決這樣的問題，在1991年時，MIDI Manufacturers Association（MMA）與Japan MIDI Standards Committee（JMSC）共同制定了GM。

除了GM以外的規格，還有Roland推展的GS、YAMAHA推展的XG等。
這些幾乎都是為了擴張GM的衍生規格，對GM來說是能夠向上相容的。

現在有了GM2（General MIDI Level 2）規格，也是對GM的延伸。

參數 
GM儀器必須遵循以下關於樂器音色（program）以及控制事件（controller events）的慣例：

音色轉換事件（Program change events） 
以下的表單，列出各樂器音與與相應的音色編號（program change number）。

旋律音色（Melodic sounds）

打擊樂音符（Percussion notes） 
在General MIDI中，頻道10保留作為打擊樂器使用，不論音色編號為何。不同的音符對應到不同的打擊樂器。見下表：

控制器事件（Controller events） 
GM也同時規範了數個控制器的工作

RPN（Registered Parameter Number登錄參數） 

「登錄參數」是一系列參數，可以提供改變滑音輪的滑音範圍、顫音輪的顫音範圍、進入第二層音色庫……等較高階的功能。

設定「登錄參數」，需要以固定的格式傳送訊號（訊號的數字是十進位）：
啟動登錄參數功能（Control Change messages），必須先同時使用「控制碼」（CC）101和100，以選擇想要控制的參數（如下表）
接下來輸入數字資料（Data Entry messages，MSB = 控制器#6, LSB = 控制器#38）
最後若是「End of RPN」（CC 38）訊息，即表示結束訊息

以下的全球Registered Parameter Numbers (RPNs)是經過標準化的（參數由RPN LSB/MSB對規範，值則由Data Entry LSB/MSB對設定）：

例：用RPN控制串設定彎音輪（Pitch Bend）為八度（參數6，值12）
101:0, 100:0, 6:12, 38:0

例：用RPN控制串設定粗調（coarse tuning）至A440（參數2，值64）
101:0, 100:2, 6:64, 101:127, 100:127

系統排除訊息（System Exclusive messages） 
定義兩個系統排除（System Exclusive，"SysEx"）訊息：一個是決定使不使用General MIDI在同樣允許非GM相容模式之設備上的相容性；另一個用來修正樂器的整體音量。

參照

關聯項目 
General MIDI Level 2

MIDI
樂譜檔案格式