チュートリアル 1
Hello

Max パッチャーの基本

チュートリアルを開いて下さい。

このチュートリアルでは、Max パッチャーのブロックの組み立て方を調べてみます。ブロックとしては、オブジェクトボックス、メッセージボックス、コメント (comment) ボックスを使います。さらに、Max 環境で提供される基本的な編集機能のいくつかについて、より詳しく見ていきます。

この、シンプルなパッチを使った簡単な説明の中で、Maxで書かれたシンプルなプログラムの基本的なスタイルを紹介します。オブジェクトボックスはパッチ内のコマンドを実行します。メッセージボックスでは、メッセージを作成し、オブジェクトに送信することができます。コメントボックスには、パッチを理解しやすくするために、パッチに関する説明を書き込むことができます。

パッチャーを見てみましょう

01mHello というパッチャーを見ていきましょう。パッチャーウィンドウの右上には、3つのボックスがあります。

最初のボックスには「print」という文字が書かれています。これは、オブジェクトボックスです。オブジェクトボックスは角が丸くなった長方形の輪郭を持ち、左上には小さな「ポート」(入力部)があることがわかるでしょう。これを「インレット」と呼びます。オブジェクトボックスは基本的なMaxの論理素子で、その中には、何らかのタスク(処理)を実行する関数が存在しています。オブジェクトボックスは、プログラム全体の環境の中で、部分的な「小さなプログラム」を実行するものです。

そのすぐ下にあるオブジェクトボックスはメッセージ (message) ボックス(「メッセージ」という表示があります)です。外見はオブジェクトボックスとは異なり、背景がグレーになっていて、輪郭線はありません。メッセージボックスは何らかの情報(メッセージと呼ばれます)を持っていて、これをオブジェクトに送信したり、コマンドやコントロールデータとして処理することができます。

3番目のボックスは、全くボックスのようには見えません。これはパッチャーウィンドウを背景とするテキスト(文字)として表示されます。実際にはこのテキストの周囲にボックスがあるのですが、パッチを編集使用としない限り見えないようになっています。このコメントボックスはコントロールにラベルを付けたり(例えば、"click me" - "クリックしてください" など)、パッチにコメントを追加したりするために使用します。コメントの追加を行なうと、あなた自身にも、また、そのパッチを他の人も使用する場合にはそのユーザにも、パッチの操作がわかりやすくなります。

Max プログラムはオブジェクト間でメッセージをやりとりすることによって動作します。オブジェクトボックスは他のオブジェクトボックスと接続することができ、メッセージボックスは動作をスタートさせたり、ある場合には、他のオブジェクトのコントロールに使用されるメッセージを処理したりすることができます。

パッチャーのアンロック

このパッチャーを最初に開いたときには、「ロックされた」状態になっていることがわかります。この状態では、ウィンドウ内のオブジェクトやテキストを編集することはできません。パッチャーがロックされた状態にあるときには、パッチャーをプログラムとして使用することを意図しています。Max が力を発揮するのは、好きなようにプログラムを編集し、実行させることができる点です。このパッチを「アンロック(ロック解除)」して、編集してみましょう。

View メニューから Edit を選択してください。パッチャーにいくつかの変化が起きることがわかります。最初に、コメントボックスの周囲にボックスが現れます(このボックスについては前に説明したとおりです)。2番目に、メッセージボックスとコメントボックスのインレットが表示されます。これらは、ロック状態では表示されたいなかったものです。さらに、これらのボックスの下側にポートが現れます。これは「アウトレット」と呼ばれます。最後に、パッチャーウィンドウの下部にある多くのアイコンが、使用可能な状態になります。

