レイテンシーの仕組み

  • 対象となるLiveのバージョン:すべて
  • 対象となるOS:すべて

【注意】この記事は、参考情報を提供することを目的としています。 具体的なトラブルシューティングの方法については、こちらのページで確認することができます。

レイテンシーとは?

Latency_1.png

レイテンシーとは、信号がコンピュータなどの装置に入力されてから出力されるまでに発生する短い遅延のことを指します。 デジタル・オーディオ・ワークステーション(DAW)では、音声信号がオーディオインターフェース経由でDAW(もしくは、ほかのアプリケーション)に入力され、DAW内のインストゥルメントやエフェクトで処理されたあと、オーディオインターフェース経由で出力されます。そのため、一定のレイテンシーが必ず発生します。

レイテンシーは必ず発生しますが、発生理由を解明することができます

レイテンシーの原因

デジタルオーディオの世界では、信号経路内で起こる信号の変換オーディオバッファによってレイテンシーが発生します。

AD変換回路は、入力されたアナログ信号をコンピュータで処理できるデジタル信号に変換します。 一方、DA変換回路は、デジタル信号をアナログ信号に変換して、スピーカーや外部エフェクトに出力します。 ほとんどのスタジオでは、こうした信号の変換をオーディオインターフェースで処理しています。

オーディオバッファとは、ある地点から次の地点に信号が移動するときに、信号を一時的に溜めておく記憶領域のことです (バッファサイズが大きいほど、この処理にかかる時間が長くなり、全体のレイテンシーが増加します)。

レイテンシーが発生する場所

  • オーディオインターフェース
  • オーディオインターフェースのドライバ
  • コンピュータのOS
    ※スピーカーから出力するまえに、ほかのアプリケーションからの信号を処理してミックスする時間を要する場合があります。
  • オーディオインターフェースとDAWの間
  • DAW内部での信号処理
    例:モニタリング中のトラック、Liveのエフェクト、プラグインなど。

オーディオインターフェースのレイテンシーの測定方法

音声信号が経路の中をある地点から次の地点に移動するには、少なくとも1回分のオーディオバッファの処理が完全に行われなければなりません。 そのためレイテンシーの最小値は、設定したサンプルレートで1回分のオーディオバッファを処理する時間と等しくなります。

実際の計算は次のようになります。
バッファサイズ(サンプルの数)÷ サンプルレート(kHz)= 予測されるレイテンシー(ミリ秒)

たとえば、バッファサイズが“256サンプル”、サンプルレートが“44.1kHz”の場合、オーディオインターフェースで入力信号の変換に5.8ミリ秒のレイテンシーが発生し、そのあとに変換された信号がLiveに送られます。
計算:256サンプル ÷ 44.1kHz = 5.8ミリ秒

Liveの環境設定で[入出力レイテンシー]に表示される値は、前述の計算式で求められる値と一致しません。 直感的にわかりにくいかもしれませんが、これには次のような理由があります。

  1. 前述の計算式では、信号の変換1回にかかる時間が求められます。 オーディオインターフェース全体で見ると、入力と出力のレイテンシーが含まれることになります。 このときのレイテンシーを単純に計算するには、先ほどの計算結果の値を2倍にします。
  2. デジタル信号処理(DSP)の世界では、レイテンシーの予測は容易ではありません。音声の処理や変換が複数回行われ、それによって全体のレイテンシーが変化するためです。 レイテンシーの事例については、本ページの“実例”で確認することができます。
  3. オーディオインターフェースの中には、レイテンシーの値を不正確に伝える機種があります。

レイテンシーに影響するLiveの設定

ディレイ補正

後述の説明を読む

モニタリング時に低レイテンシー

後述の説明を読む

バッファサイズ

前述のように音声信号の処理は、サンプルを個別に溜めた状態で行われます。 溜める量が多いと、認識できるほどのレイテンシーが発生します。溜める量が少なければ、全体的なレイテンシーが小さくなります。 ただし、溜める量が少ないほど、安定した再生を維持するためにオーディオバッファの処理回数が多くなるため、コンピュータのCPU負荷が高くなります。 CPUの処理が追いつかなくなるとオーディオバッファに空きが生じるため、音割れや音飛びとして聞こえるようになります。

サンプルレート

デジタル録音の世界では、音声信号が“サンプル”と呼ばれる一連のデータ点で表されます。 複数のデータ点がパラパラマンガのように高速で連続することにより、ひとつの波形となって聞こえるようになります。 このサンプルをどれくらいの頻度で録音/生成/出力するのか決めるのが、音声信号のサンプルレートです。 サンプルレートを高くすると、全体的なレイテンシーが若干低くなりますが、より大きな負荷がCPUにかかります。

トラックディレイ

発生していない音声信号を処理することはできないため、トラックディレイの値をマイナスに設定しても、そのトラックの音声信号を先読みして処理できるわけではありません。 実際には、マイナスに設定した値で楽曲内の別のトラックを遅らせることで、あたかも音声信号を先読みして処理しているかのような効果を生み出しています。

