JSオブジェクトにて、list関数を呼び出す場合は、引数listの1つ目の要素は数値にする:Cycling’74 Max, JavaScript

スクリーンショット 2013-09-24 23.45.53

jsオブジェクトで1つハマりました。

デフォルトで使えるlist関数を呼びだそうとしても、どうしてもanything関数しか呼んでくれない。どうしてだと調べてみると、jsパッチでlist関数を呼ぶには、引数listの1つ目の要素は数値にする必要があったようです。先頭が文字列のリストは、単なるメッセージ扱いになってしまうみたいです。たぶんmessageによる関数呼び出しと区別つかないから仕方ない事だと思われます。皆様もお気をつけなすって!

jsオブジェクト コード

[javascript]</pre>
autowatch = 1;
inlets = 1;

function list(){

post("list:" + arrayfromargs(messagename,arguments));
post();
}

function anything(){

post("anything:" + arrayfromargs(messagename,arguments));
post();
}
<pre>[/javascript]

Genの内部パラメーターを取得するサンプルパッチ:Cyclint’74 Max, Gen

スクリーンショット 2013-09-16 22.04.06

スクリーンショット 2013-09-16 22.04.00

Genの内部で利用しているパラーメーターを取得する場合に、@dumpoutlet 1 でdump用のoutletを指定し、get + パラメーター名で取得する事が可能でした。(内部で計算した後の値に名前の付け方を調べなければ・・・)

音楽に同期して、複数PCの動画をフレーム同期しながら再生するMaxパッチを開発:Cycling’74 Max, OSC

スクリーンショット 2013-09-04 21.21.43

少し前の話になりますが、動画クリエーターで裸眼立体視の研究者であるAono.Y氏に誘われて、天野喜孝xHYDE展 [天命と背徳~NIPPON EVOLUTION~]内のFVP(裸眼立体視が体験可能な映像展示)向けにMaxパッチを作成しました。Aono.Yさんお誘いありがとう!

要件

  • 音楽に同期して、複数PC(10台以上)の動画(しかも高解像度)をフレーム同期しながら再生する
  • 一日の連続稼働12時間

実装・感想

  • フルHD以上の動画再生だったので、はじめはC++系じゃないとキツイかな?と思ってたんですが、Maxで試作したらあっさり動いて驚きました。
  • フレームレート 開発機のMacでは出てたがWinにした途端に落ちて困った → 動画圧縮形式の変更で対応
  • フレーム同期はマスターパッチから、UDPで各PCに同期信号をガンガン送りました。結構適当なやり方してたんですが、テスト動画もバッチリ再生されました。ネットワーク構築に使ったY社のルーターが優秀という噂がw
  • 現場でコーディングや修正が発生しても、直しやすいのも良かった。Maxで開発するのは楽しい。
  • 12時間連続稼働でも、特に落ちたとかの報告が来なかったので、安定稼働していたみたい。