ノートオン/ノートオフ

演奏情報の中でもっとも基本的な「鍵盤を押す(ノートオン)」「鍵盤を離す(ノートオフ)」といった動作はノートオンメッセージとノートオフメッセージで行います。 ノートオンメッセージで発音された音はノートオフメッセージによって消音されなければいけないので、 ノートオンメッセージとノートオフメッセージは必ず対になっていなければいけません。 (ノートオンで発音された音に対してノートオフメッセージが送られてこないと音が鳴りっぱなしの状態になったりします。)


ノートオンメッセージ



ノートオンメッセージはステータスバイトにつづき、2バイト分のデータバイトで構成されます。 ステータスバイト9nの”9”はこのメッセージがノートオンメッセージであることを示し、 ”n”はここに任意のチャンネル番号が入ることを意味しています。

2バイトで構成されるデータバイトの1バイト目は音階をあらわすノート番号で、2バイト目は音の強さを示すベロシティです。
ノート番号は音階を数字で表現したもので、ピアノの中央のC(ド)を番号60として、半音ごとに1つづ増減していき、一番低い音が0、一番高い音が127になります。



ノート番号は88鍵のピアノより広い範囲をサポートしているので、楽器によっては0〜127の全音域全ての音を出せないものもあります。

2バイト目のデータバイトのベロシティとは、鍵盤を押す速さ(楽器を鳴らす速さ)をその音の強さとみなして、その値をあらわしたパラメータです。
ベロシティは最大で127、最小で0ですが、0のときは消音を意味しノートオフメッセージと同じ効果になります。


ノートオフメッセージ



発音された音を止めるには、ノートオフメッセージを使います。ステータスバイト8nの”8”はノートオフメッセージであることを示し、”n”は任意のチャンネル番号です。

データバイトの1バイト目はすでにノートオンメッセージによって発音されているノート番号を指定します。

ノートオフベロシティはノートオンベロシティとは反対に音を消す速さをあらわします。 このパラメータはあまり使われません。


ランニングステータス

ランニングステータスとはステータスバイトを省略してメッセージを送出することです。 チャンネルメッセージにおいて転送効率を上げるためにステータスを省略することができるようになっています。

ステータスを省略できるのは、ステータスバイトが前回送信したメッセージのステータスバイト(チャンネル番号も含め)と同一の場合に限ります。
消音をノートオフメッセージではなく、ノートオンメッセージのベロシティ0で代用するとランニングステータスを利用でき、転送効率をあげることができます。