4.1 MIDIの操作
・ MIDIはオーディオと違ってどの楽器をどのタイミングで鳴らすかといった演奏情報しか含んでいないため、動作環境によって実際の出音は変わります。
・ プログラムの中でデバイスを使用するときは必ず最初にオープンし、使い終わったらクローズしなければなりません。このプログラムでもMIDIデバイスがオープン/クローズされています。実はキーボードやディスプレイもデバイスの一つですので、プログラムの実行開始時にオープンされ、終了時にはクローズされているのです。
・ Thread.sleep() はプログラムの実行を一時停止するメソッドです。
・ Midiplay.playNote()の実装をみると、channel.noteOn()を呼び出しているだけです。一見するとまわりくどく無意味なことを行っているように見えますが、これをカプセル化と呼びます。この問題の場合、MIDIを使用する際の初期化や基本的な操作がMidiplayクラスによってカプセル化されているので、扱いやすくなっています。
・ノート番号は、ピアノ鍵盤の中央のド(C3)を60とし、半音単位で番号を付けます。#は半音高い音を意味しピアノの黒鍵に対応します。ノート番号の最大値は127です
ド
|
ド#
|
レ
|
レ#
|
ミ
|
ファ
|
ファ#
|
ソ
|
ソ#
|
ラ
|
ラ#
|
シ
|
ド
|
60
|
61
|
62
|
63
|
64
|
65
|
66
|
67
|
68
|
69
|
70
|
71
|
72
|
・MIDIでは音の強さを「ベロシティ」で表現します。ベロシティは「速さ」の意味で、演奏するときの打鍵の強さを表現します。「ベロシティ」が大きいほど、大きく強い音が出ます。