1024 : Max Tips(004) : 赤松正行 


------------------------------------------------------------------------
DSPマガジン 2004.01.11 No.1024
------------------------------------------------------------------------

(遅ればせながら)新年、明けましておめでとうございます。今年もDSPマガジンをよろしくお願いします(って、今年も続くのか!?〜笑)。さて、2004年最初のDSPマガジンは、Max Tipsの第4回目、インターアプリケーション・コミュニケーション(IAC)特集です。IACを使えば、iTunesで聴いているラジオをMSPで加工するといった変則技を、ソフトウェアだけで実現できるわけです。Mac OS Xになって、spigot~の機能が限定され、MIDIのIAC Driverがなくなり、寂しい思いをしていた人も多い(?)と思いますが、もう大丈夫です。

・Jack Tools〜どこでも音ルーティング
・MSP Patcher〜MSPを音の中心に
・Audio Hijack〜オーディオ保存はお任せ
・CoreMIDI IAC Driver〜MIDIなんでもバス

------------------------------------------------------------------------
Max Tips(004)
赤松正行

■Jack Tools〜どこでも音ルーティング

CoreAudioに対応していれば(つまり、ほとんどの場合)、あるアプリケーションのオーディオ出力を別のアプリケーションの入力に繋ぎ替えるツールとして、「Jack Tools」が登場しました。音楽アプリケーションはもちろん、システム警告音やテキストエディタで読み上げているスピーチなども含めて、ありとあらゆる音を繋ぎ変えちゃいます。もともとは「Jack (the Jack Audio Connection Kit) 」というGNU/Linux用のソフトウェアですが、最近、目出たくMac OS X版としてリリースされたのがJack Toolsというわけです。無償で利用できるので、開発チームの皆さんに大感謝ですね。

それでは、具体的にJack Toolsの使い方を見て行きましょう。Jack Toolsをインストールすれば、JackPilotアプリケーションを起動します。ここで、iTunesなど出力先がシステム標準のオーディオ・ドライバに限定されているアプリケーションを使うには、Preferencesで「Default Input」と「Default Output」にチェックを付けておきます。また、外部オーディオ・インターフェースを使う場合には、DriverやInterfaceのポップアップ・メニューで選んでおきます。次に「Start Jack」ボタンをクリック。Jackサーバが起動すれば、「Connections Manager」ボタンもクリックして、アプリケーション間のオーディオ入出力を接続するウィンドウを開いておきましょう。

これで準備完了。オーディオを扱うアプリケ−ションを起動すれば、その名前がConnections Managerに現れます。ただし、iTunesやQuickTime Playerなどは、音を出さなければConnections Managerに現れないので要注意です。Max/MSPの場合は、DSP Statusウィンドウを開いて設定を行います。Driverには「CoreAudio Build-in Audio」か「CoreAudio Jack Audio Server」を、Input Deviceには「Built-in Audio」か「Jack Audio Server」を選びます。Built-in Audioの場合は、iTunesなどと同じく、Jack Toolsが横取りしているシステムのオーディオ・デバイスを通じて入出力を行うことになります。

実際のオーディオ接続を行うには、Connections ManagerのSend Portsリストで送り手のアプリケーションやオーディオ・ドライバ(以下、出力ポート)をクリックして選択します。これでReceive Portsリストに、受け手のアプリケーションやオーディオ・ドライバ(以下、入力ポート)が表示されます。赤く表示されている入力ポートは有効であることを示し、送り手の音を受け取っています。黒字の入力ポートは無効となっており、送り手の音を受け取りません。入力ポートはダブルクリックする度に有効と無効が切り替わります。

iTunesの音をMax/MSPで加工する場合は、出力ポートのiTunesを選択し、入力ポートのMax/MSPを有効にします(ダブルクリックして赤字にする)。これで、Max/MSPのadc~にTunesからの音が流れ込んでくるはずです。混乱しないためには、出力ポートのBuilt-in Audioを選んで、入力ポートのMax/MSPは無効にしておくと良いでしょう(黒字にする)。

Jack Toolsでは、下手な接続をすると発振しますが、それくらいの自由度と能力を持った強力なツールだというわけです。これまでもアプリケーション間でオーディオを流すReWireやDirectConnectなどの技術がありましたが、それらに対応するアプリケーションは限られていましたよね。Jack Toolsの場合は、アプリケーション側では何も意識しないで済むトランスペアレントな構造になっているのが素晴らしいです。いや、これは本来、CoreAudioが備えるべき機能ですよね。

Jack Toolsホームページ:

http://www.jackosx.com/

------------------------------------------------------------------------

■MSP Patcher〜MSPを音の中心に

Jack Toolsとは異なるアプローチでオーディオIACを実現するのが、Cycling'74社の「MSP Patcher」です。MSP Patcherはベータ版の段階で、名称も仮とのことですが、興味がある人はダウンロードして試してみると良いでしょう。完成した時にも無償で提供されるそうです。

MSP Patcherは2チャンネルまたは16チャンネルのオーディオ・ドライバとして機能します。Jack Toolsのようなルーティング方式ではなく、バス方式と考えれば良いでしょう。つまり、どのアプリケーションからでもMSP Patcherに投げ込んだ音はすべて、MSP Patcherを入力としているアプリケーションすべてに届くわけです。

具体的には、オーディオ・ドライバを選択できるアプリケーションなら、そのオーディオ設定としてMSP Patcherを選びます。オーディオ・ドライバを選択できないアプリケーションの場合は、サウンド環境設定の出力や入力としてMSP Patcherを選ぶことになります。設定はこれだけです。

