2013年2月4日月曜日

Pure Data を中心にしたソフト&ハードの連携 その1

MSM2012 で紹介した、「音や映像に合わせて、LED を点滅させる」をおこなったときの構成を紹介します。


要件をまとめると、あらかじめ時間に沿ったLEDの色データ打ち込み、映像または音声と同時に再生したい、ということです。
何らかのシーケンサーが必要なので、MIDI を使用しました。

予算が全く無かったので、こんな感じでした。

・Garage Band →MIDI  エディター&MIDI 出力 (midiO プラグイン)
・PureData →MIDI 入力&シリアル出力 (XBee)
・QuickTime Player7 pro →映像出力

これらのソフトをApple Script で連携させました。
この構成で約6分の曲をループ状態にして、1日回しっぱなし(10時-18時) の展示会を乗り切りました。

、、、さすがに複雑すぎるので、今後構成を見直したく、思っています。


まずは現状の紹介

○Audio MIDI 設定でIAC の設定をする
アプリケーション > ユーティリティ > Audio MIDI 設定

1) MIDI スタジオ画面
ウインドウ > MIDI ウインドウを表示

2) IAC のプロパティ 画面
IAC をダブルクリック で開く


・装置がオンラインになっていることを確認
・ポート名などに日本語が入っていると、表示できないソフトがあるので、
 名前を英数のみに変えておく

IAC は Inter-Application Communication のことで、ソフト同士のMIDI 入出力を仮想的に接続します。ソフトA のMIDI 出力に IAC のポート1(上図だと IAC:IAC-1)を設定し、ソフトB のMIDI 入力にIAC のポート1(同じく IAC:IAC-1)を設定することで、ソフトA のMIDI 信号がソフトB に入力されるということです。

○Garage Band からMIDI 信号を出力する
midiO プラグインの使い方はこちらのサイトが詳しい


midiO の設定画面(上図「ソフトウェア音源 > 編集 > サウンドジェネレータ」にあるmidiO のアイコンをクリックすると開く)で、MIDI Destination に IAC-1を指定する。


○Pure Data のMIDI 入力を設定(0.43.4 は日本語対応!)
メディア > MIDI 設定...
入力デバイス に IAC-1 を設定

○Pure Data でMIDI 信号を受ける
今回は単純なNote On/Off だけで制御しているので、
notein パッチとstripnote (ノートNo とベロシティの分離)でOK。

こんな感じ。

MIDI 信号と色の対応は自分で適当に割り当てています。
曲の終わりに特定の信号を用意して、Apple Script を呼び出すことで、QuickTime のビデオ再生を同期させました。

AppleScript はこんな感じ。
GarageBand の巻き戻し&再生と、QuickTime Player の巻き戻し&再生

立ち上げ時もこのスクリプトを使ってスタートできるのですが、初回はQT がフルスクリーンになる(ウィンドウが拡大するアニメーションをする)時間がかかるため、ずれます。
2周目から合う用に、Garage Band でちょっとずつずらしては再生の繰り返し、で合わせました。

0 件のコメント:

コメントを投稿