とべっち
VJソフトをMIDIコントローラを使って操作することはよく行われますが、そのほとんどが「このボタンはこのエフェクトを発動する専用のボタン」といった1対1の単純なマッピングです。
ではiPadをコントローラにするのはどうでしょう。
複雑な操作をすることは可能になりますが、物理キーに比べ正確なタイミングを要するライブ操作が不利になってしまいます。
monomeという音楽演奏デバイスをご存知でしょうか。
Polygomé demonstration from stretta on Vimeo.
64個のLEDパッドのシンプルさにもかかわらず、多様な操作ができています。
このデバイスは単純に「押されたキーを取得する」「LEDを光らせる」ということを通信する機能しかありません。
どのように演奏させるかはPC側のソフトウェアを作成し自由に設計することができるのです。
これを音楽演奏ではなく、VJソフトをコントロールできたら面白そうじゃないでしょうか。
物理キーのような操作感と多様な操作が可能なVJコントローラを実現できそうです。
しかしこのmonome、気軽に買える値段ではありません。(完成品が$700、組立キットでも$480)
そこで、もっと安価に入手できるNovation Launchpadを使うことにします。
この記事では、openFrameworksを使ってResolumeのOSCメッセージとLaunchpadのMIDIメッセージを仲介するプログラムを作成し、LaunchpadをVJコントローラにしていきます。
Resolume
オランダで開発されたVJソフト。
Resolume Avenueと上位版であるResolume Arenaの2種類ありますが、どちらもOSCに対応しています。
Novation Launchpad
http://www.h-resolution.com/novation/launchpad.php
Novation社が販売するフィジカルコントローラです。
本来はAbleton Liveを操作するためのデバイスですが、MIDI信号を入出力しているのでMIDIコントローラとしても使用できます。
8x8のグリッド状に並んだ64個のLEDパッドをVJコントローラのハードウェアUIとして利用します。
この記事では初代Launchpadを使用しますが、後継機種(S、mini、Mk2、Pro)でも基本的な部分は同じです。
openFrameworks
C++ベースのフレームワークです。
画像処理やオーディオ処理に必要な機能が充実しており、メディアアート界隈でよく使われています。
OSC
OSC(Open Sound Control)はコンピュータや電子楽器などの周辺デバイスと通信するプロトコルです。
MIDIの代替として設計され、URLに似たOSCメッセージを用いてデータを送受信します。
OSCメッセージはアドレスと引数で構成されます。
例えば以下のようなマウスカーソル位置を示すOSCメッセージがあるとすると、
/mouse/position 100 200
/mouse/position
がアドレス
100 200
がX座標とY座標を表わす引数
といった具合です。
このOSCメッセージをネットワーク上(ほとんどの場合、UDP)でやりとりして、マウス座標を取得したり、逆にマウスカーソルをコントロールできるわけです。
セットアップ
実行環境
Resolume設定
OSCの設定を有効にします。
Avenue(Arena) > Preferences > OSC
でOSC設定画面が表示されるので、
OSC InputとOSC Outputにチェックを入れます。
ポート番号は適当な番号を指定します。
今回はResolumeデフォルトのIncoming Port: 7000、Outgoing Port: 7001、
Send to addressはlocalhostで実行するので127.0.0.1、
OSCメッセージのバンドルは行わないのでBundlesのチェックを外します。
Launchpadドライバーインストール
novationのサイトからUSBドライバーをダウンロードし、インストールします。
openFrameworksのセットアップ
openFrameworksダウンロード
openFrameworksのサイトよりダウンロードして展開します。
ofxMidiをダウンロード・設置
ofxMidiはopenFrameworksでMIDIメーセージを扱うためのAddonです。
git cloneするかzipダウンロードして展開します。
openFrameworksのaddonsディレクトリにofxMidiディレクトリを作成し、先程ダウンロードしたファイルのうち、以下のファイルを移動します。
- addon_config.mk
- libs/
- scripts/
- src/
Xcodeプロジェクト作成
プロジェクトジェネレータでプロジェクトを生成します。
projectGenerator-osx/projectGeneratorを実行してプロジェクトジェネレータを起動します。
Project nameに適当な名前を入れ、Project pathにプロジェクトのファイルパスを入力します。
AddonsでofxOSCとofxMidiを選択します。
Generateボタンでプロジェクトが生成されます。
そのままOpenIDEをクリックするか、作成された.xcodeprojファイルをXcodeで開きます。
これでコードを書く準備ができました。
次回からプログラムの解説をしていきます。