ファイル:
Maxによるサーチパスとファイルの取り扱い

Maxがファイルを検索する場合

Max は様々なタイミングでファイルを探します。その例をいくつか挙げてみます。

  • 今まで使用されていないエクスターナルオブジェクトを持ったパッチャーを開く場合、Max はそのオブジェクトに対応したファイルを探します。

  • ファイルとして保存されているサブパッチャー("patcher" あるいは "p" という語で始まらないサブパッチャー)を持ったパッチャーを開く場合、Maxはそのパッチャーを探します。

  • tablecoll のようなオブジェクトに対して、read の後にファイル名を続けたメッセージを送信した場合、Max はそのファイル名のファイルを探します。

Max がファイルを探す場所は次のようになります。

最初に Max がファイルを探す場所は、デフォルト位置です。オープンファイルダイアログからパッチャーを選択して開いた場合、そのパッチャーファイルが置かれているフォルダがデフォルト位置になります。まだファイルをロードしていない状態では、Max アプリケーションが置かれているフォルダがデフォルト位置になります。デフォルト位置は、Max でファイルを開くごとに動的に変化します。デフォルト位置は1つのフォルダです。A というフォルダからパッチャーファイルを開いた場合でも、そのサブフォルダ A は探索されません。

次に Max がファイルを探す場所は、サーチパスと呼ばれる所です。サーチパスは、File Preferences ウィンドウを使って、部分的に設定されます。サーチパスには、現在使用しているMax アプリケーションがあるフォルダの中にあるファイル、および、Cycling '74 フォルダの中のすべてのファイルが含まれます。Cycling '74フォルダは、Macintosh では /Library/Application Support/Cycling '74、Windows では C:\ProgrammFiles\Common Files\Cycling '74 に置かれています。Max アプリケーションフォルダの中にあるフォルダは、Cycling '74 フォルダの中にあるフォルダよりも先に検索されます。

訳注:Max 4.6 では、Cycling '74 フォルダの位置が変更されています。Mac OS X では /Application/MaxMSP 4.6/Cycling '74 に、Windows では、C:\ProgrammFiles\ Cycling '74\MaxMSP 4.6\ Cycling '74になっています。

Max の標準インストールを行なった場合、パッチャーおよびデータファイルは Max アプリケーションフォルダの中に置かれます。また、エクスターナルオブジェクトは、Cycling '74 フォルダに置かれます。Cycling '74 フォルダのサブフォルダについての詳細は、下記を参照して下さい。

ファイル探索についての詳細:

  • File Preferences ウィンドウの中にフォルダが登録されている場合、そのフォルダのすべてのサブフォルダも同様にサーチパスに加えられます。

  • Max は深さ優先(depth-first order)でファイル探索を行ないます。例えば、サーチパスに patches というエントリがあり、その次に examples というエントリがある場合、Max は examples を検索する前に、patches のすべてのサブフォルダを検索します。

ファイル検索のスピードアップ

Max サーチパスには数多くのファイルが含まれる可能性があります。Max がファイルを検索する場合、通常、オーディオファイル、画像、max パッチャーファイル、などのようなファイルタイプのセットの中からファイルを探します。例えば、"my_bg_image" という名前の画像ファイルに対する検索が行なわれた場合、元となるファイル名と完全に一致するものが見つからなければ、元となるファイル名に '.pct'、'jpg' のような画像ファイルに用いられる拡張子を加えてファイルを探す拡張検索を行ないます。

この検索をより速く行なうために、キャッシュを使ってメモリ内にサーチパス表現を構築し、ファイル検索をスピードアップさせています。このメモリを他の用途に使いたい場合には、Cycling '74 フォルダ内の init フォルダから "pathcacheenabler.txt" を削除することによって、ファイルキャッシュを使用不可にすることができます。

Cycling ’74 フォルダの内容

Cycling '74 フォルダの中にフォルダを追加して、次回 Max を起動したときに、そのフォルダを自動的にサーチパスに含めることができます。しかし、Cycling '74 フォルダの中には特別な名前を持つフォルダがいくつかあり、それらのフォルダを変更するとソフトウェアの操作に影響を及ぼしてしまいます。

