MIDIについての基礎知識

第2幕

ノート・オンとノート・オフ
演奏情報の最も基本となるメッセージ

 MIDIで送られる演奏情報の中で、もっとも基本となるものが、ノート・オンとノート・オフメッセージである。このメッセージは、鍵盤を押す(ノート・オン)と鍵盤から指をはなす(ノート・オフ)に対応している。鍵盤を押した瞬間には、”鍵盤を押しましたからノート・オンを送りますよ”という情報を、鍵盤を離した瞬間には、”鍵盤を離しましたからノート・オフを送りますよ”という情報を送る送るわけだ。ノート・オンとノート・オフは、必ずペアで存在する。指を離すという動作は、普段意識していないと思うが、ノート・オフが何らかの原因でうまく送れなかった場合、オフされずに音は鳴りっぱなしになる。MIDIでよくあるトラブルである。
 この情報は3つのデータから構成されている。一つ目はステータス、2つ目はノートナンバー、3つ目がベロシティである。ノート・オンとノート・オフメッセージの構成については、次の章に任せるとして、ここではステータスについて説明する。
 MIDIの多くの情報は、ステータスと呼ばれるデータから始まる。ステータスは、たとえば「鍵盤が押されましたので、今からノート・オンの情報を送ります」とか「音色を変えましたので」とか「ベンダーを動かしましたので」とか、何のメッセージであるかということを伝えるデータである。ノート・オンのステータスを音源が受け取れば、「ノート・オンが送られてきたから鍵盤が押されたんだな」と認識する。ノート・オンとノート・オフメッセージのステータスはさらに2つのデータから構成されている。「MIDIって何?」のページで、MIDI信号は8ビット(=1バイト)が基本単位であることは説明したが、ステータスバイトは8ビットを4ビットずつ使い、はじめの4ビット(上位4ビット)が何のメッセージであるか伝え、残りの4ビット(下位4ビット)がチャンネルを表している。つまり、上位4ビットが、メッセージの種類を表す本来の意味でのステータスである。

MIDIチャンネル
 MIDIチャンネルの説明には、よくテレビの例えが使われる。放送局は、割り当てられたのチャンネルで勝手に放送している。それを視聴者が見ていようがいまいが、お構いなしである。受信機側は、必要なチャンネルに合わせてそれを受信する。NHKが見たければ何チャンネルとか、もちろん放送していないチャンネルに合わせると何も見えない。また、衛星対応のテレビであっても、有料放送は料金を払わなければ見ることは出来ない。
 MIDIも同じように、ステータスバイトの下位の4ビットを使って、「この情報は1チャンネルで送っています」という情報をデータに付けて送っているのだ。MIDI機器は受信したいチャンネルに合わせるだけで、その情報を受信できる。昔のMIDI機器は、MIDIチャンネルが固定されていたり、送信と受信チャンネルが同じチャンネルにしか設定できないものもあったが、現在の機器は送信と受信チャンネルが別々に設定できるようになっている。MIDI THRUは、MIDI INから入った信号をそのままTHRUに出力するので、MIDIチャンネルには関係ない。念のため。
 また、衛星放送の例のように、MIDI機器がそのデータに対応していなければ、無視される。おとのKORG POLY800IIはベロシティに対応していないため、いくらベロシティ情報を受け取ってもその情報は使えないのだ。おとの家は、衛星対応のテレビを使っているのだが、衛星アンテナがないために衛星放送は見れない。
 MIDIチャンネル情報は、ステータスバイトの下位4ビットを使っているのでデータ範囲は0〜Fである。MIDIのチャンネルが1〜16chであるのはこのためだ。

ノート・オンメッセージ
9n <ノート・ナンバー> <ベロシティ>

ステータス"9nH(n=0〜F)"
 キーボードの鍵盤が押されると、まずノート・オン・メッセージであることを示すステータス"9nH(n=0〜F)"が送信される。nはMIDIチャンネルである。それに続いて、2バイトのデータが出力される。1バイト目は音程を決まるノートナンバー、2バイト目が音の強さを示すベロシティである。

ノート・ナンバー
 MIDIでは、演奏する音程はノート・ナンバーで指定される。ノート・ナンバーは0〜127の数値が鍵盤に割り当てられたもので、ピアノの中央のC(ド)をノート・ナンバー60として、音階C-2〜G8が0〜127に割り当てられている。88鍵の標準ピアノより広い10オクターブ以上の音域をノート・ナンバーはカバーしていることになる。
 ただし、受け取る側の全ての楽器が0〜127の音域をカバーしているわけではなく、そのデータを送っても発音しなかったり、オクターブ上や下の音を代用したりするものもある。その楽器が一番楽器らしく鳴る音域で使うのがもっとも一般的である。時には、低音楽器を高音域で、またはその逆でも面白いときがあるが。
 また、ほとんどの楽器は、場合大変便利なトランスポーズ機能を持っている。この場合の動作も楽器しだいである。マスター側のキーボードをキー・トランスポーズした場合、出力されるメッセージもトランスポーズされたりされなかったり、楽器によって異なる。受信側も同様に、キー・トランスポーズに影響されるものされないものがあり注意が必要である。

