
DTM用語:レイテンシとは
■はじめに
そもそもレイテンシとは、待ち時間や反応時間を意味する言葉です。ここでは音楽ソフトウェアにおける要求から反応までにかかる時間を指します。
■レイテンシとは
レイテンシとは、要求から反応までに生じる遅延時間です。単位はミリ秒(ms)であり、1秒の1/1,000を意味します。
レイテンシ:要求から反応までに生じる遅延時間
単位:ms(milli second)
遅延時間が短いほどレイテンシが低い、遅延時間が長いほどレイテンシが高いと表現します。
遅延時間が短い:レイテンシが低い
遅延時間が長い:レイテンシが高い
■レイテンシの求め方
レイテンシは、バッファサイズをサンプリングレートで割ることで求められます。
レイテンシ(ms)=バッファサイズ(sample)÷サンプリングレート(Hz)
例えばバッファサイズ512sample/サンプリングレート44.1kHzの場合、レイテンシは以下のような計算で求めることが出来ます。
512sample÷(44.1kHz×1,000)×1,000≒11.6ms
■バッファサイズとの関係
バッファとは、連続したデータの流れが途切れてしまわないよう、あらかじめデータを先読みして保持しておく領域であり、バッファサイズとはその大きさを意味します。単位はサンプル(sample)であり、どれだけのサンプルを保持しておくかを意味します。
試しにバッファサイズのみ変更したところ、バッファサイズが小さくなるほどレイテンシが低くなっているのがわかります。
512sample÷(44.1kHz×1,000)×1,000≒11.6ms
256sample÷(44.1kHz×1,000)×1,000≒5.8ms
128sample÷(44.1kHz×1,000)×1,000≒2.9ms
これは、保持するサンプルが少なくなったことでバッファを読み書きする速度が上がっため、結果として遅延時間が短くなったことを意味します。
バッファサイズが小さくなるほどレイテンシが低くなる
■サンプリングレートとの関係
サンプリングレートとは、サンプリング処理において1秒間にサンプリングする回数です。単位はヘルツ(Hz)であり、1秒間にどれだけのサンプルを扱うかを意味します。
試しにサンプリングレートのみ変更したところ、サンプリングレートが大きくなるほどレイテンシが低くなっているのがわかります。
512÷(44.1×1,000)×1,000≒11.6ms
512÷(48×1,000)×1,000≒10.6ms
512÷(96×1,000)×1,000≒5.3ms
これは、サンプリングレートが大きくなったことで1秒間に扱えるサンプルが増えた=バッファに転送する速度が上がったため、結果として遅延時間が短くなったことを意味します。
サンプリングレートが大きくなるほどレイテンシが低くなる
■レイテンシの最適値
バッファサイズを小さく、サンプリングレートを大きくすればレイテンシが低くなることがわかりましたが、だからと言ってバッファサイズを最小に、サンプリングレートを最大にすればいいわけでもありません。
それによりレイテンシが最小となるのは明らかですが、同時にCPU負荷が高まりシステムが不安定になるのもまた明らかだからです。
バッファサイズを小さく、サンプリングレートを大きくすればするほどレイテンシは低くなるが、同時にCPU負荷が高まりシステムが不安定になる
そのため、適切なレイテンシを得るためには、一般的に①サンプリングレートを確定させる、②システムの安定性を確かめながら徐々にバッファサイズを小さくしていく、という方法が推奨されています。
1.サンプリングレートを確定する
サンプリングレートとは、サンプリング処理において1秒間にサンプリングする回数です。サンプリングレートが大きいほど遅延時間が短くなるのはもちろん、より高い音域(高周波数帯)を表現出来ます。
サンプリングレートが大きい:より高い音域(高周波数帯)を表現
しかしながら、サンプリングレートが大きくなればなるほど、そこには下記のような3つのデメリットが考えられます。
①ファイルサイズが大きくなる
サンプリングレートが大きくなればそれだけ情報量も多くなり、当然ながらファイル容量も増加してしまいます。昨今容量の増加はそこまで大きな問題にはなりませんが、無限ではない以上考えものです。
②ノイズを拾いやすくなる
サンプリングレートが大きくなれば微細な音まで拾うようになり、本来聞こえなかったはずのノイズをも拾ってしまいます。録音の度にノイズ除去する手間がかかると思うと少々考えものです。
③可聴範囲を越えすぎている
人間の可聴範囲は20Hz~20kHzとされていますが、アナログ信号を正確にサンプリングするには最大周波数の2倍を超える周波数が必要’(サンプリング定理)とされているため、可聴範囲を補うには少なくとも40kHzのサンプリングレートが必要となります。とは言え、例えば96kHzのサンプリングレートだと48kHzまで表現出来る事になり、20kHzまでしか聞こえない人間の耳に果たしてそこまでの高周波数帯が必要なのかはいささか疑問を感じます。
もちろん、密度の高いデータを後々低いデータにする事は可能です。実際プロの現場では、96kHzで作業しつつ配布媒体に合わせてダウンサンプルするのが常識とも言われています。
プロの現場ではサンプリングレートを96kHzにするのが常識
しかしながら、そこまでしてプロの真似をする必要はどこにもなく、個人的にはメリット/デメリットを踏まえたうえで自分の環境に合ったサンプリングレートにするのが一番だと思います。
そのため私は、CD音源とハイレゾ音源の中間値でもある48kHzで録音する事が多いです。理由は単純に自分の環境で96kHzは荷が重すぎるからと、無闇にサンプリングレートを大きくするより、ビットデプスを24bitにする方がよほど音質が向上するような気がするからです。
ちなみに、ビットデプスは音圧を表現するものであり、大きいほどより広い音幅(ダイナミックレンジ)を表現出来ます。例えば16bitでは96dBなのに対して24bitだと144dBの音圧が得られるため、可聴範囲とはまた違ったアプローチで音質の向上を期待出来ます。
2.バッファサイズを小さくしていく
サンプリングレートが決まれば、後はバッファサイズをどれだけ小さく出来るかのせめぎ合いです。巷ではこれをバッファサイズを詰めるなんて言うらしいですが、実のところそこまで神経質になる必要もありません。
なぜなら、ミリ秒の違いなんてほとんど感じないからであり、体感として違和感がなく、安定して作業が続けられる状態こそが自分にとって最適のレイテンシだからです。
最適なレイテンシ:体感として違和感がなく安定して作業が続けられる状態
とは言え、何事にも目安は必要です。まずは一般的に推奨される512sampleに設定して、自分の環境ではどれくらいの遅延が発生するか確かめてみるといいでしょう。
バッファサイズの一般的な推奨値:512sample
特に遅延を感じなければ、次に確認すべきは録音時のCPU負荷です。CPU負荷は、タスクマネージャーのパフォーマンスで確認出来ます。
C:\Windows\System32\Taskmgr.exe
しかしながら、タスクマネージャーで判断出来るのはあくまでシステム全体の負荷であり、DAWそのものの負荷までは判断出来ません。もちろん、システムが不安定になるのは避けたいところですが、なにより困るのはDAWでまともに録音出来なくなる事なので、出来ればDAWに搭載されているパフォーマンスモニタにて負荷を確認するのが懸命かと思われます。
そのため、ここではCubaseに搭載されるオーディオパフォーマンスにてピーク値(オーディオエンジンのリアルタイムパスにかかっている処理の負荷)を確認してみました。ピーク値が高いほどドロップアウト(処理負荷によりオーディオエンジンが再起動)するリスクが高いとされています。
バッファサイズ/CPU使用率/ピーク値/ドロップアウト
128sample/20%-30%/50-75%/録音前も録音時もドロップアウト無し
64sample/20%-30%/75-100%/録音時に時々ドロップアウト
32sample/20%-30%/75-100%/録音前から時々ドロップアウト
16sample/25%-45%/100%/録音前から頻繁にドロップアウト
結果は見ての通りです。CPU使用率だけを見ると32sampleでもよさそうなものですが、オーディオパフォーマンスでは64sampleですでにドロップアウト、128sampleではドロップアウトこそしていないものの、ピーク値がやや高すぎな感じが否めません。
つまるところ、私の環境ではバッファサイズは128sampleが限界、万全を期すなら256sampleにすべきという結果が導き出されました。ちなみにレイテンシで表すと下記のようになります。
256sample÷(48kHz×1,000)×1,000≒5.3ms
ただし、ここで注意しておかなければならないのは、この結果はあくまで空のプロジェクトにオーディオトラックのみを作成して録音したものであるということです。実際には複数のトラックがあり、そこに様々なインストゥルメントつまりソフトウェア音源が鳴らされていると考えると、バッファサイズはさらに大きなものにした方が安全かもしれません。
■おわりに
最後まで読んで頂き有り難うございました。あくまで個人的備忘録ですが、何かしらの参考になれば幸いです。
いいなと思ったら応援しよう!
