MIDI to OSC Deviceの試作とUnityを用いたVJについて 4

2013.11.04りんご飴音楽祭@渋谷WWWでのAZUMA HITOMIさんのVJの技術的なことについて、何回かに分けてまとめていきます。

MIDI→OSC変換基板の筐体製作と小型WiFiルータと組み合わせた遠隔操作

前回まででデバイスの機能は実装できましたが、ライブで使用するには色々と詰めが必要でした。

MIDI→OSC変換基板の筐体製作

まずなんといっても、最初は基板むき出しの配線モジャモジャです。少なくてもカバンにつっこめる程度のハウジングが必要です。コネクタも固定して、MIDIのDIN5端子の挿抜に耐えられなければいけません。
midicast_housing
そこで、αの所有する3Dプリンタでハウジングを印刷することにしました。モデリングはあまり経験がなかったので、まずはモデリングソフトに慣れるところから、という感じでした。Google sketchupとAutodesk 123D Designが候補ですが、検討の結果Sketchupを使用しました。理由としては、以前に少しだけいじったことがあることと、DAE出力ができ、Unityにモデルをインポート可能なこと、ギャラリーが充実していることが挙げられます。
コネクタ穴を開けただけの簡単な箱を作って、αに印刷を依頼しました。当初素材にABSを使用しましたが、反りが激しく失敗しまし、PLA樹脂を購入して再挑戦したところ、無事印刷が出来ました。
PLA樹脂はコネクタを取り付けるネジもなんとか止まる程度に硬度があり、なかなか便利そうです。基板からコネクタまでの配線などの都合でわりと大きめの箱になってしまったところは今後の改善点ですが、持ち運びや端子挿抜はできるようになりました。

小型WiFiルータ周りのあれこれ

ライブでの使用を想定すると、無線LANでの運用は必須です。製作初期には有線LANで試験していましたが、無線化するところで色々ハマりました。
まず、有線LANではOSCメッセージを255.255.255.255に投げていたのですが、無線にしてみると急にパケット落ちが激しくなることがわかりました。最初は無線が不安定なのかと思いましたが、試しにユニキャストにしてみると問題なく送信できました。最近のネットワーク機器は頭がいいんですねー。仕方ないので、引数で指定した複数のIPに投げるように仕様変更しました。
しかしここで問題が発生しました。メンバーのIPをすべて固定にするのは面倒なので、DHCPを使いたいのですが、ルーターで割り振るIP範囲を指定する機能がないのです。またもや仕方ないので、小型ルーターMZK-RP150Nを買いました。ポイントは

  • DHCPサーバーが割り振るIP範囲を指定できる
  • ルータ、アクセスポイント、コンバータの3モードがある
  • アクセスポイント間通信または無線リピータ機能がある
  • USB給電可能

の4点です。これであらゆる配置やネットワーク構成に対応できると思っています。
midicast_wdsap
渋谷WWWに来ていただいた方は見た通り、今回はVJ部屋が別部屋になっていたので、さらに同じルーターをもう一つ使ってリピータを用意しておきました。小型USB充電器と合わせたり、モバイルバッテリーと組み合わせてどこでもWifi範囲を拡張できます。
こうして、かなりの広範囲でOSCを送受信出来る環境が整いました。

BeagleBone Black遠隔操作のあれこれ

デバッグなどの都合上、Wifi経由のSSHでBBBにログインして遠隔操作することが多くなりますが、無線を使用すると特に接続が不安定になりがちです。そして、ふつうにSSHから起動したプロセスは、接続が一時的に切れるだけで終了してしまいます。これは致命的な問題になります。
当初はBBBのGUIにVNCでアクセスすることも考えましたが、帯域を圧迫するしGUIは必要ありません。こういう場合はscreenコマンドで仮想端末を作ると良いです。この解説がドンピシャです。SSHしたらとりあえずscreenする癖をつけると、起動したプロセスに再接続できるようになります。

クラブやライブ会場は、リハで初めて現場環境がわかる事が多く、こういったインフラ周りは重要かつ苦労するポイントだと思います。
次回はようやくこのデバイスとUnityを使ってOSCを受信してみます。


コメントを残す

メールアドレスが公開されることはありません。

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>