GM (MIDI)

読み:ジーエム
外語:GM: General MIDI System 英語
品詞:固有名詞

MIDIに付帯する推奨仕様の一つで、メーカー/機種を問わない、音源の動作や振舞い、音色配列等を共通化するためのフォーマット。

目次

General MIDI System Level 1(GM1)が、1991(平成3)年に社団法人音楽電子事業協会(AMEI)とMMA(MIDI Manufacturers Association)によって、推奨仕様(Recommended Practice)として採用された。

その後はメーカー各社が独自拡張を盛り込んで楽器の高性能化を実現するが、メーカーの「囲い込み戦略」もあって仕様は共通化されていなかった。

そこで、1999(平成11)年に、AMEIとMMAは「GM2」フォーマットを新たな推奨仕様(RP024)として策定した。

GM1/GM2

GM1では、基本的な音色などを定義した。GM2では、GM1で限界があった点の改良を施した。

GM2は基本的にGM1に対する上位互換であり、次のような特徴がある。

  • 発音方式を問わない点は同じ
  • 音色配列はGM1互換でこれをバンク切り替えで拡張する
  • パーカッション・サウンド・セット(ドラム・セット)はチャンネル10を使用する(GM1互換)
  • チャンネル10を、メロディ・ボイスにセット可能になった

    ドラムが不要な曲で、1チャンネル分メロディに利用可能となる

  • チャンネル11を、リズムチャンネルとして利用可能になった
  • パート数は16でGM1と同じ
  • 最大同時発音数を32音以上に拡張した(GM1は24音以上)
  • パーカッション・サウンド・セット(ドラム・セット)を9種類に拡張(GM1は1種類)
  • エフェクトに関する規定を追加(GM1では規定無し)
  • 音色エディット・パラメーターの規定を追加(GM1では規定無し)
  • 新たなコントロール方法(エクスクルーシブ・メッセージ)を追加

音色

GM誕生前は、音色番号1から128までに、各メーカーが独自に音色を割り当てていたため、異なるメーカー同士では交信に支障があった。

音源にLAを採用した、いにしえの人気シンセサイザーMT-32などの時代が、まさに該当する。

現在でも、様々なメーカー独自拡張が使われているが、全てがGM1互換(またはGM2互換)となっている。

拡張

音色が128種類では、やはり不足した。またGM1にはエフェクトに関する規定が無かったので、これも拡張として要求された。

そこで、次のようなものが作られた。

GS、XG、それぞれ更なる拡張やサブセットの仕様が作られている。

音色については、バンク切り替えという方法で拡張されている。

データバイト

8ビットのデータのうち、1バイト目がMSB(ビット8)が0のものが「データバイト」である。

「ノート・ナンバー」などと呼ばれる、「音の高さ(ピッチ)」「音の強さ(ベロシティ)」といった情報は、データとして送られる。

なお、値と音は、次のように対応する。

  • 0 ‐ −1オクターブC (C−1)
  • 12 ‐ 0オクターブC (C0)
  • 24 ‐ 1オクターブC (C1)
  • 36 ‐ 2オクターブC (C2)
  • 48 ‐ 3オクターブC (C3)
  • 60 ‐ 4オクターブC (C4)
  • 72 ‐ 5オクターブC (C5)
  • 84 ‐ 6オクターブC (C6)
  • 96 ‐ 7オクターブC (C7)
  • 108 ‐ 8オクターブC (C8)
  • 120 ‐ 9オクターブC (C9)
  • 127 ‐ 9オクターブG (G9)

中央(4オクターブ)のド(C4)を60として、C−1からG9までの128音階を表現できる。

一般的な88鍵ピアノではA0からC8の範囲なので、充分な範囲を網羅している。

ステータスバイト

8ビットのデータのうち、1バイト目がMSB(ビット8)が1のものが「ステータスバイト」である。様々な制御をするために使われる。

1バイト目がステータス、必要に応じて第2バイト、第3バイトのオプションが付く。第2バイト以降は、MSBは常に0で用いる。

仕様上、使われているのは、次の範囲内である。

  • 8nH ‐ チャンネル・ボイス・メッセージ
  • 9nH ‐ チャンネル・ボイス・メッセージ
  • AnH ‐ ポリフォニック・キー・プレッシャー
  • BnH ‐ コントローラー、チャンネル・モード・メッセージ
  • CnH ‐ プログラム・チェンジ
  • DnH ‐ チャンネル・プレッシャー
  • EnH ‐ ピッチ・ベンド・チェンジ
  • FEH ‐ システム・リアルタイム・メッセージ
  • F0H ‐ システム・エクスクルーシブ・メッセージ

ステータスバイトの主な仕様は次の通り。GM1/GM2のみならず、GSなどの独自拡張にも触れる。

基本的な機能は次の通り。なお、用語についてはローランドの方式による。

チャンネル・ボイス・メッセージ

ノート・オフ、ノート・オンを行なう機能(3バイトまたは3バイト×2)。

  • ノート・オフ(3バイト×2)

    8nH kkH vvH

    9nH kkH 00H

    • n=MIDIチャンネル・ナンバー: 0H‐FH (ch.1〜ch.16)
    • kk=ノート・ナンバー: 00H‐7FH (0‐127)
    • vv=ノート・オフ・ベロシティー: 00H‐7FH (0‐127)
  • ノート・オン(3バイト)

    9nH kkH vvH

    • n=MIDIチャンネル・ナンバー: 0H‐FH (ch.1〜ch.16)
    • kk=ノート・ナンバー: 00H‐7FH (0‐127)
    • vv=ノート・オフ・ベロシティー: 00H‐7FH (0‐127)

