37. コンピューターオーディオのリソースと対策

リアルタイムのオーディオ処理は、表計算ソフトやネットサーフィンの使用を前提とした汎用のコンピューターにとって、負荷の高い作業です。 LiveのようなアプリケーションにはパワフルなCPUと高速のSSDが必要です。 この章では、Liveの使用時にコンピュータリソースの問題を回避して解決する方法について説明します。

37.1 CPU負荷への対処

オーディオインターフェースを通してサウンドを継続して出力するには、Liveは毎秒ごとに膨大な数の演算処理を行う必要があります。 プロセッサーがこの処理についていけないと、オーディオが途切れたりクリック音が入ります。

コンピューターの処理速度に影響を及ぼす要素には、CPUのクロック周波数(MHzやGHzで表されます)、アーキテクチャ、温度(現代のCPUは高温環境下で「サーマルスロットリング」が働きクロック周波数を低下させます)、メモリーキャッシュのパフォーマンス(CPUがメモリからデータを取り込む効率)、システムバスの帯域幅があり、あらゆるデータが通過するコンピューターの「パイプライン」となっています。

幸いなことに、Liveはマルチコアやマルチプロセッサーのシステムに対応しているので、インストゥルメント、エフェクト、I/Oなどの処理負荷を利用可能なリソースに分散できます。 マシンやLiveセットによっては、使用可能な処理能力が古いシステムの数倍になる場合もあります。

37.1.1 CPUロードメーター

コントロールバーの[CPUメーター]では、コンピューターの計算能力を現在どのくらい使用しているか表示しています。 10 パーセントと表示されている場合では、コンピューターは待機に近い状態になっています。 これが 100 パーセントと表示された場合は、オーディオの処理が限界に達しています。音の欠落やクリックノイズなどが聞こえるでしょう。

なお、CPUメーターはオーディオ処理で発生する負荷のみを計測し、その他のコンピューターの処理(Liveのユーザーインターフェースの管理など)は計測しません。

CPU負荷のメーター

このCPUメーターは、CPU使用率の平均値や現在値を表示しますが、完全にオフにもできます。

[平均]CPUメーターは、CPU負荷の総計ではなく、現在オーディオを処理しているCPUの平均をパーセンテージで表示します。 [現在]CPUメーターには、現在のCPU使用量の合計が表示されます。

CPUメーターをクリックすると、さまざまなオプションが表示されます。

CPU負荷メーターのオプション

デフォルトでは、Liveは[現在]値を表示しません。メーターのドロップダウンメニューで有効にする必要があります。

Live 11 の新規インストールからは、CPUの[過負荷インジケーター]もデフォルトでオフになります。 このオプションを再度有効にする必要がある場合は、ドロップダウンメニューから[CPU過負荷表示]を選択します。

CPU負荷を判断するのに、Liveは1つのオーディオバッファーを処理するのに必要な時間を計測します。 次に、この値を1つのオーディオバッファーを実際に再生する時間と比較します。

CPUメーターの値が 50% の場合では、Liveが1つのオーディオバッファーを再生に必要な時間の2倍の速度で処理しています。

1つのオーディオバッファーの再生よりも計算の方に時間がかかる場合、値が 100% を超えることもあります。

Liveでは、オーディオスレッドが最優先されることを想定していますが、スレッドの最終的な優先度はオペレーティングシステムが決めるため、Liveの処理が中断される場合もあります。 LiveのCPUメーターに、他のアプリケーションがCPUのスパイクを引き起こすのはこのためです。

37.1.2 マルチチャンネルオーディオによるCPU負荷

CPUを断続的に消費するものに、オーディオインターフェースとのデータ転送処理があります。 プロジェクトに必要のない入力と出力を無効にすることで、この処理による負荷を最小限に抑えられます。 環境設定[Audio]には、[入力設定]と[出力設定]ダイアログを開く 2 つのボタンがあり、入出力の有効/無効を個別に設定できます。

