MIDIの基礎知識 第3回



チャンネルメッセージの解説です。シーケンスソフトを使う上では、それぞれの役割を知っておく程度でかまいません。どちらかというと、MIDIを扱うアプリケーションの作成に役立つ情報かもしれません。


[トップページ] / [MIDIとDTMの広場]


【ノートオフ(80H〜8FH)/オン(90H〜9FH)】

STATUSDATA1DATA2
8xHノートナンバーノートオフベロシティ
9xHノートナンバーノートオンベロシティ

鍵盤を、ノートオンでは押したことを、ノートオフでは離したことを意味する。ベロシティが0のノートオンは、ノートオフの働きをする。これによって、ノートオンのみで、オンとオフの制御ができる。利点は、ランニングステータスが適用できる可能性が高くなることである。

ノートオフベロシティ(鍵盤を離す速さ)が扱えるソフトウェアや音源は、まれである。


【ポリフォニックキープレッシャー(A0H〜AFH)】

STATUSDATA1DATA2
AxHノートナンバープレッシャー値

アフタータッチのこと。押された鍵盤をさらに押し込むことによって効果をかける。ノート別(和音の各鍵盤ごと)にかけられる。


【コントロールチェンジ(B0H〜BFH)】

STATUSDATA1DATA2
BxHコントロールナンバー各種データ

コントロールチェンジにはコントロールナンバーがあり、さまざまな機能が割り当てられている。パンポット(音の定位)、ボリューム、リバーブ、コーラスなどの設定を行うことができる。以下、コントロールチェンジのコントロールナンバーを表すときには、CC#という表記を用いる。

RPN、NRPNというパラメータコントロールもコントロールチェンジに含まれる。RPNはピッチベンドレンジやチューニングの設定、NRPNは主に音色のパラメータを設定(音色を加工)するときに用いられる。

・連続可変タイプ(0〜31、32〜63)
CC#0〜31と32〜63は、値が連続的に変化するようなパラメータを扱う。0(上位バイト、MSB)と32(下位バイト、LSB)というようにセットで使うことによって、14ビットの精度にすることができるが、実際にはバンクセレクトとデータエントリでまれに用いられる程度で、それ以外はMSBのみを使うことが多い。

[連続可変タイプの主な機能]
MSBLSB機能解説
032バンクセレクト音色のバンクを切り替える
1(33)モジュレーション基本的にはビブラートをかける深さを制御
5(37)ポルタメントタイムポルタメントタイム
638データエントリRPN、NRPNで呼び出したパラメータの値を変更
7(39)メインボリューム各チャンネル(パート)の音量コントロール
10(42)パンポット音の定位を決める(通常、左が0で右が127)
11(43)エクスプレッション各チャンネル(パート)の音量変化をつける

[バンクセレクトの使い方]
CC#GS音源XG音源(XGモード)
0(MSB)0〜127 バンク切り替え0 Normal voice
64 SFX voice
126 SFX kit
127 Drum kit
32(LSB)0 マップを変更しない
1 SC-55MAP
2 SC-88MAP
3 SC-88ProMAP
4 SC-8850/8820MAP
0〜127 バンク切り替え
Bank Select MSB → Bank Select LSB → Program Changeの順に送ること


・スイッチタイプ(64〜95)
CC#64〜95では、主にON/OFFを切り替えるスイッチタイプのパラメータを扱う。基本的に、値が0〜63のときがOFFで、64〜127のときにONになる。スイッチタイプとはいえ、連続変化するものもある。

[ペダル関係]
CC#機能解説
64ホールド1発音中の音を持続させるサステインペダル
65ポルタメントポルタメントペダル
66ソステヌートソステヌートペダル
67ソフトペダルソフトペダル

[サウンドコントローラ]
CC#機能解説
70サウンドコントローラ1サウンドバリエーションの設定
71サウンドコントローラ2ハーモニックインテンシティの設定
72サウンドコントローラ3リリースタイムの設定
73サウンドコントローラ4アタックタイムの設定
74サウンドコントローラ5ブライトネスの設定

XG音源では、CC#70は定義されていない。CC#71はハーモニックコンテントと呼ばれ、レゾナンスを調節するパラメータになっている。また、CC#74はカットオフ周波数の設定のことである。GS音源では、どれも定義されていないが、SC-88Pro以降であれば、CC#71〜74については機能する。

