MIDIの基礎 MIDIで指定できること |
MIDIとは、Musical Instrument Digital Interface の略である。音楽機器をつないで、演奏するためのデジタル・インターフェスである。
MIDI機能付きの電子ピアノには、MIDIの入力端子と出力端子がある。2台の電子ピアノA, Bがあるとき、電子ピアノAのMIDI出力端子と、電子ピアノBのMIDI入力端子を、MIDIケーブルで接続すると、電子ピアノAを演奏したときに、どのキーをどの強さで押したというような情報をもつデジタル信号が発信され、電子ピアノBは、その信号を受信して、同じ音を鳴らす といったような仕組みである。
このリアルタイムの演奏機能だけなら、MIDIも、そんなに難しくないのであるが、デジタル信号を録音するとか、録音された信号を編集するとか、録音された信号を再生する というような機能を備えようとすると、かなり面倒な仕組みが必要となる。
どういうことかというと、オーディオ録音では、マイクで拾った音を、そのまま録音し、再生のときは、録音時と同じ速度で再生するのであるが、デジタル録音の場合は、おくられてくるデジタル信号を、そのままの時系列で記録して、再生時も、同じ時系列で再生する というような仕組みにはなっていない。送られてきたデジタル信号は。、あるキーが押されたという信号と、離されたという信号をまとめて一つの音符として認識し、押された時刻と、離された時刻を一緒に記録するというような仕組みをとることとしている。このような形式にすると、あとで、その音符の位置や長さを変えるというような編集だけでなく、全体のテンポを変えるというような編集も可能となる。
鳴らした音の強度を、途中で変えることができるのかとか、鳴らしている途中でテンポをかえることができるのかといった疑問点が発生すると思うので、そういう疑問が解決することを目的として、以下に、MIDIの基礎を解説する。
MIDIの入力端子に送られてくる信号のうち、最も重要なのは、キーボードのキーを押すという信号と、離すという信号であろう。MIDI用語では、キーを押すことを、ノート・オンと呼んでいる。ノートとは、音符の意味である。音楽用語としては、長調(major key)、短調(minor key)という意味でkeyという言葉が使われることが多いため、ノートという言葉を使っているのであろうと思う。
ノート・オンという信号には、どのキーを、どの強さで押すという情報も含まれ、3バイトのデータで構成される。
最初のバイト = 1001nnnn 第二バイト = 0kkkkkkk 第三バイト = 0vvvvvvv
(バイトを上位4ビット、下位4ビットにわけて16進数で示すと 9n kk vv となる。)
nは、チャンネルで、4ビットあるので、1から16まで指定できる。チャンネルに、違う楽器を指定して、いろんな音色を鳴らすことができる。
kは、ノートナンバーで、 7ビットあるので、0から127の値をとることができる。ピアノは、88鍵なので、十分であり、中央のC音を60 (2進では 00111100)としている。
vは、ベロシティーと呼び、強さの指定に使い、0から127の128段階を指定できる。
これらのバイト信号を伝送するときには、各バイトの頭にスタートビットの0、お尻にストップビットの1を付けるので、1バイトの送信は10ビット、3バイトなら30ビットとなる。
MIDIの転送速度は、31.25Kbps (1秒間に31250ビット)なので、30ビットの転送には 30/31250 秒=0.96m秒かかることになる。
ここで、ちょっと余談だが、転送速度が 31.25Kbpsというと、USB2.0の転送速度480Mbps、USB3.0の5Gbpsと比べて遙かに遅い。コンピュータの世界で、大量のデータを送るためには、かなりの高速が要求されるが、人間の耳を相手とする場合は、それほど高速でなくても間に合うということである。しかし、同時に何十音もならすというような使い方が必要になると、転送速度の見直しも必要となるであろう。
ここで、老婆心ながら付け加えると、31.25Kbpsというのは、MIDIケーブルをながれる信号の速度ではないので、ケーブルが長いと遅くなるというたぐいの話ではない。電気信号なので、電波に準じる高速でケーブル内を伝搬する。31.25Kbpsとは、手旗信号の切換速度といった意味合いなので、一つの信号に1/31250秒かかり、30個の信号を送ると、1msecかかるということである。
ノート・オン という信号だけでは、音が鳴り続けるので、ノート・オフという信号を送って、音を止めることが必要である。ノート・オフも、同じく、3バイトのデータから構成される。
チャンネルの音色を変えるには、プログラムチェンジという2バイトの信号を使う。
最初のバイト = 1100nnnn 第二バイト = 0ppppppp
pは、プログラムナンバーで、0から127の128種類を指定できる。
ホームページアドレス: http://music.geocities.jp/enjoydtm/
自分のホームページを作成しようと思っていますか? |
Yahoo!ジオシティーズに参加 |