トランスフォーマーオブジェクトは、MIDI イベントのリアルタイムでの選択やフィルタなどの処理に使用します。
メタイベントの処理も可能ですが、トランスフォーマーの設定に影響しないものに限られます。メタイベントには、トランスフォーマーで処理の対象となるもののほかに、トランスフォーマーに変更を加えるものがあります。詳しくは、メタイベントを使って条件/操作の値を制御するを参照してください。
「新規」>「トランスフォーマー」と選択します(または「新規トランスフォーマー」キーコマンドを使います)。
トランスフォーマーオブジェクトは、送られてくるイベントが特定の条件と一致するかどうかをチェックします。一致すると、所定の操作が実行されます。
条件に一致しないイベントは、出力にそのまま送られるか、破棄されます。
トランスフォーマーでは、一致するイベントを処理する前にコピーを作成でき、選択した(一致する)イベントとそれ以外のものを分けて、一番上のケーブルと 2 番目のケーブルから出力することも可能です。
トランスフォーマーを使用するには、MIDI 信号パスに配置する必要があります。
音源の出力をトランスフォーマーにケーブル接続します(音源の内部ポートの割り当ては削除します)。
「新規」>「インストゥルメント」と選択して新しい音源を作成し、適切な MIDI アウトプットポートに割り当てます。
トランスフォーマーオブジェクトの出力から新たに作成した音源(これは単に MIDI アウトプットポートとして機能するものとなる)にケーブル接続します。
トランスフォーマーアイコンをダブルクリックすると「トランスフォーマー」ウインドウが開き、条件と操作を設定することができます。
「トランスフォーマー」ウインドウ上部のポップアップメニューで、トランスフォーマーによる MIDI データの処理方法を定義します。以下に挙げる操作モードから選択が可能です。
条件に一致する MIDI イベントがすべてコピーされ、コピーの方に処理が加えられます。オリジナルのイベントと処理されたコピー(および条件に一致しない MIDI イベント)は通過します。処理されたコピーの前に、未変更のオリジナルの方が解析(処理)されます。
上記のオプションと同じですが、オリジナルは処理済みのコピーの後で解析されます。これは、ノートイベントをパンコントローラに変換する場合などに使用することができます。この場合、パンメッセージがノートよりも先に送信されます。(多くのシンセサイザーでは、再生中のノートのパン位置を変更できません。)
条件に一致するイベントに処理が加えられ、トランスフォーマーの最上位の出力に送られます。一致しないイベントは、未処理のままトランスフォーマーの 2 番目の出力に送られます。それ以外の出力は表示されないので使用しません。
このトランスフォーマーモードは、SysEx メッセージの作成と編集に使用します。「トランスフォーマー」ウインドウでの操作が、値フィールドで指定したものに置き換えられます。このフィールドには、SysEX メッセージの構成(長さ、チェックサムの有無、リアルタイムでは変更しないバイト値など)を入力することができます。
「条件」領域では、SysEx メッセージのデータバイトに作用する MIDI イベントのタイプを選択します。(一般的に MIDI コントローライベントを使用します。)受信した MIDI イベントは、SysEx メッセージのデータバイトを変更します。その際、以下の規則が適用されます:
データバイト 1 は、データバイトの位置を設定します。
データバイト 2 は、データバイトの値を設定します。
チャンネルによって、行われる処理が決まります:
「一致しないものをフィルタリング」チェックボックスを選択すると、受信した MIDI イベント(SysEx メッセージを制御しない)が通過しないよう指定できます。通常は、この機能を有効にして、コントローラのデータが SysEx のデータストリームに介入しないようにします。
条件と操作は、「トランスフォーム」ウインドウと同じものが使用されます。詳しくは、トランスフォームウインドウで MIDI イベントを編集するを参照してください。唯一の違いとして、トランスフォーマーオブジェクトはリアルタイムで機能することから、位置とノートの長さは意味を持たない点があげられます。
トランスフォーマーの条件や操作の値は、メタイベントを使用して制御することができます。メタイベントは「Logic Pro」の内部メッセージで、MIDI コントローライベントに似た形式を持ちます。ただし、MIDI 定義は持たず、「Logic Pro」の外部に送られることはなく、「Logic Pro」の内部パラメータを制御します。
MIDI コントローライベントと同じように、メタイベントには 2 つのデータ値があります:1 つはメタイベントのタイプを示し(49 〜 127 の範囲、一部は使用されない)、もう 1 つはイベントの値(0 〜 127)です。
メタイベント 122 〜 127 は、トランスフォーマーパラメータを制御します。
メタイベント#127 は、最初(最上位)の操作の値を設定します。
メタイベント#126 は、2 番目(最下位)の操作が有効である場合、その値を設定します。
メタイベント#125 は、最初(最上位)の条件値を設定します。
メタイベント#124 は、2 番目(最下位)の条件が有効である場合、その値を設定します。
メモ: トランスフォーマーは、上記以外のメタイベントならば処理できます。
使用される数値条件および数値操作のパラメータは(条件が「すべて」でなく、操作が「スルー」に設定されていない場合)、いずれも同じメタイベントで制御されます。状態条件や状態操作は、メタイベントの影響を受けません。
数値パラメータを個々に設定したり、一部に固定値を使用したりするには、複数のトランスフォーマーを直列接続して使用してください。
メタイベント#123 は、トランスフォーマーのマップ位置を設定します。
メタイベント#122 は、トランスフォーマーのマップ位置を現在のマップ位置に設定します。(最初にメタイベント#123 で位置を設定します。)
メモ: トランスフォーマーのマップセット操作により、これら 2 つのメタイベントを同時に作成できます。操作ステータスをマップセットに設定した場合、「データバイト 1」パラメータがマップ位置を指定し、「データバイト 2」パラメータがその位置のマップ値を指定します。(メタイベント #122 は「データバイト 1」の値と共に送られ、続いてメタイベント #123 が「データバイト 2」の値と一緒に送られます。)
フェーダーオブジェクトを使ってメタイベントを作成したり、トランスフォーマーで MIDI イベントをメタイベントに変換したり、イベントリストから MIDI リージョンにメタイベントを追加したりすることが可能です。フェーダーを使用する際に出力定義をメタに設定し、「データバイト 1」の値をメタイベント番号に設定します。
フェーダーは、入力定義を変更することによってリモート制御できます。これにより、フェーダー(および別のトランスフォーマー)を使って MIDI イベントをメタイベントに変換し、トランスフォーマーをリモート制御することが可能になります。