Help us understand the problem. What is going on with this article?

DAWがシステムロード警告で止まってしまう原理

More than 1 year has passed since last update.

こんにちは。新米エンジニアのnoyです。
これから自分の思考整理・言語化の練習のためQiitaを活用していきたいと思います。

今回は最近始めた趣味であるDTMについてです。

解決したい問題

Logic Pro Xでトラックを再生中に「システムが過負荷です。」と表示され止まってしまう。

スクリーンショット 2019-06-23 18.57.29.png

原因

「オーディオエンジンが、必要なデータの一部を時間内に処理できませんでした。」と書いてあります。
つまり、データ処理が追いつかなくなって止まってしまうようです。

必要なデータとは何か?

コンピュータで音声を再生するとき、アナログデータは一定の時間単位で区切って、その時間ごとの信号レベルを標本として抽出してデジタルデータ化しています。(これを標本化、サンプリングという)

どのくらいの時間間隔で区切ってサンプリングしているかを表すのがサンプルレート(サンプリング周波数)です。

今回のプロジェクトのサンプルレートはいくつになっているかを確認します。
「ファイル」>「プロジェクト設定」>「オーディオ」と選択。

1F9963E9-7624-456F-9493-F621365D11A0.png

サンプルレート:44.1 kHzと書いてあります。
つまり「1秒間に44100回、標本を取っている」ということです。

ちなみにこの数値がどれくらいかというと一般の音楽CDと同じです。
サンプルレートは、他のオーディオデータと同じになっていないと再生スピードにズレが出てしまうので統一されています。

さらに「標本一つを何ビットのデータで表すか」を量子化ビット数と言います。
この値が大きいほど、より原音に近い音を再現することができます。
音楽CDでは16bitが一般的です。

今回のプロジェクトでは量子化ビット数はいくつになっているか確認します。
「Logic Pro X」>「環境設定」>「録音」と選択。

C38737E1-E4F4-4DB4-BF6F-A304D402419E.png

「24ビットレコーディング」にチェックが入っているためオーディオデータは量子化ビット数24ビットで録音されています。

このオーディオデータを再生する場合、1秒間に何ビット読み込む必要があるでしょうか。

サンプルレート × 量子化ビット数 = 一秒間のデータ量
44100 回 × 24ビット = 1058400ビット = 132300バイト = 約129キロバイト

約129キロバイトのデータ量になり、このようなオーディオデータを何個も何秒も再生していった結果、データ量がどんどん増えていき、CPUで処理できる限界に達したとき(ここの説明は勉強中)止まるということです。

解決策

「I/Oバッファサイズを大きくする」ことをLogic Pro Xが勧めてくれています。

I/Oバッファサイズとはコンピュータの処理が間に合わなくなり問題が発生することを防ぐためにデータを一時的に溜めておける量を表したものです。

現状のI/Oバッファサイズを確認します。
「Logic Pro X」>「環境設定」>「オーディオ」>「デバイス」と選択。

B9F31623-4000-42CC-A4C9-01E7D54E0A79.png

現在は128サンプルになっています。
このサンプルというのは先ほどのサンプルレートと同じサンプルです。
つまり、1/44100サンプル × 128のデータをバッファできます。

しかし、これでは足りないということでこのサイズを大きくします。

D7D65401-D30D-45E0-A8F3-FD7844C45955.png

I/Oバッファサイズを128から256に一段階大きくしました。
これでトラックを再生すると先ほどよりもすぐに止まらなくなりました。

最後に

実は、今回の方法ではレイテンシ(音の遅延)が増えてしまうので、まだ解決すべき問題は残っていますが。。。
一旦調べたことの整理としてここまで記しておきます。

他にも方法はたくさんあってAppleからの公式記事がありますので、続きはこちらを参照ください。(すみません)
https://support.apple.com/ja-jp/HT203930

それにしてもDAWの原理、奥が深すぎて途方もない。
一歩ずつ分かることを増やしていくしかないですね。

noy__
新米エンジニア。言語化/思考整理をできるようにするため、たまに投稿します。趣味はDTM。使用DAWはLogic Pro X。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away