foobar2000でwebRADIOを聴く

Webradio.jpg
 Venice Classic Radio Italiaを聴いている画面です。
 いまさら~と、言う話だと思いますが、例のfoobar2000でWebRADIOを簡単に聴くことが出来ます。

 方法は、volumioのwebRADIOのフォルダー内にある「Venice Classic Radio Italia.pls」をドラッグ&ドロップするのが、一番簡単です。
dial.jpg

 VeniceClassicRadioItalia.pls
中身は、以下の項目で、構成されています。
[playlist]
numberofentries=1
File1=http://174.36.206.197:8000
Title1=(#1 - 347/1000) Venice Classic Radio Italia

 一日中、好きな音楽を聴くことが出来ます。
 とかく手持ちの音源のみを聴いていると、視野(聴野)が狭くなるので、webRADIOとか、BS放送は良いと思います。


PCオーディオとMMCSS

 オーディオに特化したPCの設定を考えてみます。
 PCの電源をスイッチングから、シリーズにする、ハードディスクをSSDに換装する、各種ボードの冷却ファンの電源を外部から得る等々、力技による方法が主流で、これも極めて重要ですが、ここでは、ハードに手を加えずして、音楽再生環境のオプティマイズについて考えて見ます。

PCをオーディオ環境で、使用する場合の最低限配慮すべき点をあげて見ます。
1.メール、Webブラーザーは使わない、又、サービスを停止する。
  但し、WindowsUpdate、ドライバーの更新等、保守時は除く。
2.ASIO以外のサウンド、ビデオ機能を無効化する。
3.ブラーザーを停止した事を条件に、ウイルス・ワクチンソフトを停止する。
4.Microsoft Windows Updateを自動からマニュアル起動に変更する。
5.リモート・ディスクトップで、マウス、キィーボードによるインターラプトを減らす。
6.タイム・イニシエートで動作する保守系のソフトを停止する。
7.MMCSS(Multimedia Class Scheduler Service)を有効にする。
8.仮想メモリーを無くして、メモリー不足時のステージング機能を停止する。

そこでMMCSSの効果について考えて見ます。
MMCSSについては、マイクロソフト社から以下の様に情報開示があります。
URL: Multimedia Class Scheduler Service

 Windowsの基本的な処理は、CPUコアー#0で行います。それに対して、音楽再生ソフト等、アプリケーションは、#0がビジーな時は、#1、#2、#3と順番に処理をシフトする事により、特定のCPUコアーに負荷が集中しないように分散して、スループットの向上が図られます。
 そこで、対策としては、音楽再生に関する処理は、逆にCPUコアー#0から限りなく離れたCPUで処理して、可能な限りインタラプトの機会が少ないCPUで処理する事が望ましいと言えます。
 実は、その方法を実現する為に、MMCSSの設定が存在するのです。
 これにより、CPUコアのユーティライゼーションの平準化と、インターラプト頻度の低減が実現します。

 対処の結果、肝心の音は、音場感が増して、スッキリした音になります。
 これは、クロックの確度を向上して、低位相雑音の環境が実現した時と似た現象に思えます。
 
●foobar2000で、処理の優先順位の指定でMMCSSに関する項目があります。
MMCSS.jpg

●FirefaceのUSB SettingsにEnable MMCSS for ASIOという項目があります。
 この機能を有効にすると、高負荷環境時でもサウンド処理が優先されます。
USB.jpg

 上記の様にRMEのASIOドライバーでMMCSSを指定すると、ASIOがCPU#1で稼働します。又、foobar2000でMMCSSを指定する事により、foobar2000もCPU#3で稼働します。これにより、サウンド機能が安定して稼働する環境が整います。
 以下がその実例です。
asio.jpg

●ASIOとWASAPI環境
 WASAPIに関する定義で、High worker Process Priortyという項目がありますが、ASIOの場合この項目にレ点を入れるとWindowsのオーバヘッドが増えて、ASIOのバッファリングが上手く行きません。
 この項目は必要性が無い限りOnとしない方が幸せになります。
 WASAPING.jpg

●設定項目の基本
 設定して効果が見られない場合は、必ず基に戻して下さい。
 必要で無い時は、基本的にオリジナルのまま、これが原則です。 

 マルチアンプの音量調整その1

RME_convert_20141027000518.jpg
 音楽プレーヤfoobar2000とRME TotalMIXの画面です、firefaceがフルスイングに近い状態で使われています。
 アナログ出力のメイン・スライダーを、0dBまでレベルを上げています。(左の矢印)

 デジタルチャンデバの音量調整は、なかなか悩ましい問題が山積しています。
 私の解決方法は、RMEのfirefaceのアナログ出力スライダーの連動機能に委ねています。
 firefaceのアナログ出力スライダーLow、Mid、High、をグループ設定を行うことにより、出力チャネルが連動して、デジタル・ボリュームとして動作します。(右の矢印)
 ここで重要なことは、TotalMIXというRMEの制御プログラムを使うことにより、音量を絞った時のビット落ちによる、情報欠落を最小にする事が出来るのです。

 RMEのTotalMIXの場合、内部処理が、フローティング・ポイント46ビットで処理を行っています。それと比べてANALOG DEVICESのSHARCを用いているベリンガー DCX2496(ADSP-21065)、同様にアキュフェーズ DF-55(ADSP-21363)、DEQX等は、仮数部32ビット、指数部8ビットの単精度浮動小数点数 (Single precision floating point number)で処理を行った後、アナログ出力のレンダリングを行うため、ビットシフトによる音量調整を行うと、圧倒的に処理する情報量が減少します。

 そこで、Mainの出力スライダーを0dBとしたとき、最適な音量となる様に、firefaceとパワーアンプのゲイン調整を固定抵抗のアッテネータでの調整が必要となります。

 IEEE 754(IEEE 浮動小数点数演算標準)で定められている様に、単精度浮動小数点数は、固定小数点数に比べてより広範囲な数値を表せるようになっていますが、同時に精度を犠牲にしています。精度を少しでも上げるために、RMEのTotalMIXは、46ビットの浮動小数点の演算を行い、ビット落ちを避けています。
 firefaceの音が良いとされている一つの要因であると思います。

 このデジタル・ボリューム機能を、積極的に使わない手は、無いと思うのですが・・・・・