Pdアプリケーション上で利用可能な、あなた独自のオブジェクトを作成することができます。 コードの記述には、C言語や (技量がある人なら)C++もしくはFORTRANを使用できます。
外部オブジェクト(EXTERNS)はどのようしてにロードされるか
Pdが記憶していないオブジェクト名を("オブジェクトの"テキストボックス中に)タイプ すると、Pdはそれを置き換えられるオブジェクトファイル(例えば "profile.pd_irix5" の ようなファイル名)を探します。Pdは最初にパッチの格納されているディレクトリ内を検索し、 つぎにサーチ・パスのディレクトリ内を検索してゆきます。Pdがファイルを発見した後、そこ に定義されている全オブジェクトが「クラスリスト」に追加されます。「クラスリスト」には、 Pdで利用できる全オブジェクトの型が定義されています。その後で、Pdは要求されたオブジェ クトの生成を再度試みます。このとき、それまでの処理がうまくいっていれば、Pdはオブジェ クトの生成に成功するはずです。これらの手順でロードされたオブジェクトと最初からPdに内 蔵されているオブジェクトの間には、まったく違いがありません。
一度Pdにロードされたオブジェクトは、Pdが終了するまで有効になります。同名でバージ ョンの異なるオブジェクトをロードした場合でも、オブジェクトが上書きされることは ありません。新しいオブジェクトに書き換えたい場合は、一旦Pdを立ち上げ直してから オブジェクトをロードしなくてはいけません。
このドキュメンテーションの"externs"サブディレクトリ内に、シンプルな外部オブ ジェクト(externs)の例と、それらのソースコードとテストパッチがはいっています。 その他多くの参考例がweb上で閲覧できます。( 節1.2を見てください )
Iohannes Zmoelnig がすばらしい外部オブジェクト製作ガイドを書いてくれました。 http://iem.kug.ac.at/pd/externals-HOWTO/ を見てください。
Theo Stojanovによる、ガイドの印刷版も提供されています: http://www.music.mcgill.ca/~theo/html/audio/pd_externs.pdf
NT HINT: NT版のPdは、Visual C 6.0 を用いてコンパイルされています。VC 5.x で外部オブジェクトを作成した場合、"disk full or bad DLL" という旨のエラーが出て、 Pdと一緒にコンパイルできません。Pd自体を VC 5.x 環境下でコンパイルし直せば、この問題 を回避できます。 5.x と 6.x で作成した外部オブジェクトには機械語レベルでの 互換性はありますが、コンパイルを行う時だけは注意して取り扱う必要があります。