WASAPIおそるべし

09/09/26初稿

■ビットパーフェクトが基本じゃなきゃヤダ

 PC-Audioするにあたっては、まずはDigitalデータを「ビットパーフェクト(Bit Perfect)」でPCから出力できないことには始まりません。何らかの演算が入ってしまうと、その性能で音質が支配されてしまうためです。

 また、ユーザが意図しない・把握できない演算は、OSやアプリのバージョン違いで処理内容が変わってもそれを知る術がありません。
 下流でいろいろチューニングしても、出力データ品質が一定でないと何をやってるのか判らなくなりますよね。
 論点は「ビットパーフェクトならいい音なのか」ではないと思っています。

 さて、その観点では、OSのサウンドAPIが大変重要になってくるワケですが、WindowsVistaから搭載されている「WASAPI(Windows Audio Session API)」をご存じですか?
 悪名高いXPまでのカーネルミキサを使ったAPIに代わるもので、ASIOと同じような機能性能を持っているらしいです(いわゆるビットパーフェクト出力が可能)。ただし「排他モード」の場合です。「共有モード」は従来通りOSのサウンドエンジンを通ります。
 WASAPI排他モード出力のビットパーフェクト性については確認実験してありますので、よろしければ合わせてご覧ください。

 排他WASAPIは「OS標準API」ってところがミソです。
 ゆえにASIOと違って「対応ハードウェアを選びません」が、逆に「Player側が、使えるAPIとして排他WASAPIに対応している必要」があります。

 現時点ではuLilithやfoobar2000で対応してます(β版レベルですが)。
 とりあえずとっかかりは純国産でフリーウェアで何もしなくても排他WASAPIが使えるuLilithをオススメします。

#ただし、Core2用じゃないとWASAPI対応してないらしいのでご注意を。
 10/07/24追記:非Core2版の10/06/06バージョンを915GMのM/B(DothanはSSE2まで)のWin7-32bit上にインストールしてみたら排他WASAPI使えました。

 なお、VistaではSP1以降じゃないとマトモに動かないとか、Win7ではさらに改良されている(イベント駆動対応追加など)といったWindowsバージョンによる違いもあるようです。


 排他WASAPIは、とにかく恐ろしいほどの正確さで鳴ります。通常のCDプレーヤで鳴らす音とは一聴して違いが分かると思います。
 uLilithで「排他WASAPI」と「DirectSound」のAPIだけを切り替えて聴き比べてみると、排他WASAPIでは細かい音がこれでもかというくらい聴こえてくるようになるため、それまで聞こえなかった楽器が聴こえ、チャンネルセパレーションが向上してステレオ感が増し、空間表現が深くなります。

 メジャーなPlayerソフトが対応したらPC-Audioのものすごいコストパフォーマンスが知られ、いろんな変化が起こるような気がしてます。iTunesは無理っぽいけど本家WMPはもしかして?
 10/04/19追記:↑と書いてたら、iTunes(というかPlayer本体のQuickTime)でのWASAPI対応が始まってるみたいですね。ただ、今のところ「32bit版しかない」&「排他モードではなく共有モード」のようですが。
 13/01/13追記:ウワサではQuickTime7.6.9から64bit対応したようです。7.7.3で確認しました。共有モードだけ、のままですけれど。

 もちろん、PC-Audioと言ってもちゃんとチューニングしないといい音で鳴らないのは普通のAudioと同じです(特にDACを含むアナログ段)。


■WASAPI排他モード対応プレーヤ

 10/10/02追記:排他WASAPI対応プレーヤソフト、上記以外で私が知ってるもの(基本フリーのもの)を一覧しておきます。もちろんこれで全部じゃないと思いますけれど。

・XMPlay
  排他モードかどうか未確認。ですが項末追記参照。

・PlayWASAPI
  Windowsのボリューム効かなかったので排他モードらしい。
  uLilithとの音質差は感じられず。

・cMP
  本格導入してませんが、Explorerの手動OFFとcMPでのOFFで
  違いは感じられず。

・PlayPcmWin
  試してません。メモリ食うそうなので…
  RecPcmWinという排他WASAPI録音ソフトもあって実験に便利です。

・J.River Media Center 15(JRMC15)
  フリーウェアじゃないですけど。Music TO GO!さんに詳しい。
  ちなみにフリーのJRiver JukeBox14はWASAPI非対応でした。

