DTM Solutions

MIDI:RPNとNRPN

RPNと NRPNはシステム・エクスクルーシブ・メッセージの次にわかりにくいものではないでしょうか。

コントロールチェンジは0〜127のコントロール番号で最大128の機能を識別できますが、それを超える数の機能を扱えるように考慮されたものがRPNとNRPNです。

コントロール・チェンジ
コントロール番号意味するところ機能パラメータの機能
000バンク番号バンクの選択
001モジュレーション・デプスモジュレーションの深さ
006データ・エントリー(MSB)RPNやNRPNで指定したパラメータの上位バリューの設定
007メイン・ボリューム音量設定
010パンポット定位の設定
011エクスプレッションエクスプレッションのON/OFF
036038データ・エントリー(LSB)RPNやNRPNで指定したパラメータの下位バリューの設定
091リバーブ・デプス残響効果の深さ
093コーラス・デプスコーラス効果の深さ
098NRPN LSBノンレジスタード・パラメータの下位番号の選択
099NRPN MSBノンレジスタード・パラメータの上位番号の選択
100RPN LSBレジスタード・パラメータの下位番号の選択
101RPN MSBレジスタード・パラメータの上位番号の選択

"RPN(NRPN) LSB"、"[RPN(NRPN) MSB"で、操作したいパラメータを特定し、"データ・エントリ(LSB,MSB)"を使用して設定値を送り込む、 というのが、RPNとNRPNの基本的な操作の流れです。

この RPNとNRPNは、次のようなマトリックスで考えると、理解しやすいと思います。

MSBLSB機能 データ・エントリ(MSB,LSB)の機能
RPN0 0 ピッチ・ベンド・センシティビティーピッチ・ホイールをいっぱいに動かしたときの、音程変化量
(MSBで半音数を指定する)
1 マスター・ファイン・チューニング 音源のチューニング(微調整)
2 マスター・コース・チューニング 音源のチューニング(半音単位で調整)
127127RPN,NRPNが設定されていない状態にする
NRPN1 8 ビブラート・レート ビブラートの周期の早さ
9 ビブラート・デプス ビブラートの深さ
10 ビブラート・ディレイ ビブラートがかかりはじめるまでの時間

例えば、ピッチ・ホイールをいっぱいに動かしたときに、音程が上下1オクターブ変化するように、受信側シンセサイザーを設定したい、とします。
すなわち、"ピッチ・ベンド・センシティビティー"に対して、データ・エントリーのMSBのみを使用して"12(1オクターブは12半音)"を送り込むことになります。

こちらにファイルがあります。

1.まず、コントロール番号101番(RPN MSB)、バリューに"0"を設定したコントロール・チェンジを送り出します。

受信側シンセサイザーはRPNのMSBを受信しても、LSBがまだ分からないので、機能が特定できません。

MSBLSB機能 データ・エントリ(MSB,LSB)の機能
RPN0 0 ピッチ・ベンド・センシティビティーピッチ・ホイールをいっぱいに動かしたときの、音程変化量
(MSBで半音数を指定する)
1 マスター・ファイン・チューニング 音源のチューニング(微調整)
2 マスター・コース・チューニング 音源のチューニング(半音単位で調整)
127127RPN,NRPNが設定されていない状態にする
NRPN1 8 ビブラート・レート ビブラートの周期の早さ
9 ビブラート・デプス ビブラートの深さ
10 ビブラート・ディレイ ビブラートがかかりはじめるまでの時間

2.次に、コントロール番号100番(RPN LSB)、バリューに"0"を設定したコントロール・チェンジを送り出します。

受信側シンセサイザーはRPNのLSBを受信したことによって、機能が特定できました。

MSBLSB機能 データ・エントリ(MSB,LSB)の機能
RPN0 0 ピッチ・ベンド・センシティビティーピッチ・ホイールをいっぱいに動かしたときの、音程変化量
(MSBで半音数を指定する)
1 マスター・ファイン・チューニング 音源のチューニング(微調整)
2 マスター・コース・チューニング 音源のチューニング(半音単位で調整)
127127RPN,NRPNが設定されていない状態にする
NRPN1 8 ビブラート・レート ビブラートの周期の早さ
9 ビブラート・デプス ビブラートの深さ
10 ビブラート・ディレイ ビブラートがかかりはじめるまでの時間

3.次に、コントロール番号6番(DATA ENTRY MSB)、バリューに"12"を設定したコントロール・チェンジを送ります。

受信側シンセサイザーは"2."で機能が確定しているため、以降受信するデータ・エントリ(コントロール番号6番(MSB)と36番(LSB)) をすべて"ピッチ・ベンド・センシティビティー"のバリューとして扱います。"ピッチ・ベンド・センシティビティー"の場合は、 MSBのみで、バリューを指定できるため、LSBの送信は必ずしも必要ではないようです(メーカーはLSB"0"の送信を推奨しています)。

MSBLSB機能 データ・エントリ(MSB,LSB)の機能
RPN0 0 ピッチ・ベンド・センシティビティーピッチ・ホイールをいっぱいに動かしたときの、音程変化量
(MSBで半音数を指定する)
1 マスター・ファイン・チューニング 音源のチューニング(微調整)
2 マスター・コース・チューニング 音源のチューニング(半音単位で調整)
127127RPN,NRPNが設定されていない状態にする
NRPN1 8 ビブラート・レート ビブラートの周期の早さ
9 ビブラート・デプス ビブラートの深さ
10 ビブラート・ディレイ ビブラートがかかりはじめるまでの時間

"ピッチ・ベンド・センシティビティー"が選択された状態は、データ・エントリーを受信した後も保持されます。この状態を解除するために、"RPN,NRPNが設定されていない状態にする"というのがあるわけです。


RPNおよびNRPNのR(REGISTERD)とは、MIDI規格によって、その内容がリザーブされている、ということを指しています。 従って、RPNのMSB,LSBの意味はどのメーカのどの機種も同じです。NRPNの方はNON-REGISTAERDというその名からも分かるように、 メーカーが任意に機能をアサインすることが許されています。

上の表に示した NRPNの内容は、ローランド社のSC-88VLのものです。そのため、異なる機種では必ずしも表の通りではありません。 そして、このへんの詳細な仕様が「MIDIインプリメンテーション」に書かれているわけです。これ、見る者を拒むような資料ではありますがね.....

関連記事
GS/XGのNRPN
コントロール番号一覧

Files

汎用的に使えそうなMIDI情報をスタンダードMIDIファイルで掲載しています。