NeiNeigh's blog

覚書のようなブログ.PC・アプリケーション・プログラミング・オーディオ・アニメ

WASAPIの共有モードでビットパーフェクトにするには!

f:id:NeiNeigh:20140226021524j:plain
WASAPIで排他モードなら確実にビットパーフェクトな出力になるが,共有モードだとそうはならない.その原因と解決策をちょっと調べたのでまとめる.
参考にしたこのページを完全に丸パクリしただけ.
このブログすごく面白かったです.
http://community.phileweb.com/mypage/entry/2721/20120826/32495/

原因

winでWASAPI共有モードで出力するときは2つの原因によってビットパーフェクトが達成されない可能性がある.

  • 1つ目はディザリング処理が行われる可能性があるため.これはwinの再生デバイスの設定から,24bit出力を選択しておけば起こらなくなる.
  • 2つ目はリミッタ処理が行われて量子化ビットが丸められる可能性があるという点.これは,OSのミキサーで2つ以上のアプリケーションが100%の音量で出力した場合に,許容範囲を超えて音割れしてしまうのを防ぐための処理だと考えられる.(排他モードなら1つの音しかこないからリミットする必要がない為この処理は行われない)音源(リニアPCM)の音量が98.5%ぐらいまでで収まるようなら,このリミッタは発動しないためビットパーフェクトになる.かも

解決策

以下の2点が満たされればビットパーフェクト!!!(?)

  • winの再生デバイスの設定から,24bit出力を選択しておく.
  • 音源(リニアPCM)の音量が限界値の98.5%ぐらいまでで収まるようなものにする.

まとめ

WASAPI排他モードもASIOも出来無いiTunesはゴミってこと.
でも音楽管理ソフトとしては優秀過ぎるから使うけどね!
bonjourもゴミだけど)