2007/06/01

【Logic】Tips:AW4416でコントロール!(Express版)

※今回は大作な上長いです。 Logicに興味の無い人は読み飛ばしてもらって…

◎AW4416には「MIDI Remote」と言う機能がある。 これはAW4416のフェーダおよびOnボタンにMIDIメッセージを割り当てて送信する事で、外部機器やシーケンサをコントロールするというものだ。 これを使えばLogicに限らず様々なシーケンスソフトでフィジカルコントロールができそうだし、実際ここには各種シーケンスソフトをコントロールする為のテンプレートもある。(何故か日本のサイトには、AW2416用しかない)
ところが、LogicにおいてはこれはPlatinum(当時)のみの対応で,キーコマンド設定に制限のあるGold/Audio,今で言えばExpressには対応していない。
それじゃぁ自分で作ってやろうじゃないか!と言うのが今回の挑戦である。

◎AWのMIDI RemoteはAとBの2レイヤーでOnキーとフェーダが各16個、計64通りのMIDIメッセージを送れる。 これらを使ってフィジカルコントロールをするので、とりあえず
・OnキーでソロモードのOn/Offを切り替え、フェーダで音量を調整する
・Aレイヤーの16本をオーディオトラックの1〜16、
Bレイヤーをオーディオインストゥルメントトラックの1〜16に対応
というコントロールを作る事にする。

◎Logicにおけるオーディオオブジェクトの外部操作は、CC#7がボリューム、CC#3がソロモード切り替えに対応している。 このためAW側のフェーダに「Bx 07 FED END」(xはMIDIチャンネル 1〜F)、ボタンに「Bx 03 BTN END」を割り当てれば一応動作はする。
ところがこのときの動作は、AW側のMIDI Ch設定をいくらにしても、オーディオオブジェクトの1番しか動いてくれないのだ。
これはLogicのMIDI In信号の取り扱い方によるもので、 LogicはMIDI Inポートの指定が無い代わりに、どのポート/どのチャンネルの信号であろうと、全てそれをマージしてCh1の信号としてシーケンスエンジンに流し込もうとする。(そしてそれは選択されているオブジェクトに接続される)。 このため、
・何らかの形でMIDI Chを分割しないと、AW側のチャンネルに応じたトラックを動作させられない
・何らかの形でCCを変換しないと、マスターキーボードの信号と分離できない
という点を考慮しなければならない。

◎では、上記の2点を実現しつつコントロールする方法を考えてみよう。 ExpressのEnvironmentは使用出来るオブジェクトに限りはあるものの、1点目はチャンネルスプリッター、2点目はフェーダオブジェクトを使えば実現出来る。
まずチャンネルスプリッター1個とフェーダオブジェクトを16個作り、フェーダオブジェクトのMIDI Chを1〜16に設定した上でチャンネルスプリッターの各chの出力をフェーダにつなぐ。 こうすることで各フェーダにはチャンネルスプリッターで分けられたMIDI信号のみが通るようになる。

◎次に各フェーダオブジェクトのパラメータボックスの「Input」「Output」を双方とも「Control」にした上で,Input側の「-1-」を適当な値(ここでは102)、Output側を「7」にする。これは「Input」がそのフェーダを動かす為のCC、「Output」がそのフェーダが動いた時に出力されるCCを指定しているので、フェーダオブジェクトを通す事でCC番号の変換が実現する。
動作としては、AW側のフェーダでCC#102を送り込み、このフェーダオブジェクトでそれをCC#7に変換して出力する。 フェーダオブジェクトの出力を適当なオーディオオブジェクトに繋げば、フェーダオブジェクトの動作に依ってオーディオオブジェクトが動作することが確認出来る。

◎ここまでくればあとは速く、ここまで作ったオブジェクトをそのままコピーして、InputのCCを換えて(Remote Aとは異なる値にする)、接続先をオーディオインストゥルメントオブジェクトにしてやれば、Remote Bレイヤーでオーディオインストゥルメントオブジェクトもコントロールできるようになる。
さらにフェーダオブジェクトのOutputを「3」に設定すればソロモードOn/Offの切り替えが出来るので、ここまで作ったオブジェクトを全部コピーした上でフェーダオブジェクトのタイプをボタンタイプにして、入力CCを換えればソロボタンの出来上がりだ。

◎あとは「Click & Port」レイヤーにあるモニターオブジェクトの出力を各チャンネルスプリッターにつなぎ、各フェーダの出力を対応させたいオーディオオブジェクト/オーディオインストゥルメントオブジェクトにつなげばLogic側の作業は終了。 あとは地道にAWのMIDI Remote定義を作り込んで行く。
一通り設定出来たところでAWのフェーダを触ってみると…おお、ちゃんと動く。 図ではボタンフェーダも動作しているのが判ると思う。

◎本当ならこの後オーディオオブジェクトのフェーダ値をAWにフィードバックする系統を作りたかったのだが、AWのMIDI Remoteは外部からのフェーダ動作に対応していないので、そういった意味では「完全なフィジカルコントローラ」の作成は無理だった。(Logicが上位版でも同じ事で、AW側の問題) しかしそれでも、とりあえずフィジカルコントロール環境はこれで作れた訳だ。
ちなみにこの方法を応用すれば、AW以外の汎用MIDIコントローラでもLogicのミキサーセクションをコントロールできるので、操作子の多いシンセサイザー等を持っているなら、チャレンジしてみる価値はあるだろう。

0 件のコメント: