前回の記事で特定の条件可の下、残念なジッターノイズが入ることを書きました。スピーカーならそこまで気にしないレベルかもしれませんがヘッドホンの場合は耳が痛くなるほど直に衝撃が来るので何とかしてなくしたい!、とがんばってみました。

疑ったのはiTunesの再生サウンドバッファの状態、というかiTunesの再生プロパティを選んでもバッファサイズが変更できないぢゃん!、という残念な子でした。バッファサイズが選べないのであれば再生方式をDirectSoundからWASAPI (Windows Audio Session API)に変更してみようと。これが最悪の始まりでした。

WASAPI Wiki (概要、最終更新 2014年5月16日 (金) 11:08)より引用

WASAPIはOS側の機能であるため、基本的にどのようなサウンドデバイスでも利用することができるが、使用するアプリケーションがWASAPIに対応している必要がある。

Windows XPではオーディオパイプラインの大半がカーネルモードに存在していたが、WASAPIではこれをユーザーモードに移動した。これによって例えばエフェクト処理で致命的な問題が発生した場合、Windows XP では OSがブルースクリーンとなるが、Windows Vista以降ではオーディオサービス(audiosrv)やオーディオエンジン(audiodg)が異常終了するだけでOS全体には影響がないようになっている。

と見た限り非常に素晴らしいものです、では早速設定してみましょう。iTunes12系であれば『オーディオの再生方法』タブから『Windows Audio Session』を選択するだけです。

20141124_itunes_wasapi

iTunesアプリ再起動後に有効になるらしいので、終了して起動すると・・・・起動しない orz

詳細は不明ですがiTunes12 + WASAPI + Windows 2012 Serverとの相性がよろしくないようです。ググった限りではiTunes12 + WASAPIの状態で起動ができなくなる(=プロセスが一瞬で死滅する)報告は特に見受けられませんので。更に厄介な事にiTunes12をアンインストールしてもWASAPI設定が残っていてどうにも起動できないらしい・・・。

色々調べた結果、個人設定ファイルはiTunes12アンインストールでは削除されることが無く『%USERPROFILE%\AppData\Local\Apple Computer\iTunes\iTunesPrefs.xml』に保存されているようで。

20141124_itunes_reset

取りあえずiTunesの復旧は事なきを得ましたが、問題のジッターノイズは解消されていません。

そうなるとプレイヤーそのものを変えるしか手段が無いという事で・・・、あまりWindows Server上のホストOS側にソフトウェアを入れたくはないのですがKORG Player (AudioGate 3)をインストールしました。こちらはe-onkyoで購入した閃の軌跡2のFLAC再生でお世話になっているソフトウェアです。

再生方法は私の環境で DirectSound / WASAPI / ASIO の3種類が選択可能で当然ASIOの選択以外は選ぶ余地はありません。

ちなみに、WASAPI同様に ASIO Wiki(概要部、最終更新 2014年9月23日 (火) 11:31)より引用

ASIOは、ドイツスタインバーグによりオーディオを入出力するためのアプリケーション用APIとして提供された規格であり、今日販売されている高級オーディオカードの多くがこの規格に準拠し、Windows用およびMac OS用のドライバも存在し、ほぼ業界標準として採用されている。Mac OS XCore Audioはこれと同等の技術とされる

というわけで、とっても良さそうな感じです。KORGの設定も再生周波数のボタンを押せばOK。

20141124_korg_asio

ドライバの種類でASIOを選択すれば問答無用で48.0KHz / 2400サンプルになるはずです。そして肝心の結果は、ジッターノイズが発生しなくなりました

というわけで問題が一見解決したような感じですが、私の音源の殆どがCDからインポートしたm4a(ALAC: Apple Lossless Audio Codec)で、これがKORGでは再生できないようです。FLACにするというのも手ですが、ALAC/FLACの二重管理は面倒なので何か良い手段が無いかな・・・・。

最後に、KORGで全く問題が無かったかというとそういうわけでもなくて、、、AudioGate3が一度不安定になって且つ、アプリが起動しなくなったのでサービス上のAudioGateをプロセス終了させたらSYSTEM_SERVICE_EXCEPTIONのBSoD(Blue Screen of Death)が発生。ASIOがカーネル経由で直接ソフトウェア音源を再生するっぽい流れなのですが、そのメインプロセスが急に死んだらカーネルも落ちますよね。。。

より良いパフォーマンスを求めるためにはハードウェアへの直接アクセスは必要かもしれませんが、こうやってみるとカーネル保護って偉大ですよね。