max-startup フォルダには、起動時にロードされるエクスターナルオブジェクトが含まれています。このフォルダに、Maxの起動時にロードさせておきたいエクスターナルオブジェクトやパッチャーを追加することができます。max-startup フォルダの中のサブフォルダの中にあるファイルは起動時にロードされないという点に注意して下さい。一般的に、max-startup フォルダには、パッチャーウィンドウのパレットに表示させる必要があるユーザインターフェイス・エクスターナルオブジェクトが置かれます。

init フォルダも、起動時にその内容を実行しますが、これは通常エクスターナルオブジェクト用には用いられません。その代りに、このフォルダには、Max の動作を設定するテキストファイルが置かれています。init フォルダに項目を追加することはできますが、実際に何がおきるかを十分理解しているのでなければ、既存のファイルの変更を行なうべきではありません。init フォルダは max-startup フォルダより先に取り扱われるもので、Maxのランタイムバージョンもこれを使用します。ランタイムバージョンはmax-startup フォルダのロードを行ないません。

ad フォルダは、MSPに含まれるものです。ここには、オーディオドライバオブジェクトが置かれています。より詳しい情報は MSP ドキュメンテーションを参照して下さい。

mididrivers フォルダには1つ以上の MIDI ドライバオブジェクトが置かれています。

externals フォルダには、他のフォルダに置かれているものを除く、すべてのエクスターナルオブジェクトが含まれています。必要があれば、フォルダ名を変更することも可能です。Cycling '74社の Jitterのような、エクスターナルオブジェクトのコレクションをインストールするインストーラは、Cycling '74 フォルダの中にフォルダを追加したり、externals フォルダの中にフォルダを置いたりすることがあります。

ファイルパスの構文

ファイルパスとは、ファイルの場所を指定するための方法です。おそらく、URLで使用される次のような指定子は、ウェブブラウザで良く目にすることと思います。

http://www.cycling74.com/products/dlmaxmsp.html

この指定子は、dlmaxmsp というファイルが、Cyling'74 ウェブサイトのルートレベルにある products フォルダの中にあることを示しています。

同じような方法で、Max にハードディスクの中のフォルダやファイルの位置を知らせたいと思うでしょう。Max にはファイル位置を指定するためのオプションがいくつかあります。まず、フォルダ名を区切るために、クロスプラットフォームなスラッシュ (/)、Macintoshネイティブな(Macintoshで固有な)コロン(:)、Windowsネイティブな(Windowsで固有な)バックスラッシュ(\)のいずれを使用するかを選択できます。しかし、バックスラッシュは、Max の中ではエスケープキャラクタとして使用されていて、予期しない動作を引き起こす恐れがあるため、スラッシュの使用を推奨します。

次は、使用可能なファイルの位置の指定方法の例です。

C:/MaxFolder/extras/mystuff/mypatcher.pat (クロスプラットフォーム、スラッシュを使用)

Disk:MaxFolder:extras:mystuff:mypatcher.pat (Macintoshのみ、コロンを使用)

C:\MaxFolder\extras\mystuff\mypatcher.pat (Windows のみ、バックスラッシュを使用)

バージョン 4.3より前の Macintosh 版Max では、パス要素の区切りにコロンを用いていました。

入力としてパスを受け取ることができる Max オブジェクトは、スラッシュ、コロン、バックスラッシュをすべて認識しますが、通常、出力するファイルパスには、クロスプラットフォームなパスのスタイルを使います。comformpathオブジェクトを使って、異なったパス位置の記法の間の変換を行うことができます。

セパレータ文字の選択に加え、ファイルやフォルダの位置を示す方法を次の中から選択できます。

  • 絶対パス。上の例にあるようにハードディスク名から始めます。

  • Max アプリケーションからの相対パス。 ./(クロスプラットフォーム)、:(Macitnosh)、\ (Windows)で始めます。例えば、./patches は Max アプリケーションフォルダ内の patches フォルダを表します。

  • Cycling'74 フォルダからの相対パス。c74で始めます。例えば、c74/:externals/buddy.mxe

  • ブートボリュームから始まるパス。^(Macitosh、コロン形式の場合)、/(クロスプラットフォーム)、\ (Windows) で始めます。例えば、/Documents/mystuff/mypacher.exe 。

  • サーチパス内のいずれかの場所、またはデフォルトのフォルダ。この場合、パスのセパレータ文字は全く使用しません。

ファイルタイプとファイル拡張子

