Home - Arduino | Max/MSP - ArduinoboyでGameBoyのLSDj、Nanoloop、mGBをMIDIで繋げてみた

ArduinoboyでGameBoyのLSDj、Nanoloop、mGBをMIDIで繋げてみた

  • posted on 2010年5月11日 03:08 / update 2012年6月 5日 05:06 / by hoehoe3

100401_arduinoboy1

ゲームボーイの音楽制作ソフトLittle Sound DJやNanoloopのMIDIケーブルを、Arduinoで作るライブラリArduinoboyで、Max/MSP(Live)を同期させてみたよ。

Max/MSPを始めた記念になんかMIDIで鳴らしたい。でもそんな機材持ってないし。んーじゃ代わりにMIDI同期できるLSDjでゲームボーイでも鳴らすかー。たしかArduino使って同期できるライブラリかシールドがあったはずだし。。とガラクタ箱を漁ること半日、ゲームボーイとその一式を発掘して繋げてみた。

Arduinoboyで実装

100401_arduinoboy2

構成はこんな感じ。実装にはArduinoとGB上のLSDjやNanoloopを通信させるMIDI I/Oシールドを実装するスケッチ「Arduinoboy」を使います。こんな感じにMIDIインターフェースの回路を作るか、USBを繋げてMIDIメッセージを送受信します。今回はMAX/MSPからMIDIメッセージを送信させたいのでUSBで繋げます。以下いるもの。

・ゲームボーイ(初代、ポケット、カラー等)
・LSDj、Nanoloop、mGB
・ゲームボーイ通信ケーブル(DMG-004等)
・Arduino
・LED × 5(任意)
・抵抗 330Ω × 5(任意)

通信ケーブルはGEOとかゲーム探偵団とかの中古屋を回るとショーウィンドウの片隅に転がってたりしますw(¥200~¥500くらい)。LEDは状態のモニタ用なんで必要なければいりませんが、雰囲気も大事なんで付けてみます。

GameBoyとArduinoを接続

通信ケーブルを加工

通信ケーブルを剥いて中のラインを出します。今回は初代GB用のDMG-004を使います。ケーブルの解体方法も公開されてるんで参考に。中にはDATA IN(橙)、DATA OUT(赤)、GND(青)、CLOCK(緑)の4本がまとめられています。ケーブルによって仕様が違うんでよく確認してください。ブレッドボードで使うんで端子とかも付けておきましょう。

Arduinoと接続

通信ケーブルとArduinoは回路図を参考に次のように接続。

CLOCK(緑)→Analog 0
DATA IN(橙)→Analog 1
DATA OUT(赤)→Analog 2
GND(青)→GND

DIGITAL 8~12 →LED

100401_arduinoboy5

100401_arduinoboy3

Arduinoboyのライブラリを修正していきます。動作モードを4(Midi Input to mGB)、USBモードをON、回路上のボタンは使わないんでメモリ機能をONにしてアップロードします。

Arduinoboy1_1_0.pde を編集

boolean forceMode = true;
int mode = 4;
int numberOfModes = 5;
boolean usbMode = true;

MAX/MSPとArduinoを接続

100401_arduinoboy4

前回はArduinoとの通信にMaxduinoを使いましたが、今回はスタンドアローンのArduinoと通信させたいので、Serialオブジェクトを使って直接シリアルポートを叩くパッチを組んでみます。後はコントローラーか、曲を再生させてMIDIメッセージをシリアルに送ってあげれば、GBから音が出てくれるはず。

動かしてみた

鳴ったー。ちなみにデモではフルMIDIコントロールできるArduinoboy付属のmGBを使ってます。曲を流す場合には若干BPMを落としてあげた方がいいです。タイトルに偽りありになっちゃたけど、Arduinoboyのモードを変えるとLSDjやNanoloopと同期させることもできるよーですよ。

まとめ

パースとか必要なOSCよりもMIDIの方が単純な構造な分、楽に変換できてよいですね。1トラックがモノフォリックで鳴ってるんで、曲全部ならそうとすると結構大変?。いっぱいGB並べるのも楽しそうだけど。。

参考資料:

COMMENT

Auther
hoehoe: おおさか方面でWebとかやってますよ。
Search
Feeds