/**/
Jitter は Max の グラフィックス・プログラミング環境のために作成された、映像、マトリックス(行列)、3Dグラフィックス向けの150を越える新しいオブジェクト群です。Jitterオブジェクトは、マトリックスデータの生成や操作を柔軟な方法で行なうことによって、Max4/ MSP2 の機能を拡張します。マトリックスデータとは、行と列で表現可能なあらゆるデータのことで、これには、ビデオや静止画像、3Dジオメトリのようなものをはじめとして、テキストデータ、表計算データ、パーティクルシステム、ボクセル、オーディオなどが含まれます。Jitterはリアルタイム動画処理、カスタムエフェクト、2D/3Dグラフィックス、オーディオ/映像のインタラクション、データのビジュアライゼーションや解析に興味を持つあらゆる人々にとって役に立ちます。
JitterはMax/MSPプログラミング環境を土台として構築されているため、特定の目的のためのアプリケーションにつきものの制限はありません。「このように行われるべきである」というような他の誰かのアイデアに従うことを強制されるのではなく、あなたが使いたいプログラムを作成することができるのです。この力はあなどれません。ぜひ賢く利用して下さい。
Jitterのアーキテクチャは汎用性のあるものですが、映像データによる利用のために高度に最適化されていて、驚くほどの速さで動作します。強力な数学演算子、キーイング/合成、解析、色空間の変換や色の補正、アルファチャンネル処理、空間変形、コンボリューションベースのフィルタ、そして特殊なエフェクトは、独自のビデオ処理を作成するための基礎的な要素を提供します。
Jitterはアップルの QuickTime アーキテクチャに対する豊富なサポートを含んでいます。これには、QTがサポートするすべてのフォーマットの再生、リアルタイム、あるいは非リアルタイムでのファイル生成、編集処理、インポート/エクスポート機能、統合されたリアルタイム QT エフェクト、ビデオ取り込み、QTVR、ファイルフォーマット変換などがあります。
注:Jitter を使用するためには、QuickTime がインストールされていなければなりません。
QuickTimeオーディオは、MSPのパワフルなオーディオ処理を利用するためにMSPを経由させることができます。プロダクション環境のためには、JitterはFireWireによる入出力だけでなく、デジタルビデオ(DV)カメラのコントロールもサポートします。さらにパフォーマンス環境のためのマルチモニタもサポートしています。
注:ビデオ出力コンポーネントは、現時点では Macintosh でのみサポートされています。
Jitterの統合された2D/3Dグラフィックスサポートは、ハードウェアアクセラレータによるOpenGLグラフィックス環境でビデオを使用するためのツールを備えていて、これには、 リアルタイムでビデオストリームを3Dジオメトリのテクスチャとする機能、オーディオとビデオのストリーム直接ジオメトリデータに変換する機能、さらに、モデル、NURBS、2D/3Dテキスト、あるいは他の一般的な形状をレンダリングする機能が含まれます。ハードウェア寄りの処理を必要とする場合には、ジオメトリデータやほとんどのOpenGL APIへの低レベルアクセスも可能です。
JitterはCycling '74のMax/MSPグラフィカルなプログラミング環境にきっちりと統合されています。カスタムアプリケーションを作成するためには、アナログモジュラーシンセを作る場合と同じようにパッチコードでデータ処理オブジェクトを目に見える形で接続すれば良いのです。
このビジュアルなフレームワークは、独自のビデオエフェクトやリアルタイムビデオミキサ、オーディオビジュアライザ、画像からのオーディオ生成、アルゴリズミック画像生成、バッチ処理による変換/処理プログラム、それ以外にも、必要とするあらゆるプログラムを作成するためのパワーを提供してくれます。他のMax/MSPユーザとともに開発したプログラムを共有することができ、さらに、現在でもMax/MSPで可能なスタンドアロンのアプリケーションを作成することができます、Max/MSP/Jitterで開発されたあらゆるアプリケーションを実行することができるランタイムバージョンも入手できます。
Jitterの強みと柔軟性は、ビデオ、3Dジオメトリ、オーディオ、テキスト、その他どのような種類のデータを扱う場合でも、同じ汎用マトリックスデータフォーマットを利用するという方法によってもたらされています。Jitterのマトリックスは、char (8 bit 符号なし整数)、long (32 bit 符号付き整数)、float32 (32 bit 浮動小数点数)、float64 (64 bit 浮動小数点数)という4つのデータ型のうちの1つによって構成されます。マトリックスは32までのディメンション(次元)、および32までのプレーンを持つことができます。
この共通した表現方法は、情報の変換を容易にします。文字を画像として解釈する、ビデオを3Dジオメトリに変換する、オーディオをパーティクルシステムに変化さる、ビデオデータをオーディオとして再生する、といった実験を行なうことができます。その可能性は無限です。
Jitterは、この数値表現を処理するために必要な、あらゆる基礎的な数学ツールを持っています。jit.op オブジェクトだけでも60を超える算術演算、ビット演算、指数関数演算、論理演算、三角関数演算を備えています。jit.opにある多数の演算子はビデオ合成の実験に対して特に有効です。また、線形代数、パーティクルシステム、フーリエ解析や再合成、文字列処理、セルラーオートマトン、Lシステム (リンデンマイヤーシステム) に対する Jitter のサポートは、より広汎な実験の可能性を与えてくれます。
Jitterのオブジェクトは、経験豊かなMax/MSPのベテランにとっても目新しいような方法で、オブジェクトの内部状態(ステート)の多くの要素を扱えるようにしています。Jitterは、アトリビュート(属性)という概念を導入します。これは、オブジェクトの持つ内部的な変数を設定、取得することができるというもので、これにより、オブジェクトの内部状態の管理が容易になります。便利な方法として、Jitterオブジェクトでは、 "@<アトリビュート名> <アトリビュート値>" という書式のアトリビュート・アーギュメントと共にオブジェクトを生成することができるため、loadbang オブジェクトを過度に使用することの必要性を大きく減らすことができます。Jitterオブジェクトは任意の大きさのマトリックスを取り扱うことができるように設計されているため、受け取ったデータの型や大きさに適応することができます。一つのプログラムの中で、様々な型やデータサイズを扱う多くのオブジェクトを同時に持つことができ、データの型やサイズを、別の型やサイズに簡単に変換するためのツールがあります。
オブジェクト間で渡されるすべてのマトリックスは、MSPの buffer~ オブジェクトと同じような「名前をつけられたエンティティ(実体)」です。名前で参照されることによって、一つのマトリックスが複数のオブジェクトによってアクセスされることを可能にし、クリエイティブなフィードバック・ネットワーク、インプレイス処理(データを直接変更する処理)、メモリ保護が可能となります。公開されているJitter SDKを利用することができ、これには、Jitterオブジェクトのセットの中から直接抜き出した30以上のオブジェクトのソースが付属しています。そのため、サードパーティ開発者は、すでにJitterが提供している圧倒的な可能性をさらに拡張することができます。このような拡張性は、Max/MSPですでに知られている強みの1つです。
あなたのJitterを使う体験が、私たちがJitterの開発で体験したものと同じくらい素晴らしいものになることを望んでいます。どうすればJitterをさらに良くしていくことができるのか、どうか躊躇することなく私たちに知らせて下さい。
楽しみましょう。
Jitterチームより。