MIDIについての基礎知識

MIDIについての基礎知識(番外編2)

RPNとNRPN
はじめに

 初期の頃、シンセサイザーの音色パラメータに、コントロール番号を割り当てるという楽器が現れた。実際、音色パラメータとエフェクト・パラメータの違いなど区別が有ってないようなものである。それに、エクスクルーシブ・メッセージでは、チャンネルごとのコントロールが出来ないし、何よりエクスクルーシブは難しくリアルタイム・コントロールに向かない。また、各メーカーが同じ事をやり始めたら互換性が取れなくなる。
 コントロール番号が登録制になったことから、このような事態は避けられるようになったが、リアルタイムでシンセサイザーの音色を変化させたいという要求は当然残った。そこで登場したのがRPN(レジスタード・パラメータ・ナンバー)とNRPN(ノン・レジスタード・パラメータ・ナンバー)である。RPNとNRPNの違いは、ナンバーが登録制であるかそうでないかの違いだけで、動作は基本的に同じである。RPN/NRPNは、あらかじめパラメータナンバーをRPN/NRPNメッセージによって指定しておき、データ・エントリーでデータをセットするか、インクリメント/デクリメント・メッセージを使ってデータを増減させる。

<<データ・エントリー>>
Bn 06 <MSB> Bn 26 <LSB>
 RPNやNRPNで指定されたパラメータに、値をセットするのに使用される。128段階で良いのならMSBだけを使用してもかまわないし、LSBを変化しただけのときはLSBの送信だけでかまわない。

<<インクリメント>>
Bn 60xx (xxは何でも良い)
 RPNやNRPNで指定されたパラメータに、値を+1する。実際には1とは限らず、個々に決められた増減分だけ増える。

<<デクリメント>>
Bn 61xx (xxは何でも良い)
 RPNやNRPNで指定されたパラメータに、値を−1する。実際には1とは限らず、個々に決められた増減分だけ減る。

RPN(レジスタード・パラメータ・ナンバー)
Bn 64<MSB> Bn 65<LSB>

 RPNは、JMSCとMMAにより合意されたもので次のようなメッセージが定義されている。

<<ピッチ・ベンド・センシティビティ>>
Bn 64 00 Bn 65 00
 ピッチ・ベンドのベンド幅を設定するもの。データ・エントリーのMSBは半音の感度、LSBは100/128セントの感度を表す。従ってベンド幅を+/−半音にするためには、データ・エントリーで"01 00"を送る。
 右の図は、オルティナの入力例だが、コントロール番号の101("65H")のRPN(M)に0を、100("64H")のRPN(M)に0を入力すると、ピッチ・ベンド・センシティビティがセットされる。あとは、コントロール番号6("06H")のデータ・エントリーのMSBと、コントロール番号38("26H")のデータ・エントリーのLSBでデータをセットする。右図は、ベンド幅を+/−1音にするため、DATA(M)に2を入力してある。1オクターブにするときは12を入力する。DATA(L)は、半音ごとの入力では必要ないが、取りあえず0をと入力したデータも送信しておこう。

<<マスター・チューニング>>
 マスター・チューニングのコントロールに使われる。チューニングには、大まかなチューニングをするコース・チューニングと、その微調整であるファイン・チューニングが定義されている。A=440Hzを基準に変異を与えるもので、ちなみに440Hzにセットしたいときは、コース・チューンで"40 xx"、ファイン・チューンで"40 00"をデータ・エントリーよりセットすると良い。

NRPN(ノン・レジスタード・パラメータ・ナンバー)
Bn 62<MSB> Bn 63<LSB>
 RPNと違って、NRPNは自由にコントローラーを決めて使えるため、互換性は期待できない。NRPNは、音色パラメータといったメーカー固有のものを、リアルタイムで簡単にコントロールする目的で使われる。NRPNでは、コントロール番号の100("62")でMSB、101("63")でLSBをセットすることにより、音色等のパラメータ番号を指定する。データ・エントリーでパラメータの値をセットするか、インクリメント/デクリメント・メッセージを使ってデータを増減させる。



HOMEはMIDIのMENUに戻ります

Copyright (C) 2000 Kawahagi-3-Cycle