オーディオファイルをDAWで再生しようとするとCPU負荷で止まってしまうことを経験して困ったという人はいるかもしれません。「ソフトシンセを使っていないのになんでそんなに負荷が高いの?」「自分のパソコン壊れた?SSDじゃなきゃだめ?」といろいろと原因を考えるかもしれませんね。
今日はそれらの問題についての解決方法についてお話します。また、SSDとHDDで面白い検証結果が出ているのこちらも参考にしてもらえればと思います。
すべてがこの方法で解決するかどうかはわかりません、参考になる部分はあると思います。
処理スレッドとドライブI/Oの違いについて
パフォーマンスメーターにおいては処理スレッドはCPU負荷つまりエフェクトやソフト音源を使っている状態での負荷を示すもの、ドライブI/Oはドライブの負荷を示すもので、トラック数が多いとことでドライブi/Oのメーターが上がります。
前提として、オーディオファイルの場合だけならば、CPUに負荷をかけることはほぼありません。ゼロとはいいませんが、48kHzであっても96kHzであっても、40トラック程度ではほぼ変わらないというかないに等しいです。
つまり、もしオーディオファイル再生時にCPU負荷が大きくなるとしたらそれはトラック数より、エフェクトの処理になります。
バッファーの設定
バッファーについてはこちらの記事が参考になるので是非合わせてよんでいただけると理解が高まります。
これらは任意で一番最低期な設定を見つけるのがよいですが、オーディオファイルのみで再生するのであれば
- I/Oバッファーサイズ(1024)
- プロセス・バッファ・レンジ(大)
- マルチスレッド処理(再生とライブトラック)
で問題ないと思います。
MIX時のバッファ設定
上記の設定を参考にしたうえで、マルチスレッド処理について見ていきたいと思います。LogicProXではマルチスレッド処理において「トラックを再生」と「再生とライブトラック」の2つがあります。
これらの使い分けは次のようになります。
「トラックを再生」は、以前のバージョンの Logic の動作を踏襲しています。ライブ入力に対して「トラックを再生」が選択されている場合や、複数のオーディオトラックが録音される場合は、入力に必要な DSP がすべて 1 つの処理スレッド、つまり、コンピュータ上の 1 つのコアで処理されます。
「再生とライブトラック」では、複数のソフトウェア音源チャンネルストリップを含むトラックスタックが選択されている場合、または複数のオーディオトラックが録音される場合は、負荷が複数のスレッドに分散されます。コンピュータに十分な数のコアが搭載されていて、コンピュータにほかの DPS 需要がなければ、各ライブチャンネルストリップが別々のコアで処理される場合もあります。
「再生とライブトラック」オプションは、システムへの全体的な負荷が若干大きくなる場合があるため、特に需要の大きいライブトラックがなければ、「トラックを再生」を選択した方がよいこともあります。
ではこの2つがどのように影響するのかを具体的に見ていきます。
今回この記事を書くにあたり参考させていただいた音庵さんの環境がcore i5の6コア3GHzということなので
私のCPU環境を近くするためにMac Mini208のHT(仮想コア)を切って6コアにしています。
それ以外の計測環境は以下の通りです。
パソコン | Macmini2018 |
CPU | Corei7(i7-8700B)6コア HT使用時12コア 3.2GHz/ターボブースト(TB)使用時4.6GHz |
メモリ | 32GB |
システム | OS10.14.6 Mojave |
Audio/IF | Motu896HD |
バッファー | 1024 |
DAW | LogicProX10.4.8 |
再生ストレージ | HDD(TOSHIBA DT01ACA200) |
まずLogicProXで96kHzの32bit f(LogicProX取り込み時には24bitに自動変換されます)を43トラックを取り込んだ場合の負荷です。
ほとんど負荷はありませんし、再生しても音が途切れることはありません
- I/Oバッファーサイズ(1024)
- プロセス・バッファ・レンジ(大)
- マルチスレッド処理(再生とライブトラック)
この43トラックすべてに、リバーブをさした状態の負荷が次の画像です。
マルチスレッド処理を(再生トラックにした場合)にした場合は以下の通りになり非常にCPUに高負荷がかかります。
ハードディスクとSSDの再生数の違い
私が使っている外部ストレージ(HDD)ではエフェクトなしでは220トラックを超えてもディスクにかかる負荷はありませんでした。エフェクトプラグインを使わないのであればおそらくそれの倍以上は行けると思います。
ちなみにリバーブありの状態では55〜58トラックまではいけます。(それ以降は警告ウィンドウが開いて再生がとまります)
ちなみに以下のSSDの環境で計測したところでもCPU負荷は当然変わらず、リバーブトラックの使用数が増えるということはありませんでした。
HT(core i7)をすると負荷はどうなる?
今まではcore i5を想定していましたがcore i7の環境にするためHTをオンにするとどうなるかを実験してみます。仮想であっても実質CPUが倍になるのかでしょうか?
上記のSSD環境(USB3.0接続)ではマルチスレッドはほぼ使い切る形になりますが、再生トラックは216でリバーブプラグインは100〜105
ほぼ倍に近い数値になりました。
またもう一つのSSD環境(USB3.1接続)
こちらの環境では再生トラック216でリバーブプラグインは110〜113の間になりました。さすがスペックなだけはあります。これはサンダーボルトになるとさらに変わってくるのかもしれません。
では、再度HDD(TOSHIBA DT01ACA200)環境でHT環境を試すと、CPUマルチスレッド負荷のメーターはほぼ変わりません。トラック数も216トラックまで再生はできます、ただ、プラグインの数は80〜85の間となりました。
玄人志向 3.5インチ&2.5インチ対応マウンタ付HDDケース USB3.1のもう一つHDDを使って調べてみました。
こちらは同じ玄人志向 に入っていますが、ドライブI/Oの負荷が高く、再生トラックは115〜120トラック、リバーブプラグインに関しては75〜79といった感じです。
私の環境ではSSDでは高負荷がかかってしまっていることになります。
まとめ
結論で言えば私の環境ではSSDとHDDではオーディオトラック数は200トラック程度では差はないという結果です。しかし現実的な使い方で言えば、プラグインを使うことが考えられます。
今回は高負荷を想定したためにすべてのトラックにリバーブをさした状態での計測になりました。プラグインとの併用を考えたときSSDのメリットはそれなりにあると思います。
コメント