IntensityShuttleViewer 0.2.2 公開しました #max7

IntensityShuttleViewerとは?

MacでBlackmagic Design社 IntensityShuttle for ThunderboltのPreviewを簡単にできるアプリです。今回、久しぶりにバージョンアップをしました。詳しくは、以前の記事をご覧ください。

変更点

スクリーンショット 2016-03-12 16.13.24

  • 内部処理を見直し軽量化
  • GUIの変更
  • Max6 → Max7で書き換え
  • OS 10.11.3 対応

ダウンロード

こちらからどうぞ

jit.movie @output_texture 1 で取得したGPU上の動画テクスチャを指定した解像度でアスペクト比を保ったまま描画:#max7 #maxmsp #gen

GPU上の動画テクスチャのアスペクト比と解像度を固定したい

スクリーンショット 2015-02-15 18.44.32
あのタグで待ってるをMax7に対応させようと改良しています。Max7化のポイントは、jit.movieから直接GPUに動画テクスチャを送る機能を使ったパフォーマンスアップです。

ただし、問題がありました。jit.gl.pixの解像度が、第一インレットに入力される解像度に固定されてしまうという点です。これの何が問題かと言うと、VJソフトは16:9や4:3等の異なるアスペクト比や、HDやSD画質など異なる解像度を持つ動画を次々に切り替えて再生するので、そのままでは最終出力の解像度やアスペクト比も次々に変わってしまいます。横長の間延びした動画になってしまったり、SD解像度にHD画質の動画がひっぱられて解像度が落ちてしまったり。

そこで今回は、上記の画像のように16:9の画面に4:3の動画を、指定した解像度で出すのが目的となります。

パッチ

スクリーンショット 2015-02-15 18.40.16

ポイントは、jit.gl.pixの第一インレットに解像度を指定するMatrixを入力する所です。これを使ってjit.gl.pixの出力を常に同じ解像度に固定します。また第二インレットに jit.movie @output_texture 1 で取得した動画テクスチャを入れます。この動画テクスチャのアスペクト比を保持するために、解像度を別途jit.gl.pixに入力してあげる必要があります。なぜならjit.gl.pixでは、in2に入力したテクスチャから直接dimを取得できないためです。param dim2 としてパラメーターを与えています。

ちなみに動画テクスチャの解像度をjit.movieから取り出す際に、dimメッセージで取得すると正しい値が取れないので、getmoviedimを使いました。

jit.gl.pixの内部

スクリーンショット 2015-02-25 23.59.09

in1に入れたマトリクスは、全く利用しません。あくまで解像度を固定するために入力しています。テクスチャのアスペクト比の調整は、右側のコードで行って、最終的にin2の動画テクスチャをsampleオブジェクトで取り出します。

結果

スクリーンショット 2015-02-15 18.40.21

指定した解像度とアスペクト比にする事は出来ましたが、まだ問題があります。上記画像を見ると、左右領域にゴミが残ってしまっています。本来ここの領域は真っ黒にしたいのです。この原因はjit.gl.pixの内部でsampleのオプションを@boundmode clampにしているためです。@boundmodeはいくつか指定があるのですが、他のwrapやmirrorでももちろん駄目でした。指定した領域にテクスチャが無い場合に単純に黒くするオプションが欲しい所・・・。自分で黒く塗るプログラムを追加するのが解決策になりそうですが。

スクリーンショット 2015-02-15 18.45.05

動画の縁まで色が付いていると、こんな感じになってしまいます。

Continue reading

Cycling’74 Max7 勉強会 β #max7 #maxmsp #jitter

image06

先日 Cycling’74 Max7 勉強会(のβテスト開催)をDMM.make AKIBAの一角を間借りして開催しました。ちなみに急遽開催だったため、お呼び出来なかった方すみません。参加者は左から→@CO_CO_ / @ishicca / TY0004 / @raykunimoto / @nanagagatata + @mirrorboy

勉強会の内容

image04

半日かけてMax7の新機能を中心に、各々が気になる機能を好き勝手触るという無謀なやり方でしたが、結果的には皆で新機能に関する知見が共有できました。

image03

