PsychPortAudio('GetStatus')

status = PsychPortAudio('GetStatus', pahandle);

戻り値 'status' は、'pahandle' で指定されるデバイスの現在の状態に関する情報をもつ構造体です。

この構造体は以下のようなフィールドを持っています。

Active: 再生または録音の最中であれば1、そうでなければゼロ。

RequestedStartTime: 再生または録音が開始されたあとの、要求されたオーディオストリームの開始時間。

StartTime: 再生または録音が開始されたあとの、実際のオーディオストリームの開始時間。再生と録音の両方がアクティブになるfull-duplex モードでは、再生の開始時間になる。つまり、第一番目のサンプルがスピーカーに到達した時間の推定値。再生のみの場合も同様。

CaptureStartTime: (録音が有効であれば)録音の開始時間。第一番目のサンプルがキャプチャ(録音)された時間の推定値。録音のみのモードでは、StartTimeとほぼ一致します。しかし再生が有効なときはいつでも、StartTimeとCaptureStartTimeは異なるでしょう。CaptureStartTimeは、ユーザーが指定した 'LatencyBias' を考慮しません。

RequestedStopTime: 要求された再生の停止時間、またはサウンドオフセットの時間。この時間は、'Start'、

'RescheduleStart' または 'Stop' 関数の引数 'stopTime' によって選択されたもの。'stopTime' が指定されていない場合は、この値はかなり大きな値(無限大)になっているだろう。

EstimatedStopTime: 再生が停止した時間の推定値。最後のオーディオサンプルがスピーカーから飛び出た、まさにその時間の推定値。推定できなかった場合はゼロ。再生時のlatencyによって、この値は実際のサウンドオフセットよりも数ms 先、もしくは後に利用可能になるだろう。

CurrentStreamTime: 直近にsubmitされたサンプルがスピーカーに到達した時間の推定値。この値は、大体 'PositionSecs' の値と一致しますが、in absolute realtime.(実時間の値になっている?)

ElapsedOutSamples: 再生がはじまってからの再生されたサンプル数。再生の開始時から停止時まで、この値は単調に増加する。これは、'CurrentStreamTime'の時間において、スピーカーに到達したサンプルの位置を表す。

PositionSecs: 現在のバッファの繰り返し再生中の、現在のストリームの再生位置の推定値(単位は秒)。これは完全に正確な値とは言い難い。なぜなら、サウンドシステムに対してどれぐらいの量のサウンドがsubmitされたかを測っている(スピーカーから飛び出た量をはかっているわけではない、つまりドライバーやハードウェアのlatencyを考慮していない)ためである。

SchedulePosition: スケジュールとして動いているときの現在の位置(条件を満たしているときのみ)

XRuns: バッファーがオーバーラン、またはアンダーランになったときのドロップアウトの数。

TotalCalls, TimeFailed, BufferSize は、PsychPortAudioそれ自身のデバッグにのみ使われる。

CPULoad: 再生の際にCPUにどれぐらいの負荷がかかるか。0.0は0%、1.0は100%を表す。1.0に近いほどお使いのシステムが負荷の制御と時間的な制御ができなくなっていることを表す、もしくは不適切な音が出る。このようなケースでは、システムへの負荷を減らすようにしてください。

PredictedLatency: お使いのドライバー+ハードウェアのlatency(秒)。指定した時間通りに音を出すために、PsychPortAudio('Start') によって指定された時間よりも、どれぐらい早くサウンドデバイスを開始しなくてはいけないか。Linux や Mac OS/X のようなハイクオリティーなシステムでは5ms 程度の低い値にできるし、標準的なハードウェアではより少なくなる。他のOSでは、数ダース分、もしくは数百ms に及ぶ。

注意点として、full-duplexモードでは PredictedLatency はアウトプット(再生)に関するlatency であり、インプット(録音)に関するものではない。また、これは推定値であり、100% の信頼があるわけではありません。

LatencyBias: PsychPortAudio('LatencyBias') によって指定された付加的なバイアス。私たちが調べた範囲では、ほんのわずかな値だった。微調整用。

SampleRate: 1秒あたりの再生または録音のサンプリングレート(Hz)

OutDeviceIndex: 再生デバイスのインデックス。デバイスが開かれていないときはマイナス1になる。

PsychPortAudio('GetDevices', [], OutDeviceIndex); とすることで、当該デバイスの情報を取得することができる。

InDeviceIndex: 録音デバイスのインデックス。デバイスが開かれていないときはマイナス1になる。

RecordedSecs: 録音を開始してから記録された音声データの総量(秒)

ReadSecs: 内部バッファーから取得した音声データの総量(秒)。RecordedSecs とReadSecs との違い(RecordedSecs とReadSecsの差分?)は、retrievalのために保留になったサウンドデータの総量。