Wednesday, June 25, 2014

第11回ネットワーク接続(Open Sound Control)の活用

今回はOSC(Open Sound Control)を使ってデータを送受信する方法を扱います。
OSCはカルフォルニア大学バークレー校のCNMATで開発されました。当初はMIDIに代わる音楽用の通信規格という狙いで開発されましたが、ネットワーク通信技術を応用したものであったため、音楽だけに限らず広くメディア系のソフトウェアや機器同士の通信に使われるようになりました。
OSCはUDPというインターネットの通信プロトコルを使っているので、LANのネット回線越しに別のコンピュータにデータを送ることができます。必要なのは、相手側のIPアドレスです。
また、同じパソコン内のOSCに対応したアプリケーションやプログラミング環境と、Pdとの間でデータの送受信ができます。

Pdの他にOSCに対応したプログラミング環境は以下のようなものがあります。


OSCに対応したアプリケーションには以下のようなものがあります。

iPhoneやiPod Touch、iPadで動作する以下のアプリもOSCに対応しており、コントローラーとして使うことができます。

同じコンピュータのPdパッチ内で通信する

では、OSCをどのように操作するのかを実際に見ていきましょう。
まず、pd_lesson11.zipをダウンロードして解凍してください。

最初にpd_lesson11_OSC1.pdを開いてください。
これがデータ送信用のパッチです。
8000番のポートに向けて接続してデータを送るためのものです。
タグという任意に名前を付けたラベルと一緒にデータを送ります。


次にpd_lesson11_OSC2.pdを開いてください。
これが受信用のパッチです。

操作手順


  1. [connect localhost 8000(のメッセージボックスをクリックして、通信を確立する。
  2. 「/poppy」のような「タグ」と一緒にデータを[sendOSC]に送る。
  3. [dumpOSC]がデータを受け取るのを確認する。


[OSCroute]では「タグ」ごとにデータを振り分けています。
タグを介して数字も文字も遅れることがわかります。
これだけだとパッチの中の単なる[send][receive]と変わりませんが、今度は他のコンピュータとの間でデータのやり取りをしてみましょう。

※時々、[dumpOSC]が赤い点線で囲まれて認識不能になる場合があります。これは何かの具合でOSCのライブラリの認識がうまくいかないパターンで、困ったことにたびたび発生します。その場合は、Pdの環境設定画面を開き、[デフォルトに初期化]ボタンをクリックしてからPdを終了します。再度、Pdを起動すると今度は認識されているはずです。

※connectで接続したものは必ずdisconnectで通信を切断しましょう。通信をconnectしたままだと、Pdの動作が不安定になり、最悪、Pdが異常終了することがあります。

他のコンピュータと通信する

pd_lesson11_OSC3.pdを開いてください。
これが送信用のパッチです。
ほとんど同じですが、一カ所だけ違うのは[connect 172.16.2.22 5678( とlocalhostの代わりにIPアドレスを設定しているところです。
これで同じネットワーク内にいる他のIPアドレスの持つコンピュータのに向けて、データを送信することができます。

ただし、送る相手のIPアドレスを調べてconnectの後のIPアドレスを変更する必要があります。
コンピュータに割り当てられたIPアドレスの調べ方は、Macの場合はシステム環境設定-ネットワークを開きます。



※同じネットワークグループの中のコンピュータ同士というのが肝心なところです。これが1台は無料Wi-fi、もう1台がモバイルルーターに接続していると、IPアドレスの割り振り方が共通ではないのでOSCで接続してデータを送ることができません。


pd_lesson11_OSC4.pdを開いてください。
これが受信用のパッチです。
こちらは[dumpOSC 5678]とポートナンバーだけ変更しています。IPアドレスの指定はありません。

※ちなみにUDPプロトコルはHTTPプロトコルと違い、データは送りっぱなしでちゃんと到着したかどうかの確認はないので、到着しなかったとしてもエラーメッセージが戻ってきません。

他のコンピュータとリズムパターンの鳴らし合いをする

# pd_lesson11_OSC5.pdを開いてください。
送受信用のパッチです。
これはシーケンスデータを組んで、相手を選んで送りつけるパッチです。再生のON/OFF、テンポの調整もできます。
相手のパッチで音ファイルを3つのアレイに読み込んでいれば、シーケンスに応じた音が鳴ります。

※自分のコンピュータのIPアドレスを指定すると、同じパッチの[dumpOSC 5678]に送られます。

アレイに読み込むためのフリーのサンプルサウンドです。
RolandTR727Samples.zip

メッセージボックスのIPアドレスをいちいち編集するのは大変なので、少し楽になるための機能を加えています。[coll address]の中には読み出すためのラベルとカンマで区切られたIPアドレスが記載されています。
行の末尾に「;(セミコロン)」がついているのが特徴です。


[coll]はこのように複数のデータを格納して呼び出すことができます。

※[coll]内のIPアドレスの一覧を変更したら、必ず[write address( をクリックしてaddressというテキストファイルに保存させます。さもないと、パッチを閉じると変更箇所も消えます。


PdからRenoiseをコントロールする

pd_lesson11_OSC6.pdを開いてください。

Renoiseというのは、シェアウェアのトラッカーソフトで音楽の制作に使います。このRenoiseは音楽用ソフトウェアにしては珍しくOSCに対応しています。
あらかじめRenoise側で決まっているタグを送ると、PdからRenoiseをコントロールすることができます。
Pdでは荷の重いエフェクトやサンプリング音の再生をRenoiseに担当させて、ジェネラティブなコントロールはPdで行なってコントロールするというような使い方もできるでしょう。
詳しい接続方法はこちらを参照してください。

チャレンジ

iPhoneのアプリ「mrmr」「touchOSC」などと接続できます。挑戦してみましょう。

No comments:

Post a Comment