VDMXとGLSLで初めてのVJ

髪型がアフロになったのでこのアタマに見合う活動をしなきゃいかんと思っていた折、友人がオーガナイズするイベントがあることを知り、未経験ながらビジュアルやらせてくださいとお願いしたところ参加させてもらえることに。持ち時間は1時間半、3名の DJ、ミュージシャンがプレイする間の担当となりました。

使用ソフト、機材

VDMX
VDMX-logo

VDMX は Mac 用 VJ ソフト。VJ にも使える、と言ったほうが正しいのかもしれません。以前 VDMX で音楽の解析 → WebRTC → three.js ビジュアライザーって流れどうよという案件のご相談があり、俺は three.js 側のみの担当と言えど VDMX についても多少は知っておく必要があったのと、VJ ソフトを調べていた際にセール($100 OFF)をしていたこと、さらに何よりともかくあのライゾマティクスさんでも使用されているとのことだったので早速導入を決めました。無料でもプロジェクトの保存が出来ないこと以外は全ての機能が使えます。テンプレート付きのチュートリアルも豊富なのでとりあえずダウンロードして遊んでみると好いと思います。

MIDI コントローラー
オーガナイザー a.k.a. 感心する係をやっているミートアップで俺今度 VJ やるんだよねーと話したところ DJ も VJ もやってたという友人が M-Audio の Trigger Finger を貸してくれました。ソフト上のスライダーやトリガーをコントローラーに割り当てられるので、より操作しやすくなります。ついでに KORG の NanoPad も貸してもらいましたが、ソフトの勝手もまだ分からず何に割り当てていいか分からず使いませんでした。以下は当日プレイ中の俺の様子。

素材

GLSL(Fragment Shader) でアニメーションを50個くらい用意しました。openFrameworks でビルドして再生、Screen Flow でキャプチャして保存、QuickTime7 Pro で Hap 形式に変換という流れです。あとは連ドラなど以前 Processing で作ったスケッチを Syphon 経由で表示できるようにしました。

当日のプレイ内容

こんな感じの映像をメインで流していました。GLSL で作ったアニメーションの2チャンネルミックスで、単純にフェーダーで映像を切り替えてました。既にエフェクトかかっているような素材もあるのでエフェクトはかけたりかけなかったり。

こちらは GLSL ライブコーディングの様子を Hyperlapse で撮ってもらったもの。GLSLSandboxVagrant を使ってローカル環境で動かしています。検索ウィンドウが出てても放置なのはテンパってるからに他なりません。

困ったこと

モニターが使えなかった
MacBookPro から HDMI スプリッターを通してプロジェクターとラップトップ横のモニターに同じ映像を出したかったんですが、プロジェクターが VGA のみの対応で持参した VGA-HDMI アダプタも機能せず。ライブコーディング時にスクリーンまで距離があって見にくい、人が増えてくるとスクリーンとの間に人が入って見えないという問題が起こりました。途中からライブコーディングを諦め大体の流れとして練習用に書いていたコードをコピペしていくという体たらくでした。まぁ俺以外誰もそんなこと気にしてないんですけどね。当たり前のことなんですが事前に確認及び起こりうる問題の対応策を立てておかないといかんですね。

VDMX のバグ?
イベントまでに WebGL と Syphon で好い感じに動くソフトを見つけられなかったため、VDMX で他のアプリを表示できる Window Input という機能を試してみたのですが、通常表示と上下反転表示を繰り返し正常に表示されない様子。開発者の方にバグレポートを出したところユーのマシンのGPUのせいかもしれない。次のアップデートで直すよ!とお返事を頂いたので心待ちにしているところです。イベントの後見つけた Syphoner というアプリがデモ版を試したところ俺が作るレベルの WebGL アニメーションならほぼレイテンシー無い感じ。USD30 のシェアウェアですが、VDMX が上記のバグを直してくれる前に VJ する機会があったら買うかも。これができるとライブコーディングしながらエフェクトがかけられるので楽しいはず。

そもそもタイピングがね
ライブコーディングやれるレベルじゃないんじゃ…。()とかよくミスる。length が lenght になる。Emacs キーバインディングの練習を。

素材が足りない気がする
この動画とこのエフェクトもう何回も使ってるやん!となって泣きそうに。沢山素材を使う、というよりは構成を考えて引き出しを増やして行かないといけないですね。

今後やりたいこと

