チュートリアル36:
マルチトラック・シーケンス

mtr

mtr オブジェクトは Max の最も多目的なシーケンサです。mtrはそれぞれ異なる32トラックのメッセージ(数値、リスト、シンボル)のレコーディングとプレイバックを行なうことができます。トラックは個別に、あるいはすべて同時にレコーディングやプレイバックを行なうことができます。このオブジェクトは柔軟性があるため、 MIDI バイトだけでなく、slideruslider のようなオブジェクトからの数値、ユーザーに表示されるテキストメッセージのシーケンス、ピッチとべロシティによるリスト などのレコーディング、プレイバックも可能です。

ここでは、mtr オブジェクトを使った、MIDI データのレコーディング、プレイバックの方法について紹介します。

mtr オブジェクトのトラック数は、タイプイン・アーギュメントによって指定します。最も左のインレットはコマンド受信用のコントロールインレットで、その他のインレットはレコーディングするメッセージ用のインレットです。mtrへのコマンドメッセージは seq のものと似ていますが、全く同じというわけではありません。特に、mtr オブジェクトは start メッセージの代わりに play メッセージを理解し、この play メッセージはテンポを指定するアーギュメントを取らないという点に注意して下さい。

stopplayrecordmuteunmute などのコマンドメッセージを左インレットで受信すると、そのコマンドは mtr オブジェクトのすべてのトラックに適用されます。しかし、これらのコマンドは数値アーギュメントを後に続けることができ、その数値によってメッセージを適用するトラックを指定することができます。また、それぞれのトラック用のインレットでメッセージを受信し、該当のトラックだけにコマンドを与えることができます。

4トラック・サイマルシンク・レコーダ

パッチ1は MIDI ノートデータの4つの個別のトラックにレコーディングし、その後、すべて同時にプレイバックするための構成を示しています。ナンバーボックス オブジェクトによって、レコーディングするトラックを指定することができます。また、必要であれば、レコーディング中に聴くトラックを指定することができます。

レコーディングするトラックを選んだ場合、 gateがそのアウトレットを開き、 record メッセージとノート・データをそのトラックだけに渡します。

gateのアウトレット 1 を開くように設定して、record メッセージをクリックして下さい。 MIDI キーボードでいくつかのノートを演奏して下さい。レコーディングが終了したら、play メッセージをクリックし、レコーディングしたものを聴いて下さい。

・今度は gateのアウトレット 2を開き、パッチの最上部にあるナンバーボックス オブジェクトに数値 1 を入力して下さい。これにより、トラック 2 をレコーディングしながらトラック 1 を聴くことができるようになります。

"Simul-Sync" buttonをクリックすると、play 1 メッセージが mtr オブジェクトの左インレットに送信され、record メッセージがトラック 2 のインレットに送信されます。

button をクリックして、トラック 2 をレコーディングして下さい。レコーディングが終了したら、play メッセージをクリックして両方のトラックを聴いて下さい。

この方法を繰り返すことによって、4つのトラックすべてにレコーディングすることができます。play メッセージをクリックしてからシーケンサがスタートするまでに遅れが生じる場合、record メッセージをクリックしてからノートのレコーディングを始めるまでに少し時間がかかってしまったことが原因と思われます。この遅れを削除し、mtr オブジェクトの最初のイベントを時刻 0から開始させるためには、first 0 メッセージをクリックします。

ノートがオンのままになってしまわないように、flush オブジェクトを使っている点に、もう一度注意して下さい。stop メッセージが mtr オブジェクトに送信されるごとに、bangflush オブジェクトに送信され、その時点でオンのままになっているノートをオフにします。

様々なソースからのレコーディングメッセージ

mtr でレコーディングすることができるのはノート・データだけではありません。実際に、どのようなオブジェクトの組み合わせから送信されるメッセージでも、同じ mtr オブジェクトでレコーディング、プレイバックすることができます。パッチ 2 では、pgminbendinctlindial から送られる数値を、それそれ異なったトラックにレコーディングします。

・パッチ 2 の record メッセージをクリックし、MIDI キーボードから、ピッチベンド、モジュレーション、プログラムチェンジのメッセージを数秒間にわたって送信して下さい。また、dial をマウスで動かすこともできます。レコーディングが終了したら、play をクリックし、他のオブジェクトをコントロールしている演奏行為のプレイバックを見て下さい。

first 0 メッセージによって、record をクリックしたときから、キーボードで MIDI メッセージの送信を開始するときまでにかかった時間の遅れを取り除くことができます。delay 0 メッセージは、各トラックに対してデータの送信を開始した時間が異なっている場合でも、すべてのトラックを 時刻 0 からスタートさせます。

first 0delay 0 の違いを見るために、record をクリックして、ピッチベンド・データを約 5 秒間、その後、モジュレーションホイール・データを約 5 秒間、というように、以下同様に送信して下さい。送信が終了したら stop をクリックして下さい。

・次に、first 0 をクリックして、何らかのデータが送信される前の最初のディレイを取り除いて下さい。play をクリックして、演奏のリプレイを見て下さい。

・さらに、delay 0 をクリックして、再度シーケンスをプレイして下さい。今度は、1つのトラックのデータのレコーディングが他のトラックより前に開始されていた場合でも、すべてのトラックは時刻 0 からスタートします。

プレイを行なっているmtr オブジェクトに mute メッセージを送信した場合、格納されたシーケンスのプレイは続行されますが、実際の出力は行なわれなくなります。出力を元に戻すにはunmute メッセージを使います。muteunmute メッセージにトラックナンバーをアーギュメントとして続けるか、特定のトラックのインレットにメッセージを送信すると、個別のトラックをミュートしたり、ミュートを解除したりすることができます。

コントロールインレットに next メッセージを繰り返し送信することによって、mtr オブジェクトの中に格納されたメッセージを順に読み通すことができます。 mtr オブジェクトは、next を受信すると、各々のトラックに格納されている次のメッセージを送信します。また、2つの要素からなるリストを、最も左のアウトレットから個々のトラックごとに1回送信します。このリストは、トラックナンバーとデュレーション(そのメッセージと、トラック内にある次のメッセージとの間の時間)を報告するものです。

・Option メニューで All Window Active をチェックし、Max ウィンドウを前面に移動させて、何が出力されるかを観察して下さい。その後、next メッセージをクリックして下さい。個々のトラックに格納された次の値がトラックアウトレットから送信され、個々のトラックのトラックナンバーとメッセージ間のデュレーションから成るリストが左アウトレットから送信されます。

rewind メッセージは next と共に使用されます。rewind はシーケンスの開始地点にポインタを戻すため、next メッセージは再び最初からスタートします。

まとめ

mtr オブジェクトは、数値、リスト、シンボルといった任意の型のメッセージを 32トラックまでレコーディング、プレイバックすることができます。

トラックの、レコーディング、プレイバック、停止、ミュート、ミュート解除は、個別のトラックに対して、あるいは、すべてのトラックで同時に実行することができます。

next メッセージを使用して、オリジナルのレコーディング時のスピードでプレイバックする代わりに、レコーディングされたメッセージを読み通すことができます。

参照

follow 生演奏とレコーディングされた演奏を比較します。
mtr マルチ・トラック・シーケンサ。
seq MIDI をレコーディング、プレイバックするためのシーケンサ。
Sequencing MIDI 演奏のレコーディングとプレイバック。