トラックディレイを使えば、任意のトラックの出力をミリ秒単位で遅らせたり早めたりすることで(前述のとおり、実際には早まっていません)、人間、音響特性、機材のほか、現実世界に起因するレイテンシーを補正することができます(トラックディレイをクリエイティブな意図で使うこともできます)。 ただし、ここでトラックの出力に適用される補正はレイテンシーとして認識されることがあります。それは、リアルタイムで入力信号をモニタリングしているときです。

グラフィック表示

Liveでは音声信号の処理にCPUを確保するため、レイテンシーの補正がグラフィック表示には反映されません。 そのため内部のレイテンシーが極端に大きい場合、Liveのグラフィック表示と実際の音声の間に認識できるほどのずれが生じることがあります。

Max for Liveでの編集

Max for Liveのデバイスは、デバイスのエディタ画面が開いているとレイテンシー増加の原因になります

レイテンシーに影響するデバイスの設定

【注意】以下の設定は、“プラグインのディレイ補正”を除き、Liveの純正デバイスと、互換性のあるサードパーティー製プラグインにあてはまります。

関連:プラグインやLiveのデバイスのレイテンシーを表示する方法については、こちらのページで確認することができます。

プラグインのディレイ補正

プラグインによるCPU負荷が低く、CPUがプラグインの全機能を単一のオーディオバッファ内で演算処理できる場合は、追加のレイテンシーは発生しません。 そうでない場合はプラグインがDAWにレイテンシーの時間を送信し、DAWがそれと同じ時間で信号経路全体の出力を遅らせて安定した再生を維持します。

一部のプラグインでは、高品質な出力を実現するために必要な処理量により、相当なレイテンシーが発生します。 この点が問題になるのは、制作規模が大きくなってCPU負荷の高いデバイスを複数使用することになった場合です。この場合に音声をモニタリングすると、CPU負荷の高いデバイスによって制作全体に相当なレイテンシーが発生します。

External InstrumentとExternal Audio Effect

External InstrumentとExternal Audio EffectはLiveの外部の音声を入出力するデバイスであるため、このデバイスを使うと、Liveの環境設定の[入出力レイテンシー]に表示されているレイテンシーの分だけ、音声が遅延します。 両デバイスの[Hardware Latency]を“0”以外に設定している場合は、そこでも全体のレイテンシーが増加します。

ルックアヘッド

一部のデバイスに搭載されているルックアヘッド機能(先読み機能)は、入力音を少し遅延させます。
例: LiveのCompressorはルックアヘッド機能を使うことで、リアルタイムでは不可能なダイナミクスの処理を行っています。

周波数スペクトルの分析と処理

周波数スペクトルの処理や表示を行う目的で音声信号を時間単位から周波数単位に変換するには、かなりの量のオーディオバッファが必要になります。 そのため、周波数スペクトルの処理を行うデバイスでは、一定量のレイテンシーが発生しやすくなります。

その他の高度な処理(オーバーサンプリング/コンボリューションなど)

サンプルレートが44.1khzの場合、1秒間に44100回、音声のサンプルが取り込まれます。一部のデバイスは、入力信号を受け取ってどのような動作をするのか決めるとき、1回分のサンプルだけでなく、一定の時間に含まれる何回分ものサンプルも基準にして、高度な判断をしています。 これがとくに該当するのは、マスタリング用のプラグインです。iZotope Ozoneの場合、相当量のレイテンシーが発生します。このレイテンシーは、Ozoneの全機能を処理するために欠かせないレイテンシーです。

レイテンシーのその他の原因

効率の悪い/型の古いオーディオインターフェースのドライバ

Windowsのコンピュータのドライバでは、ASIOの性能がMME/Direct Xよりも全般的に優れています。

また、旧型のドライバでは、OSの更新やDAWの仕様変更などの外部要因によって性能が低下することがあります。 製造元は製品のファームウェアを更新することが多く、それにより、こうした変更への対応や、製品の性能向上を図っています。

無効にしたインストゥルメントとエフェクト

インストゥルメントやエフェクトなどのデバイス(もしくは、プラグイン)の画面左上にある黄色いボタンをクリックすると、そのデバイスが無効になります。 このボタンにはオートメーションやモジュレーションを自由に適用できます。オートメーションやモジュレーションによってボタンを作動させると、そのたびにデバイスのレイテンシーが変化することになるので、本来であれば、認識できるほどのゆがみが出力音に生じます。 これを防ぐため、デバイスが無効になっているときでも、デバイスのレイテンシーが常に発生するようになっています。

mceclip1.png

事例

レイテンシーを理解することが難しいのは、症状と根本原因が大きくかけ離れていることが多いためです。 そのことを図解しているのが次の例です。

【注意】次に示されているレイテンシーの値は、わかりやすく説明するために簡略化されています。実際の結果とは異なっている場合があります。

状況1:MIDIのレイテンシー

Use_Case_1__MIDI_-_Audio_.png