VDMX を使いこなす
チュートリアルを見ているだけでも面白いし、同じイベントで一緒に VJ やった人がいい人で色々教えてくれるので大分助かっています。彼は俺より遥かにスキルがあるもののコードは書かないので俺のやり方とか新鮮な部分もあるようで。俺が他のイベントで見た人達や知り合いの感じでは、Resolume というソフトも人気があるようで気になっています。

音から生成されるビジュアル
VJ の基本的なことだと思うんですが、今回は手動で合わせようとしたものの適当過ぎたので。VJ とは言えないかもしれないですが New Forms Festival で見た Clinker みたいなんやりたいー。

俺用ライブコーディングエディタ
今のところ GLSL Sandbox で満足してるけど、いずれ。

動画素材を増やす
アブストラクトなものしか作ってないのでリアルな世界のものも。俺の中で VJ と言えば宇川直宏さんがやってたようにドラマや CM の1シーンとか入れてみるかな。

参加型ビジュアル
Kinnect、Leap Motion などデバイスからの入力で俺以外の人も参加できるようにしたい。

OSC
TouchOSC を使ってみてますが MIDI コントローラーのほうが触ってて楽しい気も。他の用途を模索中。

プレイ中の DJ を映して加工するアレ
よく見る気がしますが定番な感じなんでしょうかね。めんどくさいんでしょうかね。

自分のプレイ中の様子を撮る
今回余裕ゼロで自分で撮れなかったので次回があれば。

今のところ一番楽しいこと

そもそも VJ の定番エフェクトみたいのを全く知らないので元々入っている機能を見ていくだけでも面白いんですが、VDMX は自分でプラグインを作ってエフェクトなどを追加することができます。Quartz Composer で作るのが VJ の間で人気があるようなんですが、ISF(Interactive Shader Format) というのがあって、通常の GLSL に加えて json で VDMX 独自の値を指定でき、シェーダーに渡すことができるというもの。テキストエディタで編集ができます。元々 GLSL でアニメーションを作っていたので、それらを音楽と連動したより VJ ライクな素材に変えていく作業を楽しんでいます。

js で BPM 取れないかなーと試してたこともあるんですが、Felix Turner さんでさえ苦戦されているようなので、とりあえず VDMX のビート検知をはじめとする解析機能にお任せして遊んでいます。書いた ISF のコードは GitHub にアップしていくので興味のある方はどうぞ。

Update: 2014/10/28
…と意気込んでみたもののとりあえず ISF ではなく openFrameworks を使って GLSL の勉強をすることにしました。コードは以下にアップしています。
chimanaco/ofStudies

終わりに

例えば以下のように適当に動画拾って来て iMovie で編集、VDMX に取り込んで動かしてみるだけでも十分楽しめるし他にも多彩な使い道があると思うので VDMX に限らず VJ ソフトとか使ってみたら好いと思います。

若い時分にやってみたかった事を今からでも!というわけで今回は VJ をやってみました。最後まで読んでくれた皆さんのやりたかったけどやらなかった事は何ですか?まだまだ全然遅くないかもしれませんよ。

  • VDMX はビデオカメラの信号をレイヤーとして扱うことができますので、“プレイ中の DJ を映して加工する”こと自体は比較的簡単に実現できます。

    New VDMX Update Adds Support for Blackmagic Design Output Ports and Improved Performance HD Capture — VDMX – MAC VJ SOFTWARE
    http://vdmx.vidvox.net/blog/new-vdmx-update-adds-support-for-blackmagic-hardware

    こちらのチュートリアルで紹介されている UltraStudio Mini Recorder は、HDMI と SDI の入力に対応していて、長距離伝送が必要な現場(ビデオカメラの設置位置が VJ ブースから離れているなど)でも SDI で信号を渡せるので便利です。

    ビデオカメラの映像を VJ ソフトで扱えなかった時代には、信号をミキサーでフィードバックさせたり、KAOSS PAD entrancer でエフェクトを加えたりしていました。

  • chimanaco

    コメントありがとうございます。 
    何となくビデオカメラを繋けばいいのかなぁと思っていたのですが、なるほどこういうものがあるんですね。SDI という規格も恥ずかしながら知らなかったので勉強になりました。仰る通り必ずしもカメラの近くにいるわけでは無いので長距離で使えるのは便利ですね!

    VJ ソフトもどんどん進化してるんですね。