読者です 読者をやめる 読者になる 読者になる

アールテクニカ地下ガレージ

アールテクニカ株式会社の製品開発・研究開発・日々の活動です

Novation LauchpadとopenFrameworksを使ってResolumeのVJコントローラを作る: セットアップ編

C++ openFrameworks VJ
Author

とべっち

 

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コントローラにしていきます。

f:id:tobetchi-at:20160606213124p:plain

Resolume

https://resolume.com/

オランダで開発された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

http://openframeworks.cc/

C++ベースのフレームワークです。
画像処理やオーディオ処理に必要な機能が充実しており、メディアアート界隈でよく使われています。

OSC

OSC(Open Sound Control)はコンピュータや電子楽器などの周辺デバイスと通信するプロトコルです。
MIDIの代替として設計され、URLに似たOSCメッセージを用いてデータを送受信します。

OSCメッセージはアドレスと引数で構成されます。

例えば以下のようなマウスカーソル位置を示すOSCメッセージがあるとすると、

/mouse/position 100 200

/mouse/position がアドレス
100 200 がX座標とY座標を表わす引数
といった具合です。

このOSCメッセージをネットワーク上(ほとんどの場合、UDP)でやりとりして、マウス座標を取得したり、逆にマウスカーソルをコントロールできるわけです。

セットアップ

実行環境

  • OSX 10.11.5
  • Xcode 7.3
  • openFrameworks 0.9.3
  • Resolume Avenue 4.5.4

Resolume設定

OSCの設定を有効にします。

Resolume Preferences

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ドライバーをダウンロードし、インストールします。

Downloads | NovationMusic.com

openFrameworksのセットアップ

openFrameworksダウンロード

openFrameworksのサイトよりダウンロードして展開します。

download | openFrameworks

ofxMidiをダウンロード・設置

ofxMidiはopenFrameworksでMIDIメーセージを扱うためのAddonです。
git cloneするかzipダウンロードして展開します。

github.com

openFrameworksのaddonsディレクトリにofxMidiディレクトリを作成し、先程ダウンロードしたファイルのうち、以下のファイルを移動します。

  • addon_config.mk
  • libs/
  • scripts/
  • src/
Xcodeプロジェクト作成

プロジェクトジェネレータでプロジェクトを生成します。
projectGenerator-osx/projectGeneratorを実行してプロジェクトジェネレータを起動します。

openFrameworks Project Generator

Project nameに適当な名前を入れ、Project pathにプロジェクトのファイルパスを入力します。
AddonsでofxOSCとofxMidiを選択します。
Generateボタンでプロジェクトが生成されます。

そのままOpenIDEをクリックするか、作成された.xcodeprojファイルをXcodeで開きます。

 

これでコードを書く準備ができました。
次回からプログラムの解説をしていきます。

Author

とべっち

ART Teknika佐賀スタジオマネージャ、プログラマ。WebプログラマからiOSプログラマへ転身。VJとしても活動中。

スポンサーリンク