ファイル JitGrab2021.maxpat
Matrixをランダムな単色で初期化するまでの長い説明。
jit.matrix の各cell(ピクセル)の値を初期化する。
「黒画像でcaptureマトリクスを消去するには?」の辺りに swatch オブジェクトを組み込む。
ツールバー → + ボタン → Interface → swatch
swatch の helpをオブジェクトボックスのメニューから呼び出す。
動作確認
ロックを解除して Jitgrab2021パッチャーに貼り付ける。
不要なオブジェクトを削除する。
jit.matrix 1 char 128 96 のプレーン数を1から4に変更する。
swatchのオブジェクトメニューから Attribute を追加
compatibility を ON
mキー またはMax8メニューの mアイコン を押す
メッセージを作成
setall A R G B
マトリクスの各セルを初期化するピクセルカラー値を指定する。
Aを255、その他をswatchのリスト出力を順に$1 $2 $3に適用して出力するメッセージは以下の様に記述できる。
setall 255 $1 $2 $3
jit.matrix の各プレーンをswatchで選んだ色で初期化する。
swatchのカラーピッカーをマウスで操作
saturationをある程度の値まで上げないと色が付かないので調整する
jit.matrix に bangを送り画像データをプレビュー画面(jit.pwindowオブジェクト)に送る
Swatchを操作するとマトリックスの画像を出力するように調整する。
Swatchからsetall コマンドをマトリックスに送信した後に、bang を送るようにする。
※ bangはsetallメッセージよりも左に置く必要がある。Maxの出力の分岐は、右側のオブジェクトから順に出力される。
例1)
うまく出力できない例) 以下のパッチャーではswatchをクリックすると1つ前に選択した色が表示される。
例2)
メッセージの下にbangを配置して、メッセージの送信後にbangが送信されるようにした
例3)
Maxのメッセージの送信順の制御
triggerオブジェクトを用いて出力するメッセージの順番を制御できる。
----------begin_max5_patcher----------
767.3ocuW0raSCDD9bpTeGVY0igJuqiyO7pPPUabVBaj8ZK6MMopBIriP7SQ
pBNTDBgPBj.oREbE3.uLqh30f8G6zzTmVmRJGhGuimIy22LyNq8gauUMqdgS
HIVf6BtGnVsCkZpo0ozTqPQMq.7DOebh1PqgT9tQior9gispmaPxALO0CgEJ
XiBBGw8IbsOnB0z95+hvdCuCrwbuMVxOHhXPhJD6Ef4wzIV0AVVf6WXYDl68
PJavdwDOtwXXmcsqCbZoEssUWaJudtORnPYEHApU9ns2RIkh5Ul1LxXIrmiY
NYBed5n.qUm7NaTxibTBW8UD5Vf7dgAADF+xrWByACHwhrSESOQj8CQ1WDYe
WL8YcYcYyN9MhzWM63SDoeRj9AwzSEY+T9LfOPj85tr+b1YHQ1GEYeVpTL8L
wzopaRORj87YOQdyWm8zeM6EuSj9VQ1QcYhz2KR+1re+RwiS0dCWk28vrAxP
rn6ywtOkQ7BGwzDnY40L6xpYHqqnRzokN42RKfs0hNv+i8gbPOf+5zBZu5VP
U5qpMe4Ttk8tt2RMeAjjD7.xkorM.AcU+VAsgkP6Vql0WMaaXprczSXP1Mul
8ZnMOcSHbruO.45B1AB1AA1wYMHt6Mk34kYGjl+P6aMhmLVE70oE9Jnjr68A
9gXdU3ViFFFpEPmKb5gbxmzOZOpOkevxGwcNqcNOHw3.BmDuGgg64qwi8MNk
f473Qz0nJi92pxPSJvsjhrBJEmErPFo785qS1vDB8X4keSDMNUOXobTR3nXu
BdUbdJXAv1mjvoLIJCYKZUCiUqtbT8.JmdBfWa.WBVAz9QgTFOmml2Vww1rA
qsZ.pdwlCg1UEgaf.5Vo3Yu4JAUIdKApv39j3q4znMK.Zcw9jk5.LEcnoQ.0
vY9pRfr8F.xnJUiJsDkuMEGEsOINI2CSjjyrFFpwX65l0TlYsYrnULYeZgKl
YCV3X4DHtb7ynXM.slzL+CBrBBkLlIG6kWmTbUEZ8XQlbdRRD1vJ83ys2RZv
e4hNV7C
-----------end_max5_patcher-----------
補足説明
swatchのAttributesからcompatibillityをONする。swatchのARGB出力値が 0.0〜1.0から0〜255に変わる
メッセージオブジェクトの機能
オブジェクトの第1インレットにメッセージオブジェクを接続してコマンドで操作できる。
コマンドを決められた書式でメッセージとして記載する。
実行モードでメッセージオブジェクトはボタンになる。クリックするとメッセージを送信する。
メッセージオブジェクトの第2インレットにメッセージを送るとメッセージオブジェクトの内容を上書きする。上書きするだけでメッセージは出力されない。
実験:
jit.matrixオブジェクトにsetallメッセージを送ることで画像データメモリを初期化できる。
setall A R G B の書式でカラー値を4つ 0〜255で指定する。
例 setall 255 128 128 0
jit.matrixはbangを受け取ると自身の内部データを出力する。
jit.matrixはclearメッセージを受け取ると自身の内部データを0クリアする。
メッセージの書式について:
1つのメッセージに複数の値をまとめる事ができる。値の区切り文字は空白文字。
リストメッセージ(値を1つ以上並べて一括して送信したもの。swatchのカラー値出力はARGBの順で並んだ要素数4の数値リスト)
メッセージオブジェクトの第1インレットに送るリストデータを先頭(左)から順に$1 $2 $3という変数で受信側のメッセージで参照できる(メッセージに埋め込んで再利用する目的で)。
Vizzieモジュールから
MIX-COMPOSITE -> MIXFADR
を選んで2つのシーン(画像)を合成するクロスフェーダーをパッチに組み込む(↑の画像参照)。
swatchのhelpに組み込まれたサブパッチャー p mood_machineを使う。
トグルボタンをONにしてサブパッチャーを起動する。
サブパッチャーの内容確認:
実行モードから開くにはサブパッチャーオブジェクトをダブルクリック。
編集モードから開くにはコマンド+ダブルクリック(WindowsはCtrl+ダブルクリック)。
ちょこっと解説:
random オブジェクトとmetroオブジェクトにより一定間隔で乱数値を発生させる。乱数は各RGBごとに別々に生成している。
lineオブジェクトにより前回の乱数値から新規乱数値に指定された時間で段階的に値を変化させる。
packオブジェクトで各RGB値を1つのリストにまとめる。
vexprオブジェクトでリスト中のRGB値を255で割り0.0〜1.0範囲に調整する。
※ このsub-patcherを修正して、vexpr で RGBの値を/255で割って0.- 1.0に変換している部分を削除してもよい。
下記の調整の演習でvexpr オブジェクトを組み込まなくても済む。
サブパッチャー mood_machineは0.0-1.0のカラー値をランダムに生成する。
swatchのモードはcompatibillity をOFFにしないと反応しない。
swatchのmood_moduleのランダムカラー値をjit.matrixの初期値にする。
サブパッチチャーのmood_machineを編集していない場合は、
vexpr オブジェクトを以下の様に組み込む。
式の意味:0.0-1.0の範囲のカラー値を0-255に変換するために255倍して整数化している。
ランダムカラーで初期化したjit.matrixからデータを送信する為にbangを下の画像のように繋ぐ。
この接続方法でも動作するが、Maxのメッセージは右側に配置されたオブジェクトから順に処理されるので本来はbangはsetallメッセージよりも左側に置く方が適切。