MIDI講座
1.MIDIの基礎
1-1.MIDIとは
MIDIはMusical Instrument Digital Interfaceの頭文字をとったもので、 音楽の演奏情報を伝達するための規格です。
MIDIが登場する以前は、異なるメーカー・異なる機種の電子楽器の間では 互換性がありませんでした。 それらの相互の通信を可能にするプロトコルという考え方が基になってMIDIが誕生しました。 プロトコルとは、コミュニケーションのルールのようなものです。 日本語圏の人と英語圏の人では会話が成立しないように、 異なる規格の電子楽器の間では会話が成立しないわけです。
日本の楽器メーカーが中心となって規格化が進められ、 1982年アメリカで行われた会合にてMIDIが誕生しました。 いまや、MIDIは様々な国で使用され、世界共通の規格といえます。
音程、音色、音量、音の長さ、効果など、演奏に必要な情報はすべて数値で表され、MIDI機器に送られます。
1-2.ビットとバイト
ビット(bit)はコンピュータの最小単位であり、2進数で表されます。
"0"または"1"によって2通りの状態を表すことが出来ます。
このビットが8つ集まったもの(8ビット)を一固まりとしてバイトと呼びます。
つまり、8桁の2進数がバイトなのです。
バイトのうち、最上位の桁をMSBと呼び、最下位の桁をLSBと呼びます。
1バイトは通常、2桁の16進数(16進数は0~9の数字とA~Fのアルファベットを使います)で表されます。 MIDIでは、2桁の16進数を"7FH"のように最後にHを付けて表記します。
Windows付属の電卓で簡単に16進数の変換が行えます。
- メニューの「表示」→「関数電卓」を選択
- 表示が切り替わるので、「10進」を選択し数値を入力
- 「16進」を選択すると、入力された数値が16進数に変換されます
1-3.MIDI端子
MIDIに使われているコネクターは5ピンのDIN規格(ドイツ連邦規格)の端子です。
MIDI端子には3種類あります。
MIDI IN端子
演奏情報を受け取るための端子です。
受け取った情報を基に音楽を演奏するためのもので、音源側に接続します。
音源のなかにはキーボードが付いていないタイプのものもあります。
MIDI OUT端子
演奏情報を送り出すための端子です。
演奏情報を出力できるデバイスのほうに接続します。
キーボードタイプの他に、管楽器型・ギター型・ドラム型などの入力装置があります。
MIDI THRU端子
受け取った情報をそのまま送り出すための端子で、MIDI OUTと役割は若干異なります。
キーボードを弾かなくても、MIDI INから受け取った情報がMIDI THRUから出力されます。
これにより、「1台のキーボードで複数の音源を鳴らす」というような使い方が出来ます。
2.ノートデータ
2-1.ノートオン
ノートオン
ノートオンは音を出す情報です。キーボードの鍵盤を押すことによって情報が送信されます。
ノートオンには、音の高さを表すノートナンバーと、音の強弱を表すベロシティの情報が含まれます。
ノートナンバー
ノートナンバーは音階を低いものから順に0から127までの番号が割り当てられています。 番号では分かりにくいので、アルファベットを使って音名を表記するのが一般的です。 ノートナンバー60番が中央C(ドの音)となります。
ド-C レ-D ミ-E ファ-F ソ-G ラ-A シ-B
同じCでも数字を付けてオクターブを表し、オクターブの低いものから順に数字が振られています。
中央CをC3または、C4と表記する2通りの方法があります。
音域はノートナンバーの21から108で表されます。 中央CをC4としたときの音域はA0~C8となります。 (中央CをC3とする表記方法の場合、A-1~C7となります)
送信される情報
9n kk vv
MIDIの情報は3バイトで構成されます。
1バイト目"9n"はノートオンであることを表します。nはMIDIチャンネルの1~16を表します。
2バイト目"kk"はノートナンバーで、音の高さを表します。
3バイト目"vv"はベロシティで、鍵盤を押す強さを表します。
例えば、チャンネル1で中央C(ノートナンバー60番)の鍵盤を、ベロシティ80で押した場合に送信されるメッセージは、"90H 60 80"となります。
2-2.ノートオフ
ノートオフ
ノートオフは音を止める情報です。キーボードの鍵盤を離すことによって情報が送信されます。
ノートオンのベロシティが0の時も、これと同じ機能を持ちます。
送信される情報
8n kk vv
1バイト目"8n"はノートオフであることを表します。nはMIDIチャンネルの1~16を表します。
2バイト目"kk"はノートナンバーを表します。
3バイト目"vv"はベロシティで、鍵盤を離す速さを表します。
例えば、チャンネル1で中央C(ノートナンバー60番)の鍵盤を離した場合、送信されるメッセージは、"80H 60 64"となります。 "90H 60 0"も同じ機能を持ちます。
2-3.ベロシティ
ノートオンのベロシティは鍵盤演奏の強弱が音の音量に対応します。 ベロシティは0~127の数字が割り当てられ、数値が大きいほど音は大きく、小さいほど音は小さくなります。 先述したとおり、ノートオンのベロシティが0のときは発音されず、ノートオフと同じ機能を持ちます。
ノートオフのベロシティは鍵盤を離す速さを表しますが、対応しているMIDI機器はそれほど多くありません。
対応していない場合、値は"64"となることがほとんどです。
音楽記号のmf(メゾフォルテ)をベロシティ80位としたときの目安は以下のとおりです。
ppp-16, pp-32, p-48, mp-64, mf-80, f-96, ff-112, fff-127
2-4.ゲートタイム
MIDIではノートオンからノートオフまでの間が鍵盤を押している長さとなり、音の長さとなります。 これをゲートタイムと呼びます。
ゲートタイムの他にデュレーション、レングスという用語が存在します。
音楽用語で音の長さを表すものがあります。ゲートタイムでそれを表現する際の目安は以下のとおりです。
- スタッカート・・・ゲートタイムの50%
- マルカート・・・ゲートタイムの80%
- レガート・・・ゲートタイムの100%
例えば、分解能(4分音符1つあたりのティック数)が480の時、 8分音符のゲートタイム値は、スタッカートで120ティック、レガートで240ティックが目安となります。
連続した同じ音程の音符を繋げる音楽記号をタイと呼びます。タイで繋がった音符は一つの音符として演奏します。
スラーはタイに似ていますが違う音楽記号で、スラーのかかっている部分を滑らかに演奏します。
通常、スラーを演奏するときは終点に向かってレガートで演奏し、終点の音をマルカートで演奏します。
2-5.ドラム音源
ドラム音源のボイスアサイン(音色の割り当て)には、シングルアサインやオルタネートアサインなどの設定があります。
シングルアサイン
シングルアサインとは、1つの楽器音を重ねて発音しない設定です。
例えば、ある楽器音を鳴らすときには、すでに鳴っているそれを消音してから発音します。
オルタネートアサイン
シングルアサインを複数の音色に対応させたものです。
例えば、ハイハットは奏法の違い(閉じて叩く、開いて叩く、ペダルを踏む)によって音が違います。
それらを同時に発音しないことによって1つのハイハットとして再現が可能になります。
3.MIDIメッセージ
3-1.MIDIのバイト
MIDIのバイトは、最上位ビットが1であるステータスバイトと、最上位ビットが0であるデータバイトの2種類に分かれています。 ステータスバイトはメッセージの種類を表し、データバイトはそのメッセージに対応する数値となります。
1xxx xxxx・・・ステータスバイト(80H~FFH)
0xxx xxxx・・・データバイト(00H~7FH)
MIDIメッセージはチャンネルメッセージとシステムメッセージに分けられます。
システムメッセージについては5.システムメッセージで解説します。
3-2.チャンネルメッセージ
チャンネルメッセージは、チャンネルボイスメッセージとチャンネルモードメッセージに分けられます。
上位4ビット(1xxx)が演奏情報を表すチャンネスボイスメッセージで、下位4ビット(xxxx)がMIDIチャンネルを表すチャンネルモードメッセージです。
チャンネルメッセージの一覧を以下に示します。
8nH | 1000 xxxx | ノートオフ |
9nH | 1001 xxxx | ノートオン |
AnH | 1010 xxxx | ポリフォニックキープレッシャー |
BnH | 1011 xxxx | コントロールチェンジ |
CnH | 1100 xxxx | プログラムチェンジ |
DnH | 1101 xxxx | チャンネルプレッシャ |
EnH | 1110 xxxx | ピッチベンドチェンジ |
4.コントロール
4-1.プログラムチェンジ
ステータスバイトが"CnH"で始まるものはプログラムチェンジと呼ばれ、
MIDI機器(音源)の音色切り替えに使用されます。
これによって選択できる音色の数は最大128種類です。
それ以上の音色を切り替えるには、コントロールチェンジのバンクセレクトを使用します。
バンクセレクトMSB、バンクセレクトLSB、プログラムチェンジを併用することにより、
最大で2,097,152(128 * 128 * 128)種類の音色や効果の設定が可能となります。
4-2.ピッチベンドチェンジ
ステータスバイトが"EnH"で始まるものはピッチベンドと呼ばれ、
ギターのチョーキングやスライドなどを表現するために使用されます。
一般的な表記では最小値-8192、センター値0、最大値は8191と表されます。
ピッチベンドによる変化量の範囲を変更するにはピッチベンドセンシビティを使用しますが、
これについては後述します。
4-3.コントロールチェンジ
ステータスバイトが"BnH"で始まるものをコントロールチェンジと呼びます。 第1データバイトがコントロールナンバー、第2データバイトがコントロールの値となります。
コントロールチェンジのLSB
コントロールナンバー0~31番はそれぞれMSBの値を持ちますが、これに対応してLSBの値を持ちます。
コントロールナンバー32~64番がそれに対応しています。
MSBとLSBを併用することにより、128の2乗で16,384段階のより細かいデータを設定できます。
例えば、コントロールナンバー7番チャンネルボリュームのLSBは39番となります。
レジスタードパラメータナンバー
コントロールナンバーは0番から127番までしかないので、 128種類を超える種類のコントロールを扱うためにRPN(レジスタードパラメータナンバー) というものが存在します。
コントロールナンバー100番・101番がRPN(LSB/MSB)にあたり、
これで変更するパラメータの種類を設定します。
値の入力にはコントロールナンバー6番・38番のデータエントリー(MSB/LSB)を使用します。
例えば、RPN MSBの値0、RPN LSBの値0、データエントリーMSBを併用することにより、
ピッチベンドによる変化量の範囲を変更できます。
ピッチベンドレンジは半音単位で指定するので、値1が半音、値12がオクターブとなります。
これらを使用して変更できるパラメータには他に、以下のようなものがあります。
RPN MSB(#101) | RPN LSB(#100) | パラメータ |
---|---|---|
0 | 0 | ピッチベンドセンシビティ |
0 | 1 | マスターファインチューニング |
0 | 2 | マスターコースチューニング |
127 | 127 | RPNヌル |
RPNを使用した後は、RPN MSBの値127、RPN LSBの値127から構成されるRPNヌルを送信するのが一般的です。 これにより、データエントリーが誤って送信されたときにパラメータが変更されてしまうのを防ぎます。
RPNに対して、NRPN(ノンレジスタードパラメータ)というものがあります。こちらは、メーカーが独自にコントロールを設定したものです。
コントロールナンバーの98番(LSB)と99番(MSB)を使用してパラメータを指定します。
コントロールチェンジ一覧
よく使用されるコントロールチェンジの一覧を以下に示します。 コントロールチェンジの対応状況は機器によって異なるので、機器の説明書を参照してください。
CC# | Parameter | Comment |
---|---|---|
0 | バンクセレクト(MSB) | 音色のバンク切り替え |
1 | モジュレーション | ビブラートの効果をかける |
6 | データエントリー(MSB) | RPN、NRPNの値を入力 |
7 | ボリューム | 音量を変化させる |
10 | パン | 左右の定位を設定する |
11 | エクスプレッション | 音量を変化させる |
32 | バンクセレクト(LSB) | 音色のバンク切り替え |
38 | データエントリー(LSB) | RPN、NRPNの値を入力 |
64 | ホールド | サステインペダルで、消音を保留する |
71 | フィルターレゾナンス | レゾナンス効果をかける |
72 | リリースタイム | 音の余韻を設定する |
73 | アタックタイム | 音の立ち上がりを設定する |
74 | ブライトネス | 音の明るさを設定する |
91 | エフェクトデプス1 | (一般的にはリバーブセンドレベル) |
93 | エフェクトデプス3 | (一般的にはコーラスセンドレベル) |
98 | NRPN LSB | 機器固有のパラメータ番号の指定 |
99 | NRPN MSB | 機器固有のパラメータ番号の指定 |
100 | RPN LSB | MIDIで規定されたパラメータ番号の指定 |
101 | RPN MSB | MIDIで規定されたパラメータ番号の指定 |
5.システムメッセージ
5-1.システムメッセージ
システムメッセージの種類
システムメッセージは、機能の種類によって システムエクスクルーシブ、システムコモン、システムリアルタイムの3つに分けられます。
システムエクスクルーシブ
システムエクスクルーシブメッセージは、"F0H ... F7H"のように
はじめにステータスバイトである"F0H"が送信され、データバイト、最後に"F7H"が送信されます。
最後の"F7H"はエンドオブエクスクルーシブ(EOX)と呼ばれ、
システムエクスクルーシブメッセージの終端を表しています。
正しくメッセージが送受信されたかを確認するためにエンドオブエクスクルーシブの前に
チェックサムを送信するものもあります。
システムエクスクルーシブにはメーカーID、デバイスID、サブIDなどが含まれています。
これらによって機種独自のパラメータを扱うことができます。
メーカーID
メーカーIDはMIDI機器メーカー固有の情報を表します。
機能やメッセージの書式がMIDIで規定されており共通で利用できます。
これをユニバーサルエクスクルーシブメッセージと呼び、 非営利、リアルタイム、ノンリアルタイムの3種類が存在します。
デバイスID
デバイスIDはMIDI機器のなかでの識別に利用されます。 デバイスIDを変えることによって同じ機種でも個別に認識できるようになります。
モデルID
モデルIDは機種の情報を示します。
サブID
サブIDはメッセージの機能を表します。このサブIDによって、後ろに続くデータの長さが決まります。
ユニバーサルエクスクルーシブメッセージ
ユニバーサルエクスクルーシブメッセージの一例を示します。
- サンプルダンプスタンダード
- サンプリングされた波形をMIDIでやりとりする
- マスターボリューム
- 全体のボリュームを変更する
- GMシステムオン
- General MIDIで規定された初期状態にする
5-2.MIDIインプリメンテーションチャート
MIDI機器がどのようなMIDIメッセージに対応しているか一覧表にしたものが、
MIDIインプリメンテーションチャートです。
MIDIインプリメンテーションチャートには、ファンクション、送信、受信、備考の4つの項目があります。
以下はインプリメンテーションチャートの例です。
+--------------------+----+----+----+ |ファンクション |送信|受信|備考| +--------------------+----+----+----+ |ノートオンベロシティ| × | ○ | | +--------------------+----+----+----+
送信・受信の項目の○はMIDI機器がそのMIDIメッセージに対応していることを、×は対応していないことを表しています。 上の例では、MIDI機器がノートオンベロシティを受信できるということを表しています。
6.MIDIの知識
6-1.アナログシンセサイザー
アナログシンセサイザーは、 音の三要素である「音の高さ、音色、音の大きさ」を電気回路で作り出そうとしたものです。
発振器のVCO、フィルターのVCF、増幅器のVCAによって発音されます。 LFOは低い周波数によって音程や音量に周期的な変化を与えます。
音量や音色に時間的変化を与えるのが、エンベロープジェネレータ(EG)と呼ばれるもので、 4つのパラメータをもつADSR(4つのパラメータであるAttack、Decay、Sustain、Releaseの頭文字) と呼ばれるタイプが一般的です。
6-2.スタンダードMIDIファイル
スタンダードMIDIファイル(SMF)はMIDIの演奏データの保存形式で、
ファイルの互換性を目的として定められたものです。
SMFのフォーマットには2種類あり、
1つのトラックに1から16までのチャンネルのデータをまとめるフォーマット0と、
複数のトラックをもつフォーマット1があります。
SMFの拡張子は"mid"となります。
6-3.General MIDI
General MIDIとは
GM(General MIDI)は、MIDIのプログラムナンバー、ノートナンバーなどの互換性を持たせ、
音色の種類・番号を共通にしたものです。
これによって、別の音源で演奏したときにあるパートが全く異なった楽器で鳴ってしまったり、
音程が変わってしまうという事態を避けることができます。
GMの上位規格としてGM2(General MIDI Level 2)が存在します。 従来のGMをGM1(General MIDI Level 1)と表記して区別することがあります。
GMはMIDIの演奏データを再現に必要な最低限の部分を定めた共通の音源仕様です。
音色数はGMサウンドセット128音色、GMパーカッションマップ47音色を持ちます。
それぞれの一覧については、以下を参照してください。
GMのサウンドセットは128音色あり、それらは16種類のグループに分けられています。
プログラムナンバー1~8番がピアノ類、9~16番が鍵盤打楽器類…というように、 8音色ごとにグループ分けされています。
グループの種類については、GMサウンドセットを参照してください。