ベロシティ
 音の強弱を付けることで演奏表現が大きく変わる。MIDIでは音の強弱を伝えるパラメータベロシティが用意されている。ベロシティとは速度のことであり、キーボードでは早く鍵盤を押したものほど強く弾かれたと見なす。つまり、鍵盤が押される速度を検出することで強弱を判断している。
 ベロシティ値は、1〜127の127段階の精度で送られる。一般的には、ppp(ピアニシシモ)からfff(フォルティシシモ)までを適当に区切り、通常64をmf(メゾフォルテ)付近と考えている。なお、ノート・オンベロシティ値の範囲には"00H"が入っていない。これは、ランニング・ステータスとも大きく関わっており、ノート・オンのベロシティ"00H"はノート・オフを意味している。ちなみにベロシティに対応していない、おとのPOLY800IIは、ベロシティ値64が出力している。

ノート・オフ・メッセージ
8n <ノート・ナンバー> <ベロシティ>

ステータス"8nH(n=0〜F)<ノート・ナンバー>"
 ノート・オン・メッセージが鍵盤を押さえたときに出力されるのに対し、押さえた鍵盤から手を離したときに出力されるのがノート・オフ・メッセージである。メッセージは、ノート・オフを示すステータス"8nH(n=0〜F)"に続き、ノート・ナンバーとノート・オフ・ベロシティの順に出力される。ノート・ナンバーは、ノート・オンされたものと同じである。

ノート・オフ・ベロシティ
 ノート・オン・ベロシティが鍵盤を押さえる速さを検出し数値にしているのに対し、鍵盤を離すときの速さを検出したのが、ノート・オフ・ベロシティである。ただし、ノート・オフ・ベロシティに対応した機器は少なく、"8nH"ステータスでノート・オフを送る機種は、中央値(64)が出力されている。ノート・オフ・ベロシティを、鍵盤の離し方でリリースの長さや音色の変化に利用している楽器もあるが、この利用法は今後の課題と言うのが現状だろう。鍵盤の離し方まで気を遣っているキーボード奏者が、いったい何人いるのだろうか?。鍵盤を弾けない、おとが言うと失礼!!ごめんなさい。

ランニング・ステータス
 ボイス・メッセージでは、同じメッセージが連続するような場合、転送効率を高めるためにステータスを省略しても良いことになっている。省略して送ることをランニング・ステータスと呼び、MIDI機器は全てこの受信に対応している。
 ノート・オンとノート・オフは別のステータスが割り当てられているが、ノート・オフをノート・オンのベロシティ"00"で送ることでランニング・ステータスが利用できる。ほとんどのMIDI機器は、ノート・オフ・ベロシティには対応していないので、ランニング・ステータスを送ることのデメリットはないと言って良いだろう。しかし、多くの楽器のメッセージ出力は、安全のことを考えて、ランニング・ステータスは使用していないようだ。

メッセージの使いこなし 
 MIDIメッセージとしてノート・オン・オフを意識することは、滅多にないだろう。しかし、音を鳴らす止めるというそれぞれの意味を考えれば、ワンセットで使わなければならないことがわかると思う。実際にシーケンサーなどの打ち込みでも、この2つのメッセージを一緒に扱っている。言い換えれば、その音がいつ鳴り終わるかを含めた形でしかデータ入力が出来ないようになっている。シーケンスソフト(レコンポーザーやオルティナしか判らないが)は必ず、ゲート・タイムを設定しなければならないのはそのためであり、ゲートタイムによって決定した発音時間の最後の瞬間が、ノート・オフ・メッセージの送り出されるタイミングになる。従って、たとえばゲートタイム50%の4分音符とゲート・タイム100%の8分音符+8分休符は、シーケンサーの打ち込みは違うが、出力されるMIDIメッセージは全く同じ内容である。
 この図は、おとの使っているオルティナの打ち込み表示である。四分音符=48で入力してある。このデータは、打ち込み講座、ギター編のアルペジオなのだが1小節目はこのようになる。ノートを打ち込む場合はノート・オン/オフ・メッセージのステータスは意識しなくてもよい。この小節の最初のノートは実はノート・ナンバーG2の全音符である。そこで、ノート・ナンバー43、ベロシティー110を入力することでノート・オン・メッセージは出力されるはずである。しかし、これだけでは実際には音は鳴らない。全音符であるので、ステップ・タイム(ST)に192とゲート・タイム(GT)に192(実際には187を)を入力する。これで、はれて小節の頭にノート・オン・メッセージ"9nH 2BH 6EH"が送信されて音が鳴り始める。1小節の終わりつまりゲート・タイム192(実際には187を入力してある)だけの時間が経過した後、ノート・オフ・メッセージ"8nH 2BH 40H"が送信されて音が鳴り終わる。
 しかし、これではこの小節にはこの全音符しか入らない。小節の始めから8分音符のノートを8つ入れてアルペジオの演奏をしたいのである。そこで、この図のように入力する。ステップ・タイムはノート・オンを送るタイミングで、ゲート・タイムがノート・オフを送るタイミングだと理解すればいいだろう。1つ目のノートが鳴っている間に、2つ目のG3のノート・オンが小節の開始から8分音符分(ST24)経過した後に101のベロシティーで送られ、2つの音が鳴っている間に3つ目のB3のノート・オンが小節の開始からST48経過した後に105のベロシティーで送られ、3つの音が鳴っている間に2つ目のG3のノート・オフが小節の開始からST72経過した後に送られると同時に4つ目のG3のノート・オンが110のベロシティーで送られ、・・・、と言葉で書くと難しいがこんな風なのである。これは、オルティナだけではなくて、入力方法が違う他のシーケンスソフトでも基本は変わらないと思う。



HOMEはMIDIのMENUに戻ります

Copyright (C) 2000 Kawahagi-3-Cycle