PsychPortAudio('Start')

startTime = PsychPortAudio('Start', pahandle [, repetitions=1] [, when=0] [, waitForStart=0] [, stopTime=inf] [, resume=0]);

PortAudio デバイスを開始します。

'pahandle' は開始させるデバイスのハンドルです。

デバイスの開始は、次のことを意味しています。音の再生の開始、録音の開始、full duplex に対応したデバイスではその両方の開始。

'waitForStart' 1にセットされている場合、デバイスが実際に動き始めるまで(プログラムは)待機します。デフォルトでは(待機せずに)プログラムを継続します。つまり、デバイスを開始するようスケジュールを組むだけです。

(訳注: 引数whenがゼロの場合、waitForStartが1のときとゼロのときとで大きな違いはありません。ですが、視聴覚刺激の同期を取りたい場合などにはそのずれは無視できないでしょう)

'when' デバイスを開始する時間を指定します。デフォルトはゼロで、すぐに開始します。

ゼロ以外の値が指定されたときは、PTBはなるべくその指定された時間通りにデバイスを開始しようとします。しかしその精度は、OS、オーディオハードウェア、システム負荷に依存します。

もし、'waitForStart' にゼロ以外の値が指定されているとき(つまり、PTBが音のオンセットを待つように設定されているとき)は'startTime' の値を取得することで、第1番目のオーディオサンプルがスピーカーに到達した時間(つまり実際に音が出始めた時間)の推定値を知ることができます。

'when' で指定する値は、常に再生を開始する時間であることに注意してください。duplex モードでは再生を開始する時間と録音を回する時間とのあいだに関連がありますが、それらは同じではありません。純粋に録音だけを行う(再生なし)ときは'when' は無視されて、すぐに録音が開始されます。

詳しくはPsychPortAudio('GetStatus?') をご覧ください。

'repetitions' はサウンドデータの再生を何回繰り返すかを決定します。

ゼロを指定すると、無限の繰り返し、つまり'Stop' 関数で手動で停止されるまで、再生され続けます。

正の値が指定されたときは、その数だけ繰り返します。

デフォルトは1です。すなわち、1回だけ再生してそのあとに停止します。

小数点をもつ値も指定できます。例えば1.5 を指定した場合は、1回と半分だけ再生されます。

'stopTime' は遅くともその時間までには、繰り返し回数に達しているかどうかに関わらず、再生を停止させます。

'when' と同じような働きになりますので、上述を参照のこと。

'resume' 1に設定されたとき、前回停止した箇所から再生を再開します。

デフォルトでは、1度停止したあとは、始めから再生を行います。