Liveは、使用していないチャンネルを自動で無効に切り替えることはしません。オーディオ設定変更のリクエストがあると、オーディオインターフェースのドライバーによって音が途切れることが多いためです。

37.1.3 トラックとデバイスによるCPU負荷

一般的には、Live内で使用するすべてのトラックとデバイスは、CPUに若干の負荷をかけています。 しかし、Liveでは「スマート」な設計がなされていて、機能していないトラックやデバイスがCPUを無駄に消費するのを防ぎます。

例えば、再生していないLiveセットにデバイスをドラッグしても、CPUの負荷はそれほど上がりません。 クリップの再生を開始したり、オーディオをエフェクトに流した時のみ、負荷がかかります。 オーディオが何も入力されないと、エフェクトは次に必要となるまで動作を停止します。 リバーブやディレイといった「テイル」を作成するエフェクトでは、すべての演算処理を完了してから動作を停止します。

この仕組みは、Liveセットの平均CPU負荷を減らすのにとても効果的ですが、ピーク時の負荷は軽減できません。 極限状態であってもLiveセットが再生を続けられるか確認するには、すべてのデバイスをオンにして、すべてのトラックで同時にクリップを再生します。

セッションビューでは、ミキサーセクションの[パフォーマンスインパクトの表示/非表示]セレクターをクリックすると、各トラックがCPUにかける負荷を可視化できます。

パフォーマンスインパクトの表示/非表示セレクター

[パフォーマンスインパクト]セクションでは、各トラックに専用のCPUメーターが備えられ、6つの四角形が点灯して、各トラックが現在のセットのCPUに与えている負荷を示します。 最も負荷の大きい トラックをフリーズ したり、そのトラックからデバイスを削除すると、通常はCPU負荷が下がります。

セッションビューのパフォーマンスインパクトのセクション

37.1.4 トラックのフリーズ

Liveの[トラックをフリーズ]コマンドは、デバイスやクリップ設定がCPUにかける負荷をやりくりするのに役立ちます。 トラックを選択して[トラックをフリーズ]コマンドを実行すると、Liveは、そのトラックにセッションクリップ用とアレンジメント用のサンプルファイルを作成します。 この処理を行うと、それ以降トラック内のクリップは、リアルタイムでCPU負荷の高いデバイスやクリップ設定を処理するのではなく、それぞれの「フリーズファイル」を再生します。 [トラックをフリーズ]コマンドは、Liveの[編集]メニューや、トラックとクリップのコンテキストメニューから使用できます。 なお、グループトラック をフリーズすることはできません。フリーズできるトラックはクリップを含むトラックのみです。

通常、フリーズはすぐに完了します。 しかし、ハードウェアのエフェクターやシンセサイザーにルーティングした External Audio Effect や External Instrument を含むトラックをフリーズする場合、フリーズの処理が実時間かかります。 Liveは、実時間のフリーズが必要であるか自動的に検出して、この処理に関するいくつかのオプションを表示します。 これらのオプションに関する説明は、リアルタイムレンダリング のセクションを参照してください。

十分な処理能力があれば(またはマシンをアップグレードしたら)、フリーズしたトラックを選択して、[編集]メニューから[フリーズを解除]を選択すると、デバイスやクリップ設定を変更できます。 処理能力がそれほど高くないマシンの場合は、CPU負荷の高いトラックをフリーズ解除して編集し、編集が完了した時点で再びフリーズするといいでしょう。

編集機能の多くは、フリーズしたトラックでも使用できます。 クリップは自由にローンチでき、ボリューム、パン、センドなどのミキサーコントロールも使用可能です。 他には次のことが行えます。

  • クリップの編集、カット、コピー、ペースト、複製、トリミング
  • ミキサーのオートメーションやクリップエンベロープの描画と編集
  • クリップの結合
  • セッションビューのクリップをローンチしてアレンジメントビューに記録
  • セッションビューでシーンの作成、移動、複製
  • フリーズしたMIDIクリップをオーディオトラックへドラッグ