見かけの変化に加え、この状態でウィンドウの内容を自由に編集できるようになります。右上の「print」と表示されたオブジェクトボックスの中をクリックして下さい。テキストが選択され、ボックスの中に他のオブジェクトの名前を入力することができます。"metro" と入力し、(""は入力しないで下さい)オブジェクトボックスの外部をクリックして編集を確定させて下さい。これで、このオブジェクトの機能が変更されました(metro オブジェクトになっています)。オブジェクトの機能が変更されたため、オブジェクトボックスのサイズやインレット、アウトレットの数が変化したことがわかると思います。Maxの学習は、オブジェクトの名前や、それをどのように接続するか(すなわち、オブジェクトがどのようなメッセージを解釈し、送信するか)について、徐々に理解を深めていくことによって進められます。

すぐ下にあるメッセージボックスの中をクリックして下さい。メッセージのテキストを何か他のもの(例えば、"anything" という語)に変更して下さい。ボックスの外部でクリックすると、変更が確定します。メッセージのテキストを変更しても、インレットやアウトレットに変化が見られない点に注意して下さい。これは、単にメッセージボックスの内容を変更しただけで、機能を変更したわけではないからです。最後に、コメントボックスの中をクリックし、テキストを変更して下さい。コメントボックスは、パッチにテキストを書き加える以外の機能を持たないため、どのようなテキストでも自由に入力することができます。

訳注:Max 5 ではフォントのをヒラギノなどの日本語フォントに設定することによって、日本語表示も設定できます。

ロックされたパッチャーでのインタラクション

View メニューの Edit のチェックを外してパッチに注目して下さい。それぞれのボックスをクリックしたときにどのようなことが起きるかを見てみましょう。オブジェクトボックス(print から metro に変更したものです)をクリックしても何も起こりません。しかし、メッセージボックスをクリックすると、ボックスの背景色が変化します。明らかに、このボックスをクリックしたときに何かが起きているようです。パッチャーの左側には、print オブジェクトに線(パッチコードと呼びます)で繋がれた3つのメッセージボックスがあります。このそれぞれのメッセージボックスを順番にクリックし、Max ウィンドウに注目して下さい。クリックしたメッセージボックスの内容が表示されるのがわかります。メッセージボックスをクリックした結果、メッセージボックスはボックスの内容によってメッセージを作成し、パッチコードを経由してそのメッセージをprint オブジェクトに送信したのです。print オブジェクトは、インレットで受信したあらゆるメッセージを Max ウィンドウに「出力」します。

カンマはすべてを変更します

2つのメッセージボックスにはほとんど同じテキストが書き込まれているにもかかわらず、Max ウィンドウの表示が異なっている点に気がついたのではないかと思います。"Good morning,verybody!"というテキストを持ったメッセージボックスからprint オブジェクトに送信を行なうと、テキストは2行にわたって表示されます。その下のメッセージボックス("Good morning\, everybody!" というテキストを持つもの)からprint オブジェクトに送信した場合には、Maxウィンドウに1行で表示されます。この違いはカンマの使用法によるものです。Max では、メッセージボックスの中のカンマは特別な意味を持っています。

メッセージボックスの中では、カンマはメッセージのセパレータ(メッセージを分割する記号)として使用されます。つまり、カンマは1行のテキストを2つの別々のメッセージに分けるということです。そのため、"Good mornig, everybody!" というメッセージは、実際には2つのメッセージとして扱われ、"Good morning" というメッセージがメッセージボックスのアウトレットから送信された直後に、"every body!" というメッセージが送信されます。

