Cubaseのプチノイズ・音切れ対策~リアルタイム処理を安定させる方法

Cubase / DTM

ハイスペックなマルチコアCPU(AMD RyzenやIntel Coreプロセッサ)を使っているのに、Cubaseでプロジェクトを再生・録音していると「パチッ」とノイズが入ったり、音声が途切れたり(ドロップアウト)することはありませんか?

そして、タスクマネージャーを見るとCPU使用率は10〜20%程度しか使っておらず、処理能力には十分な余裕があるはずなのに、Cubase内部の「リアルタイムピーク」メーターだけがスパイク(急上昇)して限界に達していませんか?

この記事では、こうした現象の原因と、CPUの性能を落とさずに音切れを防ぐ解決策を解説していきます。

なぜ高性能CPUなのにプチノイズや音切れが起きるのか?

原因の一つとして考えられるのが、CPU全体の平均使用率では捉えにくい「特定のCPU論理プロセッサにおけるリアルタイム処理の競合」です。

特に一部の環境では、「CPU 0」をCubaseの処理対象から外すことで、プチノイズやドロップアウトが改善することがあります。

  • Windowsの仕組み
    グラフィックボード、USB、ネットワークなどのデバイスでは、ISR/DPCなどのデバイス割り込み処理が発生します。これらの処理はWindowsによって特定の論理プロセッサへ割り当てられます。
  • Cubaseのマルチプロセッシング
    一部の環境では、上記Windowsの処理とCubaseのリアルタイムオーディオ処理が、同じ論理プロセッサ上で競合することがあります。

結果として、CPU 0の上で「グラフィックやOSの割り込み処理」が入った瞬間、Cubaseのリアルタイムオーディオ処理が一瞬待たされることになります。

こうした割り込み処理によってCubaseのリアルタイムオーディオ処理が十分に時間を確保できないと、ASIOバッファの処理期限に間に合わず、プチノイズやドロップアウトが発生する結果が生じます。

解決方法:Cubaseの処理から「CPU 0」を除外する

解決策はシンプルです。Cubaseの処理から「CPU 0」だけを外し、CPU 1以降のコアで動作させるように設定することです。

  • 「CPU 0」をCubaseのアフィニティから除外することで、CubaseのスレッドがCPU 0で実行される可能性を減らし、OSやドライバ由来の処理との競合を緩和させる
  • CPU 0をCubaseのアフィニティから除外すると、Cubaseのスレッドは「CPU 1」以降の論理プロセッサ上で実行されることになる

上記のようにCubaseが使用する論理プロセッサを限定することで、特定のCPU上でOSやドライバ由来の処理とCubaseの処理が競合する可能性を減らせます。

この対策は、Cubaseのオーディオ設定で「マルチプロセッシング機能をOFFにする」という従来の回避策とは異なり、CPU 1以降の大量のコアによる分散処理能力が保持・活用できるため、大型プロジェクトでもCPUリソースの制限を比較的小さく抑えられます。

Process Lassoによる「割り当てコアの設定」の手順

Windows標準のタスクマネージャーでもアフィニティ(割り当てコア)変更は可能ですが、PCの再起動やCubaseの再起動でリセットされてしまいます。

そこで、常駐型プロセス管理ツール「Process Lasso」を使用して、設定の永続化を図ります。

ステップ1:Process Lassoの導入

下記のBitsum社の公式サイトからProcess Lasso(無料版でOK)をダウンロードしてインストールし、バックグラウンドで起動しておきます。

Bitsum. Real-time CPU Optimization and Automation
Real-Time CPU Optimization and Automation. Keep your PC responsive during high CPU loads and a...

ステップ2:Cubaseのプロセスにアフィニティを設定する

  1. Cubaseを起動します。
  2. Process Lassoを開き、プロセスタイムライン一覧から Cubase.exe を右クリックします。
  3. 「CPU Affinity」 > 「Always(常時)」 > 「Select CPU affinity」 を選択します。
  4. コア一覧が表示されたら、「CPU 0」のチェックを外して OK を押します。

ステップ3:設定による変化を比較する

同じプロジェクト、同じサンプルレート、同じASIOバッファサイズ、同じプラグイン構成で、CPU 0を含めた状態と除外した状態を比較してください。

CPU 0除外後にリアルタイムピークのスパイクやドロップアウトが明確に減少するのであれば、その環境ではCPU Affinityの変更が有効だった可能性があります。

※Cubase側の挙動によってアフィニティ設定が戻ってしまう場合

環境によっては、Cubase側の挙動によって設定が維持されない場合があります。

その場合は、CPU Affinityとは別に「CPU Sets」による設定も試すことが出来ますので、検討してみて下さい。

補完&補足設定:GPUと省電力の最適化

NVIDIA / AMD GPUの電源管理

GPUドライバや電源状態の変化が原因の一つとして疑われる場合には、問題の切り分けのために試す価値があります。

NVIDIAコントロールパネルの「3D設定の管理」で Cubase.exe を追加し、電源管理モードを「パフォーマンス最大を優先」に設定して変化を観察して下さい。

この設定によりGPUの電力・性能状態が高性能側に維持されやすくなるため、消費電力・発熱・ファン回転数が増える可能性があります。

コアパーキングの無効化

Process Lassoに付属する「ParkControl」などを使ってCore Parkingを無効化することで、CPUコアが休止状態から復帰する際の挙動が変わり、特定の環境では低バッファ時のリアルタイム処理が安定する可能性があります。

この設定ではアイドル状態のコアが休止され難くなるため、システム全体の消費電力や発熱、アイドル時の電力効率に影響が生じる可能性があります。

併せてチェック:LatencyMonによる「DPCレイテンシーの確認」

Cubaseのプチノイズ・音切れの原因を調べる方法として併せて提案したいのが「LatencyMonによる確認」です。

下記の記事では、LatencyMonで「DPCレイテンシー」の状態をチェックし、問題を特定する方法を詳しく解説していますので、今回の記事では改善しなかった場合はこちらの記事も参考にして下さい。

DPCレイテンシーの改善によるDAWのドロップアウト対策
オーディオインターフェースのASIOバッファを少なく抑えつつ、オーディオドロップアウト(音の途切れやノイズの発生)を防いでDAWを安定動作させるには、様々なアプローチがあります。今回はその...

まとめ

Cubaseのプチノイズ・音切れの原因の一つとして考えられるのが、CPU全体の平均使用率では捉えにくい「特定の論理プロセッサにおけるリアルタイム処理の競合」です。

Windowsでは、グラフィックボード、USB、ネットワークなどのデバイスに関連してISR/DPCなどの処理が発生します。これらの処理は特定の論理プロセッサ上で実行されるため、タイミングによってはCubaseのリアルタイムオーディオ処理と競合してしまう場合があります。

Cubaseのリアルタイム処理では、各オーディオバッファの処理を所定の時間内に完了させる必要があります。そのため、CPU全体の使用率が低くても、特定の論理プロセッサ上で必要な処理時間を確保できなければ、プチノイズやドロップアウトが発生する可能性が生じます。

そこで、一部の環境ではCubaseのCPU AffinityからCPU 0を除外することで、CubaseのスレッドとOS・ドライバ由来の処理が同じ論理プロセッサ上で競合する可能性が減るため、リアルタイム処理を安定させられる場合があります。

Cubaseの低バッファでの運用や大型プロジェクトでのリアルタイム安定性を求めている方は、今回の内容を参考にして下さい。