Warning: include() [function.include]: http:// wrapper is disabled in the server configuration by allow_url_include=0 in /home/users/2/lolipop.jp-dp38009832/web/blog/archives/002760.php on line 31

Warning: include(http://satcy.net/blog/rss_read_del4ama.php) [function.include]: failed to open stream: no suitable wrapper could be found in /home/users/2/lolipop.jp-dp38009832/web/blog/archives/002760.php on line 31

Warning: include() [function.include]: Failed opening 'http://satcy.net/blog/rss_read_del4ama.php' for inclusion (include_path='.:/usr/local/php/5.3/lib/php') in /home/users/2/lolipop.jp-dp38009832/web/blog/archives/002760.php on line 31
memorandum: .気まぐれにMax事

« .v.up | main | .お知らせ »

January 20, 2005

.気まぐれにMax事

Maxと非Maxネットワークの関係

Gabocoyは拡張的ネットワーク表現を実践する集団です。
Gabocoyをしている中で、ネットワークとMaxを連携させることが多くなりました。
そこで、Maxのネットワーク関係について気づいたことなどを。
Maxは、標準のオブジェクトだけでは、インターネット上の文章を取得することですら不可能です。
しかし、様々なエクスターナルオブジェクトを使うことで、可能になっていきます。

たとえば、11月に青山のmaniac loveにて行われたイベント"indust-real"では、
サーバーサイドがFCSで動作するFLASH製のチャットシステムのチャットの文章を、
jitterでOpenGLに表示させて、それを素材としてVJを行いました。
この例では、OpenSoundControl(以下OSC)を使用しました。
OSCの詳細は、こちらを参考にしてください。
http://dp.idd.tamabi.ac.jp/ssaw04/archives/000072.html
まず、FlashCommunicationServer(FCS)は独自のRTMP (Real Time Messaging Protocol)というプロトコルを使用しています。
それは、もちろんFLASH以外では利用できません。(Directorみたいに他のmacromedia製品で対応してるものもあります。)
ですので、chatのテキストをFCSから受け取るだけのswfを作り、
そして、OSC(FLASH対応のOSCはfloscと呼ばれている)で、Maxに渡すことになります。

しかし、ここで問題があります。OSCには日本語が乗らないのです。
そこで、解決策として、まずFLASH側で全テキストを文字コードに直します。
FLASHの文字コード変換はUNICODE。
そしてOSCに乗せて、Maxに落とす。Maxで文字コードをもとに戻しますが、
Maxの文字コードは、jis、shift-jis。
文字コードが違うので、web上で配布されている変換テーブルをMaxに埋め込みます。
これで、FCSベースのFLASH製のchatの日本語の文章を、Maxに渡すことができました。

ただchatのテキストをMaxで表示したいだけなのに、これだけの行程が必要になります。
ここでは、FCSを使ってるから行程が増えてはいますが、、、
FCSはサーバ側からクライアントに対して働きかけるので、
サーバの負担が受動的に増えることがないメリットがあります。非常にインテリジェンスです。
ただ、アクセス数の上限に応じ課金が従量制なのが難点です。
テキストだけでなく、映像、音声のリアルタイムストリーミングも簡単に実現できます。
サーバを自立的に動かせるので、同時であったり過去でも、あるサイトを閲覧している人たちの、
cookieなどから、趣味志向を推測し、サーバがリアルタイムにマッピングするようなことも出来るでしょう。

しかし、それらはすべてFLASH上でしかできないことになってしまっています。
こんなに素早くネットワークを生かせるコンテンツが作れてしまうのに、完全に閉じられてしまっています。
Gabocoyとしては、それら閉じられた壁を横断することで、可能になる体験が魅力のあるものであると示してもいきます。
Maxにおいては、多くの通信プロトコルの解釈を可能にするエクスターナルオブジェクトがありますので、
完璧なパッケージではなく、仮設的に構築し素早く実践するために様々なツールを横断的に使用するのに、
Maxは持ってこいのツールと言えます。

じつは、わざわざMaxでなくても良かったのです。Directorであれば、FCSと直接通信できるので、OSCを使うこともありません。
Directorは3Dの表現もできますので、それで十分だったのです。
しかし、Gabocoyは分業体制ゆえ、Directorを使えるのが僕一人なので、全員が扱えるMaxで行いました。


もう少し、簡潔な題材で、
RSSを読み込んでそれを解析して、NewsReaderみたいなものをMaxで制作すると想定してみます。
まず、適当なRSSを見つける(天気のような)→ダウンロードする→"toxline"オブジェクトで読み込む→Web等参照して、解析のアルゴリズムを組む→完成?
実際に作ってないのでこれで良いのか不明です。気まぐれにそのうち作ってみます。
※ダウンロードには、osXの場合。Bill Orcutt氏の"shell"または、赤松正行氏の"aka.shell"オブジェクトを利用して、DLするか、"jit,uldl"を使うことになると思います。
※"shell"オブジェクトの概要を理解するには、http://dspmag.iamas.ac.jp/backnumbers/1021.txtを。
※"toxline"オブジェクトは、jasch objects(http://www.jasch.ch/dl/)の内の1つです。
osXになって、terminalを動かせる"shell"オブジェクトが出てきたことで、
Maxを非Maxのネットワークで使う面白さが現れてきたと思います。
もちろん、Max4.5になってJavaによるネットワークへの対応も興味を惹くところです。

先日blogで取り上げた、CarnivorePEも気になるところです。
Maxと連携することもできますが、
それよりも"shell"でtcpdumpコマンドでTCP/IPのパケットを利用することの方がリアリィティがあるような気がします。
遠くで起こってることなんて、そうそう自身のことのようには思えませんから。


参考までに、OSCが対応しているアプリケーションの内いくつか実際の使用感を書いておきます。
Directorの場合、Xtraとして配布されています。僕が試したのはos9です。
実際に、Director上で動くマウス操作により2物体を衝突させるプロジェクタを制作し、
その衝突のトリガと相互の座標位置を、OSC経由でMax/MSPに送り、音を生成させてみました。
レイテンシはかなり気になるところでしたが、Directorでは表現できない音生成が可能になる一例です。

proce55ingの場合、特徴のある部分を複数スキャンする画像解析のコードに、OSCのためのコード加えて、
まずは、FLASHに送信してみたところ、異常にフレームレートが落ちてしましました。
次に、Maxに対して送ったときも同様にフレームレートが落ちました。
僕の周りでも、違う処理で同じ現象になっていますので、
proce55ingにおいてはいまのところOSCは使える状態には無いと思います。
proce55ing自体がアルファversionですし、重要なプロジェクトではあると思いますが、
2004年2月からバージョンアップされてないのが、ちと気になります。

最近のMax悩み事。PhidgetはまだMaxで動かない。と購入してから判明。



>
Feed[Help?]
Site by Satoshi HORII. This website is under a Creative Commons License.
Powered by Movable Type 3.2-ja-2, jQuery, ThickBox and Interface elements. Made on Mac.