[エフェクトセンドレベル]
CC#機能解説
91エフェクトセンドレベル1リバーブエフェクトのセンドレベルの設定
93エフェクトセンドレベル3コーラスエフェクトのセンドレベルの設定
94エフェクトセンドレベル4XGではバリエーションエフェクト、SC-88ではディレイのセンドレベルの設定

GS音源やXG音源は、リバーブのセンドレベルの初期値が40になっている。また、バリエーションエフェクトのセンドレベルは、バリエーションエフェクトがシステムエフェクトとして使われているときのみ有効である。

・特殊なタイプ(96〜119)
CC#96〜119には、特殊なタイプのコントロールチェンジが集められている。

[値の増減]
CC#機能解説
96データインクリメントRPNで指定したパラメータの値を増加させる
97データデクリメントRPNで指定したパラメータの値を減少させる

[NRPN]
CC#機能解説
98NRPN(LSB)NRPNの下位バイト
99NRPN(MSB)NRPNの上位バイト

NRPNは、エクスクルーシブを使わずに音色の設定などを行えるように用意されたコントロールチェンジである。NRPNでパラメータを指定したあと、データエントリで値をセットする。データエントリは、ほとんどの場合がMSBのみを使い、LSBは使われないことが多い。MIDI規格では、NRPNのパラメータが何の機能に割り当てられているかは決められていない。

GS音源やXG音源では、ビブラートやフィルタの設定、ドラムセットの個別の楽器に対するピッチやパンの設定などを行える。

[RPN]
CC#機能解説
100RPN(LSB)RPNの下位バイト
101RPN(MSB)RPNの上位バイト

RPNで指定できるパラメータナンバーは登録制のため、機能が決まっている。以下のパラメータをコントロールできる。NRPNと同様、パラメータを指定した後に、データエントリで値をセットする。

[RPNの機能]
MSBLSB機能解説
00ピッチベンドセンシティビティピッチベンドの変化の幅を設定
01ファインチューニングセント単位でのチューニング
02コースチューニング半音単位でのチューニング
127127NULLRPN、NRPN番号を未設定状態にする

・モードメッセージ(120〜127)
120〜127には、各チャンネルの基本動作を設定するメッセージがある。

[リセット関係]
CC#機能解説
120オールサウンドオフ指定チャンネルの音を消す
121リセットオールコントローラ各種コントローラの設定値を初期化
123オールノートオフノートオンしているノートをオフにする

オールサウンドオフは音を消す命令であり、ノートオンやホールドオンの状態は保持する。オールノートオフは、ノートをオフにするだけなので、音がすぐに消えないこともある。

[モードの設定]
CC#機能解説
124オムニオフオムニモードをオフにする
125オムニオンオムニモードをオンにする
126モノモノモードにする
127ポリポリモードにする

オムニモードをオンにすると、チャンネルを無視して受信するモードになる。モノモードは、単音しか発音できないモードである。オムニモードとモノ/ポリモードの組み合わせにより、MIDIには4つのモードが存在する。

【プログラムチェンジ(C0H〜CFH)】

STATUSDATA
CxH音色番号

音色を切り替える。GS音源やXG音源では、バンクセレクトのみでは音色は切り替わらない。


【チャンネルプレッシャー(D0H〜DFH)】

STATUSDATA
DxHプレッシャー値

アフタータッチのこと。ポリフォニックキープレッシャーと違って、ノート別にはかけられず、チャンネル全体として効果がかかる。ノートナンバーの指定が必要ないため、ポリフォニックキープレッシャーよりデータ量が少ない。


【ピッチベンドチェンジ(E0H〜EFH)】

STATUSDATA1DATA2
ExHシフト値下位バイトシフト値上位バイト

ノートオン時にこの情報を送ることによって、半音よりも細かい音程を連続的に変化させることができる。128段階では粗いため、16384段階を扱える(シーケンスソフトでは、-8192〜8191という表記が多い)。ピッチシフト量は、RPNを用いたピッチベンドセンシティビティの設定によって決まる。


[トップページ] / [MIDIとDTMの広場]