Browsed by
タグ: Processing

Boss GT-001 MIDIコントロール ProcessingでMIDIBUS

Boss GT-001 MIDIコントロール ProcessingでMIDIBUS

以下ツイッター(X)に挙げた内容ではあるけれど

Boss GT-001 というDTM用のエフェクターがあって調子悪かったので使ってなかったが、
ちょっと試してみようと動かしたら、なんか調子いい、なんでだぁ、とは思ったが、
MIDIコントロールをを試してみようとUSBでPCとつないで、
フリーのコントロールソフトで動かしてみた。
ちゃんとプリセット変わる。

GT-001 もうちょっと早くMIDIコントローラー試してみればよかったと、
これだとMIDIcommander にUSB接続すればコントロールできるのではないかと、
ただUSBコネクタが両側ともUSB-Bタイプ通常は売っていない。
USB-AタイプからBタイプに変換するコネクターが必要になるので、
ちょっと探してみよう。

PCでMIDIコントロールをといろいろ考えMIDI規格とかプログラミングとかちょっと調べてみる。
しらべるとProcessingでMIDIBUSというのがひっかかってきたが、
このProcessing知らなかったのでググるとJAVA言語の流れとか、
JAVAってむかーしはやった言語で、
JAVAあんまりやってないしと(笑)

#BossGT-001 のMIDIでのプログラムチェンジ、
#MIDIbuss と #Processing を使うと簡単にできること確認。
もっとも、動かすまでの前準備が時間かかったけど。
#GT-001 はDTM用なのでUSBで接続しているから、
あとは簡単なPGで、
まとまったらブログに

以上 ツイッター(X)に挙げた内容

以下 processing での MIDIBUS を使った簡単なコントロールプログラム

import themidibus.*; //MidiBusライブラリ
MidiBus myBus;       //MidiBusクラス

int dev = 5;   //MIDIデバイスの設定
int ch = 2;    //MIDIチャンネルの設定
int program = -1; //プログラムチェンジ

void setup() {
  size (500, 300); //ウィンドウサイズ
  MidiBus.list(); ///MIDIデバイスリストの表示
  myBus = new MidiBus(this, 0, dev); //インスタンスの作成
}

void draw() {
  background(204);
  if (keyPressed == true) {
    if ( key>='1' && key<='9') {
      D1(key-'0');
    }
  }
}
void D1(int programChg) {
  if (programChg != program ) {
    myBus.sendMessage(0xC0, programChg); //プログラムチェンジ
    print(programChg);  print(' ');
    program = programChg;
  }
}

28行程度だけど一応 Boss GT-001 USB接続で確認は行った。
ここで
int dev = 5; //MIDIデバイスの設定
は上記プログラムを動かしたとき表示される OutPut の中で表示される中での
該当するデバイスの番号
確認したら停止して番号を変更してください。

起動時デバイス名称取得して
プルダウンメニュー 
で選択できるようにすれば便利だけど、
プログラム変更が面倒なので現在はその処理は入れていない(笑)

int ch = 2; //MIDIチャンネルの設定
はそのデバイスで設定されているチャンネル番号を設定
何も変更してなければ多分 Ch は 1 であろうと
PCのGT-001の設定プログラムのSYSTEM のMIDI設定で変更できたと思う( ´∀` )
これも起動後変更できるように、・・・面倒なので(笑)

動作は簡単でキーボードの
0から9を押すと
プログラムチェンジの0から9を接続したMIDI機器に送る
という単純なプログラム。
GT-001 はこれでプリセット・バンク 0-9 で変更された。

ただ、表示されたウインドウをアクティブにしないと反応しないので
一回は表示したウインドウをクリックすること。
これも自動的にアクティブにすればいいんだけど(笑)

Processing MIDIBUS のインスト使い方は下記サイトを参考にした。

Processing ダウンロードは Processing から
MIDIプログラミングは MIDIプログラミング(Win) で

Processingの最新バージョンではインスタンスの作成でエラーになるので
processing-3.5.4 で動かした。
processingの旧バージョンは下のほうの

The list of revisions covers the differences between releases in detail.
For older versions (3.5.4 and earlier) see our list of stable releases.

と記述してある青表示をクリックすると旧バージョンが取得できる。

MIDIBUS の取得は 「スケッチ」-> 「ライブラリインポート」から
「フィルター」に MIDIBUS と入力してインストした。

現在は単純にMIDIのプログラムチェンジを行うだけの簡単なプログラムではあるけれど
先のサイトの「MIDIプログラミング」などを参考にすれば結構なことができると、
また ワンボードマイコンにLinux組み込んでProcessing MIDIBUS も面白いなぁなどと
単純にPCにUSBキーボードでそのキーボード部を改造してフットスイッチなど
なんでもできるじゃんと
ついつい妄想を( ´∀` )