ASIOやWASAPIドライバで音飛びする原因が意外なところにあった件

前回、USBサウンドユニットの不具合の件で
PCIサウンドカードの『Xonar DG』に買い換えて
プチノイズもなくハッピーな状態だったのだけれども
使い続けているうちに細かな不具合が……ってまたかよ!(*´Д`*)

不具合は音楽の再生中に音飛びが起こること。
サウンドプレイヤーには『uLilith』を使っているのだけれども、サウンド出力にASIO(ASIO4ALL)やWASAPIを指定すると、どうしても再生中に音飛びが起こってしまう。
音飛びのタイミングはブラウジング中やエクスプローラーを使いフォルダーを開いたりするとき。
音飛びはブラウジング中は少ないものの、フォルダーを開いたときは100%起こる。
そしてサウンド出力でDirectSoundを指定したときは音飛びは起こらない。

んじゃ、音楽観賞用の時(何も操作をしない時)はASIOやWASAPIドライバを使って、ブラウジングやファイル操作しながら音楽聞くときはDirectSoundのドライバを使えば?
ということになるけれども、やっぱりいつでも綺麗な音で聞きたいよね。
それに毎回ドライバの設定を変更するのも面倒だし。

という訳で色々と原因を調べてみた。

……のだけれども、結果はあまり芳しくなく。


以下、音飛びを直すためにネットで調べて実行してみたこと

・プレイヤーの再生バッファサイズを増やす → 効果なし

・プレイヤーの読み込みバッファを増やしてメモリから再生 → 効果なし

・ASIOドライバのバッファサイズを増やす → 効果なし

・WASAPIドライバのレイテンシを増やす → 効果なし

・サウンドカードのデバイスドライバを入れ直す → 効果なし

・セキュリティソフトを切る → 効果なし

・PCIカードなのでBIOSでPCI Latency timerの調整する → 効果なし

・CPUの省電力機能を切ってフルパワーで使ってみる → 効果なし

・別のプレイヤー(foobar2000)でASIO、WASAPIを使ってみる → 音飛びする!


と色々試してみたものの、うまく音飛びが直らなくて八方ふさがり。
一応自分なりに原因を推測してみると、
軽いDirectSoundドライバで動いていて、重いASIO、WASAPIドライバで音飛びするということは純粋にマシンパワーが足りてないのでは?と思ってみたりするものの、
4コアマシンに買い換えたばかりなのでそれは腑に落ちない

Windows7 64bitなのでOSのデバイスドライバが悪さしているのではと考えてはみたけれど、
Microsoft製で比較的新しいドライバであるWASAPIで音飛びしているので違うような気がする。


で音飛びがおきるときから推測してみた。
エクスプローラーからフォルダーを開くときは必ず音飛びする。
これはHDDアクセス処理でサウンドプレイヤーと読み込み処理がぶつかっていて
その結果、音飛びするのでは
……と考えてみたけれども、
よく調べてみると読み込み速度が早いはずのSSDにあるフォルダーを開いても音飛びする。
ということは読み込み処理は関係ない。


その後、なんとか原因が判明する。
ダメもとでやってみたことがたまたま正解だった
更に調査を進めることで分かった
音飛びの原因とは……



ASIOやWASAPIドライバで音飛びする理由は『Winodwsの標準サウンド』が原因だった

『Winodwsの標準サウンド』っていうとアレです。
起動時に「ピロリン」とか終了時に「パポ」とか鳴るやつです(音に関してはてきとう)


このWinodwsの標準サウンドとASIOやWASAPIドライバが衝突していて、
サウンドプレイヤーがASIOやWASAPIドライバで再生しているときに
Winodwsの標準サウンドのイベント音が鳴ってしまうと音飛びをしていた

というのが原因。
なぜ衝突しているのかは不明。なんで正しくミキシングされてないんだろう?
DirectSound上では正しくミキシングされてるのに。

そして音飛びの主な要因となっていたのは、フォルダーを開いたりアイコンをクリックしたときに鳴る標準サウンド。(ダブルクリックしたときに鳴る『カチッ』という音)

ブラウジングしてたときにたまに音飛びしていたのは
ポップアップウィンドウをブロックしたときの標準サウンドのせい。

で、原因がWinodwsの標準サウンドであると分かったので
Winodwsの標準サウンドを無効にすることで解決

コントロールパネルの『サウンド』を開き『サウンド』タブから
『プログラム イベント』で該当する箇所(ナビゲーションの開始など)を
サウンド→(なし)にして、『名前を付けて保存』ボタンを押して
名前を入力して「OK」を押す(デフォルトの設定を上書きしないためにね)
さらに全体の「OK」を押して終了。

面倒な人はサウンド設定自体をサウンドなしにしても良いかも。
イベントで全く音が鳴らなくなるけど。
(オススメなのは起動・終了音とエラー音以外はすべて無効にすること)



うーむ、以前USBサウンドユニットを使ってたときはこんな変なことはなかったし、
Windows XP使っていたときでもなかった。
音飛びは直ったけれども対症療法的な直し方で後味の悪い結果のような。
もうWindowsでダブルクリックしても『カチッ』って音鳴らないし。

Winodwsの標準サウンドを鳴らしながらASIOやWASAPIドライバが使えない
という理由・原因が、
サウンドカードなどのハードウェアの相性問題なのか
はたまたWindows7 64bitやドライバなどのソフトウェアによる相性問題なのか
つまり、自分の環境によるものなのか
またはOS自体のバグなど自分の環境の原因以外によるものなのか
結局良くわからなかった。

あと今回ネットで調べた音飛びの改善方法が、
自分の環境では原因として当てはまらなかっただけで効果が無いわけではなく、
また今回直ったWinodwsの標準サウンドを無効にする方法が
他の人の環境でも必ずしも効果があるわけではないことも書いておく。


原因はよく分からなかったものの
ASIOやWASAPIドライバの音飛びも直ったことで
これからブラウジングしながら良い音質で聞きまくれるので
良しとしておこう。直ってよかった。

CM

ユーザータグ: サウンドカード Windows7 ASIO WASAPI
関連記事
月替わりブログパーツ
プロフィール

Author:Enear

最新記事
Amazonピックアップ
検索フォーム
全記事表示リンク

全ての記事を表示する

カテゴリ
RSSリンク
ブログランキング