第6回 Live Visuals ツールを作る3 MIDI コントローラーを使う、他のアプリとの連携

Monday, May 30, 2022

今回は MIDI コントローラーの使い方や他のアプリと連携する方法をいくつかご紹介します!

サンプルファイル

chimanaco/takara-univ-media-programming-2022
6が本日のディレクトリです。

MIDI コントローラーを使う /project1/MIDI

MIDI は、電子楽器の演奏データを機器間で転送・共有するための共通規格である。

VJ などのパフォーマンスを行う時に、 MIDI コントローラーという USB で PC に接続できるデバイスを TouchDesigner と一緒に使うことが多いです。 本講義では nanoKONTROL2 を使用します。コンパクトでお求めやすいお値段ということもあり最初の一台にもってこいだと思います!

早速使ってみましょう!!

MIDI コントローラーを PC に接続した後、Dialogs > MIDI Device Mapper を開きます。 Create New Mapping で設定を追加します。

Network

In Device から接続した MIDI コントローラーを選択します。

Network

MIDI コントローラーのノブを動かして、数値が入ってきていれば接続がされている状態です。

Network

実際に使ってみましょう。まずは nanoKONTROL2を使って Circle TOP の半径を変えてみます。 MIDI In CHOP を配置するとこれらの値を取得することができます。nanoKONTROL のノブを回してみるとチャンネル名が表示されて、0-127の値が MIDI IN CHOP に入ってきていると思います。みなさんの環境では違う名前かもしれませんが、私の場合は ch1ctrl17 というチャンネル名でした。

この後に SelectCHOP をつないで、ch1ctrl17 を Channel Names に入力します。MIDI の値は0-127の128段階で表されますが、CircleTOPの半径は0-0.5なので Math CHOP を使ってリマップします。Null TOP をつないで、Circle TOPRadius から参照すると nanoKONTROL から円の半径が変えられるようになります!

Network

Radius 以外のパラメーターにも値を割り当ててみましょう!

OSC /project1/OSC_Out & /project1/OSC_In

OpenSound Control(OSC)とは、電子楽器(特にシンセサイザー)やコンピュータなどの機器において音楽演奏データをネットワーク経由でリアルタイムに共有するための通信プロトコルである。

OSC を使うと同一ネットワーク上に存在するデバイス間でデータを送受信することができます。MIDI の代替として設計され、MIDI の無線バージョンと言ってもいいかもしれません。ソフトウェア同士の連携に広く使われていて、様々なシーンで利用されています。

TouchDesigner 同士でやり取りをする場合には OSC Out CHOPOSC In CHOP を使用します(OSC DAT を使用するとより詳細な設定ができますが今回は CHOP で説明します)。

2人1組になって、1人は OSC Out CHOP を配置してください。OSC Out CHOPNetwork Address に送信したいデバイスの IP アドレスを指定します。もう一方の IP アドレスを聞いてください。

IP アドレスの調べ方は、Windows の Start ボタンを押して、cmd とタイプすると Command Prompt が候補に出てきますので選択します。 ここで ipconfig とタイプして Return キーを押すと情報が出てきますので、IPv4 Address を探してください。それがお使いの PC の IP アドレスになります。 e.g. 192.168.68.99

Network

それから Port を指定します。IPアドレスを建物の住所にたとえると、ポート番号は部屋番号のようなものといえます。0-65535の値を使用できるのですが、1から1023の範囲内のポート番号はウェルノウンポート番号と呼ばれ、システム提供のTCP/IPアプリケーションによって使用されることが多いので避けておきます。これはデータのやり取りをする際に同一デバイス上でユニークな番号である必要があるためです。

Network

Port 番号は、学籍番号の下4桁 + 10000 としてください。e.g. 下4桁1015の方は11015です。

もう1人は OSC In CHOP を配置し、OSC Out CHOP で使用しているものと同じ Port 番号を指定すると CHOP の値が入ってくるはずです。

役割を入れ替えてやってみてください。

TouchIn / TouchOUT /project1/TouchOut & /project1/TouchIn

TouchDesigner 同士で映像を共有するオペレーターです。

1人は Touch In TOP を配置、もう1人は Touch OUT TOP を配置してください。 Touch OUT TOP に送りたい画像の入ったオペレーターをつなぎます。 Network Port を学籍番号の下4桁 + 20000 としてください。e.g. 下4桁1015の方は21015です。

Network

Touch In TOP を配置して、Touch Out TOP 側の方の IP アドレスを指定します。Port 番号もTouch Out TOP 側に合わせます。これで映像が共有されるはずです。

Network

役割を入れ替えてやってみてください。

NDI で他のアプリに映像を送る /project1/NDI_Out

ここから1人でやります。NDI は TouchDesigner と他のアプリ間で映像をシェアするのに使用できます。同一 PC 上でもネットワーク上の他の端末間でも送受信が可能です。

Network

Touch Out TOP の代わりに NDI Out TOP をつなぎます。Source Name にご自分の名前をアルファベットで入れてください。e.g. Harada

Network

インストールされている VJ ソフトの Resolume を立ち上げてください。Source の ‘NDI Servers’ のところにさきほど TouchDesigner で指定した名前が出てくるのでそれをダブルクリックすると Resolume 側に送られているのが分かるかと思います。 このように TouchDesigner で作成した映像を Resolume に送って VJ の素材の1つとして使う、ということもできます。

同一ネットワーク上にいる他の映像ソースも受け取れるので色々試してみてください。

NDI で Teams に映像を送る

NDI Webcam Input を立ち上げます。教室の PC には既にインストールされていますが、ご自分で試す場合は NDI Tools からダウンロードしてください。

Network

ここで TouchDesigner の NDI Out からの情報を選びます。こうすると Teams でカメラのソースとして TouchDesigner からの映像を使えるようになります。 Teams 以外のビデオカンファレンスツールでもこの NDI を使った方法は使用できるので是非使ってみてください!

Spout / Syphon

同一 PC 上で映像をシェアする規格として Spout / Syphon というものもありますが、今回は NDI をご紹介しました。

Network Network

本日の課題:NDI を使って映像を送り合う

グループで MIDI や OSC、TouchIn / Out, NDI を使って色々試してみてください。授業の最後に映像をみんなで NDI から 講師用 PC に送ってもらってみんなで見ます。 e.g. 送られてきた映像に MIDI コントローラーで調節したエフェクトをかける

参考

第7回 音に反応するビジュアルを作る1 SOP と Audio data visualization 基礎

第5回 Live Visuals ツールを作る2 Animation COMP