参加者の中ではBEAPとVIZZIEの扱いやすさが特に人気でした。サウンド・アートなどをされている神谷氏(@ishicca)。最近はデジタルを使わない作品が多いため、Maxを弄るのは久しぶりだったとのこと。

image00

チュートリアルをやるMaxレッスンの生徒さん。右側で実演される動画に合わせて、左側で実際にパッチを組んでいけるので、分かりやすい!

image01

チームラボでMaxを使ったサウンドデザインを担当されている國本氏(@raykunimoto) BEAP & Gen & Jiter を組み合わせようとしている強者。最近はGPU処理に興味があるようです。

image07

BeapやGroove~のTime Stretchをチェックするコバルト爆弾αΩのΣ氏(@nanagagatata)。写真には写ってないですが、monomeコントローラーがBEAPのモジュールで動くことも確認していました。

image02

自作コントローラー等を発表しているTanzvolk(@tanzvolk)の塩沢氏(@CO_CO_)。本日Max初挑戦との事でしたが、やはりBEAPの簡単さに驚いていた様子。Javaを使えるそうで、mxjにも興味があったようです。

新機能を触ってみて

 

  • BEAP / VIZZIE

    • BEAPはMSPの煩わしさが無しに簡単にシンセ組める
    • VIZZIEはBEAPとGUIが共通化されててお洒落度アップ
    • BEAP/VIZZIEの組み合わせで容易にオーディオビジュアルが可能
    • BEAPにMonome等のコントローラー連携パッチがビルトイン
    • 参加者には、とにかくBEAP大人気
  • Patch 復帰機能 / Clash Recovery

    • Max7がまだ不安定だったので、大活躍(笑)
  • Reference

    • サンプルがコピーできるように
    • 新機能は、Max7からと書いてあり親切
  • Tutorial

    • 動画をその場で見ながら1ステップごとにつくれるので初心者も安心
    • BEAPとVIZZIEに偏っており、3時間くらいやると終わってしまうので、今後拡充されるのを期待
  • Snipet

    • 便利貼り付け機能
  • grove~

    • 待望のTimeStretch / Pitch によりAbleton Live的な事がしやすく
  • jit.world

    • jit.gl は事前準備(jit.gl.render / jit.window / qmetro 等々)が結構面倒臭かったが、スグにGL環境を用意出来るようになった。
  • playlist

    • 動画や音声ファイルをパッチにドラッグドロップするだけで再生・ループ・ジャンプ・繰り返しなどが簡単にできてよい。
  • GUI

    • 音や映像の長さでデータを探せるのが便利。
    • フラットデザイン・プルプルコードになって、今までより気持よく操作できるとのご意見も。

Gen

image05

GenはMax6から入った機能なので、Max7の新機能という訳ではないのですが、参加者のリクエストに答えて少し解説しました。

  • jit.gen / jit.pix / jit.gl.pix の役割の違い

    • jit.gen と jit.pix は CPU処理 / jit.gl.pix はGPU処理
    • jit.gen は N次元 / jit.pix と jit.gl.pix は 2次元画像処理
  • jit.gl.pix は裏でGLSL(OpenGL Shader Language)として動作

    • jit.gl.pix は GLSL でいうpixcel shader / fragment shaderに相当
    • jit.genを使えば、vertex shaderっぽい事も可能
    • jit.gl.shaderを使えば、生GLSLも使える
    • jit.gl.pixで書いたシェーダは、exportcodeするとopenFrameworksやWebGLで使える
  • MSP処理をGPU上で行いたい(参加者の要望)

    • gen~ はCPUのコードとしてコンパイルされるので☓
    • オーディオ信号をjit.matrixへ書き込みjit.gl.pixでGPU処理してから、再びjit.matrixへ戻してMSP化する方法は出来るかも。今後試したい。
    • jit.gl.shaderのサンプルの中に音処理系もあったような・・・

勉強会をやってみて

Max7は、GUIの大幅な変化に目を奪われますが、特に初心者/久しぶりな方々でも取っ付き易く学んだり遊んだりできる機能が増えているという印象でした。とにかくBEAPがヤバイ楽しい。あとは、みんなで好きに弄るスタイルの勉強会であれば、余力で開催できそうなので、今後も機会があれば続けたいです。

text by @mirrorboy