DJイベントの時に使ってみようと思い、Androidの「touchOSC」というアプリを購入しました。スマホでPCのDJソフトにMIDI信号を送れるアプリということで、比較的導入も簡単そうだったのですが自分の環境ではかなりの紆余曲折がありまして……英語のソフトで日本で使ってる方もまだまだ少なく、情報が少ないアプリなので参考になればと思います。
touchOSCとは
touchOSCはスマートフォンやタブレット上のボタンやスライダーを操作することでMIDI信号を送信することが出来るMIDIコントローラーです。
物理的なMIDIコントローラーはNANO KONTROL2とかNANO PAD2みたいにいろいろな形のものが出てますが、
- 無線LANで接続できるのでケーブルレス
- インターフェイスを自分でデザインできる
- Android版とiOS版がある
- 物理コントローラー買うよりも安い(Android版は660円)
といったメリットがtouchOSCにはあります。
基本的な接続方法
touchOSCを使うための設定は非常に簡単です。
端末側の設定
- アプリを購入してインストール
- 環境に応じて「OSC」または「MIDI Bridge」の設定を行う。
PC側の設定
- MIDI信号を受信できるソフトウェアを用意する
- hexler.netから「touchOSC Bridge」というソフトウェアをダウンロードし、インストール、起動しておく
あとは端末とPCを同じネットワーク上に接続させるか、お互いをピアツーピア(アドホック接続)させれば完了です。今回はアドホック接続をサポートしていない環境(AndroidもWindows 10も標準ではアドホック接続をサポートしてない)なので、おとなしく同一ネットワーク接続の方法を取ります。
ちなみにアプリはお試し版がないので、購入しないとお試しすらできませんが、Android版は購入から2時間まで、iOS版も誤購入のキャンセルができるようになっているので、お試しの時間をきちんと確保してから「購入」のボタンを押下しましょう。
ネットワークに繋げたのにPCが見えない……原因はIPv6
さてtouchOSCは設定画面でアプリから同一ネットワーク上にあるPCが見える、という事になってます。下記の例だと「PhenomII」といいうPCが見えています。
しかし、端末がIPv6でネットワークに接続していると「Found Hosts」にPC名が出てきません。最近のネットワーク環境だとほぼIPv6でつながりますので、おそらく出てきません。
IPv6でつながってるかどうかはtouchOSCの「OSC」の設定を開けばわかります。IPv6でつながってる場合はこんな感じで16進数のアドレスが割り振られます。
この場合は「Host」のところにIPアドレスを直で指定してやる必要があります。Windows環境の場合OSCは使えないので「MIDI Bridge」のHostにPCのIPアドレスを指定してやるのですが……
PCとつなげるにはPCのIPアドレスがわからないとダメ
そもそもPCのIPアドレスの調べ方がわからないと何もできませんね。
Windowsの場合、IPアドレスはコマンドプロンプトから調べられます。Windows 8.1と10ならスタートメニューを右クリックして表示されるメニューの中に、Windows 7ならスタートボタンを押して表示される検索窓に「cmd」と入力すれば出てきます。
黒背景に文字だけのウィンドウが出てきたら「ipconfig」と入力してEnter。
こんな感じでネットワークの情報が出てきます。この中のIPv4アドレス、と書いてある物をMIDI Bridgeで指定すればOK。(普通は192.168.xxx.xxx)
接続に成功してもアプリやPC側で何か表示されるということはなく、実際にMIDIメッセージが通るかどうかでチェックするしかありません。ちょっと不親切。
IP指定してもダメならセキュリティソフトの設定をチェック
普通はここまでやれば接続できるのですが、ちょっとした落とし穴があります。touchOSCはネットワークを使ってMIDIメッセージを送っているため、アンチウイルスなどのセキュリティソフトを入れていると通信が遮断されてしまう事があります。
Windows の標準ファイヤーウォールを使っているのであれば「Windowsセキュリティの重要な警告」というポップアップが表示されます。ここで「アクセスを許可する」を押せば通信が通るようになり、MIDIメッセージのやり取りが出来るようになります。
問題なのがWindowsの標準ファイヤーウォールを使っていない場合。
私は白い顔でお馴染みのESET ファミリー セキュリティを使っているのですが、標準設定のままだと確認もなしに容赦なくtoucOSCの通信を遮断してしまいます。
今になってみればセキュリティソフトが原因、というのは「まぁそうだよな」という感じなのですが、ポップアップが全く出なかったので気が付かず、設定に1週間位あーだこーだするはめになりました。
なお、ESETの場合は設定メニューの「ネットワーク」の項目にある「自動フィルタリングモード」を「対話フィルタリングモード」に切り替えた上でtouchOSCを接続させることで、接続を許可していいかを聞いてくるので、許可すればOK。もしくは「ファイヤーウォールを一時的に無効」にしてからtouchOSCを接続させ、ファイヤーウォールを元に戻すか、です。(戻してもtouchOSCの通信は再起動までは通るようです)
ネットワーク経由だけに若干遅延があるtouchOSC
さて、実際に使ってみての感想ですがやはりネットワークを経由しているだけあって反応はワンテンポ遅れて認識する感じです。内部的にtouchOSCのデータは仮想MIDIポートを経由しており、そこで遅延が発生しているのかもしれません。
今回はserato DJと組み合わせて使うつもりでしたが、リアルタイム性の求められる音の部分の制御には使わず、小ネタに使うようなサンプラーの音出しとか、Serato Videoの制御に使ってみようかなと考えています。
touchOSCには「touchOSC Editor」というUIエディットツールがあり、これを使えば自分の好きなレイアウトで各種コントローラを配置することができます。
Serato Video用のtouchOSC EditorファイルはDirigentのサイトで配布されているものがあったので、これを加工してみました。元のデータはiPad用でしたが、Nexus 7(2012)用に配置を修正しています。
また、「Image Effect」と「Text Effects」は使わない(Serato DJ自体日本語入力が通らないのでテキストが使いづらい)ので今のところ配置していません。とりあえず動画の切り替えとエフェクトが掛けられればいいかなーと。
素材が間に合えば2/13のPS/R Rush!4で試してみたいところですね。