カンマを(メッセージセパレータとしてではなく)テキストとして扱うためには、メッセージボックスに対し、カンマのセパレータ機能を無効にすることを伝える必要があります。そのためには、カンマの前にバックスラッシュ文字 ( "\" ) を置きます。このバックスラッシュ文字は、カンマの特別な使用法を無効にし、カンマをテキストの文字として扱うようメッセージボックスに指示するものです。テキストプログラミング言語に精通した方であれば、このバックスラッシュ文字の使用法が、特別な意味を持つ文字を「エスケープ」するためのものであることがわかるでしょう。

パッチャーをアンロック(ロック解除)して、下のメッセージボックス(バックスラッシュを含んでいるもの)の中をクリックし、バックススラッシュを取り除いて下さい。パッチをロックして、編集したメッセージボックスをクリックして下さい。今度は、同じ内容がMax ウィンドウに2行のテキストとして表示されるのがわかるでしょう。最初のメッセージボックスを編集し、カンマの前にバックスラッシュを追加して、パッチをロックして下さい。期待したように、メッセージのすべてを一行で表示するのがわかります。

ヘルプの利用

Max ウィンドウにテキストを送るために、print オブジェクトが何らかの処理を行なっていることは明らかです。実際、すべてのオブジェクトボックスは何らかの処理を行なっています。オブジェクトボックスが実行する機能がどのようなものであるかを判断するために、何種類かのヘルプドキュメントを見ることができます。

パッチャーをアンロックし、マウスでprint オブジェクトボックスの中をクリックするか、周囲をドラッグして、print オブジェクトボックスをハイライト表示させて下さい。Help メニューから、Open print Help を選んで下さい。print オブジェクトの動作を説明する例を示すための、新しいパッチャーウィンドウ(これをヘルプパッチと呼びます)が開きます。このヘルプパッチが、実際のMax パッチで、このパッチをアンロックして編集したり、表示されている機能を保ったまま他の場所にコピーしたりすることが可能であるという点に注意して下さい。

print オブジェクトのヘルプパッチを閉じ、print オブジェクトを再び選択して下さい。Help メニューから、Show print Reference を選んで下さい。ブラウザウィンドウ(チュートリアルが表示されているウィンドウと非常に良く似たウィンドウ)で、print オブジェクトのリファレンスページが表示されます。これはオブジェクトや、オブジェクトが持つすべてのインレット、アウトレットに関する詳細な情報を示し、さらに参考例のパッチを提供します。おそらく、あらゆるオブジェクトで利用できる最も詳細な情報は、このページで表示されるものでしょう。ヘルプパッチ、リファレンスページ共に、最後に See Also というセクションがあります。この中にあるリンクをクリックして、参照しているオブジェクトと同様な、あるいは関連したオブジェクトやトピックスを見ることができます。

新しいメッセージを作成しましょう

このパッチにオブジェクトを追加して、メッセージの受け渡しを行なうシステムを新しく構築してみましょう。まず、パッチをアンロックし、パレットアイコン(ウィンドウの下端にある "+" のアイコン)をクリックして、最初のオブジェクト(これはオブジェクトボックスです)を選びましょう。"print" と入力し、ボックスの外部でクリックしてこの変更を確定します。オブジェクトの上でクリックし、これをドラッグして、パッチ内の空いている場所へ移動させて下さい。

次に、パレットアイコンをクリックし、2番目のオブジェクト(これはメッセージボックスです)を選びます。パッチャーウィンドウに表示されたら、"Good bye!" というメッセージを入力して下さい。このメッセージボックスを、先ほど作った print オブジェクトの上側に置いて下さい。最後に、2つのボックスを接続します。メッセージボックスのアウトレットをクリックし、print オブジェクトのインレットまでマウスをドラッグしてマウスボタンを放して下さい。2つのオブジェクトの間にパッチコードが作られます。このパッチコードによって、メッセージボックスから print オブジェクトへメッセージを渡すことができるようになります。

パッチをロックして、新しく作った "Goodbye!" メッセージボックスをクリックして下さい。Max ウィンドウに "Good bye!" というテキストが表示されます。これで、あなたの最初の Max パッチができました。おめでとうございます!

結び

Max パッチの主要な3つの要素(オブジェクトボックス、メッセージボックス、コメントボックス)、およびパッチコードは Max プログラムのコアとなるものです。それぞれの要素は、様々なメッセージや編集機能に応えます。ヘルプファイルやリファレンスマニュアルドキュメントを見ることによって、これらに関して調べることができます。それぞれの内容については、以降のチュートリアルでより幅広く見ていきます。

参照

print Max ウィンドウにあらゆるメッセージを表示します。
message メッセージを表示し、送信します。
comment パッチャー内のコメントテキスト。