例えば、iTunesの音をMSPで受け取るには、iTunesの出力先であるサウンド環境設定の出力に「MSP Patcher(2ch)」を選び、Max/MSPのDSP Statusウィンドウでは、Driverは「CoreAudio Built-it Audio」、Input Deviceは「MSP Patcher(2ch)」を選びます。このように設定すれば、iTunesの音がadc~から出力されます。

さて、MSP Pathcerでも無限オーディオ・ループを作って発振させることができるでしょうか? これを確かめるために、Max/MSPのDriverを「Core Audio MSP Patcher(2ch)」、Input Deviceを「MSP Patcher(2ch)」とし、adc~から*~ 1.01に繋ぎ、さらにdac~に繋ぎます。音の確認のためにadc~にmeter~やscope~を繋いでおくと良いでしょう。これで無限ループが形成されていることになりますが、自己発振はしません(デジタルなので当たり前か?)。

次に、短く小さな音をdac~に送ってみます。meter~やscope~の表示では、徐々に音量が増大し、レッドゾーンに突入する様が見取れます。しかし、その音を聴くことはできません。MSPでは(おそらく他のアプリケーションでも)複数のオーディオ・ドライバを同時に使用できないからです。この発振音をリアルタイムに聴く方法があれば、ぜひ教えてくださいね。ちなみに、瞬間的に発振しないのは、MSPおよびMSP Patcherのレイテンシーのせいなんでしょうね。

MSP PathcerダウンロードULR:

http://www.synthesisters.com/download/MSP_Patcher.sit

------------------------------------------------------------------------

■Audio Hijack〜オーディオ保存はお任せ

Jack ToolsやMSP Patcherとは目的が異なりますが、アプリケーションが出力している音を横取りして、ファイルに保存するには、Rogue Amoeba社のシェアウェア「Audio Hijack」(US$16)が利用できます。MSPが使える人には積極的な用途が見い出せないでしょうが、手軽にレコーディングするには便利かも。一般的には、DVD再生やストリーミング放送をオーディオ・ファイル化するといった用途なんでしょうね。MP3でのファイル保存やDSPエフェクトなど機能満載の上位バージョン「Audio Hijack Pro」(US$30)もあります。

Audio Hijackホームページ:

http://www.rogueamoeba.com/audiohijack/

Audio Hijack Proホームページ:

http://www.rogueamoeba.com/audiohijackpro/

------------------------------------------------------------------------

■CoreMIDI IAC Driver〜MIDIなんでもバス

Mac OS 9時代のOMSには存在していた「IAC Driver」が、OMSをベースに開発されたCoreMIDIでは提供されていませんでしたよね。しかし、Panther(Mac OS X 10.3)では、IAC Driverが復活しています。しかも、システム標準なので、Pantherで「Audio MIDI設定」アプリケーションを起動すれば、MIDI装置にIAC Driverが当然のように鎮座しているという具合。なので、IAC Driverの存在に気がついた人も多かったと思いますが、私はMIDIを滅多に使わないので(苦笑)、最近になるまで知りませんでした(沈没)。

という事情はさておき、CoreMIDIでのIAC Driverのご紹介です。IAC Driverを利用するには、まず、Audio MIDI設定を起動し、MIDI装置を表示します。次に、IAC Driverのアイコンをクリックして選択し、「情報を見る」ボタンをクリックしてプロパティ・ウィンドウを開きます。そして、「装置はオンライン」にチェックを付ければ、IAC Driverが利用できる状態になります。ここでは、IAC Driverの名前を変えたり、利用するポート(バス)の数やその名前を設定することもできます。

次に、Maxでは、Fileメニューの「MIDI Setup...」を選ぶと、「CoreMIDI MIDI Setup」ウィンドウに「IAC Driver IAC Bus 1」といった名前が表示されているはずです。「Auto Setup」ボタンをクリックして、MIDIポートやオフセットを設定しておきます。また、MIDIを扱う他のアプリケーションでも、MIDI入出力にIAC Driverの同じポートを設定します。

これで、IAC Driverの出力ポートに出力したMIDIデータは、同じ名前の入力ポートから出力されます。もちろん、自己フィードバックさせて無限ループを作ることもできます。MaxでのIAC Driverのポートが「a」だとして、「ctlin a」から「ctlout a」に繋ぎ、何か数値を「ctlout a」の第1インレットに入力してみましょう。この場合にハングアップしたり、スタック・オーバーフローしないのは、OS Xが優秀なのか、IAC Driverのレイテンシーが大きいのか、どっちなんでしょう?

ちなみに、システム環境設定では、QuickTimeミュージックシンセサイザの接続先に、IAC Driverが現れませんでした。これができると、WEBブラウザが鳴らすMIDIを横取りできるんですけどね。そうです、横取りするだけで何も鳴らさずに放置するのです(笑)。ともあれ、QuickTimeミュージックシンセサイザは独立したCoreMIDIデバイスになって欲しいよね。

なお、Pantherじゃない人は(Pantherな人も)、PeteYandell氏が開発したフリーウェア「MIDI Patchbay」が利用できます。これも同じようにアプリケーション間でのMIDI送受信を可能にするソフトウェアですが、MIDIチャンネルやノート・ナンバーによる制御などができるようになっています。

MIDI Patchbayホ−ムページ:

http://pete.yandell.com/software/

------------------------------------------------------------------------

1行広告:DSPスーパースクール2004開催

http://dspss.iamas.ac.jp/

------------------------------------------------------------------------

メルマガの発行確認や購読中止は、DSPマガジンWEBサイトをご覧ください。

http://dspmag.iamas.ac.jp/

------------------------------------------------------------------------
Copyright(C)2003-2004 DSP Magazine. All Rights Reserved. 転送・転載禁止
------------------------------------------------------------------------ 

       


©