2016/20/7
Encore CS6でDVDをオーサリングするときのメモVJなんかで使用する機械があったのでメモ的に
日本語で検索するとpromidiの情報は出てくるのですが、本家のサイトも死んでるし使えなさそうな雰囲気だったので。
Processingは3.0.2、OSはWindows10とMacOSX10.11で両方試してみました
1.ライブラリの追加
まずProcessingのメニューから
スケッチ>ライブラリをインポート>ライブラリを追加
と辿り、Contribution Managerを開きます。
そこから検索でmidiと打つと、The MidiBusが見つかると思うので、選択してインストールします。
2.javaライブラリの追加
Windowsの場合はこれですんなり動くんですが、Macだと追加でjavaのライブラリを追加しないといけないみたいです。これでつまづいて一日悩んだ、、本家のGithubに情報が載ってました
ここの一番下に書いてありました。
具体的な方法は、
まずここからMMJというライブラリをダウンロードします
次に解凍して出てくるlibmmj.jnilibとmmj.jarを/Library/Java/Extensions/と、midibusのlibraryフォルダにコピーします。midibusのlibraryはProcessingのスケッチブックの場所にある(デフォルトだと書類フォルダ)のprocessing/libraries/themidibus/library/です。
MIDIコントローラから情報を取得
今回はKORGのnanoKONTROL2というコントローラを使いました。
以下のコードはMIDIキーボードの一番左のバーを上下することでrectの位置を左右させるコードです。分かる範囲でコメント入れてます
import themidibus.*; //Import the library MidiBus myBus; // The MidiBus float cc[] = new float[256];// キーの値を格納する変数 void setup() { size(1280, 720); background(0); MidiBus.list();//接続されたMIDIキーボードの情報を表示 frameRate(60); myBus = new MidiBus(this, 0,0); } void draw(){ background(0); fill(255); rect(cc[0],180,30,360); } void controllerChange(int channel, int number, int value){//この関数でキーの値を取得 cc[number] = map(value,0,127,0,width-30); println(channel);//複数のキーボードがある場合に選択できる println(number);//動かしたキーの番号を確認 println(value);//動かしたキーの値を確認 }
質問やご指摘など気軽にどうぞ