2013.11.04りんご飴音楽祭@渋谷WWWでのAZUMA HITOMIさんのVJの技術的なことについて、何回かに分けてまとめていきます。
AVR100円マイコンと小型LinuxボードによるMIDI→OSC変換 (前半)
AZUMAさんのライブといえば、両手両足で楽器を操る演奏が見どころです。りんご飴音楽祭では口まで使ってましたね。知らない人はこれ見てください。
この演奏情報(MIDI)をVJに利用したいなーと思ったのですが、普通ステージとVJブースは離れてるし、MIDIを無線化するデバイスは思ったより世の中に無いらしい。という訳で、他メンバーが使ってるMax等で扱いやすく、無線化が容易なOSCでVJに届けよう!と思い立ち、デバイスを自作してみました。
システム概要
とりあえず、MIDI信号の仕様を見てみると、中途半端なBaud rateのUARTだということがわかってきたので、適当なマイコンで受信するのは簡単そうだと思い、メインとなるボードをどうするか考えました。候補としては、下記のようなものが挙げられます。
流行のArduino系は独特の生態系で僕には逆に取っ付きづらいのと、非力な割に周辺機器を考えると意外と高価なので今回も手を出しませんでした。そうなるとメジャーどころはRPiですが、RPiとBBB(注:BeagleBoneBlackね。DJじゃないよ!)だと後者の方がだいぶ高スペックで、IOピンが非常に沢山使えます。情報は少ないですが。しかも、MIDIをすぐに受信できそうなUARTがデバッグシリアルとは別ピンで3本も出ています。
というわけで、結論としてはマイコンでMIDI→UART変換してBBBにつっこみ、BBBでOSC変換してEthernetに流すことに決めました。
MIDI信号のBaudRate変換
まずはMIDI側から作っていくことにしました。BBBのLinuxの設定を書き換えて再ビルドすれば直接MIDI信号を受信できそうですが、後々アップデートするときに面倒そうだし、BBBは他のことにも使いたいので、外部基板で変換を行います。
以前遊んだことのあるAVRマイコンで作ろうと思ったのですが、調べてみるとMIDI→USBインターフェースを作ってる方がいたり、MIDI→UART変換を作ってる方がいました。今回はUART3本を並列に受信できるBBBを使おうと考えていたので、BBBの貴重なUSBの帯域を使わなくても、上記のMIDI→UART変換プログラムを焼けばそのまま使えそうです。回路図も公開してくださっているので、MIDI受信のフォトカプラ周りの作り方も参考にさせていただきました。というか、ほとんどそのままです。
AVRマイコンとしては、上記の方も使っているTiny2313は秋月電子で100円で売っているので、使わない手はないでしょう。千石で探しまわって買ったMIDIのDIN5ピンコネクタのほうがよっぽど高くつきました。しかも一応MIDI THRUもつけたので、6個必要でした。フォトカプラも以前秋月で買ったPC900Vを使いました。クリスタルは1個だけつけて、他2つのAVRは外部クロックにしています。もちろん謎の8分周もなしです。この辺のヒューズビットの設定は間違えるとヤバいので気をつけましょう。
回路もプログラムもそのままですし、以前遊んでいたAVRライタもあったので、3チャンネルMIDI→UART変換基板は難なくできました。ハンダ付けは得意じゃないので、そのへんの難はありましたが。
ちなみに電源はBBBから供給していますが、おそらくこの電源供給によってUSBの動作が不安定なので、後々別電源に変えようと考えてます。試行錯誤の結果配線もぐちゃぐちゃなので、もっと綺麗に作り直したい!
本当はBBBの中身も書く予定でしたが、長くなっちゃったので次回にします。