sound to movie

どーん。ついに、音を映像にできました。パッチも徐々に複雑になってきましたね。といっても、まだまだやってることはシンプルです。

今回一番の注目は、画面の右下にあるjit.poke~です。
ここで映像のためのマトリックスデータを作っています。
アーギュメントの書式は、

jit.poke~ マトリックス名 次元の数 色?

という感じです。

それぞれの説明をすると、

□マトリックス名
この名前を使ってそのままjit.matrixにデータを投げることができます。

□次元の数
この場合は2次元ということ。これを3にすると、インレットも1つ増えるので3次元ということだと思います。ただし、3次元という解釈で本当に合ってるかは自信がないです。適当なサイン波をいれても変化が感じられなかったので。。

□最後の色?
HELPの英語を読んでもよくわからなかったのですが、値を変えたら1だと赤、2だと緑、3だと青が出たので、色の設定なんでしょうか?



■全体の解説

では、jit.poke~を使ってどうやってこの映像を生成しているかを説明します。まず画面右上で2つのサイン波を作っているのがお分かりになると思いますが、ここで生成された波に対して、160をかけて、160をひいたものをjit.poke~の第2インレットにつないでいます。これは、cycle~で生成される波が、-1〜1の範囲で振動するサイン波なので、これを映像のx軸上にうまくマッピングできるように、0〜320の範囲で振動するようにするためです。y軸の方も同様です。

あと、adc~(外部の音)も取り込んでいますが、これで外の音がうるさくなるとその分、波形も変化するようにした感じです。ちょっとした味付けとして作ってみました。

尚、今回は、サイン波の周波数のコントローラーにMIDIコントローラーを使ってみました。やっぱ、コントローラーで弄れるのは楽しいですね。

で、最後になってしまいましたが、映像の出力はjit.matrixで行っています。このオブジェクトの書式はHELPによると以下の通りですが、まだあんまり理解できていません。とりあえず、1つめに先ほどjit.poke~で生成したマトリックスデータの名前を書いておけばOK。

args :  name(optional)  planecount  type  dimension list  attribute args

planeってホントになんだろう。typeもよくわからんなぁ。
ちなみに、jit.matrixの上でclearというメッセージを40msごとに呼び出していますが、これはclearせずにずっと動かしていると前に処理した画像がそのまま画面に残ってしまうためです。

さーてかなり盛り上がってきましたね。
次は、映像を音に変換するのにチャレンンジですかね〜。
max/msp/jitterは今までできなかったことが色々できて楽しいなぁ。
音と映像の親和性が高いのが良い。

そこらへんの他のソフトとの比較とか
細かいことはそのうちまたマトメておきたいところ。