ProcessingでMIDIコントローラーを使用する(MIDIBUS)

Processing

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);//動かしたキーの値を確認
	
}

質問やご指摘など気軽にどうぞ

コメントを投稿する

CAPTCHA