ArduinoでSAM2695を鳴らす

スイッチサイエンスで、SAM2695というM5Stack用MIDI音源ユニットを購入しました。 M5Stack用ではありますが、Arduinoからも鳴らす事ができます。



SAM2695のインターフェース

SAM2695には3つのMIDIインターフェースが装備されています。 1つは、M5Stack用のインターフェース、 もう一つは5pin DINのMIDI INとMIDI OUT、 さらにもう一つはTRS-MIDIです。

順番にMIDIインターフェースを見てみたいと思います。

M5Stack用のインターフェース

M5Stack用のインターフェースは、M5Stack という開発環境用のコネクタを接続するためのインターフェースです。 本体に書かれているように、電源(5V)とグランド(GND)、 シリアルの入出力(TXD,RXD)の4つの端子が出ています。 ごく一般的な端子ですので、この4つの端子をArduinoに繋ぐ事ができます。 都合でケーブルの色(白と黄色)がパッケージに記載の色とは逆になっています。

ここでは、Arduino LEONARDOと接続します。

2695 RXD <---  RX (0pin) Arduino
     TXD ----> TX (1pin)
      5V <---> 5V
     GND <---> GND


下のプログラムはでイヤフォンから音を出す事ができます。On/OFFを繰り返します。

void setup() {
    Serial1.begin(31250);   //Baud rate for MIDI
    delay(500);
    Serial1.write(0xC0);    //音色選択
    Serial1.write(0x01);
}

void loop() {
    Serial1.write(0x90);    //Note On
    Serial1.write(0x34);
    Serial1.write(0x70);
    delay(500);
    Serial1.write(0x80);    //Note Off
    Serial1.write(0x34);
    Serial1.write(0x10);
    delay(500);
} 

5pin Din

左右についている5pin Dinのコネクタは既存の電子楽器との接続に使います。 もしくはPCに接続するUSB-MIDIケーブルを接続します。SAM2695のスイッチのある面に対して 右手のコネクタに楽器のMIDI OUTを、左側のコネクタにMIDI INを接続します。



スイッチがSEPARATEの側にある場合は、下の図にあるように右手のMIDI INで受け取ったMIDIメッセージが M5Stack用のインターフェースのTXDへ流れます。また、RXDで受け取ったMIDIメッセージは左手のMIDI OUTへ出力されます。



スイッチがI/O BYPASSの側にある場合は、下の図にあるように右手のMIDI INで受け取ったMIDIメッセージが 左手のMIDI OUTから出力されます。



スイッチがどちら側にあっても、楽器からのMIDIで直接2695の音源を鳴らすことはできない仕様です。 また、どちら側にあってもRXDで受け取ったMIDIメッセージで音源を鳴らすことができます。 楽器から音源を鳴らす為にはちょっとした工夫が必要になります。

そのためには、スイッチをSEPARATEとし、TXDとRXDをショートし、 楽器(MIDI OUT) -> MIDI IN -> TXD -> RXD -> 2695音源 の経路でMIDIメッセージを通します。





この接続で、楽器から直接音源を鳴らすことができます。

TRS-MIDI

TRS-MIDIは、近年の薄型電子楽器を開発したい、という目的ために定義された規格です。 5pin Dinでは厚みが大きぐ設置できない電子楽器で 2.5mmのステレオミニジャックでMIDIを送受信します。 規格書は 日本音楽電子事業協会から手に入ります。





接続は5pin Dinと同じで、TRS-MIDIに対応した楽器のMIDI OUTをSAM2695の右手のミニジャックに差し込みます。