Windows Vista以降、新しく音声に関する機能「WASAPI」が登場しました。
「Windows Audio Session API」の略称で、DirectSoundに代わり様々なオーディオ処理を担当してくれています。Windows Vista以降ではこちらの方がメインの機能なので、できればiTunes等も「WASAPI」による再生に変えた方が余計な処理も発生せず音楽の劣化も少し無くなるかもしれません。
iTunesの標準は「DirectSound」になっているので、これを「WASAPI」に変更する方法を紹介します。
Windows Audio Session API
「Windows Audio Session API」、通称「WASAPI(ワサピ)」と呼ばれているこのAPIはWindows Vista以降のOSに標準搭載されています。
このWASAPIはVista以降にしか搭載されていないのでXP等では利用できません。
OS標準の機能のため、こちらで特別なドライバなどを用意する必要はありません。ただし、WASAPIを使うにはデバイスとソフトウェア側の対応がなされていることが必要です。「共有モード」と「排他モード」の2種類があり、最新のiTunesは「WASAPI共有モード」のみ対応しています。
WASAPIでは、オーディオに関する様々な処理をユーザーモードで実行しています。
主な機能は下記の通りです。
- 複数のアプリケーションが鳴らす音を合成(ミックス)して出力する。(ミキシング)
- 各アプリケーションが鳴らす音の音量調整。
- サンプリングレートなどの調整。(リサンプリング)
- 各種エフェクト(APO)処理。
- etc
XP以前では「DirectSound」や「カーネルミキサー」がオーディオに関する処理をやっていました。
WASAPIはこれを元に改良を加え、様々な新機能を搭載しました。「DirectSound」はVista以降も利用可能ですが、WASAPIインターフェイスを用いてエミュレーションされているだけらしいので、できればWASAPIに切り替えたほうが音質の劣化が少なくなるかもしれません。
詳細は別記事にて書いておりますので参考にどうぞ。
ただし、再生ソフトは「foobar2000」でWASAPIも「排他モード」の解説になっています。
ブログ内リンク:WASAPI 排他モード – foobar2000でさらなる音質向上を目指してみよう
共有モード と 排他モード
WASAPIには「共有モード」と「排他モード」の2種類があります。
詳細は先程のリンク先に書いてありますので省きますが、共有モードでは「オーディオエンジン」と呼ばれる箇所を音声データ通り、音の合成である「ミキシング」やサンプリングレートの調整(リサンプリング)などをやってくれます。通常はこちらがデフォルトで、これがないと複数のアプリケーション(Windows自体も含む)が鳴らす音声を同時出力できません。iTunesは共有モードのみサポートしています。
排他モードは、共有モードで通るはずの「オーディオエンジン」をバイパス(迂回)した経路を音声データが通ります。これにより、様々な合成や調整・エフェクト処理が無くなり、純粋な音声データを外部のハードウェアへ送ることが可能になっています。その代わり、ミキシングもしなくなるので排他モードで動作しているアプリケーション以外の音声はすべてキャンセルされることになります。音声は1つのみに絞られるわけです。
▲出典:楽しいハック講座 (4) Windows7 オーディオアーキテクチャの概要」
XP時代のメインであった「DirectSound」は、WASAPIインターフェイスを用いてエミュレーションされている状態になりました。上図の「従来のアプリケーション」の右側にありますね。DirectSoundを通す設定をすると、これを一度通してから WASAPI 共有モード でまとめられるので、「共有モード WASAPI アプリケーション」から通すより処理が多くなってしまっています。
音声経路はできるだけ少ないほうが劣化も少なくなる(劣化する可能性を減らす)ので、できればWASAPIを使ったほうが音質的によいと言われています。
iTunesは「共有モード」のみサポート
先ほどから赤字で何度も書いていますが、iTunesは「WASAPI 共有モード」のみサポートしています。
少し記憶が曖昧ですが、iTunes Ver.9 あたりからサポートし始められました。ネット上では「WASAPIにすると音質が良くなる」という話が多くあります。DirectSoundを通さない点では確かに余計な処理が入りませんから少し音質が良くなるかもしれませんが、共有モードでは排他モードほどの効果はありません。結局オーディオエンジンを通るからです。
iTunesでは「Windows Audio Session」という項目が追加され、これが「排他モード」であると勘違いされている方が多いですが、これは「共有モード」ですのでお間違いにならないよう気をつけてください。試しに、WASAPIに設定した後にiTunes以外のアプリケーションの音声を鳴らしてみてください。双方の音がなるはずですので、排他モードではなく共有モードで再生されていることがわかります。
設定方法
長々と解説しましたが、本題「iTunesでWASAPI共有モードに設定する」方法を紹介します。
「再生」タブから「オーディオの再生方法」を「Windows Audio Session」に変更します。
これで完了です。設定変更後はiTunesの再起動が必要なので、「OK」をクリックしたらiTunesを再起動させます。
因みに、「オーディオ再生のビットレート」と「オーディオ再生の B/SMPL」という設定もありますが、こちらは再生している音源やハードウェア(ヘッドフォンやアンプ等)が対応していないと意味ないことも多いのでそのままでよいでしょう。わかっている方は音源やハードウェアに合わせて値を上げるとよい音で音楽が聴けると思います。アンプなどのハードウェアが「24bit」での再生に対応していれば「24」と設定します。Windows側のサウンド設定も一緒に合わせておきましょう。
値を変更する場合は、Windows側で共有モードの設定を合わせておくことを忘れずに。
変更方法は下記の「手順③」以降を参照。
通常はこれで設定は終わりですが、古いiTunes( iTunes 10.5 以前)やQuickTimeを必要とするコンテンツがある場合はQuickTimeでの設定が必要です。これは、iTunesがQuickTimeを通して音楽を再生するからです。(古いiTunesではiTunes側で「Windows Audio Session」の設定がないと思いますが)
2016年4月、QuickTimeを開発・提供しているAppleより、「QuickTime 7 for Windows」のサポートを終了したと告知がありました。すでに脆弱性などが発見されていますが、今度修正などはされない状態となります。これに対してAppleではWindows環境に置けるQuickTimeのアンインストールを推奨しています。
Apple、QuickTime for Windowsのサポート終了を正式に告知していたことが判明 -INTERNET Watch
http://internet.watch.impress.co.jp/docs/news/20160428_755761.html
QuickTimeで「Windows Audio Session」を選択すると「サウンド出力」がグレーアウトして設定不可になったかと思います。これはQuickTimeでの設定ではなくWindowsでの設定を優先するようになったからです。Windows側での設定は以下のようにします。
タスクバー右下にある「音量アイコン」を右クリックして「再生デバイス」を選択します。
「詳細」タブへ移動します。ここの「規定の形式」から共有モードの設定が可能です。
お使いのハードウェアに合わせて設定してみましょう。無闇に高い値を設定してもハードウェアが対応していなければ音が出なかったりノイズが乗ったりするので注意。「テスト」ボタンで音声が鳴るかどうか確認しましょう。ただ、特殊なCDや音楽データ(所謂ハイレゾというやつ)でない限り現在の主流は「16bit、44100Hz」、DVDなどでも「16bit、48000Hz」ですからそこまで気にしなくても大丈夫です。
最終的に共有モードで出力されるデータはここで設定したものになります。iTunes側でビット深度やサンプルレートを変更した場合は、こちらも一緒に設定を合わせておかないとリサンプリング等をされてしまい思った通りのデータが出力されません。
設定が終わったら「OK」をクリックして閉じます。
まとめ
以上、これでiTunesの再生方法を「WASAPI 共有モード」にする方法の紹介は終わりです。
これでDirectSoundを通さない処理になるはずです。これで音質が劇的によくなるかというと、共有モードですからそんなに改善するわけではありません。正直、私の耳ではその違いを聴き取ることはできなかったです。ただ、悪くなる方向へはいかないはずですし、エミュレートされているDirectSoundを通すよりかは処理も軽くなるはずですので、できればWASAPIを使用された方が良いかと思われます。
おまじない程度のものですが、減るものでもないので一度試してみてください。
コメント
コメント欄を開く
コメント一覧 (1件)
大変参考になりました。これからもよろしくお願いします。