スイッチサイエンスで、SAM2695というM5Stack用MIDI音源ユニットを購入しました。 M5Stack用ではありますが、Arduinoからも鳴らす事ができます。
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の右手のミニジャックに差し込みます。