ポリフォニック・キー・プレッシャー

キー・プレッシャーの設定を行なう機能(3バイト)。

AnH kkH vvH

  • n=MIDIチャンネル・ナンバー: 0H‐FH (ch.1〜ch.16)
  • kk=ノート・ナンバー: 00H‐7FH (0‐127)
  • vv=キー・プレッシャー: 00H‐7FH (0‐127)

コントローラー、チャンネル・モード・メッセージ

機能

3バイト形式で、次の通り。

BnH xxH yyH

xxにコントローラー・ナンバー、yyに設定する値を入れる。

様々な機能が、メーカー独自拡張として存在している。

  • 00H、20H ‐ コントロール・チェンジ
  • 01H ‐ モジュレーション
  • 05H ‐ ポルタメント・タイム
  • 06H、26H ‐ データ・エントリー
  • 07H ‐ ボリューム
  • 0AH ‐ パンポット
  • 0BH ‐ エクスプレッション
  • 40H ‐ ホールド1
  • 41H ‐ ポルタメント
  • 42H ‐ ソステヌート
  • 43H ‐ ソフト
  • 54H ‐ ポルタメント・コントロール
  • 5BH ‐ エフェクト1
  • 5DH ‐ エフェクト3
  • 62H、63H ‐ NRPN(ノン・レジスタード・パラメーター・ナンバー)
  • 64H、65H ‐ RPN(レジスタード・パラメーター・ナンバー)
  • 78H ‐ オール・サウンド・オフ
  • 79H ‐ リセット・オール・コントローラー
  • 7BH ‐ オール・ノート・オフ
  • 7CH ‐ OMNI OFF
  • 7DH ‐ OMNI ON
  • 7EH ‐ MONO ON
  • 7FH ‐ POLY

コントロール・チェンジ

音色のバンク切り替えをする機能(3バイト×2)。

BnH 00H mmH

BnH 20H llH

  • n=MIDIチャンネル・ナンバー: 0H‐FH (ch.1〜ch.16)
  • mm=バンク・ナンバーMSB: 00H‐7FH (0‐127)
  • ll=バンク・ナンバーLSB: 00H‐02H

GSフォーマットとXGフォーマットで互換性がない。音色の番号の対応が違うのはもちろんのこと、MSB/LSBの扱いすら異なる。

GSの場合は、MAPと呼ばれる階層を持ち、その中にバンク番号に相当するバリエーション番号を持つ。MAPはLSBで、バリエーションはMSBに、それぞれセットする。

XGの場合は、ボイス・タイプを持ち、その中にバンク・セレクトを持つ。ボイスはMSBに、バンクはLSBに、それぞれセットする。

つまり、GSとXGでは、値をセットする場所が逆になっている。

プログラム・チェンジ

音色の変更を行なう機能(2バイト)。

CnH ppH

  • n=MIDIチャンネル・ナンバー: 0H‐FH (ch.1〜ch.16)
  • pp=プログラム・ナンバー: 00H‐7FH (prog.1‐prog.128)

チャンネル・プレッシャー

チャンネル・プレッシャーの変更を行なう機能(2バイト)。

DnH vvH

  • n=MIDIチャンネル・ナンバー: 0H‐FH (ch.1〜ch.16)
  • vv=チャンネル・プレッシャー: 00H‐7FH (0‐127)

ピッチ・ベンド・チェンジ

ピッチ・ベンド値の変更を行なう機能(3バイト)。

EnH llH mmH

  • n=MIDIチャンネル・ナンバー: 0H‐FH (ch.1〜ch.16)
  • mm,ll=ピッチ・ベンド値: 00 00H‐40 00H‐7F 7FH (−8192‐0‐+8191)

システム・リアルタイム・メッセージ

アクティブ・センシングは、次の1バイトである。

FEH

  • 受信以降は、全てのメッセージ間隔を監視するモードとなる。

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

楽器に対する、独自の情報を与える時に使う。楽器ごとに仕様は異なる。

F0H <データバイト(iiH、ddH、………、eeH)> F7H

F0Hに始まり、必要なデータ(不定長)を与え、F7Hで終える。

  • iiH=IDナンバー: どのメーカーのエクスクルーシブ・メッセージかを判断するのに使う。例えばローランドなら41Hである。なお、7EHは「ユニバーサル・ノンリアルタイム・メッセージ」、7FHは「ユニバーサル・リアルタイム・メッセージ」として用いられる。
  • dd,……,ee=データ: 00H‐7FH (0‐127)
  • F7H: EOX(エンド・オブ・エクスクルーシブ)

例えば、次のような用途に使う。

  • GMシステム・オン

    F0H 7EH,7FH,09H,01H F7H

  • GSリセット(ローランド・GS対応機のみ)

    F0H 41H,dev,42H,12H,40H,00H,7FH,00H,41H F7H

「ユニバーサル・リアルタイム・システム・エクスクルーシブ・メッセージ」の用例は次の通り。

  • マスター・ボリューム

    F0H 7FH,7FH,04H,01H,llH,mmH 7FH

関連するリンク
仕様書
用語の所属
MIDI
GM
関連する用語
フォーマット
GM1
GM2
GS (ローランド)
XG
標準MIDIファイル

コメントなどを投稿するフォームは、日本語対応時のみ表示されます


KisoDic通信用語の基礎知識検索システム WDIC Explorer Version 7.04a (27-May-2022)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club