Logicのエンバイロメントで、特定のCCだけLogicにフィルターさせるMIDIインプットフィルターを作りました。
自分で検索してもやり方でてこなくて試行錯誤してみたので、誰かの役に立つかも、、、しれないと思い書いておきます^^
さて、いまやApple純正のDAWとしてハバをきかせてるLogicは、もともとはEmagicというドイツの会社が作っていたソフトでした。
Logicには、「エンバイロメント」という機能があって、それを組むとユーザーの機材の状況に合わせて様々なセッティングや工夫ができる柔軟性がウリの一つでしたが、なにしろ難しい。ほぼ使ったことなかったです。たぶん、そうとう大規模にシステム組んでる人向けの機能で、ほとんどのアマチュアには関係なかったのではないか、、と思われるような機能でしたw
ところが、ここにきてその機能があることをぼんやりと覚えていたことが役立ちました^^
(注意)エンバイロメントはややこしいし、普通に使う分にはまったく意識する必要はありません、とあらかじめ書いておきます^^
ことの発端は、キーボードとの連携です。
赤丸で囲っているのが、キーボードのマスターボリュームです。
Sub37は単体でも音が出ますが、MIDIのキーボードとして打ち込みにも使える。
DAW上でピアノの音色を選ぶと、キーボードを押すとピアノの音が出る、、、のはいいのですが、sub37の音も一緒に出てしまいます。
このため、sub37のマスターボリュームを使わない時は0にしておくわけです。
ところが、、、sub37はすべてのつまみがMIDIコントロール情報を送信します。
したがって、ボリュームも送信してしまうので、DAWのピアノ音源のボリュームも0になってしまいます。
Logicの「プロジェクト管理」のところに、MIDIのインプットフィルターがあります。
ここの赤丸で「コントロールチェンジ」をクリックすると、すべてのコントロールチェンジ情報がブロックされます。
仕方ないので、今までこれをオンにしてボリューム0にして、またチェックを外して、、ということをやっていましたが、面倒でしょうがない。
すべてのCC(コントロールチェンジ)をブロックしてしまうと、たとえばピッチベンドとか、ピアノのサスティンペダルとか必要なCCもブロックしてしまいます。
そこで、Sub37のボリュームCCだけフィルターかけてブロックしたいわけです。
ざっと検索してもやり方がありません。
そこで、ふとエンバイロメントのことを思い出しました。
あれを使えばできるはず、、、きっと。
かつては雑誌でのLogicの記事といえば、エンバイロメントのことをよく書いていたように記憶してましたが、Logic Xになってどうなったんだろ。ほとんど聞かなくなりましたし、なくなっちゃったのではないか、、、と一瞬危惧しました。
ところが、Logicのメインメニュー「ウインドウ」の中にありました。エンバイロメント。
開くとこんな感じになります。
あいかわらずわけわかりませんが、昔よりは見やすくなった。これでも。
左上の赤丸で囲ったところをクリックして「クリックポート」というところを選びます。
すると上のような画面に。
Logicでは、DAWを構成する部品みたいなものが抽象化されて、このエンバイロメントという画面で自由に再定義できるようになっています。
上の画像はたぶん拡大できると思うのですが、左上の箱(細かい字が中に張っているやつ)が、フィジカルインプットといって、Logicに入力されるMIDI信号の大元を表しています。
下の方に「Moog Sub37」とあります。
Sub37はUSBでMacにつながっていますが、これがMIDIインプットとしてLogicが認識していることを示しています。
一番上に「SUM」とありますが、これはすべてのインプットを総合しているという意味のようです。
で、このSUMから、キーボードのアイコンで示される「インプットノート」へ信号が流れ、そこからちょっと左上にある「入力表示」というアイコンへ。
そこから「シーケンサーインプット」につながっています。
入力表示というのは、これです。
Logicでは、MIDIキーボードを押すと、どのようなデータが入力されたかが赤丸で囲ったところに出てきます。だいたいどのDAWでもありますが。
ともあれ、Sub37のボリューム情報のCC(コントロールチェンジ)は、このような流れで入ってくるわけです。
ですから、途中でフィルタをかけてSub37のボリュームCCだけブロックするようにすれば目的を
達せられるはず。
エンバイロメントの「新規」で使える部品を探します。
「トランスフォーマー」というのがなんとなく使えそう。
赤丸でかこったとこにぽつっとトランスフォーマーが置かれます。
「フィジカルインプット」と「インプットノート」の間に「トランスフォーマー」を配置。それぞれ結線します。
次にトランスフォーマーの設定。
トランスフォーマーをダブルクリックすると上のような画面に。
「モード」というところで「一致したイベントをフィルタリング」を選びます。
さらにフィルターする対象を選びます。
「状況」というタブを開くと、デフォルトでは上の画面のように「ノート」となっていますが、これを「コントロール」に変更します。ちなみにノートとはC3とかF4といったどういう音をだすのかという情報を扱います。
ちなみに「状況」という言葉の意味がわからん。。。
チャンネルは、おそらくMIDIポートの番号を指定するのでしょう。
Sub37に限定しても良いのですが、他のキーボードを繋いでもやはりボリュームはカットしたいので、ここれは「すべて」のままとします。
「データバイト1」っていったいなんのこっちゃ、、、と思うのですが、おそらくCCの何番なのか、という指定だと推測して入れる。
ボリューム情報はCC7です。
なにがCCの何番なのかを調べるのは、googleでもいいですが、実際にキーボードのつまみをグリグリすると、先ほども書きましたが、Logicのトランスポートにデータが表示されますので、これで7番だとわかります。
MID打ち込みIのツワモノだと、CCくらいは全部覚えてる可能性もありますが、私は無理w
データバイト2は、CC7番のさらに細かいデータを指定するのでしょう。
ここでは、ボリュームCCはすべてカットするので「すべて」のままにしておきます。
さて、データバイト2を使うと、例えばですが、
・ボリューム情報の0~50はシーケンサーに通すが、51以上は通さない(ある意味、リミッター的な動き)
・ボリューム情報の奇数は通すが偶数は通さない(まったく意味はないと思うけど。。。)
まあ、こういうことが可能になります。上の例はあんまり意味はないですが、Logicではこのようにエンバイロメントを駆使すると、自分の機材とDAWを使いやすいようにカスタマイズ可能になります。Logic上にボタンとかを表示して、自分専用の機能とかも作ることができます。
・・・て偉そうに言うほどわかってないけど。キーボードを何台も繋げてたりすると、いろいろ便利なのかも。
1番のキーボードで2番のキーボードをコントロールする、、、とか、画面にカスタムボタンを作って、それをクリックすると3番のキーボードのある機能がON/OFFできる、、とか。
というわけで完成。
キーボードの鍵盤のデータはしっかりシーケンサーインプットに入りますが、ボリュームだけはいじっても何の変化もなし。
もちろん実機の方ではボリュームはちゃんと働いている。
というわけで、非常に理想的な使い勝手になりました^^
テンプレートとして保存して、以降、新規にLogicを立ち上げる時はこのテンプレートから新規作成するようにすることで、自動的にこの設定が有効になります^^
—–
コメント