カクタスソフトウェア
カクタスソフトウェア
サウンド MIDI マルチメディア アプリケーション

レイテンシー

全二重といっても、録音済みデータを再生するわけですから、録音の方が先行していなければなりません。録音したデータが再生されるまでの時間をレイテンシー(遅れ)と呼んでいます。一般にレイテンシーは小さい方が良いと言われています。しかし、アプリケーションの用途によってはレイテンシーの大きさが問題にならない場合もあるので、目的に合わせた値を設定します。

Windowsでは、レイテンシーの安全な値として500mSecが採用されているようです。しかし経験的に100mSec〜200mSec程度でも動作可能です。また100mSec以下でも転送スケジュールをうまく設計することで、かなり小さな値を実現することができます。

更新領域の演奏時間は、レンテンシーより十分小さくなければなりません。レンテンシー以下のインターバルで転送処理を行わなければアンダーフローを起こします。レンテンシーを小さくすると、単位時間あたりの処理回数が増え、コンピュータの負荷も増えることを忘れないで下さい。

再生タイミングを遅らせる実装方法として以下のものがあります。

  1. 録音を開始し、レイテンシーの時間分データを取得したら再生を開始する。
  2. 再生バッファに書き込むポイントをレイテンシーの時間だけ未来に設定する。

1の方法は、タイミングの取り方が面倒なので一般的ではありません。2の書き込みオフセットを調整する方が簡単で確実です。2の方法では、録音と再生プロセスを同時に起動します。

コンピュータは逐次処理なので、録音と再生を完全に同時刻に起動することはできません。筆者の環境では約1mSec程度の時差が生じました。

ドキュメントの先頭へ

カクタスソフトウェア 技術協力 資料室 資料室の広場 SourceForge.jp お問い合わせ