リバーブなどタイムベースのエフェクトを含むトラックをフリーズして編集を行うと、トラックのフリーズを解除した時に、場合によっては解除前と音が変わって聞こえることがあります。 これは、トラックをフリーズすると、その内部で使用しているエフェクトはまったく計算されなくなるので、編集した入力素材に対して反応ができないためです。 トラックが再びフリーズ解除されると、すべてのエフェクトがリアルタイムで再計算されます。

フリーズしたリバーブテイル付きのアレンジメントのトラック

フリーズしたアレンジメントビューのトラックは、クリップの長さを超える素材を再生します(Reverbエフェクトの「テイル」部分など)。 フリーズしたテイルは、アレンジメント内の対応するクリップの隣に、斜線が描かれたリージョンとして表示されます。 フリーズ解除するとリアルタイムで処理するため、フリーズしたテイルが消えます。このテイルは別個の「一時的な」クリップとして扱われます。 そのため、アレンジメント内でフリーズしたクリップを移動する場合、フリーズしたクリップだけでなく、そのテイルのクリップも一緒に移動すると良いでしょう。

フリーズしたセッションのクリップでは、フリーズしたクリップに2回分のループのみ含まれています。つまり、リンク解除したクリップエンベロープ を持つクリップをフリーズすると、2回ループした後は異なる音で再生される場合があります。

フリーズしたクリップをセッションビューやアレンジメントビューのドロップエリアへドラッグすると、そのクリップを含むフリーズ済みの新規トラックを作成します。 アレンジメント内でクリップの一部を選択している場合、フリーズ済みの新規トラックには、クリップの選択部分のみが含まれます。

[トラックをフリーズ]コマンドで作成されたサンプルは、[現在のプロジェクト]フォルダーの /Samples/Processed/Freeze 内に保存されます。 セットがまだ保存されていない場合、このフォルダーは [一時フォルダー] で指定した場所に保存します。 なお、External Instrument や External Audio Effect を含むトラックのフリーズファイルは、フリーズ解除するとすぐに破棄されます。

[トラックをフリーズ]コマンドを使うと、多数のデバイスを使用したトラックでCPUリソースを節約できるだけでなく、コンピューター間でプロジェクトを共有することが簡単になります。 処理能力の低いコンピューター上でも、CPU負荷の高いトラックをフリーズすることで、大規模なLiveセットを動作できるようになります。 また、コンピューターに、あるLiveセットで使用しているデバイスがインストールされていなくても、そのデバイスを含むトラックをフリーズすればそのセットを再生できます。

37.2 ディスク負荷への対処

SSDの読み書き速度は、Liveのパフォーマンスに影響する可能性があります。 Liveが行うディスクアクセスの量は、同時に読み書きするオーディオチャンネルの数とほぼ比例しています。 ステレオサンプルを再生するトラックの場合では、モノラルのサンプルよりもディスクアクセスが多くなります。

ディスク過負荷インジケーター

ディスクが十分な速度でオーディオの読み書きをできない場合、[過負荷インジケーター]が点滅します。 オーディオ録音の時に過負荷が発生すると、録音したサンプルに無音の隙間ができ、再生すると音が欠落して聞こえます。

ディスクの過負荷を防ぐには、以下のことを行ってください。

  • 環境設定[オーディオ設定]の[チャンネル設定]ダイアログで、ステレオ入力ではなくモノラル入力を選択して、書き込みするオーディオチャンネル数を減らします。
  • 選択したクリップに [RAMモード] を使用します。
  • 可能であれば、ステレオサンプルの代わりにモノラルサンプルを使って、再生するオーディオチャンネル数を減らします。 Live内から 外部サンプルエディターのプログラムを呼び出して、ステレオサンプルをモノラルに変換します。