Max には、MIDI演奏のレコーディングとプレイバックを行なうために、4つのオブジェクト、seq、follow、mtr、detonate があります。この「演奏」は、Maxの外部(MIDI コントローラや、IAC バスを経由した他のMIDIアプリケーション)から送られてくるものであっても、Maxの内部でアルゴリズムによって生成されるものであっても構いません。
Max の基本的なシーケンサは seqです。これは、インレットで受信した、midin や midiformat から送信される生の MIDI データをレコーディングし、任意の速さでプレイバックすることができます。レコーディングとプレイバックの処理は、record、start、stopといったメッセージでコントロールされます。
seq によってレコーディングされたシーケンスは、別のファイルに書き込んでおき、後で再利用することができます。Save As... で保存する場合のオプションには、OS X では " Max textfile" と " Max binary file" 、Windows では "maxb Files(*.mxb,*.pat,*.help)と "TEXT Files(*.txt,*.pat,*.help,*mxt)があります。seq は、write メッセージを受信すると、標準の Save As ダイアログを呼び出します。Save As ダイアログボックスで、Format というポップアップメニューから Max Format Text File を選ぶと、テキストとしてファイルに保存します。このファイルを、File メニューから Open As Text を選んで開くと、手作業で編集することができます。read メッセージを使って、MIDI ファイルを seq にロードすることも可能です。followオブジェクトは seq と全く同じ動作を行ないますが、ライブ演奏とすでにレコーディングされた演奏を比較する機能が追加されています。followは生のMIDIデータだけでなく、「ノートオンピッチの値」といった個々の数値をレコーディングすることもできます。レコーディングされた一連のノート(または数値)は next メッセージを使って順番に参照(ステップスルー)することができます。最も興味深いことは、followには、follow メッセージによって動作を開始するスコア追跡アルゴリズムが組み込まれているという点です。follow は入力される数値と、格納しているレコーディング済みのシーケンスを比較します。入力された数値がシーケンスの次の値(あるいは、ライブ演奏がミスした場合に備えて、近い順序にある数値)が合致した場合、followは合致したノートのインデックスを報告します。そして、このインデックスを、table や collからの値の読み出しに使用したり(これによって、ライブ演奏者に伴奏を提供することができます)、あるいは、他の何らかの処理をトリガするために使用することができます。
mtr オブジェクトは マルチトラックシーケンサです。これは、32 までのトラックを持つことができ、それぞれ個別に数値、数値のリスト、シンボルをレコーディングすることができます。このような柔軟性を持っているため、MIDI イベントだけでなく、他の様々なメッセージをレコーディングすることが可能です。トラックは、個別に、あるいはまとめて、レコーディングやプレイバックを行なうことができ、next メッセージを使ったステップスルーも可能です。また、いくつかのトラックをミュートしながら、他のトラックのプレイバックを続けることができます。mtr の内容は、別のファイルとして保存、読み込みができます。保存、読み込みは、個々のトラックごとに行なうことも、また、すべてのトラックのセットとして行なうことも可能です。
mtr を使用したサンプルパッチ
seq は生のMIDI データを標準MIDI ファイルフォーマットに変換することができるため、完全な MIDI メッセージをテキストとして編集する場合には、おそらくseq のほうが適しているでしょう。しかし、生のMIDIデータは mtr に送る前に midiparseによってフィルタを掛けることができます。また、Max のテキストエディタを使って、mtr のファイルの中に、seqにレコーディングされたシーケンスのカット、ペーストを簡単に行なうことができます。
detonate オブジェクトは、柔軟なシーケンシングや、グラフィカルな編集を行なうことができ、スコアの追跡が可能なオブジェクトです。detonate は、タイミング、デュレーション、およびその他の情報を持ったタグと共にノートのリストを記録します。ノートのリストは1つのトラック(フォーマット 0)あるいは、複数のトラック(フォーマット 1)を持つMIDIファイルとして保存できます。また、detonate、seq、あるいは他のシーケンサからディスクに保存しておいた任意のMIDIファイルを読み込むこともできます。detonate オブジェクトをダブルクリックすると、その内容がグラフィックエディタウィンドウに表示され、その中で、マウスを使ってノートの追加や編集を行なうことができるようになります。detonate は follow オブジェクトとほとんど同様な「スコアリーダ」として動作することも可能です。detonate は入力されたピッチ値を監視し、スコアに保存されている中のカレント(現在指し示されている)のピッチと合致すると、それを報告します。
しかし、seq、follow、mtr、timelingといった他のシーケンシングオブジェクトと異なる点は、detonateが実際には自分自身の内部クロックで実行されているわけではないということです。detonateには、パッチ内のどこかからタイミングとデュレーションの情報がレコーディングされなければなりません。そして、パッチは、detonate からプレイバックされるノートのリズムやスピードを決定するために、その情報を使用しなければなりません。これによって、他のシーケンシングオブジェクトでは利用できない、プレイバックのオブションが可能になります。そのオプションには、非リアルタイムレコーディング、プレイバックテンポの連続的な変更、任意のリズムによるシーケンスの個々のイベントのトリガなどがあります。
timeline オブジェクトは、特定のオブジェクトに、特定のタイミングで送られるMax メッセージのシーケンスをグラフィカルに編集するように設計されています。timeline オブジェクトはリアルタイムでMIDIデータをレコーディングすることはできません。これは、非リアルタイムで、あらかじめ決定されているイベントを配置するものです。しかし、タイムライン内にメッセージを配置しておけば、タイムライン は MIDI オブジェクトを持ったパッチにそのメッセージを送信することができます。timeline オブジェクトは、このように配置されたメッセージのプレイバックに関して大きな柔軟性を与えてくれます。詳細は「タイムライン」という章を参照して下さい。
follow | ライブ演奏とレコーディングされた演奏の比較 |
mtr | マルチトラックシーケンサ |
seq | MIDI のレコーディングとプレイバックのためのシーケンサ |
timeline | Max メッセージを時間軸上に表したスコア |
Timeline | Max メッセージのグラフィカルなスコアを作成します |
チュートリアル 35 | シーケンシング |