・HQ Player
  排他モード対応だそうな。フリーウェアじゃないですけど。
  Music TO GO!さんに詳しい。

・MusicBee
  排他モード対応らしい。Rippingも出来るそうな。

・PhilePlayer
  11/08/23追記。

・Wave Pcm Upconvert Player
  11/09/19追記。リアルタイムアップコンバータです。
  イベント排他対応。

・MediaMonkey
  11/11/27追記:排他モード対応。64bit版あり。

・WaveSpectra
  12/03/11追記:かの有名なFFT解析フリーソフトが1.50から対応。
  排他専用、イベント・タイマー両対応。

・ありぱぱプレーヤ
  13/02/03追記:排他モード対応。

・PowerDVD14
  14/04/09追記:なんとPowerDVDが排他WASAPIに対応だそうな。
  もちろん市販品。

・TuneBrowser
  15/09/14追記:排他モード対応。push/event両対応。64bit版あり。

・Music Center for PC
  17/09/12追記:SONY謹製ソフトが排他モード対応。SONY製品じゃなくても鳴らせる。
  なんとASIOにも対応!

 13/06/26追記:「Un4seen」というAudioライブラリ開発プロジェクトがあり、排他WASAPIにも対応しているようです。「XMPlay」が当該プロジェクトの“純正”プレーヤに当たるようですね。
 それを用いたプレーヤは排他WASPI対応になりえるということで、上にも挙げたMusicBeeの他、Fittle-f4b24、Luteaといったソフトも存在するようです。


■排他WASAPI VS PDAP

 カーネルミキサを経由しない独自システムとして、ONKYOが提供しているのが「PDAP」です。
 そのPDAPを搭載したHDC-1LというPCがありますが、インストールされているPDAP用プレーヤのPureSpaceって、出力USBデバイスを選択できるんですよ。
 なので、PDAPでHDC-1L内蔵サウンドボード(内部USB接続&Outputはアナログのみ)以外にUSB接続で外部のUSB-DDCを鳴らすことも可能になります。つまり、同じ外付けUSB-DDCに対してPDAPと排他WASAPIの「API的な意味での音質比較」が出来るということです。

 ということで実現する標題の夢の対決。外付けUSB-DDCには同じくONKYO製のSE-U55SXを使います。OSとAPIとプレーヤソフトを変える以外、ハードウェア的には全く同じ状態での比較となります。

 あくまでも
「HDC-1L標準いろいろ入りXP上のPDAPのPureSpace→SE-U55SX」と、
「HDC-1LにクリーンインストールしたWin7RC(32bit)上の排他WASAPIのuLilith→SE-U55SX」の勝負となりますけれど。

 …明らかに「排他WASAPIのuLilith」の勝ちでした。

 ただし、OS自体の差、USBドライバの差、などなどAPI&プレーヤソフト以外の要因もいろいろ考えられることを付記しておきます。


■Windowsのサンプリングレート対応

 OSバージョンによって対応しているサンプリング周波数は結構違うらしい。
 例えばONKYOサイトのSE-90PCIやSE-200PCI(2000,XP,Vistaまで対応している)製品説明ページによると、90PCIとしての対応サンプリング周波数32/44.1/48/88.2/96/176.4/192kHzのうち、

・Windows2000…32/44.1/48/88.2/96/176.4/192kHz
・WindowsVista…32/44.1/48/88.2/96/176.4/192kHz

だそうな。つまり持ってるスペック全部対応できるのはXPだけってこと。
 おそらくVistaとWin7は同等と推定されます。
 XPじゃWASAPI使えないから、ERI的PC-Audioでは32/88.2/176.4kHzは諦める必要があります(32kHzはいいとして)。

 176.4kHz(CDの4倍サンプリング)や192kHzは必須じゃない(というかそれが意味があるレベルまで使いこなす自信ないッス)と思いますけど、CDの2倍サンプリングになる88.2kHzは対応してて欲しかったところ。
 何故って、CDからRippingしたソースをPCでUpSamplingしたファイル作っても、96や192kHzにReSamplingされちゃうワケだからちょっとキモチワルイです。
 まあ、実害はないですけど、なんで44.1kHz系の対応を切っちゃったんだろうなぁ。

 10/10/30追記:と書きながら、この制限は共有モードにおけるミキサの仕様なんじゃないかと思ったりする今日このごろ。WASAPI排他モードは制約受ける理由がないような気がするからです。
 で、Clarkdaleで組んだPC(Windows7)で実験してみたところ、各再生デバイスの「共有モードで使用されるサンプルレート」プロパティでは

