
我が車にネットワークオーディオを導入して1年が過ぎました。ラズパイのサーバーとAPUのレンダラー、USB-DACのシステムで安定稼働しています。
今回は遅ればせながら、高音質と評判のPC版lightMPD(lightMPD x86_64版)を試してみました。
lightMPDについては2019年6月のブログ「
ネットワークオーディオ自作(2)」をご覧ください。
【共通】音質のために高速CPUを使う意味
ネットワークオーディオも専用ハードやラズベリーパイのような低消費電力の機器で実現できるようになり、PCでなければ出来ないことは減ってきました。個人的にはいわゆる「PCオーディオ」はもはや主流ではないと思っていました。
ノイズ発生源のようなPCを今さらなぜオーディオに持ち込むのか。使い勝手だけでなく、実は音質面でも理由があります。ここは説明しておく必要があるでしょう。
lightMPDは当初ARM版からスタートしており、現在もラズパイなどシングルボードコンピュータ(SBC)で動作可能です。
音源ファイルのフォーマットをそのままビットパーフェクトにDACへ送出する場合、SBCの比較的控えめなCPUパワーでも十分です。
PC並みの演算能力が必要となるのは、サンプリングレート変換やDSD to PCM変換を行う場合で、FIRフィルターのパラメータ設定によってはSBCでは能力不足となり処理落ち=音切れが発生します。
公式サイトで作者さんがDSDを題材に解説していらっしゃいますが、SBCとしては比較的パワフルなAPUでも間に合わないようなフィルター処理を行うためにx86_64版を開発したとのこと。
DACの中で実行していた処理をソフトウェアで肩代わりする、しかも小さなシリコンでは不可能な複雑な処理に置き換えるというのは、大げさなCPUをオーディオに使う理由として納得できるものです。興味のある方はぜひ読んでみてください。
ビットパーフェクトがベストとは限らない、かもしれませんよ。
ハイパー大事なことなので1回しか言いません
【共通】システムプラン
以下はこれまでAPU2で構成していたシステムでの信号の流れです。
ハイレゾ音源はUSB-DAC/DDCのAT-HRD500まではネイティブ伝送とし、同軸デジタルはHRD500の内蔵サンプリングレートコンバーター(SRC)で48kHzに変換、アナログはハイレゾのままプロセッサーに入力していました。
今回はこうなります。同じ機能でそのまま置き換えることもできますが、面白くないので考え方をちょっと変えて導入します。
lightMPDでサンプリングレート変換およびDSD/PCM変換を行います。全て44.1kHzまたは48kHzのPCMとしてUSB出力するよう設定します。
退化してないかって?さぁどうでしょw
最終段のプロセッサーで44.1/48kHz処理になる自分のシステムでは、ハイレゾを持ち込むためCDフォーマットの処理に余計なプロセスが入っていました。44.1kHz専用にしてしまえばすっきりするのですが、今どきハイレゾ音源を聴けないのもちと辛い。システム内にサンプリングレート変換があるなら、そこにはフィルタリング処理があるはずで、ソフトウェア化による音質向上の余地があるのでは?と考えました。
設定ファイルの記述だけで上限を96kHzや192kHzにすることもでき、HELIXやBRAXなどハイレゾ対応プロセッサーに更新しても対応可能です。いや買い替えませんけど。
購入
lightMPDのx86_64版で動作確認がとれているハードウェアはLIVA ZおよびLattePandaです。購入前に調べてみたところ、LIVA Zの電源はDC19V、LattePandaの最新モデルは強制空冷で、どちらもカーオーディオには少し使いにくいと思ったので別の機種を探してみました。
lightMPDの公式サイトには、
「Liva、Lattepanda 以外の機種でもイーサネットコントローラに Realtek 8169PCIやIntel 82575/82576を使った機種なら動作する可能性はあります。(保証はできません)」
とあり、他にCPUが4コアであることが条件となります。
選定したのはこれ
HeroBox (CHUWI、写真左)
LIVA Zと同じ、手のひらサイズの「ミニPC」に分類される製品です。このところ多数発売されています。
右のAPUやCDケースと比べるとサイズ感がわかると思います。
ちょうどAmazonでタイムセールがあり2万円台前半で購入しました。海外発送の業者ならもう少し安く買えるようですが納期などとトレードオフになるのでお好みで。

