今年度上半期に使っていたQuartz Composerテンプレをうpしてみた

ご自由にお使いください(多分、主にQuartz Composerの使い方の参考に)。
http://www.oct.zaq.ne.jp/know_sur/tsumetai.qtz
(注:当時契約してたプロバイダを解約したのでリンクが切れてしまっています。リンク切れというか、ファイルがネットに上がってないんですが。どうしようかな。とりあえず、メールとかコメントとかリプライとかくれたら送りますけど)
このテンプレを使った最初の動画( http://www.nicovideo.jp/watch/sm14170836 )の完成状態のコンポジションをうpしました。歌詞は入っていますが、背景動画素材が入ってません。左上のJavascriptパッチ"TypeHere"のインプットで背景動画の名前や歌詞のフォント等を指定します。
背景は5つの動画素材と1つの真っ黒画面がMIDIノートのC7を受け取ることで切り替わるようになっています。この曲では1つの動画素材しか使わなかったため、この仕組みは動画再生をオンにする意味しかないことになりました。
曲のリズムと歌詞の揺れ方の同期はMIDIノートのC8で行います(マクロ"ShowString"内参照)。正確に言うと、揺れ始めの時点を指定します。僕はMIDIシーケンサー(具体的にはPro ToolsのMIDI編集機能)で試行錯誤して音とぴったり同期するような位置にC8を置きました。その位置は中途半端です。少なくともSnow LeopardにおけるIAC Driver(アプリケーション間でMIDIをやり取りする、OS付属の機能)はMIDIノートを取りこぼしたりして不安定なので、僕はMIDIインターフェイスのOUTからINに物理結線していました。だから無視できない遅延が生じ、中途半端な位置にC8を置く必要があったんだと思います。
マクロ"ShowString"内部の、マクロ"MainIterator"が歌詞の本体を描画し、マクロ"ShadowIterator"が歌詞の影を描画します。
MIDIノートC3からB6までは、MIDIノートオンからノートオフまでの間(つまり、鍵盤を押している間)それぞれ歌詞を表示します。Javascriptパッチ"TypeHere"の"lyrics"インプットに、歌詞を半角スペースで区切って入力しておくと、最初から順番にC3,C#3,D,D#3,E……とMIDIノートと歌詞の部分が結びつきます。区切りを半角スペースに指定したのはその下にある"String Components"パッチでですが、全角の方が使い勝手が良かったので最近は全角スペースを区切りに利用していました。
マクロ"SelectFilterHere"は自分の使いそうなフィルターを探してまとめて置いておいたものです。背景画像にフィルターをかけるのに使います。
機能的な説明はこんなもんで、それらがどうやって実装されているかは正直あまり思い出したくもないし言葉で説明するよりコンポジション見てもらった方が早いとも思うので、説明しません。
コンポジションを動画として固定するのにはiShowUというアプリ(Mac App Storeで売ってます)を使いました。Viewerのウィンドウの内部をスクリーンキャストで録画したわけです。