MIDI:RPNとNRPN
RPNと NRPNはシステム・エクスクルーシブ・メッセージの次にわかりにくいものではないでしょうか。
コントロールチェンジは0〜127のコントロール番号で最大128の機能を識別できますが、それを超える数の機能を扱えるように考慮されたものがRPNとNRPNです。
コントロール・チェンジ | ||
コントロール番号 | 意味するところ | 機能パラメータの機能 |
000 | バンク番号 | バンクの選択 |
001 | モジュレーション・デプス | モジュレーションの深さ |
006 | データ・エントリー(MSB) | RPNやNRPNで指定したパラメータの上位バリューの設定 |
007 | メイン・ボリューム | 音量設定 |
010 | パンポット | 定位の設定 |
011 | エクスプレッション | エクスプレッションのON/OFF |
データ・エントリー(LSB) | RPNやNRPNで指定したパラメータの下位バリューの設定 | |
091 | リバーブ・デプス | 残響効果の深さ |
093 | コーラス・デプス | コーラス効果の深さ |
098 | NRPN LSB | ノンレジスタード・パラメータの下位番号の選択 |
099 | NRPN MSB | ノンレジスタード・パラメータの上位番号の選択 |
100 | RPN LSB | レジスタード・パラメータの下位番号の選択 |
101 | RPN MSB | レジスタード・パラメータの上位番号の選択 |
"RPN(NRPN) LSB"、"[RPN(NRPN) MSB"で、操作したいパラメータを特定し、"データ・エントリ(LSB,MSB)"を使用して設定値を送り込む、 というのが、RPNとNRPNの基本的な操作の流れです。
この RPNとNRPNは、次のようなマトリックスで考えると、理解しやすいと思います。
MSB | LSB | 機能 | データ・エントリ(MSB,LSB)の機能 | |
RPN | 0 | 0 | ピッチ・ベンド・センシティビティー | ピッチ・ホイールをいっぱいに動かしたときの、音程変化量 (MSBで半音数を指定する) |
1 | マスター・ファイン・チューニング | 音源のチューニング(微調整) | ||
2 | マスター・コース・チューニング | 音源のチューニング(半音単位で調整) | ||
127 | 127 | RPN,NRPNが設定されていない状態にする | − | |
NRPN | 1 | 8 | ビブラート・レート | ビブラートの周期の早さ |
9 | ビブラート・デプス | ビブラートの深さ | ||
10 | ビブラート・ディレイ | ビブラートがかかりはじめるまでの時間 |
例えば、ピッチ・ホイールをいっぱいに動かしたときに、音程が上下1オクターブ変化するように、受信側シンセサイザーを設定したい、とします。
すなわち、"ピッチ・ベンド・センシティビティー"に対して、データ・エントリーのMSBのみを使用して"12(1オクターブは12半音)"を送り込むことになります。
→こちらにファイルがあります。
1.まず、コントロール番号101番(RPN MSB)、バリューに"0"を設定したコントロール・チェンジを送り出します。
受信側シンセサイザーはRPNのMSBを受信しても、LSBがまだ分からないので、機能が特定できません。
MSB | LSB | 機能 | データ・エントリ(MSB,LSB)の機能 | |
RPN | 0 | 0 | ピッチ・ベンド・センシティビティー | ピッチ・ホイールをいっぱいに動かしたときの、音程変化量 (MSBで半音数を指定する) |
1 | マスター・ファイン・チューニング | 音源のチューニング(微調整) | ||
2 | マスター・コース・チューニング | 音源のチューニング(半音単位で調整) | ||
127 | 127 | RPN,NRPNが設定されていない状態にする | − | |
NRPN | 1 | 8 | ビブラート・レート | ビブラートの周期の早さ |
9 | ビブラート・デプス | ビブラートの深さ | ||
10 | ビブラート・ディレイ | ビブラートがかかりはじめるまでの時間 |
2.次に、コントロール番号100番(RPN LSB)、バリューに"0"を設定したコントロール・チェンジを送り出します。
受信側シンセサイザーはRPNのLSBを受信したことによって、機能が特定できました。
MSB | LSB | 機能 | データ・エントリ(MSB,LSB)の機能 | |
RPN | 0 | 0 | ピッチ・ベンド・センシティビティー | ピッチ・ホイールをいっぱいに動かしたときの、音程変化量 (MSBで半音数を指定する) |
1 | マスター・ファイン・チューニング | 音源のチューニング(微調整) | ||
2 | マスター・コース・チューニング | 音源のチューニング(半音単位で調整) | ||
127 | 127 | RPN,NRPNが設定されていない状態にする | − | |
NRPN | 1 | 8 | ビブラート・レート | ビブラートの周期の早さ |
9 | ビブラート・デプス | ビブラートの深さ | ||
10 | ビブラート・ディレイ | ビブラートがかかりはじめるまでの時間 |
3.次に、コントロール番号6番(DATA ENTRY MSB)、バリューに"12"を設定したコントロール・チェンジを送ります。
受信側シンセサイザーは"2."で機能が確定しているため、以降受信するデータ・エントリ(コントロール番号6番(MSB)と36番(LSB)) をすべて"ピッチ・ベンド・センシティビティー"のバリューとして扱います。"ピッチ・ベンド・センシティビティー"の場合は、 MSBのみで、バリューを指定できるため、LSBの送信は必ずしも必要ではないようです(メーカーはLSB"0"の送信を推奨しています)。
MSB | LSB | 機能 | データ・エントリ(MSB,LSB)の機能 | |
RPN | 0 | 0 | ピッチ・ベンド・センシティビティー | ピッチ・ホイールをいっぱいに動かしたときの、音程変化量 (MSBで半音数を指定する) |
1 | マスター・ファイン・チューニング | 音源のチューニング(微調整) | ||
2 | マスター・コース・チューニング | 音源のチューニング(半音単位で調整) | ||
127 | 127 | RPN,NRPNが設定されていない状態にする | − | |
NRPN | 1 | 8 | ビブラート・レート | ビブラートの周期の早さ |
9 | ビブラート・デプス | ビブラートの深さ | ||
10 | ビブラート・ディレイ | ビブラートがかかりはじめるまでの時間 |
"ピッチ・ベンド・センシティビティー"が選択された状態は、データ・エントリーを受信した後も保持されます。この状態を解除するために、"RPN,NRPNが設定されていない状態にする"というのがあるわけです。
RPNおよびNRPNのR(REGISTERD)とは、MIDI規格によって、その内容がリザーブされている、ということを指しています。 従って、RPNのMSB,LSBの意味はどのメーカのどの機種も同じです。NRPNの方はNON-REGISTAERDというその名からも分かるように、 メーカーが任意に機能をアサインすることが許されています。
上の表に示した NRPNの内容は、ローランド社のSC-88VLのものです。そのため、異なる機種では必ずしも表の通りではありません。 そして、このへんの詳細な仕様が「MIDIインプリメンテーション」に書かれているわけです。これ、見る者を拒むような資料ではありますがね.....