Upload
atsushi-tadokoro
View
1.226
Download
4
Embed Size (px)
Citation preview
SSAW08 第6回
Jitter入門2008年6月3日
Jitterとは
• Maxグラフィカルプログラミング環境のための、映像、マトリクス(行列)、3Dグラフィックス向けのオブジェクト群
• Max/MSP環境の拡張機能
Jitterで出来ること
• ビデオ処理• ビデオのデータに最適化されている• 様々な演算機能 (解析、合成、色変換、畳み込み演算 etc.)• QuickTime形式のサポート• DVカメラ入力をリアルタイム処理
• 2D / 3Dグラフィックス• OpenGLをサポート• ハードウェア (GPU) によるアクセラレーション
• 音と映像の融合 (リアルタイムAV)• Max/MSPと統合して使用可能• 映像と音響が密に関連した作品を実現可能
• 映像を音響へ• 音響を映像へ• 映像と音響、相互のフィードバック
マトリクスとは何か?
• Jitterでは、「マトリクス(Matrix)」というデータフォーマットで扱う• マトリクスとは何か?
• Jitter理解のキーとなる
マトリクスとは何か?
• MSPでデジタルオーディオを扱う時• シグナルを使用• 黄色と黒の縞模様のパッチケーブル
シグナル
マトリクスとは何か?
• 映像を表現するには、どのようなデータ形式が必要か?• スクリーンは、縦横にRGBのピクセルが並んだもの• 巨大な、表形式ともとらえられる (巨大なExel)• 2次元マトリクス
マトリクスとは何か?
• Jitterでは、データを1から32次元までのマトリクスで表現する• 緑色のパッチケーブルで表現される• 例:QuickTimeムービーの再生
マトリクスとは何か?
• プレーン• 色別の各チャンネル(RGBとアルファチャンネル)• 4つの仮想的な層
RG
BA
マトリクスとは何か?
• マトリクスをJitterオブジェクトで表現すると• 名称:hoge• 8 x 6 の大きさで• RGBAの4つのプレーン• それぞれのセルのデータはchar型 (8bit)
マトリクス名
プレーンの数
データ型
マトリクスの幅と高さ
マトリクスとは何か?
• 映像を表現する場合、データ型はcharを用いることが多い• 何故か?
• 一般的なコンピュータで表現できる色数• 最大32bitカラー
• R:256色(10進数) = 111111(2進数) = 8bit• G:256色(10進数) = 111111(2進数) = 8bit• B:256色(10進数) = 111111(2進数) = 8bit• A:256色(10進数) = 111111(2進数) = 8bit• 合計 32bit
• char:文字型 = 8bit• 一つのプレーンを表現するのにちょうど良い
ランダムなマトリクスデータを生成
• jit.noise• jit.noise [プレーン数] [データ型] [幅] [高さ]• bangが入力されるたびにランダムなマトリクスデータを生成• qmetroで一定間隔でbangを生成
• metroと似ているが、処理速度に応じて時間間隔を自動調整する
マトリクスの表示
• jit.pwindow• パッチ内でマトリクスデータを表示
• jit.window• 別ウィンドウでマトリクスデータを表示• fullscreen 1 というメッセージを入力するとフル画面表示• fsmenubar 0 というメッセージでメニューバー消去• keyオブジェクトと組合せると便利
マトリクスの表示
• フルスクリーン表示の例
マトリクスの操作
• マトリクスの色情報を操作してみる• jit.brcosa
• マトリクスの色を操作• br:Brightness → 明度• co:Contrast → 明度• sa:Saturation → 彩度
• brightness [数値]、 contrast [数値]、saturation [数値] というメッセージを入力して、現在の数値を変更する
マトリクスの操作
• jit.brcosaの使用例
アトリビュート
• Max/MSPで、オブジェクトにパラメータを設定するには• メッセージを送る• アーギュメント (引数) を設定する• アーギュメントの意味は、オブジェクトに書き込む順番で決まる• 例:周波数440Hz、位相0のサイン波
• 周波数と位相はその出現順位によって区別している
アトリビュート
• Jitterでは新たにアトリビュートという仕組みが追加された• アトリビュート (Attribute:属性)• 設定するパラメータの属性を指定してから値を設定する• アトリビュートの書式:「@アトリビュート名 値」• 例:jit.brcosaオブジェクトのパラメータをアトリビュートで設定
• brightness = 1.5• contrast = 0.3• saturation = 3.0
アトリビュート
• jit.brcosaをアトリビュートで設定した例
QuickTimeムービーの再生
• jit.qt.movieオブジェクト• QuickTimeムービーを再生• bangメッセージを受け取った時にマトリクスとしてQTのデータを送出• qmetroの更新頻度を変更しても、映像のスピードには変化はない
• qmetroは、あくまで書き換え頻度の設定
マトリクスの演算
• 2つのマトリクスを演算して、1つのマトリクスに合成する• 2つのQuickTimeムービーのマトリクスを合成
• jit.opオブジェクト:マトリクスの演算をするオブジェクト• @val 混ぜる割合• @op(アトリビュート)演算の種類
• pass: pass left input, no operator;• *: multiplication;• /: division;• +: addition;• -: subtraction;• +m: addition modulo(char only);• -m: subtraction modulo(char only);• %: modulo;• min: minimum;• max: maximum;
マトリクスの演算
• jit.opの使用例
音声に反応する映像
• jit.qt.movieオブジェクトに、”rate 時間”というメッセージを入力することで、ムービーの再生スピードを変更できる
• 音声のボリュームを、時間に関連づけてみる• sfplay~:サウンドファイル(aiff)を再生する• snapshot~:シグナルを一定間隔でサンプリングしてメッセージにする
音声に反応する映像
• 音に反応する映像
音声に反応する映像
• 様々なパラメータを映像に関連づけてみる• jit.brcosa
• 明度、コントラスト、彩度を変化• jit.rota
• マトリクスのスケールと回転を変化• gateを用いて映像に適応する要素を選択できるようにしている
• 再生スピード• 明度• コントラスト• 彩度• 傾き• ズーム
音声に反応する映像
• 映像の明度、彩度、傾き、大きさなど様々なパラメータに関連づけてみる• jit.brcosa
• 明度、コントラスト、彩度を変化• jit.rota
• マトリクスのスケールと回転を変化
音響の視覚化
• jit.poke~• オーディオシグナルをマトリクスに書き出す• つまり、音を映像に変換• 2つのオシレータを、マトリクス平面のX軸とY軸にあてはめる• 平面に模様が描かれる• 左右の音の干渉と、パターンが一致する
音響の視覚化
映像←→音響のフィードバック
• jit.peek~• マトリクスデータをシグナルデータに書き出す• jit.poke~の逆• 音を映像に書き出す• 書き出された映像を音に変換• フィードバックループが生まれる
映像←→音響のフィードバック
映像←→音響のフィードバック
カールステン・ニコライ風
• カールステン・ニコライのパフォーマンス風パッチ• サウンドデータをFFTして、周波数帯域に分離• それぞれの帯域のレベルに応じて、OpenGLで描画した長方形の大きさを変化させている
カールステン・ニコライ風
• カールステン・ニコライのパフォーマンス風パッチ• サウンドデータをFFTして、周波数帯域に分離• それぞれの帯域のレベルに応じて、OpenGLで描画した長方形の大きさを変化させている
カールステン・ニコライ風