この状況では、MIDIコントローラで鍵盤を押してから最終的な出力音が聞こえるまでに、レイテンシーが発生しています。

  • MIDI信号が鍵盤から出力されてコンピュータへ入力されるまでに、1ミリ秒の時間がかかっています。
  • MIDI信号がコンピュータ内でDAWに処理されて音声信号になるまでに、1ミリ秒の時間がかかっています。
  • 音声信号がDAWからオーディオインターフェースに到達してスピーカーへ出力されるまでに、1ミリ秒の時間がかかっています。

信号は一直線の経路を移動しているので、それぞれの処理が同時に発生することはなく、全体のレイテンシーは3ミリ秒になります。

状況2:音声のレイテンシー

Use_Case_2__Audio_-_Audio_.png

この状況では、マイクに声を発してから最終的な出力音が聞こえるまでに、レイテンシーが発生しています。

  • 声がマイクから入力されて音声信号としてオーディオインターフェースに届くまでに、0ミリ秒の時間がかかっています(アナログ音声信号は一瞬で伝達されるため、ここでは0ミリ秒にしています)。
  • アナログ音声信号がオーディオインターフェースでデジタル音声信号に変換されてコンピュータへ到達するのに、1ミリ秒の時間がかかっています。
  • デジタル音声信号がコンピュータ内でDAWに処理されるのに、1ミリ秒の時間がかかっています。
  • デジタル音声信号がDAWからコンピュータを経由してオーディオインターフェースに到達し、アナログ音声信号に変換されて最終的にスピーカーへ出力されるまでに、1ミリ秒の時間がかかっています。

信号は一直線の経路を移動しているので、それぞれの処理が同時に発生することはなく、全体のレイテンシーは3ミリ秒になります。

レイテンシーに対応するLiveの仕組み

Liveでは、Live内の各部で発生するレイテンシーを規定して、Liveセット全体で発生するレイテンシーの値を測定しています。

ディレイ補正を有効にすると、この値が、もっとも多くのレイテンシーを発生させている音声信号経路によって規定されます。それに応じて、Liveは別の音声信号経路の各出力を遅らせてタイミングを合わせています。 その結果、マスタートラックを経由して再生される音声は、レイテンシーが発生していないように聞こえます。 ただし、ディレイ補正を無効にすると、全体のレイテンシーが無視され、音声をモニタリングする場所ごとで、音声信号経路の出力のレイテンシーが異なるものになります。

次の例は、ふたつのトラックを含むLiveセットです。

Use_Case_3__Internal_Processing_.png

“Audio Track 1”に入っているデバイスでは、合計で120ミリ秒のレイテンシーが発生しています。“MIDI Track 1”に入っているデバイスでは、合計で80ミリ秒のレイテンシーが発生しています。 このとき、ディレイ補正が有効になっていると、両トラックのレイテンシーは120ミリ秒に統一され、もっとも多くのレイテンシーが発生している“Audio Track 1”の音声とタイミングが合った状態で再生されます。

"MIDI Track 1"に含まれているインストゥルメントを演奏するには、 このトラックの[Monitor]を[In]または[Auto]に設定して、アームを有効にする必要があります。 ところが、別のトラックと同じタイミングで音声が聞こえるように、このトラックのレイテンシーも120ミリ秒に統一されているため、インストゥルメントを演奏した瞬間から実際の音が聞こえるまで、ずれがあるように聞こえます。

ただし、メニュー[オプション]で[モニタリング時に低レイテンシー]を有効にすると、モニタリングするトラックには、Liveセット全体のレイテンシーが適用されなくなります。 ここでは、“MIDI Track 1”をモニタリングすると、同トラックのレイテンシーが、その信号経路内にあるデバイスで発生している80ミリ秒になります。 [モニタリング時に低レイテンシー]を有効にすると便利なのは、演奏を追加録音するとき、別のトラックにはディレイ補正を適用して音声のタイミングをそろえておきたい場合です。

サンプル単位で正確に録音するための準備

多くの場合、新しいオーディオトラックに演奏を録音するときは、そのオーディオトラックの[Monitor]を[Off]に設定して、演奏の音声を(Liveを介さずに)直接モニタリングできるようにすると、演奏しやすくなります。

ただし、この方法には問題が伴います。録音時にLiveで発生したレイテンシーにより、録音した音声が若干ずれて聞こえることです。 そこでLiveでは、このずれを調整するために、オートメーションインターフェースから伝えられるレイテンシーの情報にもとづいて、録音のタイミングを自動的に補正しています。 これにより、理論上は、演奏者が演奏をモニタリングしながら録音しても、ずれのない結果になります。

ところが、オーディオインターフェースによって伝えるレイテンシーの情報が不正確であるため、Liveでは、この不正確な情報をドライバエラー補正によって調整しています。 Live内に収録されているレッスンでは、ドライバエラー補正を設定するための具体的な測定方法を紹介しています。 このレッスンでは、入出力を1系統以上備えたオーディオインターフェースと音声ケーブルが必要になります。 レッスンを開くには、次の順に移動します。
メニュー[ヘルプ] → [ヘルプビュー] → 画面下部にある[内蔵レッスンをすべて表示] → [ドライバエラー補正]

【注意】ドライバエラー補正は、録音済みの音声のタイミングに影響しますが、リアルタイムのレイテンシーには影響しません