Arduino で MIDI 制御

Arduino による MIDI 機器の制御は恐ろしく簡単に実現できる。例えばこんな感じで……

ケーブルの加工

不要な MIDI ケーブルを切断してピンヘッダをハンダ付けする。 MIDI では 5 ピン DIN コネクターのうち 2, 4, 5 番のピンしか使用しない(下図参照)。テスターを使って各ピンと繋がる線を特定する。

加工したケーブルは以下のような感じ。ホットグルーを使って絶縁を施してある。

配線

以下のような感じで配線する。

プログラム

以下のプログラムではオクターブ1から6の間の「ド」を順に鳴らしてリピートする。

void setup() {
  Serial.begin(31250);
  sendMidi(0xb0, 0x78, 0); // all sound off
}

void loop() {
  for (int i = 1; i < 7; ++i) {
    int note = 12 * i;
    sendMidi(0x90, note, 100); // note on
    delay(300);
    sendMidi(0x80, note, 100); // note off
  }
}

void sendMidi(char stat, char data1, char data2) {
  Serial.print(stat, BYTE);
  Serial.print(data1, BYTE);
  Serial.print(data2, BYTE);
}

動かしてみる

下の写真は Arduino Pro Mini を使って組んでみたテスト回路。スイッチサイエンスの単三電池2本で5V出力する電池ボックスを使って電池駆動させている。これだけ小さな仕掛けで MIDI 制御ができると,それだけでちょっと面白くなってくる。

せっかくなので,もう少し複雑なことをやってみようと思う。