スポンサーサイト
--.--.-- | スポンサー広告
新しい記事を書く事で広告が消せます。
2007.10.09 | PC関連
0 Comments前回のサウンドカードいじりの続きです。
結局のところ、前回の方法では解決しませんでした。
そもそも、音とびといっても他の方に起こっている問題と違うんじゃないかということで、状況の整理から。
・foobar2000やWinampなどで音楽を再生中に、同時起動しているゲームの効果音が鳴ると音飛びする
・音楽を再生している状態で、ゲーム以外での高負荷時には音とびしない
・kakaku.comのクチコミにあったような、NICが悪さしてるということでもなかった(症状変わらず)
1点目と2点目の違いは、音を鳴らそうとしてるかどうかの違いです。たぶん。
ミキシングの部分で何か悪さしてるんじゃないかと思い、そこから思い当たったのは、再生してる音楽(以下foobarと記載)と効果音のサンプリングレートの違いです(ちょっと飛躍してますが)。
foobar側は44.1kHzのmp3、ゲームの効果音は48kHzでした。サウンドカード側の出力設定はサンプリングレートを44.1kHz固定にして出力するようにしています(48kHzで出したくないから)。
もしかしたら、効果音を鳴らそうとするタイミングで44.1kHzへのリサンプリングが入り、それから出力しようとするので、一瞬出力が止まるのかなぁと。
(どこでリサンプリングが入ったりするのかもわかりませんが、チップじゃなくてOS側?)
試しに44.1kHzのソースと48kHzのソースを別々のプレーヤでかけてみて、音とびするかどうかやってみました。
■プレーヤ1での再生中に、プレーヤ2で再生開始
・プレーヤ1=44.1kHz、プレーヤ2=44.1kHz → 問題なし
・プレーヤ1=44.1kHz、プレーヤ2=48kHz → 再生開始時に音とび、その後問題なし
何度か試しましたが、どうやらこれのようです。
うちの環境では、「違うサンプリングレートのソースを鳴らそうとしたタイミングで音が飛ぶ」という結果。
ハードウェアミキサーが付いてないとはいえ、こういうのってどうにかできないもんなんだろうか……。
ゲームやってる最中に音とびさせたくないなら、サウンドカード出力を48kHz固定にして、foobar側でも48kHzリサンプリングを事前にやっておけば、効果音が鳴るタイミングでも音とびしなくなりました。とはいえ、48kHzで使うなら別にLive!+kXドライバでもよかったくらいなんで、結局音とびを我慢して44.1kHz固定で使うことにしました。
一応解決というか、原因は分かったわけだけど……うーん。
環境は以前書いたように、ONKYOのSE-150PCI(Envy24HTチップ搭載)で、ドライバはVIAのドライバ5.20bです。DirectXは9.0c(August2007版)。
この環境で、DirectSound出力にしたプレーヤ2つを使って音楽を再生させた場合、ミキシングそしてリサンプリングはどこで行われるのか?
・DirectSoundでミキシング(orリサンプリング)
・Envy24HTのドライバでミキシング(orリサンプリング)
・Windowsのカーネルミキサーでミキシング(orリサンプリング)
・Envy24HTチップでミキシング(orリサンプリング)
こういう仕組みが解説されてるサイトってないかなー。
MMEとWDMの違いもいまいちよく理解できません。MMEがOS側でWDMがドライバ側?