Windows では、Max は、どのファイルフォーマットがアプリケーション自身に関連づけられているかを知るための根拠としてファイル拡張子(ピリオドの後に文字を続けたもの)を使用します。ファイルが拡張子を持たない場合、Max はその内容を見て、それがどのようなファイルフォーマットであるかを判断しようとします。これを、ファイルの「スニッフィング」と呼びます。

Macintosh では、最初に Mac OS 固有のファイルタイプ情報をチェックしてファイルを分類します。この情報がない場合に、Max はファイルの拡張子に注目します。どちらの方法でも決定できない場合、ファイルのスニッフィングを行なって、フォーマットを判断しようとします。

クロスプラットフォームで使用するファイル拡張子

次のファイル拡張子はMacitnosh、Winndows の両方で認識されます。

拡張子 説明
.pat Maxのパッチファイル (Max バイナリ、またはテキストフォーマットファイル)
.help Max のヘルプファイル (Max バイナリ、またはテキストフォーマットファイル)
.txt 一般的なテキストファイル(テキストフォーマットによるMaxパッチャー、または それ以外のMax のテキストファイル)
.mxb Maxのバイナリパッチャーフォーマット
.mxt Maxのテキストフォーマットによるパッチャーファイル
.mxf クロスプラットフォームで使用される Maxコレクティブのフォーマット

Windowsのみで用いるファイル拡張子

次のファイル拡張子はWindows でのみ認識されます。

拡張子 説明
.mxe エクスターナルオブジェクト(Windows のみ)

Macintoshのみで用いるファイル拡張子

次のファイル拡張子はMacintosh でのみ認識されます。

拡張子 説明
.mxd エクスターナルオブジェクト(Macintosh のみ)
.mxc version 4.3 より前の古いフォーマットによるコレクティブ

拡張子のファイルタイプへのマッピング

ファイルタイプ(またはファイルフォーマット)はファイルの中でどのように情報が配置されているかを記述したものです。例えば、Wav のように、特定のオーディオファイルフォーマットが指定された場合、特定のアプリケーションがサウンドデータの読み込み、書き出しを行なうことができます。このファイルフォーマットは、サウンドデータを前提としたアプリケーションに対して、サンプリングレートなどの情報を報告します。実際、すべてのアプリケーションは、1つ、あるいは複数のファイルタイプやフォーマットで情報を格納することができます。

ファイル拡張子は、Max に対する fielformat メッセージの使用によって、ファイルタイプと関連づけられます。標準的な関連づけの設定は、Cycling '74 フォルダ内の init フォルダの中にある max-fileformats.txt にあり、必要であればこれを変更することができます。MSP がインストールされている場合には、オーディオファイルタイプのための第2のファイル、audio-fileformat.txt も存在します。

これらのファイルには、次のようなフォームによる一連のメッセージが含まれています。

max fileformat <拡張子> <ファイルタイプ> [<説明>];

例えば、エントリ、「 max fielformat .txt.TEXT 」 は、Max に .txt で終わるファイルがテキストファイルであることを告げています。この4文字のコードはもともと Mac OS 使用されていた情報ですが、Max では、すべてのプラットフォームでファイルタイプを指定するものとして、内部的に使用されています。

角カッコ内の <説明(Description)> はオプションで、Windows XP 上での説明用に用いられます。これは、ファイルのオープンと保存のダイアログボックスで表示されます。例えば、ユーザに maxb と表示するのではなく、Max Patcher と表示することができます。

次は、標準的なファイル拡張子とファイルタイプの間の関連付けのリストです。

拡張子 ファイルタイプ 説明(Description)
.pat maxb, TEXT Max patch file (in either Max binary or text format file)
Maxのパッチファイル (Max バイナリ、またはテキストフォーマットファイル)
.help maxb, TEXT Max help file (in either Max binary or text format file)
Max のヘルプファイル (Max バイナリ、またはテキストフォーマットファイル)
.txt TEXT Text file (Max patcher in text form or other Max text file)
テキストファイル(テキスト形式によるMaxパッチャー、または それ以外のMax のテキストファイル)
.mxb maxb Cross-platform Max binary patcher format
クロスプラットフォームで使用されるMaxのバイナリパッチャーフォーマット
.mxt TEXT Cross-platform Max text format patcher file
クロスプラットフォームで使用されるMaxのテキストフォーマットによるパッチャーファイル
.mxf mx@c Cross-platform Max collective format
クロスプラットフォームで使用される Maxコレクティブのフォーマット
.mxd iLaF Macintosh-only external object
エクスターナルオブジェクト(Macintosh のみ)
.mxc maxc Old format (pre-version 4.3) Macintosh-only collective
version 4.3 より前の古いフォーマットによるコレクティブ

