質問: directx診断ツールの「サウンドアクセラレータレベル」について 「ファイル名を指定して実行」で[dxdiag]と入力すると起動されるdirectx診断ツールのサウンドタブで、 「ハードウェアサウンドアクセラレータレベル」 の設定が行えますが、 ここを調整することで何が変わるのでしょう。 よくゲームソフトなどで、プレイ中フリーズする際はここを調整したり、「アクセラレータなし」にすることで フリーズの問題が改善されるという話を聞きますが、 これはどういうことなのでしょう。 アクセラレータレベルを無しにすること=サウンドのドライバを無効にするということなのでしょうか。 「サウンドアクセラレータなし」にしても音は出ますが...。 この項目の詳細を教えてください。お願いします。
回答: まず、ハードウェアサウンドアクセラレータの設定は、dxdを利用しなくとも、コントロールパネルのサウンド関連項目で設定できますよ。 これだけを調整するのであれば診断ツールを起動する必要はありません。(むしろ、診断ツールはdirectx関連apiを直接操作するサウンド以外の機能も多いため、これだけを設定するなら誤操作防止のため診断ツールから設定しない方が良いです) 本題です。 q/アクセラレータレベルを無しにすること=サウンドのドライバを無効にするということなのでしょうか。 a/詳細は、コントロールパネルのサウンドとオーディオデバイスのサウンド(オーディオ)項目にある再生デバイスの詳細設定で確認できます。 これは、あくまでハードウェアアクセラレータの設定であり、directsoundを含めて、サウンドカードが持つ全ての拡張サウンド機能関連の負荷全てをサウンドチップに任せる設定を「最大」、 directsound機能の全てをハードウェアで行う設定。いわゆるwindows標準サウンドをハードウェアで行う場合をその一つ下のスライダ(標準)に設定。残りのサウンドカードが独自に持つ、もしくはサウンドカードレベルで拡張されている設定、機能はソフトウェア(cpu)もしくは無効となります。 サウンドを鳴らすことに対してのみハードウェアを使う設定。いわゆる基本サウンドをハードウェアで再生する場合を下から2番目のスライダ(基本)に設定。 この設定ではdirectsound及びdirectsound3dは無効もしくはソフトウェアエミュレーションになります。 全てのサウンドをソフトウェアで操作する場合を最小スライダにします。この場合は、全てのサウンドをソフトウェアエミュレーションで再生します。サウンドチップはエミュレートしたサウンド情報を中継し出力するだけです。サウンドチップの負荷はなくなりますが、cpu負荷が増加します。 ちなみに、サウンドカード(ドライバ)がサポートしているハードウェアアクセラレータレベルはサウンドチップやドライバによって異なりますから、必ずしも最大にすればcpuにかかる負荷が軽減されるわけではありませんのでご注意を・・・ アクセラレータなしにすることで、正常に動作することがあるというのは、サウンドカードが持つ独自のサウンド機能やサウンドドライバの機能が利用するソフトウェアに支障を与えることがあり、そういう状態に陥る場合(たとえばサウンドに関係して、音割れ、音が出ない、音が変、音が遅れるなど)にアクセラレータレベルを下げることで正常になることがあるのです。 フリーズといった大きな問題の場合はサウンドだけから発生する可能性が低いためこれだけで解決できる可能性は低いですが、基本的にサウンドに関係する問題に有効です。