・オンボードサウンド(Realtek ALC892)
   16bit:44.1/48/96/192
   24bit:44.1/48/96/192

・PCIカードSE-90PCI(VIA Envy24MT)
   16bit:44.1/48/96/192 (Win7用ではVistaにあった88.2と176.4は出ない?)
   24bit:44.1/48/96/192
 *:プロパティに表示されるのはユーティリティで設定した1モードのみ

・USB-DACのSE-U55SX
   16bit:44.1/48/96
   24bit:44.1/48/96

・DSP-Z7と接続したHDMI
   16bit:32/44.1/48/88.2/96/174.6/192
   24bit:44.1/48/96/192

が可能なようです。

 あれ~? HDMIの16bitには32や88.2や176.4があります。ということは共有モードの制約でもないようですねぇ。uLilithの排他WASAPIモードでの使用できるフォーマット確認の内容とも一致しますし… VIAやRealtekのサウンドチップ用ドライバはOS標準じゃないのでドライバ側の制約じゃないだろうし… U55SXで192ができないのはUSB-Audio class1.0の仕様ですよね。

 HDMI-Audioなら88.2や176.4もイケるの不思議だなぁ。16bitだけですが出来るだけめっけもの。実際、UpSamplingソフトで作ったWAVファイル、uLilithからの排他WASAPI経由のHDMI出力がDSP-Z7の表示で88.2kHzとなったのは確認しました。
 さらにあれ~? このファイル、24bitのハズなんだけど…

 HDMIの詳細はHDMI-Audioの可能性を考えた記事にて。


■PC-Audioと排他WASAPIとファイル再生と

 ちなみに当Blogで記す「PC-Audio」とは、PCを使った(ファイル再生を中心とした)プレーヤを組み込んだAudioシステムのことを指しています。具体的に言うと、CDプレーヤの代わりにPCプレーヤを使ったAudioシステムのこと。決してPCの光OUTをアクティブスピーカで鳴らすことを言っているワケではありません。

 もしかして「PC-Audio」じゃなくて「PCオーディオ」って言った方がいいのかな? それとも「HD-Audio」とか「File再生」?
 いずれにしても「余ってるPCを使って投資しないでそれなりの高音質」じゃなく、従来のディスクプレーヤシステムに替わるプレーヤシステムとして正当な投資をして高音質を目指すものです。だってコストパフォーマンスはバツグンによさそうだし、“いじくる”ポイントが多くて楽しい(苦しい?(笑))ですし。

 WASAPIにまでは触れていませんが、PC-Audioとはなんぞやの入門編としてはこれなんかいいと思います。



 記事内容には異論あるところもありますけど(笑)。
 でも売り切れ。なので新刊でました。



 編集後記にも書いてある通り、前号が売り切れたので解説記事などは重複するところも多くなっています。が、逆に前号買い損ねた人にはいいかも。
 Microsoftの方にWASAPIについてインタビューしてる記事が役に立つかな。
 ちなみに上記に関連した内容は、MS社のMultimediaサポートチームのBlogという「楽しいハック講座 (4) Windows7 オーディオアーキテクチャの概要」(*)に技術的解説があります。

*:http://blogs.msdn.com/b/windows_multimedia_jp/archive/2010/06/28/4-windows7.aspx



 ↑こちらは10年10月発売の新書版です。
 WASAPIに限らず(ビットパーフェクトに拘らず?)幅広くPCを使ったオーディオが紹介されています。


メインメニューへ

テーマ : オーディオ
ジャンル : 趣味・実用

最新記事
ERIへようこそ

Author:らかせ
「最新記事」または
「メインメニュー」からどうぞ

・ファイルへの直接リンク以外はリンクフリー(連絡不要)です

・一応、拍手にコメント(非公開)付けられるようにしてあります

・DB的に利用しており、過去記事もガシガシ書き換えています。特に「最新記事」は初稿から一週間くらいは直してることが多く、大幅に変わっちゃうことも。ご了承ください

・ということもありますし、記すまでもないですが無断転載(ファイル含む)はご遠慮ください

・引用の考え方については「007:諸事」をご参照ください

・アフィリエイトはAmazonのみです

・ハイパーリンクは当Blog記事のみです(054:節電記事のみ例外)

カテゴリ
検索フォーム
FC2カウンター