注:重要なケース:MAXBは maxb とは全く異なったフォーマットです。拡張子は、複数のファイルタイプと関連づけられることができます。その場合、Max ファイルタイプの判定が可能かどうかを判断するために、ファイルの内容を見なければなりません。例えば、ファイル名の最後が .pat で終わるファイルには、テキストフォーマットの場合、Max バイナリフォーマットの場合の両方があります。以前から、Macintosh ではOSに固有なファイルタイプ情報によってファイルの性質が判断されていました。しかし、これがない場合、拡張子だけでは曖昧です。

しかし、ほとんどのファイル拡張子は曖昧なものではなく、ファイルフォーマットに1対1でマッピングできます。

Max を扱う場合、ファイルタイプとファイル拡張子のマッピングが重要であるような状況がいくつかあります。

・指定された拡張子を持ち、内部にタイプ情報を持っていないファイルの場合、オープンファイルダイアログに表示されますが、指定された拡張子でない場合には表示されません。例えば、AIFF というファイルタイプのサウンドファイルを開くことができるオブジェクトがある場合、ファイル拡張子のマッピングがなければ、AIFF というタイプ情報を持たないファイルはオープンファイルダイアログに表示されません。拡張子 .aiff がこのタイプにマッピングされていれば、sound.aiff というような名前のファイルが表示され、選択可能になります。

・ファイルは、拡張子なしでも探すことができます。例えば、.pat というファイル拡張子がすでに Max バイナリファイルフォーマット(maxb)にマップされている場合、オブジェクトボックスの中に 'foo 'とタイプしてパッチャーファイルをロードすることができ、サーチパス内に foo.pat というファイルがあれば、これがロードされます。しかし、ここで注意しなければならないのは、サーチパス内にfoo というファイルがあり、Maciontosh 上で 正しいMacintosh のタイプ情報を持っている場合、あるいは、すべてのプラットフォームで(Max がその内容を調べた後)このファイルが実際に正しいファイルタイプであった場合、これが foo.pat より前に検索されるという点です。これは、Max が、ファイル拡張子に基づいた検索を行なう前に、サーチパス全体でファイル名が完全に一致するものを検索するためです。

パッチャー内で、最初にセミコロンを付けた「Max へのメッセージ」をメッセージボックスに書き込むだけで、ファイル拡張子とファイルタイプを関連づけることができます(例えば、 ;max fileformat .txt TEXT )。この方法は、Maxの起動時に毎回ファイル拡張子とファイルタイプが自動的に関連づけられることを望まない場合に、役に立つでしょう。

エクスターナルオブジェクト名のマッピング

init フォルダには、オブジェクト名とファイル名のマッピングを指定するために使用されるファイルがあります。オペレーションシステム(OS)によっては、ファイル名として使用できない文字があります。しかし、Max で従来から使用されているオブジェクト名の中にはこれらの文字を含むものがあります。このようなオブジェクトによるトラブルを防ぐために、max オブジェクトへの objectfile メッセージによってオブジェクト名とファイル名の間のマッピングを設定することができます。次は、その例です。

max objectfile !- rminus;

この例では、Maxに対して、オブジェクトボックスの中に !- をタイプした場合に、rminus というエクスターナルオブジェクトファイルを探すように指示しています。また、!- オブジェクトのヘルプファイルを表示させようとした場合には、Max は !-.help ではなく、rminus.help というヘルプファイルを探します。

Maxに対して指定するマッピングは max-objectmappings.txt というファイルに保存されています。MSPに対して指定するマッピングは audio-objectmappings.txt に保存されています。

Max への fileformat メッセージと同様に、objetctfile メッセージも メッセージボックスの中から送信することができます。しかし、それを init フォルダ内のファイルに保存しておけば、Max を使用するたびに、確実にマッピングが利用できるようになります。

サードパーティのエクスターナルオブジェクト開発者は、オブジェクト名のマッピングを行なうメッセージを保存した独自のファイルを init フォルダに追加することができます。