1019 : Max Tips(002) : 赤松正行 


------------------------------------------------------------------------
DSPマガジン 2003.09.19 No.1019
------------------------------------------------------------------------

冷夏&残暑も過ぎて秋らしくなってきましたね。私は怒濤の発表ラッシュがようやく終わって一息ついたところです。1ヵ月間に、展覧会1回、ライブ6回、ワークショップ2回だったので、さすがにゼイゼイ言ってました。普段はこんなに発表が多くないんですけどね。そんなわけで、DSPマガジンも休眠中でしたが、その間にWindows版Max/MSPがリリースされましたね。もう試されました? 私はPCの調子が悪くて(XPにアップデートしたものの、デバイスドライバがインストールできない...)敬遠気味です。それに、Windowsはマウス操作に違和感があって、腱鞘炎になりそう。ま、それはそれとして、PocketPCでMax/MSPが動くようになればイイな〜と思う今日この頃です。さて、今回はMax Tipsの第2回です。

・#0は魔法のナンバー
・ビデオ映像の複数同時入力
・USB入力デバイスはhiで
・数値変換はscale/zmapで

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

■#0は魔法のナンバー

複数の同じ処理をする場合に、独立したパッチ・ファイルを作成し、それをパッチャー・オブジェクトとして複数配置するというテクニックは、よく知られていますよね(トランスMaxエクスプレス、p.198〜p.220参照)。これは、ひとつのパッチを作成するだけで済み、変更が生じても大元のパッチを修正するだけで済むので、とっても便利な方法です。

ところが、名前を参照するオブジェクトを用いている場合は少々困ったことになります。例えば、複数のサンプル音を鳴らしたい時に、buffer~とgroove~(あるいはplay~など)を用いますが、これらはバッファーの名前を参照します。大元のパッチで、バッファーに「buf」という名前を付けると、それを利用するパッチャー・オブジェクトはすべて「buf」というバッファーを参照します。従って、複数のパッチャー・オブジェクトを作成しても、同じサンプル音しか鳴りません。

この問題を解決する手段の一つとして、参照する名前の先頭に「#0」を付けることが考えられます。「#1」や「#2」などは、パッチャー・オブジェクトのアーギュメントに置き換えられますが、「#0」はパッチャー・オブジェクトごとに異なる一意的な数値に置き換えられます。例えば、「buffer~ #0-buf」というオブジェクトがパッチャー・オブジェクト内にあると、それは「buffer~ 1024-buf」といったアーギュメントになります。別のパッチャー・オブジェクトでは「buffer~ 1025-buf」のようになります。これで、パッチャー・オブジェクトごとに異なる名前のバッファーが定義されますから、それぞれ異なるサンプル音を鳴らすことができる、というわけです。

文章では分かりにくいかもしれませんが、簡単なパッチ「#0-Example」を用意しておきますので、試してみてください。このパッチでは、上側の2つのbpatcherはバッファーの名前を「buf」とした「badunit」パッチを読み込んでいます。この場合は、バッファーはひとつしか存在しないので、それぞれのbpatcherで異なるサンプル・ファイルを読み込んでも、最後に開いたサンプルしか鳴らすことができません。これに対して、下側のbpatcherではバッファーの名前を「#0-buf」とした「goodunit」パッチを読み込んでいます。この場合は、bpatcherごとにバッファーの名前が異なりますので、異なるサンプル・ファイルを読み込んで、異なる音を鳴らすことができます。

このパッチでは、bpatcherを用いていますが、ノーマル・オブジェクトとしてのパッチャー・オブジェクトでも同じことですし、poly~で用いるパッチ・ファイルでも同じように「#0」を使うことができます。しかし、pfft~では「#0」は使えないようです。

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

■ビデオ映像の複数同時入力

Jitterでは、QuickTimeに対応しているDVカメラやWebCamなどのビデオ入力デバイスからリアルタイム映像を取り込んで処理することができます。はい、jit.qt.grabで結構簡単ですね。しかも、複数のカメラをコンピュータに繋ぎ、jit.qt.grabを複数作って、vdeviceアトリビュートを指定すれば、同時に複数の映像が得られます。とは言うものの、これはビデオ入力デバイスのドライバの機能に依存します。例えば、OS X/QuickTimeに内蔵されているIIDCドライバ(iSightやiBot、fire-iなどに対応)は複数のビデオ入力が可能になっています。しかし、他のデバイス(DVカメラを含む)では、複数同時入力ができない場合がほとんどのようです。

そこで、早速、OS XでiSightを2台使って試してみました。また、iSightとDVカメラの組み合わせも試してみました。結論から言えば、どちらも同時にビデオ映像を入力することができます。しかし、2台を認識させるのに手間取ったり、レイボーボールが回り続けることがあったりで、安定して使うのは至難のワザのようです。今後、IIDCドライバが改良されるのに期待!ですね。もちろん、複数のビデオ入力を行うと、CPU負荷は相当高まります。

ちなみに、iSightは一般的なWebCamより遙かに綺麗な映像を送り込んでくれますが、DVカメラの品質に比べると少々劣ります。コンパクトな形状で、デザインもカッコイイので、是非とも高画質化して欲しいところです。だって、Jitter的用途では、DVカメラのようにテープレコーダ部は不要ですからね。

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

■USB入力デバイスはhiで

ジョイスティックやゲームパッドなどのUSB入力デバイスは、OS 9ではInput Sprocket機能拡張とinsprockオブジェクトで扱うことができました(トランスMaxエクスプレス、p.833〜p.835参照)。ところが、OS XになってInput Sprocketが廃止されたので、insprockオブジェクトも使えません。でも、捨てる神あれば拾う神あり、でBen Nevile氏のhiオブジェクト(human interface object)が登場しています。現在はベータ・テスト中とのことですが、いくつかのデバイスではバッチリ使うことができました。

http://www.synthesisters.com/download/hi-20030520.sit

また、アムステルダムのSTEIMからも、JunXion v1.0というUSB入力デバイスからの情報をMIDIに変換して出力するアプリケーションがUS $20で発売されています。こちらは、出力するMIDIの種類を細かく設定できたり、近い将来にオーディオ入力などもサポートされるようです。Maxユーザには余計なお世話的機能ですが、MIDI音源に繋ぐだけでOKなのはお手軽ですね。それこそ、STEIMのLiSaと一緒に使ってね、って狙いのようです。

http://www.steim.org/steim/junxion.html

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

■数値変換はscale/zmapで

0から127までの整数を-1.0から1.0までの実数に変換したい、って時はどうしますか? はい、127.0で割って、2.0を掛けて、1.0を引きますね。でも、ちょっと手間だし、数値範囲が変化する場合は面倒です。そこで、このような一定範囲に従うように数値変換するにはscaleとzmapが利用できます。どちらも、アーギュメントで入力範囲の最小値と最大値、そして出力範囲の最小値と最大値を指定します。先の例なら、「scale 0 127 -1. 1.」あるいは「zmap 0 127 -1. 1.」ですね。さらに、scaleでは第5アーギュメントで指数関数的変化を指定することもできます。

いずれのオブジェクトも標準装備されたのは、Max 4.2からなので、まだあまり知られていないかもしれませんね。というわけで、かなり小ネタながら、便利オブジェクトをご紹介しました。

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

今回紹介したサンプル・パッチは、以下のリンクをクリックしてダウンロードできます。
TIPS002files.sit

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

暫定版ながら、DSPマガジンのWEBサイトを作りました。
メルマガの発行確認や購読中止などの操作は、こちらをご覧ください。

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

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

       


©