1037 : Max Tips(009) : 赤松正行
------------------------------------------------------------------------
DSPマガジン 2005.05.30 No.1037
------------------------------------------------------------------------
虎、虎、虎、と言うことで、ごきげんなTigerくん(Mac
OS X
10.4)が登場して早くも1ヵ月が経ちましたが、皆様、いかがお過ごしでしょうか? 今回はIAC(インターアプリケーション・コミュニケーション)好きの私としては、Tigerに装備されたMIDIネットワーク機能とオーディオ・ネットワーク機能を調べてみました。どちらもOS標準機能ということもあって、結構手軽に、かつ、安定して利用できるようです。これを放っておくて手はないわけで、早速ご紹介と行きましょう。Winな人はごめんなさい。
・TigerのMIDIネットワーク
・TigerのAudioネットワーク
------------------------------------------------------------------------
Max
Tips(009)
赤松正行
■TigerのMIDIネットワーク
Tigerくんでは色々と発見があって楽しい毎日ですが、「Audio
MIDI設定」のMIDI装置に「Network」が鎮座しているのに気がつきました? このアプリケーションでは一般的にはMIDIインターフェースやMIDI楽器などの設定を行うのですが、「Network」ではネットワーク越しに他のコンピュータにMIDI情報を送ったり、受け取ったりできるようになったわけです。
それでは早速試してみましょう。まずは、コンピュータ同士がネットワークで接続されていなくてはなりません。そこで、EthernetやAirMacによって、それぞれのコンピュータをコンピュータ・ネットワークに接続します。もちろん、BlutoothでもFireWireでもモデムでダイアルアップでも構いませんよ。おっと、TCIP/IPアドレスも適切に設定しておいてくださいね。ファイアウォールがある場合は、デフォルトでは5004番を開けておきます。
次に、いずれのコンピュータでもAudio
MIDI設定のMIDI装置の「NetWork」をダブルクリックして設定ウィンドウを開き、新しいセッションを作成して、それを有効にします。ちなみに、お馬鹿なMaxくんは日本語をちゃんと扱えないので、Maxを使う場合はセッション名は英数字を使うのが良いでしょう。これで、ディレクトリのリストに現れた別のコンピュータのBonjour(旧Rendezvous)名を選んで接続すれば、ネットワーク経由のMIDI接続が完了です。後はMIDIアプリケーションを開いて、MIDI入出力ポートとしてネットワークのセッション名を選ぶだけです。
さて、実際にAirMacでコンピュータ同士のネットワークとしてMIDI接続したところ、MIDI情報の取りこぼしはなかったものの、レイテンシー(時間的な遅れ)はそこそこありました。一方のコンピュータでは受け取ったMIDI情報をそのまま送り返すようにして、もう一方のコンピュータで戻ってきたMIDI情報の遅れ(つまり送信、受信、送信、受信と4回のレイテンシーの合計)を計ったところ、大半は1ms前後でしたが、レイテンシーが一定ではないので、リズミックな演奏などでは辛いものがあります。
次に、ギガビットEthernetケーブルで2台のコンピュータを直接接続して計測したところ、この遅れは0.05msでほぼ一定していました。リズミックな演奏でもタイミングのズレを感じることはなく、かなり優秀で安定したMIDI送受信ができているようです。これならリアルタイムのジャム・セッションでも問題なく使えます。最早、普通のMIDIインターフェースよりも速いですからね。
このようにTigerに加わったMIDIネットワーク機能は、接続方法にもよりますが、かなり実用的に使えそうです。ネットワーク経由のMIDI入出力はOSCなどでも可能ですが、OSCに対応していないアプリケーションでも、CoreMIDIにさえ対応していれば(つまり、Mac
OS
XではほとんどのMIDIアプリケーション)、このMIDIネットワーク・ドライバが使えるので、活用範囲は広いわけです。OSの標準機能の強みですね。
ちなみに、同様のMIDIネットワークは、MacでもWinでも使えるMIDIOVERLAN
CP(ポート数の違いによってUS$129またはUS$169
)や、Tiger以前でも使えるiMIDI(無償ベータ版)もありますので、用途によって試してみてください。
MIDIOVERLAN
CP
http://www.musiclab.com/products/rpl_info.htm
iMIDI
http://www.grantedsw.com/imidi/
------------------------------------------------------------------------
■TigerのAudioネットワーク
TigerではAudio
Unitプラグインとして、オーディオのネットワーク送受信も標準サポートされました。AUNetSendとAUNetReceiveがそれです。これらを利用するにはAudio
Unit対応アプリケーションが必要なので、ここでは同じくTigerのオマケ(?)であるAU
Labというナイスなミキシング・ソフトを使ってみます。
AU
LabはTigerのDeveloper
Toolsに含まれており、Developer:Applications:Audioフォルダにインストールされます。以前に紹介した石英作曲家(Quartz
Composer)もそうですが、Developer
Toolsには結構気合いが入ったアプリケーションやツールが含まれていますので、開発はしないよって人も一度は覗いてみる価値があります。ExtraフォルダにはAULooperなんてのも入ってます。
さて、AU
Labではオーディオを送信したいトラックのEffectsにAUNetSendをセットします。この時、AUNetSendの設定としてBonjour名を指定します。送信データのフォーマットとしては16ビットから32ビットまでの非圧縮PCM形式から、16ビットまたは24ビットのApple
Lossless圧縮や、32Kbpsから128KbpsまでのACC圧縮などから選ぶことができます。音質を重視するかネットワーク負荷を軽減するかによって、最適なフォーマットが選べるのは有り難いところですね。ポート番号(デフォルトは52800、同じくファイアウォールに注意)やパスワードも指定できます。
次に、オーディオを受信するコンピュータでは、AU
LabでAudio Unit
Generatorトラックを追加し、GeneratorとしてAUNetReceiveを選びます。ここで送信元のBonjour名がリストに現れますので、それをホストとして選択します。Bonjourなので、ローカル・ネットワークで接続先を見つけるのは簡単です。外部のコンンピュータに接続する場合は、デイレクトリの「+」ボタンを押して、相手のIPアドレスなどを指定すればOK。これはMIDIのネットワーク・ドライバでも同じです。
以上のような手順で接続は完了。文章にすれば長ったらしいですが、実際にはとっても簡単ですよ。送信元のトラックに音を入れると、受信しているコンピュータからその音が流れますね。
それで気になるレイテンシーですが、MIDIと同じように2台のコンピュータをギガビットEthernetとして直接接続し、一方では受信したオーディオを16ビットPCMでそのまま送信するように設定して、もう一方から送り出したオーディオがどれくらい遅れて戻ってくるのかを測定してみました。その結果は、およそ1800サンプルの遅れ(これも4回分のレイテンシーの合計)で、遅れのユレはほとんどないようでした。いずれも内蔵オーディオの44.1kHzで実験しましたので、0.04秒くらいですね。このような数値は動作環境によって違いますから、参考程度にしてくださいね。
ところで、Maxと言うかMSPはAudio
Unitをサポートしていないのでダメじゃんってことになりそうですが、そこはSoundflower(旧MSP
Patcher、DSPマガジン1024号参照)が対応してくれます。ルーティングにはSoundflowerbedが便利。めでたし、めでたし。
Soundflower
&
Soundflowerbed
http://www.cycling74.com/products/soundflower.html
------------------------------------------------------------------------
メルマガの発行確認や購読中止は、DSPマガジンWEBサイトをご覧ください。
http://dspmag.iamas.ac.jp/
------------------------------------------------------------------------
Copyright(C)2003-2005
DSP Magazine. All Rights Reserved.
転送・転載禁止
------------------------------------------------------------------------