Android から USB MIDI 機器を制御する ( Program Change )


20140106usb_midi_sample2

Android から USB MIDI 機器を制御します。
Program Change を使って楽器を選択します。

ソースコードは Google Code に置いています。

MIDIの簡単な説明
MIDI には、16個のチャネルがあり、チャネル毎に楽器が選択できます。
Program Change メッセージを使って楽器が選択します。
Program Change は、2バイト構成で、status ( 0xC0 ) + channel、instrument です。
instrument は、楽器の番号で、General MIDI Level 1 Sound Set で規定されています。
チャネル9は、特別にパーカッションが割り当てられています。
音階はなく、note の35から81 に、異なるパーカッションが割り当てられています。
パーカッションの番号は、同じくGeneral MIDI Level 1 Sound Set で規定されています。

ソースコードの簡単な説明
(1) UI として、ピアノの鍵盤を模したボタンを用意しました。
例えば、鍵盤の C にタッチすると、C (ド) の音が出ます。

(2) 下段にパーカッションのボタンを用意しました。
ボタンの番号と楽器の対応は、Percussion Key Map と同じです。
例えば、60 にタッチすると、Hi Bongo の音が出ます。

(3) 上段のチャネル選択により、鍵盤の楽器を変更できます。
このサンプルでは、下記のように割り当てています。
ch 0 : デフォルト
ch 1 : Acoustic Piano
ch 2 : Vibraphone
ch 3 : Drawbar Organ
ch 4 : Acoustic Steel Guitar
ch 5 : Acoustic Bass,
ch 6 : Violin
ch 7 : String Ensemble 1
ch 8 : Trumpet
ch 9 : ※ Acoustic Piano
ch 10 : Tenor Sax
ch 11 : Flute
ch 12 : Banjo
ch 13 : Tinkle Bell
ch 14 : Lead Calliope
ch 15 : Pad Fantasia
※ ch 9 は、Percussion なので、ここを選択すると、ch 1 ( Acoustic Piano ) に変更をしている。

参考
General MIDI Level 1 Sound Set – midi.org
MIDI – wikipedia
General MIDI – wikipedia


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です