ゲーミングPCのミニチュアみたいなデザインでカッコカワイイ?
上面のスリットから放熱します。完全ファンレスで無音動作です。
後面のインターフェースは左からDC12V、珍しいVGA、HDMI、LAN、USB2.0x2、オーディオ出力。LANが1系統なので、lightMPDの「最終形態」ともいえるイーサネット分離システムには使えません。

前面にはUSB Type-C、USB3.0x2、microSDスロット、電源スイッチがあります。

裏蓋を外すと2.5インチのSSD/HDDを増設できるようになっています。ファイルサーバーとかDaphile専用機にしてもよさそうです。RAMはオンボードで増設不可、起動用SSDはマザーボード表面にあるので全バラしないと拝めません。
HWiNFOでCPU情報を取得してみました。
CPUはCeleron N4100。セレロンブランドを名乗っているものの、開発コード「Gemini Lake」はAtomアーキテクチャ(第6世代)に属します。
4コア4スレッド、ベースクロック1.1GHz、ブースト時2.4GHz。メモリーは8GBデュアルチャネル、SSDはSATA接続のIntel製180GB。
(2020/10追記)現在出荷されているモデルは、SSDの容量が256GBに変更されています。

N4100の性能はAPU2のGX-412TCより高く、でも最新のデスクトップPC向けCPUと比べるようなものでもありません。
GX-412TCがデータベースになかったので、GX-412HCで代用しています。
ちょっと前のネットブックやスティックPCの進化形といったところでしょうか。YouTubeの動画再生程度なら普通にこなせますが、初回のWindows Updateは重かったです。

圧倒的な低消費電力。個人的にはTDPが100Wを超えるようなモンスターCPUより、こういう静かに頑張るのが好みなんです。
APU2の「次」として、まずまず適当なスペックかと思います。
なおTDPが6Wクラスで4コアのCPUとしては、同じAtomアーキテクチャで上位のPentium Silver N5000があり、このあたりも狙い目となります。
CeleronのJナンバーやPentium Gold、Coreブランドなら演算性能はもっと上がりますが、TDPも一段高くなり今回の条件(後述)である「PC全体で10W以下」が難しくなるため候補から外しています。

