FLStudioの使い方 最適なバッファ サイズの設定方法
FLStudio20び使い方を解説します。
今回はバッファサイズの設定方法です。
ケースバイケースで異なるのですが、ImageLineのホームページに記載がありましたので、それを踏まえて説明していきます。
レイテンシーとは
バッファサイズの前に関係が深いレイテンシーについて簡単に書きます。
Wikiから説明文を引用します。
一般的にコンピュータが音信号を出力する場合、音データを一定長のバッファに記録してから、逐次ハードウェアへと出力する。そのため、バッファのサンプル数をサンプリング周波数(ヘルツ)で割った数だけレイテンシ(秒)が生じる。バッファ容量が小さいほどレイテンシも小さくなるが、時間辺りのオーバーヘッドが増し、システムの性能が低い場合には、処理落ちが生じノイズとなってしまうこともある。
また、エフェクタのデジタル信号処理アルゴリズムによっても、レイテンシは発生する。例えば、高速フーリエ変換(FFT)を用いたアルゴリズムでは、窓幅などに応じてレイテンシが発生し、先読み(ルックアヘッド)機能を備えたリミッター/コンプレッサーでは、先読み時間に応じてレイテンシが発生する。また、マルチトラック再生において、レイテンシのあるエフェクタを特定のトラックのみに用いると、同期がずれてしまう。そのため、全トラックのレイテンシを統一して同期するレイテンシ補正機能を持ったシステムもある。
要はバッファサイズを小さくすればレイテンシー(遅れ)は小さくなり、バッファサイズを大きくするとレイテンシー(遅れ)は大きくなります。
ならバッファサイズを最小にすれば良いんじゃないか?と思う人がいるかもしれないので、説明するとバッファを小さくするとその分CPU負荷が上がります。
じゃあバッファサイズを最大にすればCPUを一番効率的に使えるのかというとそうではありません。
一定以上のバッファサイズでCPU負荷は一定になります。
ImageLineから拝借しました。下図からも判る通り、概ねバッファレングスが10ms~25ms位が妥当かと思います。
DTMとして使う場合、12ms(512smp)か24ms(1024smp)の二択になります。レコーディングやライブ演奏などでどうしてもレイテンシーを下げる場合は3ms(128smp)や6ms(256smp)という選択もありだと思いますが、2ms(64smp)は避けた方が良いでしょう。CPUがオーバーロードして起こる事故やノイズの方が危険です。
FLStudioの設定
FLStudioの設定をみていきます。
Deviceは使っているオーディオインターフェースのASIOドライバがあればそれを選択。なければFLStudio ASIOを選択します。
右側の「Triple Buffer」はノイズが出ない限りはオフにしておきましょう。バッファが増えるので、レイテンシーも増します。
Buffer length が512smp で12ms位になりますので、512smpが妥当かと思います。
Buffer lengthを変えるには「Show ASIO panel」をクリックします。
「FL Studio ASIO」の場合は以下のような画面が表示されるので、任意の「Buffer Length」を設定して×ボタンで閉じます。
まとめ
用途によって変更する必要がありますが、
BufferLengthは普通にDTMとして使う場合
12ms(512smp)か24ms(1024smp)
Liveやリアルタイムレコーディングをするような場合は
3ms(128smp)か6ms(256smp)
が最適かと思います。
FLStudioに関する記事は以下にまとめています。
結構大量にありますので良ければ見て行って下さい。
コメント
初めまして。logicからflに乗り換えてボーカルレコーディングをしているものです。私はflでのボーカルの遅延に悩んでいてこの記事をみて、バッファサイズを下げてみたのですが、まだ遅延が発生します。レコーディング中は、pluginをつけたまましたいのですが、それがダメなのでしょうか。何か対策はあるでしょうか。それか、オーディオインターフェースを変えた方がいいのでしょうか。今使っているのはスタインバーグのur12です。インターフェースの中では安いものなので、多くpluginをさしてレコーディングしたら処理が追いつかないのでしょうか。pluginをさしてレコーディングをしても遅延の無いようなオーディオインターフェースなどがあればおしえていただけると幸いです。
佐藤さん
はじめまして、yosiです。
遅延の前の話しですが、ボーカルレコーディングでプラグインを挿して録音する理由はなんでしょうか?
プラグインはリアルタイムで掛けても録音された音に対してリアルタイムで処理されます。
その為、後から処理しても、リアルタイムで処理しても殆ど変わりません。
(自分の声をエフェクトが掛かった音で聴きながら録音したいという場合にのみ意味があります)
まず、プラグインをリアルタイムで掛ける必要があるのか考えてみて下さい。
次にもしプラグインを挿して録音する必要がある場合の遅延についてですが、プラグインを挿すとプラグインの遅延が発生します。
遅延の無いプラグインを挿せば当然遅延はないので、遅延の無いプラグインを使ってみて下さい。
遅延はプラグインの左上の歯車アイコンをクリックしてみる事が出来る「Latency」から確認出来ます。
最後にpluginを挿して録音出来るオーディオインターフェイスについてですが、DSP処理が出来るオーディオインターフェイスなら入力の段階でエフェクト処理が可能です。
そのようなオーディオインターフェイスは昔は高価な物が多かったですが、今は安価でも存在します。
SoundHouseさんのページ等を参考にしてみて下さい。
ただ安いものは搭載されているエフェクト少ない又はクオリティが高くないといった問題もあります。
DSPだと価格は少し高いですが、Universal AudioのApollo Twinがおすすめです。
リアルタイムで色々なエフェクトを掛ける事が出来ます。
(ただ別売りが多いので注意が必要です)