レイテンシーの仕組み
- 対象となるLiveのバージョン: すべて
- 対象となるOS: すべて
【注意】 この記事は、参考情報を提供することを目的としています。 具体的なトラブルシューティングの方法については、 こちらのページ で確認することができます。
- レイテンシーとは?
- レイテンシーの原因
- レイテンシーが発生する場所
- オーディオインターフェースのレイテンシーの測定方法
- レイテンシーに影響するLiveの設定
- レイテンシーに影響するデバイスの設定
- レイテンシーのその他の原因
- 事例
- レイテンシーに対応するLiveの仕組み
- サンプル単位で正確に録音するための準備
レイテンシーとは?
レイテンシーとは、信号がコンピュータなどの装置に入力される際および出力される際に発生する短い遅延のことを指します。 デジタル・オーディオ・ワークステーション(DAW)では、音声信号がオーディオインターフェース経由でDAW(もしくは、ほかのアプリケーション)に入力され、DAW内のインストゥルメントやエフェクトで処理されたあと、オーディオインターフェース経由で出力されます。そのため、一定のレイテンシーが必ず発生します。
レイテンシーは必ず発生しますが、発生理由を解明することができます 。
レイテンシーの原因
デジタルオーディオの世界では 、信号経路内で起こる 信号の変換 や オーディオバッファ によって レイテンシーが発生します。
アナログ - デジタル (AD) コンバーター は、オーディオ入力をコンピューターが処理できるデータに変換します。 一方、DAコンバーターは、デジタル信号をアナログ信号に変換して、スピーカーや外部エフェクトに出力します。 ほとんどのスタジオでは、こうした信号の変換をオーディオインターフェースで処理しています。
オーディオ バッファ とは、ある地点から次の地点に信号が移動するときに、信号を一時的に溜めておく記憶領域のことです (バッファサイズが大きいほど、この処理にかかる時間が長くなり、全体のレイテンシーが増加します)。
レイテンシーが発生する場所
- オーディオインターフェース
- オーディオインターフェースのドライバ
-
コンピュータのOS
※スピーカーから出力するまえに、ほかのアプリケーションからの信号を処理してミックスする時間を要する場合があります。 - オーディオインターフェースとDAWの間
- DAWの信号処理 ( 例: モニターされているトラック、純正エフェクト、プラグインなど )
オーディオインターフェースのレイテンシーの測定方法
音声信号が経路の中をある地点から次の地点に移動するには、少なくとも1回分のオーディオバッファの処理が完全に行われなければなりません。 したがって、レイテンシーの最小値は、設定したサンプルレートで1回分のオーディオバッファを処理する時間と等しくなります。
実際の計算は次のようになります。
バッファサイズ
(サンプルの数)÷
サンプルレート
(kHz)=
予測されるレイテンシー
(ミリ秒)
たとえば、
バッファサイズが“
256サンプル
”、サンプルレートが“
44.1kHz
”の場合、オーディオインターフェースで入力信号の変換に
5.8ミリ秒のレイテンシー
が発生し、そのあとに変換された信号がLiveに送られます。
計算:256サンプル ÷ 44.1kHz = 5.8ミリ秒
Liveの環境設定で[入出力レイテンシー]に表示される値は、前述の計算式で求められる値と一致しません。 直感的にわかりにくいかもしれませんが、これには次のような理由があります。
- 前述の計算式では、信号の変換1回にかかる時間が求められます。 オーディオインターフェース全体で見ると、入力と出力のレイテンシーが含まれることになります。 このときのレイテンシーを単純に計算するには、先ほどの計算結果の値を2倍にします。
- デジタル信号処理(DSP)の世界では、レイテンシーの予測は容易ではありません。音声の処理や変換が複数回行われ、それによって全体のレイテンシーが変化するためです。 レイテンシーの事例については、本ページの“ 実例 ”で確認することができます。
- オーディオインターフェースの中には、レイテンシーの値を不正確に伝える機種があります。
レイテンシーに影響する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
はルックアヘッド機能を使うことで、リアルタイムでは不可能なダイナミクスの処理を行っています。
周波数スペクトルの分析と処理
信号を時間領域から周波数領域に変換する場合、信号の処理または表示に比較的大きなオーディオバッファが必要です。 そのため、周波数スペクトルの処理を行うデバイスでは、一定量のレイテンシーが発生しやすくなります。
その他の高度な処理(オーバーサンプリング/コンボリューションなど)
一部のデバイスでは、瞬間的(1つのサンプル)だけでなく、一定の期間( より大きなサンプルブロック )に対し高度な決定を行い動作するため、かなり大きなサンプルバッファが必要となります。 iZotopeのOzoneのようなマスタリング用プラグインでは特に、大きなレイテンシーが必要となります。
レイテンシーのその他の原因
効率の悪い/型の古いオーディオインターフェースのドライバ
Windowsのコンピュータのドライバでは、ASIOの性能がMME/Direct Xよりも全般的に優れています。
また、旧型のドライバでは、OSの更新やDAWの仕様変更などの外部要因によって性能が低下することがあります。 製造元は製品のファームウェアを更新することが多く、それにより、こうした変更への対応や、製品の性能向上を図っています。
無効にしたインストゥルメントとエフェクト
インストゥルメントやエフェクトなどのデバイス(もしくは、プラグイン)の画面左上にある黄色いボタンをクリックすると、そのデバイスが無効になります。 このボタンにはオートメーションやモジュレーションを自由に適用できます。オートメーションやモジュレーションによってボタンを作動させると、そのたびにデバイスのレイテンシーが変化することになるので、本来であれば、認識できるほどのゆがみが出力音に生じます。 これを防ぐため、デバイスのレイテンシーは、デバイスが無効の場合でも常に発生します。
ビデオ
Liveではビデオの遅延は補正されません。
事例
レイテンシーを理解することが難しいのは、症状と根本原因が大きくかけ離れていることが多いためです。 そのことを図解しているのが次の例です。
注: 以下に示すレイテンシーの時間は、デモンストレーションの目的で簡略化されています。 実際の結果とは 異なる場合があります。
状況1:MIDIのレイテンシー
この状況では、MIDIコントローラで鍵盤を押してから最終的な出力音が聞こえるまでに、レイテンシーが発生しています。
- MIDI信号が鍵盤から出力されてコンピュータへ入力されるまでに、 1ミリ秒 の時間がかかっています。
- MIDI信号がコンピュータ内でDAWに処理されて音声信号になるまでに、 1ミリ秒 の時間がかかっています。
- 音声信号がDAWからオーディオインターフェースに到達してスピーカーへ出力されるまでに、 1ミリ秒 の時間がかかっています。
信号は一直線の経路を移動しているので、それぞれの処理が同時に発生することはなく、全体のレイテンシーは 3ミリ秒 になります。
状況2:音声のレイテンシー
この状況では、マイクに声を発してから最終的な出力音が聞こえるまでに、レイテンシーが発生しています。
- アナログ信号はほぼ瞬時に伝達されるため、オーディオ信号がマイクからオーディオインターフェースへ入力されるまでには 0ミリ秒 の時間がかかっています。
- アナログ音声信号がオーディオインターフェースでデジタル音声信号に変換されてコンピュータへ到達するのに、 1ミリ秒 の時間がかかっています。
- デジタル音声信号がコンピュータ内でDAWに処理されるのに、 1ミリ秒 の時間がかかっています。
- デジタル音声信号がDAWからコンピュータを経由してオーディオインターフェースに到達し、アナログ音声信号に変換されて最終的にスピーカーへ出力されるまでに、 1ミリ秒 の時間がかかっています。
信号は一直線の経路を移動しているので、それぞれの処理が同時に発生することはなく、全体のレイテンシーは 3ミリ秒 になります。
レイテンシーに対応するLiveの仕組み
Liveでは、Live内の各部で発生するレイテンシーを決定した上で、Liveセット全体で発生するレイテンシーの値を把握しています。
ディレイ補正 を有効にすると、もっとも多くのレイテンシーを発生させている音声信号経路によってこの値が決定されます。それに応じて、Liveは他の音声信号経路の各出力を遅らせてタイミングを合わせています。 その結果、マスタートラックを経由して再生される音声は、レイテンシーが発生していないように聞こえます。 ディレイ補正を無効にすると、全体のレイテンシーが無視され、音声をモニタリングするポイントごとに異なるレイテンシーが発生します。
次の例は、ふたつのトラックを含むLiveセットです。
“Audio Track 1”に入っているデバイスでは、合計で120ミリ秒のレイテンシーが発生しています。“MIDI Track 1”に入っているデバイスでは、合計で80ミリ秒のレイテンシーが発生しています。 このとき、ディレイ補正が有効になっていると、両トラックのレイテンシーは120ミリ秒に統一され、もっとも多くのレイテンシーが発生している“Audio Track 1”の音声とタイミングが合った状態で再生されます。
"MIDI Track 1"に含まれているインストゥルメントを演奏するには、 このトラックの[Monitor]を [In] または [Auto] に設定して、アームを有効にする必要があります。 ところが、別のトラックと同じタイミングで音声が聞こえるように、このトラックのレイテンシーも120ミリ秒に統一されているため、インストゥルメントを演奏した瞬間から実際の音が聞こえるまで、ずれがあるように聞こえます。
[モニタリング時に低レイテンシー]を有効にすると、モニターしているトラックについては、全体を統一するためのレイテンシーが加えられません。 “MIDI Track 1”をモニタリングすると、同トラックのレイテンシーが、その信号経路内にあるデバイスで発生している80ミリ秒になります。 [モニタリング時に低レイテンシー]を有効にすると便利なのは、演奏を追加録音するとき、別のトラックにはディレイ補正を適用して音声のタイミングをそろえておきたい場合です。
サンプル単位で正確に録音するための準備
多くの場合、新しいオーディオトラックに演奏を録音するときは、そのオーディオトラックの[Monitor]を[Off]に設定して、演奏の音声を(Liveを介さずに)直接モニタリングできるようにすると、演奏しやすくなります。
ただし、この方法には問題が伴います。録音時にシステム側で発生したレイテンシーにより、録音した音声が若干ずれて聞こえることです。 そこでLiveでは、このずれを調整するために、オーディオインターフェースから伝えられるレイテンシーの情報にもとづいて、録音のタイミングを自動的に補正しています。 これにより、理論上演奏者が録音時に聞いている音とずれのない結果になります。
ところが、オーディオインターフェースによっては伝えるレイテンシーの情報が不正確である場合があるため、Liveでは、この不正確な情報を
ドライバエラー補正
によって調整しています。 Live内に収録されているレッスンでは、ドライバエラー補正を設定するための具体的な測定方法を紹介しています。 このレッスンでは、入出力を1系統以上備えたオーディオインターフェースと音声ケーブルが必要になります。 レッスンを開くには、次の順に移動します。
メニュー[ヘルプ] → [ヘルプビュー] → 画面下部にある[内蔵レッスンをすべて表示] → [ドライバエラー補正]
【注意】 ドライバエラー補正は、録音される音声のタイミングに影響しますが、リアルタイムのレイテンシーには 影響しません 。