こちらはシステム情報。イーサネットのコントローラはRealtek製で、lightMPDの動作条件はクリアしていそうです。
【共通】インストール
lightMPDのバージョンは 1.2.0b2 を使いました。
ブートローダーのイメージは
公式サイト掲示板のスレッド
「LIVA Z,LattePanda用のlightMPDを公開しました」、
パッケージはスレッド
「x86_64版(旧LIVA Z,LattePanda版)のlightMPDをバージョンアップしました」
にあるのでそれぞれダウンロードします。
ブートローダーのイメージをUSBメモリーに書き込み、パッケージのzipを上書き展開。設定ファイルをテキストエディタで修正して完了です。
手順はAPU2とほとんど変わりませんので、その時の
ブログもご覧ください。
異なるのは、BIOSの「Secure Boot」オプションを無効にしておくこと。これを設定しないとUSBメモリーから起動できません。起動の優先順位を変更しておくことも忘れずに。
【共通】設定
/lightMPD/conf/upnpmode(UPnPのレンダラーとして使用するモード)のファイルを/lightMPDにコピー。
テキストエディタ(
TeraPadなど、文字コードUTF-8・改行コードLFに設定できるもの)で修正します。
/lightMPD/lightmpd.confの設定
ネットワーク関連の設定を自分の環境に合わせて修正します。
[network]
interface=eth0
address=192.168.1.93
gateway=192.168.1.1
netmask=255.255.255.0
nameserver=192.168.1.1
[ntp]
server=ntp.jst.mfeed.ad.jp
ntpd=no
timezone=Asia/Tokyo
/lightMPD/mpd.confの設定
オーディオ処理関連の設定をこちらで行います。
レート変換やDSD/PCM変換をせずビットパーフェクトで再生したい場合は以下の設定は不要です。DSDをDoP形式で出力する方法は
APUの時の設定をご覧ください。
拡張オーディオフォーマットの設定
非DSD音源のサンプリングレート変換規則を指定します。
Xに続く数字がアップコンバートの倍率、Lに続く数字がサンプリングレートの上限(44.1/48kHzに対する倍率)です。
倍率を1倍(アップコンバートしない)に、最高レートを44.1/48kHzに制限することにより、44.1/48kHzは無変換、88.2kHz以上は全てダウンコンバートさせます。
96kHzまで対応可能なシステムであれば"X1L2"(アップコンバートなし)または"X2L2"(アップコンバートあり)、192kHzまでであれば"X1L4"または"X4L4"のように設定します。
# extended audio format
audio_output_format "X1L1:24:2"
DSD to PCM変換を指定。
decoder {
plugin "dsf"
output "pcm"
}
decoder {
plugin "dsdiff"
output "pcm"
}
DSD to PCM変換のパラメータ設定
この設定では、2.8MHz、5.6MHz、11.2MHzのDSD音源に対してdsd2pcmで176.4kHzのPCMに変換、その後SoXリサンプラーで44.1kHzに変換させています。
0.27って何?サンプリングレートの変換比率からは想像できない数値が出てきました。これがフィルターのパラメータです。
ここをチューニングするには
フィルター特性や、
libsoxrに関する理解が必要です。適切か、また最適かどうかはまだわかりません。
dsd2pcm {
###### output : 44100 ######
# dsd2pcm + resampler
# dsd2pcm: 2822400 -> 176400(1/16) -> resampler -> 44100
dsd64 "44100:32:16:SOXR_COEF( 24, 0.27, 0.4, 50, 0, yes)"
# dsd2pcm: 5644800 -> 176400(1/32) -> resampler -> 44100
dsd128 "44100:32:32:SOXR_COEF( 24, 0.27, 0.5, 50, 0, yes)"
# dsd2pcm: 11289600 -> 176400(1/64) -> resampler -> 44100
dsd256 "44100:32:64:SOXR_COEF( 24, 0.27, 0.9, 50, 0, yes)"

システムの全景です。ラズパイのMinimServerとPCをルーターに接続。PCにUSB-DAC(DACモードにしたDAPで代用)を接続。ルーターにWi-Fi接続したスマホから、UPnPコントロールアプリ(BubbleDS)で再生します。
設定したUSBメモリーをPCに挿入して電源ON。意外にあっさり動いてくれました。一晩連続再生させてみましたが安定しているようです。
消費電力測定
HeroBoxは消費電力10W以下をうたっていますが、現代のCPUはちょっと負荷をかけた途端に電力が跳ね上がるので実際にはどんなものか。
車載にあたって、APUで導入したオーディオ用リニア電源の
UltraCap LPS-1.2 (UpTone Audio)
を使用したいので、その定格(DC12V 1.1A)内の電力で動作できるか確認してみます。
HeroBoxのDCプラグは外径5.5mm/内径2.5mmのセンタープラスでAPUと同じでした。電源ラインにワットチェッカーをはさんで計測します。
プリインストールされているWindows10では、起動時のピークで11W程度
起動完了後は3W程度に落ち着きました。
ベンチマークアプリ(PCMark 10)を動作させると、平均6~8W程度で推移しますが、ピークでは12Wを超えることもありました。
lightMPDでflac音源を再生させると6W前後、DSD/PCM変換再生させた時は10W程度となりました。

んー、ギリギリですなぁ。もう一声減らしたいところです。
Windowsをあきらめて、lightMPDでは使用しない内蔵SSDを取り外しました。
分解してマザーボードを取り出し、M.2スロットのSSDを撤去します。テープ貼りしてあるWi-Fiのアンテナなどを切らないよう注意。

やったぜ。
2Wほど消費電力が下がりDSD再生時でも8W程度になりました。(Wi-FiやBluetoothも外したかったのですがオンボード接続になっていて無理でした。)
今回はここまで。
なんとかリニア電源で駆動できそうなので、車載にトライしてみたいと思います。
ぬかったなぁ・・・
電源をつなげば即ブートするSBCと違って、12Vを供給しても電源スイッチを押さないと起動してくれません。ちゃんとしたPCらしいというか。
たいていはBIOSのAdvancedメニューにその設定があって、中華系PCならメニューは全開放されているだろうと踏んでいた(実際そういうレビューもネット上にはあった)のですが、自分が購入した製品ではAdvancedメニューは表示されませんでした。
車載では手の届くところに置けるとは限らずこれは痛い。なんだか最終コーナーでミスった気分です。無念。悔しい。ムキーーーッ!
・・・冷静になってBIOS設定を眺めたら幸いWOL(Wake On LAN)機能があったので、ワンアクション増えますがそっちで起動させるつもりです。
(2020/7/14追記)・・・つもりでしたがWOLも動作せず。BIOSメニューの件とあわせて問合せてみたところ「仕様」だということで、機種を変えてリベンジ編をアップすることになりそうです。
ネットワークオーディオ関係の記事をまとめてみました。よかったらこちらもご覧くださいませ。
ネットワークオーディオを楽しもう