WASAPIの共有モードを試す

closeこの記事は 6 年 6 ヶ月 27 日前に投稿されたものです。最近の記事内容との齟齬がある場合,リンク切れが頻発している場合がありますが,ご了承下さい。

 Windows Vista/7から,WASAPIというものが実装されました。WASAPI概要と実際については下記のページで紹介されてますので,知らないよ&興味あるよという方はまずご覧ください。紹介させて頂きましたページにつきまして,この場を借りて御礼申し上げます。

http://turedure4410.blog32.fc2.com/blog-entry-388.html
http://community.phileweb.com/mypage/entry/643/20091212/

 さらに,技術的な内容については下記のページが参考になるかと思われます。
http://sfpg.seesaa.net/article/133011743.html

 Microsoftの解説はこちらが参考になりそうです。
http://support.microsoft.com/kb/925901/ja

▼事の発端
 Media Player 11で24bit 48kHz LPCMの音声が収録されている動画データを再生しようとしたところ映像は表示されるのに音声がでない症状に見舞われました。
 次に,この動画データをMedia Player Classic Home-Cinema(以下,「MPC HC」)で再生しようとしたのですが,今度は映像と音声が同期に失敗している感じで駒落ちしたみたいに…。なぜだー。

 そこで,MPC HCの設定を色々といじってみると,ffdshow audio decorderの音声出力を24bitに固定しないと24bit LPCMのデータはうまく再生できないようです。これでMPC HC側の問題はとりあえず解決。映像と音声がきちんと同期して駒落ちもなくなりました。

▼44.1kHz出力の謎
 ところが,今度は運良く(?)サブ用プリメインアンプR-K1000Nの表示は「44.1k」となっているのを発見w 48kHzサンプリングのデータなのに…。
 そこで,Lynxのミキサーを確認すると,こちらも何故か44100Hzという表示に。ソフト側の設定の問題はないはずなのに,何故?

▼WASAPIの「既定の形式」とは?
 結論からいえば,原因はOSの設定でした。
 拙宅で使っているWindows7ですと,オーディオデバイス(拙宅では「スピーカー」と表示)の「既定の形式」のところには,bit数とサンプリング周波数を選択するプルダウンメニューがあります。ここの設定が,16bit/44.1kHzになっていたのです。これを24bit/48kHzに設定変更したところ,R-K1000Nもきちんと48kと表示してくれました。もちろん,Lynxのミキサーも48000Hzに。

 Transitのドライバはこのあたりの表示が凄くプアなので,Transit USBの際にはほとんど気にしていなかったのが敗因なのですが,要するに,WASAPIを共有モードで動作させる場合の,PCからのデジタル出力の品質を決めるもののようです。別の言い方をすれば,「既定の形式」はカーネルミキサーからの出力品質を決めていることになります。
 したがって,WASAPIのフローチャートを見てもわかりますが,WASAPIであればどんな使い方をしてもバイナリ一致が保証されるわけではないのです。特に,共有モードではリサンプリングされる=バイナリ不一致の可能性があります。WASAPI全般のメリットとしては,低レイテンシ再生が可能になったと理解しておくべきでしょう。

 現状,Windowsで動画を再生するアプリケーションのほぼ全てはカーネルミキサーを経由しますから,せっかくの高音質音源が収録された動画であれば,適切なbit数とサンプリング周波数を設定しておくほうが,より高品位な再生を楽しむことが出来ると思います。
 また,音声再生アプリとしてはuLilithがWASAPIの排他モードで動くようですが,一般的に排他モードで動作するアプリは極めて少ないと思われます。WASAPIに対応していると書いてあるからといって,これを過信せず,排他モードであるか確認することが必要でしょう(iTunesは共有モードで動作します)。

 以上,WASAPI使いこなし?でした。PCオーディオはマシン環境次第なところもありますから,あくまでWindows7 Home Ultimate+Lynx L22デジタル出力での事例です。皆様の環境でも追試していただけますと幸いです。

WASAPIの共有モードを試す」への1件のフィードバック

  1. 木本 猛

    RMEのDAC Fireface UCを使い始めたところですが、設定に難渋して中々ちゃんと動かず苦労していました。この記事に出会って、疑問の一つが解けた感じです。

    返信

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title="" ktai=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <img localsrc="" alt="">