MIDI Input to Proce55ing

はい、今日は現実逃避でProce55ingでMIDIコントローラより入力をうける方法。のかじりかけの部分。

proMIDIってライブラリが有るので入れてみました、テストコードは以下。単純に接続され認識しているデバイスをリストアップするだけのもんです。

//midi device info.
import promidi.*;
MidiIO midiIO;

void setup(){
  midiIO = MidiIO.getInstance(this);
  midiIO.printDevices();
}

出力は以下、Java内蔵のソフトシンセでしょうか、それだけは認識しているようです。ちなみにMacOSXで実行。

<< inputs: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
<< outputs: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
output 0 : Java Sound Synthesizer
<<>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

なんでやねんと、色々調べてみましたが、どうやらMacのJavaからはMIDIデバイス参照をできない、って言うかMacOSXではMIDIをCoreMIDIってAPI(フレームワーク)で扱ってて、これとJavaをブリッジさせる術が最新のOSXでは提供されていないらしいんです。mmjと言うAPIを使えばCoreMIDIへアクセスする事が可能ですがMIDIの生のバイトデータを直接受け取ってもねぇ。

んなワケでWindowsで実行、認識させる事が出来ました。

<< inputs: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
input 0 : microKONTROL 1 MIDI IN
input 1 : microKONTROL 1 PORT A
input 2 : microKONTROL 1 PORT B
<< outputs: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
output 0 : Java Sound Synthesizer
output 1 : Microsoft MIDI ?}?b?p?[
output 2 : Microsoft GS Wavetable SW Synth
output 3 : microKONTROL 1 MIDI OUT
output 4 : microKONTROL 1 CTRL
<<>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

今日の所はこれでおしまい。