sfplay~

ディスクのサウンドファイルをプレイ

インプット

open
AIFFまたはSound Designer II のファイルを、プレイバック用にオープンし、カレントファイルとします。openの後にファイル名を続けると、Maxサーチパス内にそのファイルがあればオープンします。ファイル名がないと、openは標準ファイルオープンダイアログ用意し、ファイル名を選択できるようにします。ファイルは、オープンされると、メモリに読み込まれ、他のファイルがオープンされるまでは、メッセージ1をsfplay~に送ることでそのファイルの先頭からプレイすることができます。openメッセージが受け取られた時、前のカレントファイルは、どんなものであってもオープンされたままになっていて、preloadメッセージによってキューを定義されると、その名前で指定することができます。前のカレントファイルを使用するキューが定義されると、それらが、もはやカレントファイルでない場合でも有効になります。
int ファイルがopenメッセージでオープンされている場合、1は(最も最後にオープンされたファイル)をプレイバックし、0はプレイバックをストップします。1より大きい数値はpreloadメッセージによって定義されたか、またはsfplay~オブジェクトのセーブされていた状態によって定義されているキューをトリガします。ファイルがプレイされる時、ファイルのオーディオデータはオブジェクトが持っているチャンネル数に応じてシグナルアウトレットに送られます。キューが終わるか、sfplay~が0によって停止した時、右アウトレットからbangが送り出されます。

現在時点で、オブジェクトがsflistオブジェクトに(setメッセージ、またはタイプされた引数によって)割り当てられている場合、intはsfplay~の中のものではなく、sflist~オブジェクトのキューをトリガします。sfplay~を自分自身のキューを使うようにリセットするためには、setメッセージを引数なしで使います

set
setメッセージは、sflist~オブジェクトの名前を続けることで、sfplay~は、intまたはリストを受け取った時に、sflist~にストアされているキューをプレイします。引数を持たないsetメッセージは、sfplay~をリセットし、intまたはリストを受け取った時、それ自身の内部で定義されたキューを使います。
リスト sfplay~がプレイするためのキューのセットを与えます。リストのキューの数の最大値は128です。リストにキューナンバが定義されていない場合、スキップされ次のキューが試されます。オブジェクトがsflistオブジェクトに割り当てられている状態では、リストはsflist~オブジェクトにストアされているキューを使います。そうでない場合、sfplay~オブジェクトにストアされたキューが使われます。
(sflistの名前) sfplay~に、sflist~オブジェクトの名前とそれに続く数値が送られると、そのsflistに数値に該当するキューがあれば、それがプレイされます。
pause サウンドファイルのプレイバックを一時停止(pause)します。プレイバックは、resumeメッセージによって停止した点から、あるいは、キューナンバかseekメッセージを送ることによって違う場所から、続けることができます。
resume プレイバックが一時停止された場合、ファイルの停止した位置からプレイバックを再開します。
pleload ファイルの特定の場所を参照するキューを(2以上の整数で)定義します。次にそのキューナンバを受け取ると、sfplay~はそのファイルの、その領域をプレイします。キューナンバ1は常にカレントファイル(最後にopenメッセージによってオープンされたファイル)の先頭を指します。これは、preloadメッセージによって変更することはできません。

preloadメッセージにはいくつかの形式があります。preloadの後には、必須である2から32767までのキューナンバが続きます。キューナンバの後にファイル名(現在オープンされているか、またはMaxサーチパス内に存在するファイル)が続くと、そのキューナンバは、これ以降、指定されたファイルをプレイします。キューで使用するファイルは、明示的にopenメッセージによってオープンされる必要がないことに注意して下さい。ファイル名が指定されない場合は、現在オープンしているファイルが使用されます。

オプションであるファイル名の後に、オプションとして開始点をミリ秒単位で指定することができます。開始点が指定されていない場合は、ファイルの先頭がキューの開始点として使用されます。開始点の後に、終了点をミリ秒単位で指定することができます。終了点が指定されていない場合、または終了点が0の場合は、キューはファイルの最後までプレイします。終了点が開始点より小さい場合は、キューは定義されますが、プレイされません。結果的には、逆方向へのプレイバックのためのキューを定義することができます。

各々のキューの定義には、デフォルトのバッファサイズで、オーディオファイルの1チャンネルあたり128Kのメモリが必要になります。これは、キューがスタートするために前もってロードしておくデータです。

print オブジェクトの状態についての情報、加えて現在定義されているすべてのキューのリストを表示します。
clear 引数のないclearはすべての定義済みのキューをクリアします。clearメッセージを受け取った後は、(オープンファイルがあると仮定すると)ナンバ1だけがプレイされます。clearの後に1つ以上のキューナンバが続いている場合、それらをsfplay~オブジェクトのキューリストから削除します。
fclose fcloseの後にオープンファイルの名前が続くと、ファイルをクローズし、そのファイルに関するすべてのキューを削除します。fcloseはそれ自身でカレントファイルをクローズします。
seek seekの後に開始点をミリ秒単位で続けると、カレントファイルの指定された位置に移動し、そこからプレseekメッセージはイを開始します。開始点の後に、オプションとして終了点を指定すると、プレイバックを停止する点をセットします。seekメッセージは、ファイルを聞きながら、キューの開始点と終了点を調整することを目的としています。
embed メッセージenbedの後にゼロでない整数が続けられると、sfplay~は、パッチャーファイルがセーブされる時に、定義したすべてのキューとカレントのオープンされたファイル名をセーブします。メッセージembed 0 は、パッチャーがセーブされる時に、sfplay~がこの情報をセーブしないようにします。デフォルトでは、パッチャーがセーブされる時に、カレントファイル名とキュー情報はsfplay~の中にセーブされません。sfplay~オブジェクトがストアされたキュート共にセーブされると、そのオブジェクトを含むパッチャーがロードされた時に、それらはすべてプリロードされます。

引数

シンボル オプション。最初の引数がシンボルの場合、sfplay~オブジェクトがキューをプレイするために使用するsflist~の名前になります。引数としてシンボルが与えられないと、sfplay~は、それ自身の内部で定義されたキューを使用します。
int オプション。アウトプットチャンネルの数をセットし、それによってsfplay~オブジェクトが持つアウトレットの数を決定します。チャンネル数の最大値は8です。デフォルトの値は1です。プレイされるサウンドファイルがsfplay~オブジェクトより多いチャンネル数を持っている場合、大きい数のチャンネルはプレイされません。サウンドファイルが持っているチャンネル数がより少ない場合、sfplay~の残りのアウトレットからのシグナルは0になります。

アウトプット

シグナル インレットでキューナンバを受け取ると、右アウトレット以外の各アウトレットは、対応するサウンドファイルの各チャンネルのオーディオデータを送り出します。(左アウトレットはチャンネル1をプレイします。以下同様です。
bang 右アウトレット出力:ファイルのプレイが完了した時、または0メッセージでプレイバックがストップされた時、bangが送り出されます。

実例

サウンドファイルは、全体をメモリに読み込まずに、ハードディスクからプレイすることができます

参照

buffer~ サウンドサンプルのストア

groove~ 可変速度のサンプルプレイバックループ

play~ 位置によるサンプルプレイバック

sfinfo~ サウンドファイル情報のリポート

sflist~ サウンドファイルキューのストア

チュートリアル16 サンプリング:サウンドファイルのレコーディングとプレイバック

目次へ

.