• 車種別
  • パーツ
  • 整備手帳
  • ブログ
  • みんカラ+

なかるうのブログ一覧

2020年07月21日 イイね!

ネットワークオーディオ自作(5) lightMPDをPCで(リベンジ編その1)

ネットワークオーディオ自作(5) lightMPDをPCで(リベンジ編その1)前回との違いは機種だけですので、比較し易いよう同じ構成で書きます。結果はタイトルで察してください・・・








我が車にネットワークオーディオを導入して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をオーディオに使う理由として納得できるものです。興味のある方はぜひ読んでみてください。
ビットパーフェクトがベストとは限らない、かもしれませんよ。ハイパー大事なことなので2回言いました


【共通】システムプラン

以下はこれまでAPU2で構成していたシステムでの信号の流れです。
ハイレゾ音源はUSB-DAC/DDCのAT-HRD500まではネイティブ伝送とし、同軸デジタルはHRD500の内蔵サンプリングレートコンバーター(SRC)で48kHzに変換、アナログはハイレゾのままプロセッサーに入力していました。
alt

今回はこうなります。同じ機能でそのまま置き換えることもできますが、面白くないので考え方をちょっと変えて導入します。
lightMPDでサンプリングレート変換およびDSD/PCM変換を行います。全て44.1kHzまたは48kHzのPCMとしてUSB出力するよう設定します。
alt
退化してないかって?さぁどうでしょ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コアであることが条件となります。

選定したのはこれ
alt
GD41 (KODLIX、写真左)

LIVA Zと同じ、手のひらサイズの「ミニPC」に分類される製品です。このところ多数発売されています。
IntelのNUCより少しだけ大きく、右のAPUやCDケースと比べるとサイズ感がわかると思います。Amazonで2万円台中ほどで購入しました。

alt
カワイイ。こんなちっちゃいPCなら何台でも欲しくなります。
上面のスリットから放熱します。完全ファンレスで無音動作です。
後面のインターフェースは左からDC12V、miniDisplayPort、HDMI、LANx2、USB Type-C。LANが2系統あるので、APUと組み合わせてlightMPDの「最終形態」ともいえるイーサネット分離システムに発展させられそうです。

alt
前面にはUSB3.0x3と電源スイッチ。また側面にTF(microSD)カードのスロットとオーディオジャックがあります。USBとLANの端子が対面にありケーブルの取り回しは面倒かも。

alt
小さいのに内部は拡張性の高い設計になっています。メモリーやストレージを増設してファイルサーバーとか仮想化基盤、またDaphile専用機にしても良さそう。

初手でトラブルがあったので対応方法を記しておきます。
セットアップおよびWindows Updateを実行後にブルースクリーンが発生、初期化を選択した(これがまずかった)ところ起動不能となりました。グラフィックドライバを更新すると発生する不具合のようで、サポートに問い合わせてOSを再インストール、でWUするとやっぱり再発するので今度はセーフモードで起動してドライバを削除、通常モードに戻しオリジナルのドライバをインストールして解決しました。その後「自動更新適用除外ツール」でIntel_Displayの更新を除外設定して完了。以上の作業を初回のWUが走る前に行う必要があるので、LANケーブルは抜いておいた方が良いでしょう。
再インストール用イメージ・オリジナルのドライバともサポートフォーラムに置いてあって返品することなく対応できたものの、母艦となるPCがないと回復不能な事案でした。
「おま環」かもしれませんがWindowsで使う方は一応ご注意を・・・といっても、Win10のアップデートは自動かつ強制なので注意しようがないよね。


alt
HWiNFOでCPU情報を取得してみました。
CPUはCeleron N4100。セレロンブランドを名乗っているものの、開発コード「Gemini Lake」はAtomアーキテクチャ(第6世代)に属します。
4コア4スレッド、ベースクロック1.1GHz、ブースト時2.4GHz。メモリーは8GBシングルチャネル、SSDはNVMeの128GB。
(2020/8/4追記)
現在販売されている製品は、型名は変わらずCPUがCeleron N4120(Gemini Lake Refresh)にリニューアルされたようです。


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

alt
圧倒的な低消費電力。個人的にはTDPが100Wを超えるようなモンスターCPUより、こういう静かに頑張るのが好みなんです。
APU2の「次」として、まずまず適当なスペックかと思います。

なおTDPが6Wクラスで4コアのCPUとしては、同じAtomアーキテクチャで上位のPentium Silver N5000があり、このあたりも狙い目となります。
CeleronのJナンバーやPentium Gold、Coreブランドなら演算性能はもっと上がりますが、TDPも一段高くなり今回の条件(後述)である「PC全体で10W以下」が難しくなるため候補から外しています。

alt
こちらはシステム情報。イーサネットのコントローラはRealtek製で、lightMPDの動作条件はクリアしていそうです。
ここまで使ってみて前回のHeroBoxより発熱が多めかなと思っていたのですが、小型であること、SSDがNVMeであることに加え、セッティングもややパフォーマンス志向になっていることが影響しているかもしれません。


【共通】インストール

lightMPDのバージョンは 1.2.0b2 を使いました。
ブートローダーのイメージは公式サイト掲示板のスレッド
「LIVA Z,LattePanda用のlightMPDを公開しました」、
パッケージはスレッド
「x86_64版(旧LIVA Z,LattePanda版)のlightMPDをバージョンアップしました」
にあるのでそれぞれダウンロードします。

ブートローダーのイメージをUSBメモリーに書き込み、パッケージのzipを上書き展開。設定ファイルをテキストエディタで修正して完了です。
手順はAPU2とほとんど変わりませんので、その時のブログもご覧ください。

BIOSの「Secure Boot」オプションは本機では無効になっていたので、このままで大丈夫です。起動の優先順位を変更しておくことを忘れずに。


【共通】設定

/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)"


alt
システムの全景です。ラズパイのMinimServerとPCをルーターに接続。PCにUSB-DAC(DACモードにしたDAPで代用)を接続。ルーターにWi-Fi接続したスマホから、UPnPコントロールアプリ(BubbleDS)で再生します。

設定したUSBメモリーをPCに挿入して電源ON。意外にあっさり動いてくれました。一晩連続再生させてみましたが安定しているようです。


消費電力測定

ここまでの実験で、前回のHeroBoxとCPUは同じでもPC全体の消費電力は高そうです。
車載にあたって、APUで導入したオーディオ用リニア電源の
alt
UltraCap LPS-1.2 (UpTone Audio)

を使用したいので、その定格(DC12V 1.1A)内の電力で動作できるか確認してみます。
GD41のDCプラグは外径5.5mm/内径2.5mmのセンタープラスでAPUと同じでした。電源ラインにワットチェッカーをはさんで計測します。

プリインストールされているWindows10では、起動時のピークで12W程度
alt

起動完了後は5W程度に落ち着きました。
alt

ベンチマークアプリ(PCMark 10)を動作させると、平均7~10W程度で推移しますが、ピークでは15Wを超えることもありました。
alt

lightMPDでflac音源を再生させると8W前後、DSD/PCM変換再生させた時は12W程度となりました。
alt

んー、Windowsはアウト、lightMPDで使うにしてもギリギリですなぁ。もう一声減らしたいところです。

Windowsをあきらめて、lightMPDでは使用しない内蔵SSDを取り外しました。
先に紹介したように、SSDの撤去は簡単です。

alt
DSD再生時のピークで10W程度になりました。HeroBoxより2Wほど高めで、リニア電源にとっては余裕がない感じ。車載でいけるかどうかは実際に確認した方がよさそうです。


以上、ホーム用途(ACアダプター使用)であればHeroBoxもGD41も問題なくlightMPDを動作させられることがわかりました。
で、リベンジの内容に続きます。


ぬかりなく。

100V電源の普通のPCと同じで、通常は12Vを供給しても電源スイッチを押すまで起動してくれません。
車載では使いづらいですし、手の届くところにPCを置けるとも限りません。前回のHeroBoxではここをクリアできなかったためリベンジ編となったわけです。

今回はちゃんと調べましたよ。
メーカーに問い合わせたところ、GD41は「オートパワーオン」に対応しています。ただし使うためにはEC(組み込みコントローラ)のファームウェア更新が必要とのこと。
提供されたファームウェアをUSBメモリーを使って書き込みました。

設定はBIOSから行います。
alt
G3ステートとは「電源断」のことで、この状態から電源が供給された時の動作を指定します。S0ステートは「起動状態」で、即起動するモードとなります。サイネージモード、あるいはキオスクモードとも呼ばれています。
ACアダプターを接続するとすぐに起動することを確認できました。やれやれ。

とはいえ、今回の機種はちょっと消費電力が高いのが気になるのと、スペックが充実しているのでホーム用に使いたい気持ちもあり、もう1機種試す予定です。うまくいったら次回に続きます。


【共通】車載PCの条件とは

車載専用に設計されたPCでは、上に挙げたような自動起動(イグニッション時の瞬断対応を含む)、ACC OFFでのシャットダウンなどができるようになっています。またメーカー製品であれば車内の高温・低温に耐えることは当然です。
今回達成したのはこのうち自動起動のみで、シャットダウンについてはlightMPDの場合は電源ブチ切り可能なので不要です。

シャットダウンが必要なOSを使う場合は、車載PCの他、NUC用に以下のような電源ユニットが販売されています。ただし常時電源ラインを接続するのでバッテリー上がりや車両火災には十分な対策が必要です。
alt
DCDC-NUC (Mini-Box.com)




ネットワークオーディオ関係の記事をまとめてみました。よかったらこちらもご覧くださいませ。
ネットワークオーディオを楽しもう
Posted at 2020/07/21 00:06:06 | コメント(0) | トラックバック(0) | オーディオ | クルマ
2020年07月09日 イイね!

ネットワークオーディオ自作(4) lightMPDをPCで

ネットワークオーディオ自作(4) lightMPDをPCで我が車にネットワークオーディオを導入して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に変換、アナログはハイレゾのままプロセッサーに入力していました。
alt

今回はこうなります。同じ機能でそのまま置き換えることもできますが、面白くないので考え方をちょっと変えて導入します。
lightMPDでサンプリングレート変換およびDSD/PCM変換を行います。全て44.1kHzまたは48kHzのPCMとしてUSB出力するよう設定します。
alt
退化してないかって?さぁどうでしょ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コアであることが条件となります。

選定したのはこれ
alt
HeroBox (CHUWI、写真左)

LIVA Zと同じ、手のひらサイズの「ミニPC」に分類される製品です。このところ多数発売されています。
右のAPUやCDケースと比べるとサイズ感がわかると思います。

ちょうどAmazonでタイムセールがあり2万円台前半で購入しました。海外発送の業者ならもう少し安く買えるようですが納期などとトレードオフになるのでお好みで。

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

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


裏蓋を外すと2.5インチのSSD/HDDを増設できるようになっています。ファイルサーバーとかDaphile専用機にしてもよさそうです。RAMはオンボードで増設不可、起動用SSDはマザーボード表面にあるので全バラしないと拝めません。

alt
HWiNFOでCPU情報を取得してみました。
CPUはCeleron N4100。セレロンブランドを名乗っているものの、開発コード「Gemini Lake」はAtomアーキテクチャ(第6世代)に属します。
4コア4スレッド、ベースクロック1.1GHz、ブースト時2.4GHz。メモリーは8GBデュアルチャネル、SSDはSATA接続のIntel製180GB。
(2020/10追記)現在出荷されているモデルは、SSDの容量が256GBに変更されています。

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

alt
圧倒的な低消費電力。個人的にはTDPが100Wを超えるようなモンスターCPUより、こういう静かに頑張るのが好みなんです。
APU2の「次」として、まずまず適当なスペックかと思います。

なおTDPが6Wクラスで4コアのCPUとしては、同じAtomアーキテクチャで上位のPentium Silver N5000があり、このあたりも狙い目となります。
CeleronのJナンバーやPentium Gold、Coreブランドなら演算性能はもっと上がりますが、TDPも一段高くなり今回の条件(後述)である「PC全体で10W以下」が難しくなるため候補から外しています。

alt
こちらはシステム情報。イーサネットのコントローラは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)"

alt
システムの全景です。ラズパイのMinimServerとPCをルーターに接続。PCにUSB-DAC(DACモードにしたDAPで代用)を接続。ルーターにWi-Fi接続したスマホから、UPnPコントロールアプリ(BubbleDS)で再生します。

設定したUSBメモリーをPCに挿入して電源ON。意外にあっさり動いてくれました。一晩連続再生させてみましたが安定しているようです。


消費電力測定

HeroBoxは消費電力10W以下をうたっていますが、現代のCPUはちょっと負荷をかけた途端に電力が跳ね上がるので実際にはどんなものか。
車載にあたって、APUで導入したオーディオ用リニア電源の
alt
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メニューの件とあわせて問合せてみたところ「仕様」だということで、機種を変えてリベンジ編をアップすることになりそうです。




ネットワークオーディオ関係の記事をまとめてみました。よかったらこちらもご覧くださいませ。
ネットワークオーディオを楽しもう
Posted at 2020/07/09 22:55:29 | コメント(0) | トラックバック(0) | オーディオ | クルマ
2020年05月24日 イイね!

APUと仮想化で遊ぼう

APUと仮想化で遊ぼう世の中テレワークが一気に普及しました。このまま定着するのか、それとも元に戻るのか、どうなるんでしょうね。
今回そっち方面からお楽しみ要素を発掘してきました。

前回のブログでDaphile用に購入したものの、車載化を見送り遊休資産となってしまったシングルボードコンピュータの「APU」を使って、仮想化環境で遊んでみます。

当ブログ的には、仮想化とオーディオは関係するのか?試してみたいことはありますが、今のところ未定ということにしておきます。いつになるかわからないので、あっ!と思った方は先にやっちゃって構いませんよ。レポートお待ちしております。








(2024/2追記)
Broadcomによるvmware社の買収が完了し、無償版vSphere Hypervisor(ESXi)の提供終了が発表されました。残念です。


企業のITインフラレベルで仮想化は当たり前になっていますが、一般ユーザーがそれを目にする機会は多くなく、仮想化と言われてピンとこない人も多いと思います。

自分の場合は、会社のCADに導入されてようやく身近に感じたという・・・技術者としては「アンテナ錆びてんな」状態でちょっと情けない。以前は資料を抱えて「CAD室」に籠らなければならなかったのが、自席やリモートワークで設計作業ができるようになったのが面白く、個人でも使ってみたいなと思っておりました。
(興味ある方は「VDI」「RDS」あたりをキーワードに調べてみてください。)

PC向けOSのDaphileがAPUにすんなりインストールでき、APUがPCにかなり近いアーキテクチャであることがわかったので、「VMいけるんじゃね?」と調べてみたらやはり可能だと。しかし実際にやってみたら色々と罠があったので、ここにまとめておきます。

alt
APU. 2D4(PC Engines)
SUV500MS/480G(キングストンテクノロジー)


APUの購入方法などについては、LightMPD導入時のブログをご覧ください。
ストレージとしてmSATAのSSDを追加してあります。
仮想化基盤のCPUコア数やメモリーはあればあるだけ便利ですが、APU2の4コア/4GBでもなんとか使えます。2GBは非推奨です。


仮想化とは?なぜ仮想化?
ここから始めるととっても長くなるので、メリットを簡単に。
・モニター出力を持たないAPUにデスクトップOSをインストールできる。
・多数のOSをとっかえひっかえ、また必要なら複数のOSを同時起動できる。

書籍を紹介しておきます。
alt
速習 VMware vSphere Hypervisor 6: 自宅で学べる無料版 ESXi の使い方
伊藤 裕一 (著)


最初の入門書としておすすめ。kindleで安くサクッと読めます。


ホスト型かハイパーバイザー型か
仮想化環境にはホスト型とハイパーバイザー型の2種類があります。
WindowsなどをホストOSとして、その上で別のOS(ゲストOS)を動作させる時に使うのがホスト型、ホストOSなしでゲストOSを動作させるのがハイパーバイザー型です。

普段使っているPCにホスト型の環境(VMware Workstation Playerなど)を入れる方法もありますが、PCのリソースにゲストOSを動かせるだけの十分な余裕が必要です。またホストOSが落ちるとゲストOSも全て道連れになるので、仮想化環境はメインPCと別のハードウェアで動かした方が使い勝手が良いと思います。
APU. 2D4のCPUやメモリーではホスト型を稼働させるには心もとないので、ハイパーバイザー型を使います。
今回は上の書籍にもある、VMware社のvSphere Hypervisor(ESXi)を選択しました。機能限定とはなるものの非商用利用なら無料ライセンスがあります。こんなガチのエンタープライズ製品を無償で使えるなんてVMware太っ腹!企業のIT担当者の方は無償版で遊んだ後は稟議書書いてね、という狙いなんでしょうけど。


準備
APUにはモニター出力が無いので、インストールや初期の操作用にシリアル(RS-232C)接続を使います。シリアルポートなんてレガシーデバイスですが、低レベル(ハードウェア寄りって意味ですよ)のデバッグにはまだまだ現役です。
APUとPCをシリアルケーブル(クロス)で接続しておきます。PCにシリアルポートが無い場合は、USB-シリアル変換ケーブルを用意します。

インストール後の操作はLAN経由で行います。APUのLANポート(向かって一番左)を自宅のルーターに接続しておきます。(要DHCP)


BIOSアップデート
最初に、APUのBIOSを最新版に更新します。
BIOS更新は失敗すると2度と起動できなくなるリスクがあります。必要なければやりたくない作業ですが、仮想化環境はファームウェアのバージョンにシビアです。PC Engines社のHow-Toページに手順が記載されています。
アップデートにはUSBメモリーで起動できる小型LinuxのTinyCoreを使います。上記のページからインストーラーを入手し、起動用USBメモリーを作成します。
alt

APUのBIOSをGitHubから入手します。確実にダウンロードできたか、ハッシュで必ず確認してください。さらに万全を期すなら複数のバージョンを準備しておきます。
TinyCoreのUSBメモリー(のルートディレクトリ)にダウンロードした.romファイルをコピーします。

シリアル接続のターミナルソフトには、ラズパイのSSHコンソールでも使用したPuTTYを使います。
通信条件は115200bps/8bit/パリティ無し/ストップビット1です。
(そろそろこれも説明が必要な時代になってきましたかね・・・)
alt
alt

作成したUSBメモリーをAPUに挿して起動。
alt
PuTTYのコンソールにプロンプトが出たら、以下のコマンドでBIOSを更新します。
$ flashrom -w apu2_v4.11.0.6.rom
ベリファイ完了(VERIFIED)と表示されるのを祈りながら待ちます。
万一表示されなかったら恐怖です。そこで電源を落としたら最後、慌てずリカバリーを試みます。
起動不能になってしまったら、PC Engines社からリカバリー用のアダプターを入手できます。
正常に書き込みが終わったら
$ sudo poweroff
でシャットダウンし電源を落とします。


vSphere Hypervisorのインストール
ここから仮想環境のインストールです。
VMwareのWebサイトからvSphere Hypervisor (ESXi)をダウンロードします。無償版と試用版のライセンスがあり、試用版は60日で使えなくなるので注意。ダウンロード時に表示されるライセンスコードを控えておきます。
(自分の環境ではChromeでダウンロードできずEdgeを使いました。)

APUで動作確認が取れているESXiのバージョンは6.0系です。ダウンロードのページにあるのは最新バージョンの7.0で、旧バージョンへはそこからURLを修正して入ります。
PC Engines社のブログでは、BIOS v4.11.0.2でESXi 6.7 U2における不具合が対策された、となっていますが、6.7.0(U2およびU3)はインストーラの起動中再起動ループに入ってしまいインストールできませんでした。一つ前の6.5.0 U3なら大丈夫です。

ダウンロードしたISOファイルを、イメージ書き込みソフトのRufusを使ってUSBメモリーに書き込みます。これがインストールディスクとなります。
(初回にmenu.c32のバージョンが古いと言われたらアップデートします)
alt

モニター出力のないAPUにインストールするため、おまじないをします。
書き込んだUSBメモリーにあるboot.cfgをテキストエディタ(TeraPadなど改行コードをLFに設定できるもの)で開き、以下の2行を追加します。(kernelopt行は既にあるので置換)
kernelopt=runweasel text nofb com1_baud=115200 com1_Port=0x3f8 tty2Port=com1 gdbPort=none logPort=none
ignoreHeadless=TRUE


PCでシリアルコンソールを起動し、USBメモリーをAPUのUSBポートに挿して電源ON。下のようなブートメニューが表示されたらそのまま待ちます。
alt

数分待って(その間メッセージが大量に出力されます)、コンソールにここまで表示されたら一安心です。
alt

使用許諾条件の確認
alt

インストール先の選択
alt

ルートパスワード設定
alt

最終確認でインストール開始となります。選択したドライブは全て消去されESXiの管理下に置かれます。
alt

インストールが完了したらUSBメモリーを抜いて再起動。
alt

初期状態ではDHCPが有効になっているので、APUに割り当てられたIPアドレスを確認します。シリアルコンソールに表示されるほか、スマホアプリのFingも使えます。
alt

PCのWebブラウザでログイン画面(http://アドレス/ui/)に接続します。
alt

ログインすると管理画面が現れます。vSphere Web Clientといいます。
alt
おお!鯖管っぽいぞw
ESXiの操作はこのようにWebブラウザから行うことができます。専用アプリを使うvSphere Clientもありますが、VMware社はWeb Clientに移行する方針とのこと。

コンソールをシリアルポートにリダイレクトします。「管理」「システム」「詳細設定」で「VMkernel.Boot.tty2Port」を「com1」に設定します。最初のおまじないと同じことです。
alt

またダウンロード時に表示されたライセンスコードを入力します。入力するまでは、60日間の試用モードになっています。
alt

いったんESXiをシャットダウンし、再起動します。
サーバーを動かす場合などはハイパーバイザーのIPアドレスがDHCPでころころ変わっては都合が悪いので、アドレスは固定しておいた方が良いでしょう。
シリアルコンソールから設定できます。


以上です。これで仮想化基盤という自由に使える「砂場」ができました。
Linuxの勉強も良し、レトロゲームの環境としても使えるかも。
好みのOSをインストールして遊びましょう。
Posted at 2020/05/24 23:12:24 | コメント(1) | トラックバック(0) | その他 | パソコン/インターネット
2019年10月23日 イイね!

ネットワークオーディオ自作(3) Daphile

ネットワークオーディオ自作(3) Daphileブログに上げるタイミングを逃してしまいましたが、9月のソニックデザイン・リスニングキャンプ(LC)には今年もアンバサダーとして参加させていただきました。メーカーのイベントレポートはこちら

今年のLCには新世代ハイエンドDSPの搭載車が登場、それも一台や二台じゃないのがらしいというか。ショップによってBRAX推しやエタニ推し、あるいは静観組と分かれていて、オーナーさんだけでなく各ショップさんも情報交換に興味津々といった感じでした。終売となったデジコアの「次」に向けた動きがそろそろ始まるのでしょうか。

とはいえ、オールインワン設計のデジコアには後継機がないので、更新にはアンプも必要になるし、そうなるとケーブルや電源にもそれなりに投資せにゃならん。金額もさることながらスペースの犠牲も大きく、デジコアユーザーとして後発組の自分は今のところ静観です。コンパクトで安定動作、もちろん音質妥協無しのプロセッサーアンプはもう出ないのかねぇ。

そんなわけで今年のシステム更新、LC後サブウーファーを1基増設しステレオ構成にしました。オーテクのプレーヤー(こっちも出ないねぇ)とクラリオンの8インチナビの導入資金を投入してしまったので、ソースユニットは来年まで現状維持です。






以上、近況報告はさらっと流して、そのソースユニットの話題です。
前回紹介したlightMPD。APU、リニア電源、USBアイソレータとの組み合わせで奏でる音が気に入って、わが車の主力音源となっています。
今回はlightMPDの公式掲示板で紹介されていたDaphileを試してみました。


Daphileとは

Daphileは音楽専用のサーバー兼プレーヤーOSです。
どう発音するのが正解なんでしょうか。「ダファイル」?海外のYouTube動画には「ドア閉まります」のイントネーションで「ダァファイル」と読んでいる方がいました。
公式ページはこちら。日本語の情報は、非公式ですがwikiページがあります。

alt
公式ページより。どんなシステム構成で使うものか、この図がわかりやすいです。
Daphileの対応ハードはインテル互換CPUを搭載するPCで、インストールされたPCはDaphile専用機となります。
オーディオ出力はUSB-DACを接続し、コントロールはスマホ・タブレットや別のPCから行います。USB入力(PC接続用のBコネクタ)付きのアンプやスピーカーなど、USB Audio Class対応機器であればDAC以外も使用可能です。
キーボードもモニターも不要で、電源を入れるだけのいわゆる「ヘッドレス」で運用します。
ハードウェアの要求スペックは高くないため、使い古して余っているPCがあれば手軽に試すことができます。

DaphileのベースはLinuxとSqueezebox。ご存知の方はPCオーディオ暦長いでしょ?
Squeezeboxシリーズは今から20年近く前に発売された、現在のネットワークプレーヤーの走りと呼べるものです。
PCをサーバーにしたマルチルーム再生、ネットラジオ対応、プラグインによる機能拡張など、その先進性にほれ込んだ自分もファンでした。ハードウェアも魅力的で、
alt
Squeezebox Duet
カラーLCD搭載のWi-Fiリモコンは、今のスマホによるコントロールを先取りしたもの。
alt
Squeezebox Boom
アンプ・スピーカー一体型のお手軽ネットオーディオ。美しいVFDは輝度劣化が早くて・・・(遠い目)
alt
Transporter
本格的なオーディオシステムに組み込むためのフルサイズコンポーネント。VFDで踊るVUメーターに心躍りました(遠い目)

と4台(Boomは2台)のプレーヤーを購入し、家中に配置して楽しんでおりました。当時のSqueezeboxはこのような専用ハードによるプレーヤーと、PCにインストールするサーバーアプリ(SlimServer、後にSqueezeCenter、Squeezebox Server、Logitech Media Serverと改名)から構成されていました。
しかし開発元のslim devices社はLogitech社(Logicoolの方ね)に買収され、その後ハードウェアはSqueezebox Radioを最後にフェードアウト。何のための買収だったんだろう、と悔しい思いをしたものです。
いっぽうソフトウェアはオープンソースとして生き続けていました。プレーヤーをソフトウェアベースに改め、サーバー一体へと形を変え再び結実したというわけで、なんだか感慨深いものがあります。


ハードウェア


APU. 2D4(PC Engines)
SUV500MS/480G(キングストンテクノロジー)

lightMPDで使用しているシングルボードコンピュータの「APU」でも動くとのことで、今回こちらにインストールしてみました。というか、APUで動くなら車載の可能性あるかも、と興味が湧いたのです。
APUについては前回のブログをご覧ください。

APUは標準ではストレージがありませんが、mPCIeとmSATAのスロットがあるのでPC用のカードを使うことができます。起動ディスクおよび楽曲ファイル保存用として、mSATAのSSDカードを追加しました。写真左のスロットがそれです。
APUの起動デバイス優先順位が SDカード>USB>mSATA であることから、USBからブートするlightMPDとは簡単に切り替えて使用できます。


インストール

Daphileは無料で、アプリ内課金などもありません。
公式ページのDownloadsから、ISOイメージをダウンロード。
標準カーネル版とリアルタイムカーネル版があります。機能は変わらず、マニアな方は音質を比べてみるのも楽しいと思います。

alt
USBメモリーをFAT32形式でフォーマット※し、イメージ書き込みソフトのUSB writerなどを使って書き込みます。
これがインストールディスクになります。

※一度イメージ書き込みソフトで書き込みを行ったUSBメモリーは、OSでフォーマットしても本来の容量にならないことがあります。そのような場合は、I-O DATA ハードディスクフォーマッタなどのツールを使うと元の容量に戻せます。

APUと自宅のルーター(要DHCP)をLANケーブルで接続し、USBメモリーを挿入して電源ON。
PCにインストールする場合はここでモニターにIPアドレスが表示されるのですが、APUにはモニター出力がなく起動を確認できませんので、1分ほど待ちます。


APUに割り当てられたIPアドレスを調べます。
同じネットワークにスマホを接続し、アプリのFingを使うと簡単です。インストーラが正常に起動すると、リストにDaphileが現れます。

PCやスマホのWebブラウザでAPUのアドレス
http://192.168.xxx.yyy
に接続すると、Daphileの設定画面(WebUI)が表示されます。
(OSによっては、http://daphile または http://daphile. または http://daphile.local でも可)
以降、インストールから設定・再生まで、全てこのWebUIで操作します。

「Settings」タブの「System Firmware」「New Installation」でインストール先を選択し「Install」ボタンで開始します。既存のパーティションはここで消去されるので注意。
(2020/10追記)現在のバージョンでは、安全のため使用済みのパーティションは選択できないようになりました。インストール用の領域は予め開放しておく必要があります。APUでSSDのパーティション操作を行うには、USBから起動できるTinyCoreのcfdiskコマンドが簡単です。TinyCoreの使い方は次回のブログで紹介しています。

なお、ここでインストール先としてUSBメモリー自身を指定することもでき、その場合インストールUSBはDaphileのシステム領域(1GB)と残りが楽曲ファイル用のデータ領域としてパーティションが再構築されます。SSDに比べると起動が遅いとかオンラインアップデートができないなど制限がありますが、PCのHDDを変更したくない場合にはこの方法が使えます。


設定

インストールが終了したらUSBメモリーを抜いて再起動。
引き続きWebUIから設定します。


General(一般設定)
当初からマルチルーム再生を実現していたSqueezeboxと同様、サーバーとして別のDaphileを指定できます。今回はスタンドアロンのため内部(internal)サーバーを指定しています。
Roonのコアとも連携できるようですが、コアをWi-Fi経由で接続している自分の環境では指定できませんでした。


Audio Devices(オーディオデバイス)
音質的なこだわりを感じる設定項目です。


Power(電力管理)
クロックを落とすと音質に好影響があるとか。
「Prefetch・・・」にチェックを入れると、システムをRAMにキャッシュし高速化します。


楽曲ファイルの転送

Daphileはサーバー兼レンダラーなので、lightMPDのようにサーバーを別に立てる必要が無く単体でストレージ内蔵トランスポートとして使用可能です。
ライブラリ管理に関してはPC並みの自由度があります。


設定で内蔵ストレージの共有(share)をONにしておけば、ネットワーク上のPCなどから共有フォルダとしてアクセスできます。楽曲転送はこれを使うのが簡単です。
PCの共有フォルダやNASなどの音楽フォルダを登録してそこから再生することもできます。


WebUIに「File Manager」タブがあり、Daphile単体でUSBメモリーなどからコピーすることも可能です。画像はMinimServerで使っているSSD(exFAT形式)を接続した状態。問題なく認識しました。


光学ドライブがあればCDから直接リッピングすることもできます。曲名もオンラインデータベースから取得してくれますが日本語タイトルは不得意です。


再生


WebUIの「Audio Player」タブで再生します。
左半分がDLNAで言うところのナビゲーションツリー、右半分が再生中/プレイリスト画面です。配色こそ違えど、構成はSqueezeboxそのままで懐かしい。
アーティスト一覧などで日本語のソートがおかしいバグもSqueezebox当時のままで、そこは直してほしかった・・・
(2020/1追記)最新バージョンで日本語ソートの不具合が対策されました。これはうれしい!

プラグイン追加によりUPnP/DLNAに対応し、サーバーのみ、レンダラーのみ使うこともできます。なんでもDLNAサーバーとしてlightMPDと組み合わせると高音質になるとかで、lightMPDユーザーの間で流行っているようです。


スマホのブラウザだとこんな感じ。ここから横にスワイプすると・・・


再生中画面になります。PCの画面を2分割した感じ。なるほど、ちょっと目から鱗の実装です。

WebUI以外のコントロールアプリも使ってみました。



Android版のSqueezeboxアプリ「Orange Squeeze」です。スマホのプレーヤーアプリらしい画面になります。


シャットダウン


Daphileは楽曲ファイルを抱えてアクセスする以上、lightMPDのようにいつでも電源OFFできるわけではありません。WebUIにシャットダウン用ボタンがありワンアクションで実行できます。


車載する場合、WebUIでは文字やボタンなど表示オブジェクトが小さく操作が厳しいのでアプリを使いたくなります。しかしアプリからはシャットダウンができず、エンジンOFFの度にブラウザに切り替えるのはちと辛い。
Daphileにはサーバー一体というメリットがあるにしても、車載よりは本来のホーム用途、できればAPUのような低消費電力のハードで電源入れっ放しで使うのがしっくりくるかと。


音質について。面白いことに、同じハードウェアのUSB出力ながら、lightMPDとは違う音が出てきます。でもどちらも大変高音質です。
lightMPDはUSBメモリーからブート、USBメモリーを外せば内蔵SSDからDaphileが起動します。使い勝手と音質をしばらく比べてみたいと思います。


(2019/11/5追記)
mSATAのSSDにインストールした場合、PCに比べれば非力なAPUでも十分実用的なレスポンスで動作します。USBメモリーだとかなり遅くなったので、できるだけ高速なストレージにインストールすることをおススメします。
しかし、UpTone Audioのリニア電源との組み合わせでは、SSDカードを増設したAPUは電流不足で起動できませんでした。lightMPDではリニア電源による音質改善効果は顕著でこれを使わない選択はなく、先に挙げたシャットダウンの手間もあって車載は見送りとしました。


(2020/6/18追記)
ピュアなオーディオ用途からはちょっと離れますが、DaphileをBluetooth対応にしてみました。使ったのはこれ。

Bluetoothオーディオトランスミッター RK-BT100A(Radius)

BluetoothのないPCなどでワイヤレスヘッドホンやワイヤレススピーカーを使用するときに使うアダプターです。USBの端子がAタイプのRK-BT100AとCタイプのRK-BT100Cがあります。
オーディオコーデックはSBC/AptX/AptX LLの3種類に対応。Bluetoothのバージョンは5.0です。

世にあまたある「Bluetoothアダプター」と異なり、この製品は「USBオーディオデバイス」として振る舞うことが特徴。この小さな本体にプロトコルスタックやオーディオコーデックを内蔵しているわけです。
なお同様の製品としてCreativeにBT-W2がありましたが、本日その後継機BT-W3が発表になりました。(何というタイミング!)
オーディオ以外のワイヤレス機器とはつながらない代わりに、USBオーディオ出力に対応するものならほぼ何でもBluetooth対応にできます。ん?ラズパイオーディオとかRoon Bridgeにも使えそうだな...これはいいかも。
またPCやスマホで使う場合、USBオーディオ用の高音質なアプリを使えるメリットもあります。

USB-DACの代わりにトランスミッターをAPUのUSB端子に接続、Bluetoothヘッドホン(Sony MDR-10RBT)とペアリングして問題なく使用できました。トランスミッターは16bit/48kHz対応ですが、ハイレゾやDSDはDaphileが変換してくれます。
オーディオファイル向けとされているDaphileですが、オールインワン構成で使い勝手が良いので、Bluetoothで手軽に音楽を楽しむのもアリだと思います。




ネットワークオーディオ関係の記事をまとめてみました。よかったらこちらもご覧くださいませ。
ネットワークオーディオを楽しもう
関連情報URL : https://www.daphile.com/
Posted at 2019/10/23 22:44:59 | コメント(0) | トラックバック(0) | オーディオ | クルマ
2019年06月15日 イイね!

ネットワークオーディオ自作(2) lightMPD

ネットワークオーディオ自作(2) lightMPD前回のサーバーから続き、ネットワークオーディオを仕上げます。
サーバーにUPnPを採用したので、残りのレンダラーとコントローラもUPnP系(DLNA/OpenHome対応)のものが必要です。
レンダラーとして、lightMPDが面白そうなので試してみました。








digififanさんによる音楽再生専用LinuxディストリビューションのlightMPDはその名の通り超軽量に作られていて、OS含め全てRAM上で動作するのが特徴です。
起動後はディスクをアンマウントするため、電源をいきなり切断しても大丈夫。普通のオーディオ機器のように使えて便利ですし、音質的にも期待できそうです。
詳細は公式ページ(デジファイのおと)へどうぞ。

lightMPDはUSBメモリーなどローカルデバイスからの音楽再生はできず、NASをSambaやNFSでマウントして再生する仕様に特化して開発されました。その後バージョンアップにより動作モードの追加が行われ、UPnP(DLNA)サーバーからの再生にも対応しています。というわけで前回のMinimServerとつながります。

lightMPDにはCPUボードを2台使って高音質化するという動作モードもあって、これに至るまでの話が大変興味深いと思いました。ぜひ公式「ネットワークプレーヤ用ネットワーク」と「lightMPD/upnpgw」を読んでみてください。

今回は車載を考えコンパクトにシステムを作りたいので、1台でUPnPレンダラーを構成するモードで使います。
alt
こんなシステムとなります。

lightMPDはBeagleBoneというシングルボードコンピュータ(SBC)から始まり、現在はラズパイなどいくつかのSBCで動作可能となっています。それらの中から、スイスPC Engines社の
alt
APU. 2D4 (PC Engines)
というボードを使ってみました。APU1またはAPU2シリーズ、メモリは2GBでも4GBでも使えます。
経験上カニさんNICは嫌いなのでAPU2にしました。
(2019/12追記)APU2シリーズの最新バージョンは2E2(2GB)および2E4(4GB)に変わりました。APU1シリーズは間もなく終了です。

大きさはCDケースより一回り大きい程度。LANポートが3つもあることからわかるように、ルーターのようなネットワークアプライアンス向けの製品です。
SBCとしては比較的パワフルなx64アーキテクチャのAMD製プロセッサを搭載していて、USBオーディオやソフトウェアリサンプラを余裕をもって処理できる性能があります。
HDMIやWi-Fiを備えておらず(写真左下のD-subコネクタはVGAではなくシリアルポート)PC的な使い方には不向き、逆に余計な回路がない分オーディオ用途には有利という側面もあるのかも。

購入

PC Engines社の公式ショップ(PC Engines directの通貨USDを選択)で注文すると、後日メールで見積りが届きます。
メールに記載されたリンクを確認しPayPalで支払って10日程度で届きました。

自分は以下のパーツを購入しました。+ドライバーとナットドライバーを使う簡単な組み立てが必要です。

1 apu2d4 120.00 USD
APU.2D4 system board 4GB
(本体)

1 case1d2blku 10.00 USD
Enclosure 3 LAN, black, USB
(ケース)

1 apufix1a0 1.00 USD
Heat spreader placement template
(ヒートスプレッダの位置決め治具)※APU2用です。

1 ac12vus2 4.40 USD
AC adapter 12V US plug for IT equipment
(ACアダプター)

基板裏のCPUチップからヒートスプレッダ(アルミ板)を通してケースに放熱させる構造になっているため、ケースは必須です。
ACアダプターは12V/2A、DCプラグが外径5.5mm/内径2.5mmのセンタープラス。

APUはSDカードまたはUSBメモリーからブート可能です。
lightMPDはどちらにも対応していますが、SDスロットは純正ケースのカバーを開けないとアクセスできないのでUSBメモリーの方が便利です。別に入手しておきます。(容量は256MB以上)

MinimServerの設定変更

前回作成したサーバーの配信設定をlightMPD向けに修正します。
MinimStreamerのstream.transcodeの項目に設定を追加。
記述方法の説明はユーザーガイドにあります。

(2019/9訂正)dopwavを指定した場合、DSDの音源はwavに偽装する形で配信され、そのままDACに送ればDoPとして認識されます。しかしwavとdopwavは区別されないため、wavに対してリサンプルのような演算処理を行うとdopwav時も処理が入ってしまいDSDが正常に再生できなくなります。レンダラーで一切の処理を行わないならこれでも問題ありませんが、PCM音源のアップサンプリングやDoP以外のDSD再生も実行できるようにするためdopwavを外しました。これらはlightMPDのmpd.confで設定します。
(2019/9訂正)mp4/m4aファイルのトランスコード設定を追加。

flacはlightMPDでデコードできますが、この設定ではサーバー側でwavに変換させています。
ネットワークのトラフィックを減らす(flac)のと、レンダラーのCPU負荷を減らす(wav)のはどちらが高音質なのか試せるわけです。もちろんflacとwavなので、最終的にDACに届く「データ」としては変わらないはず。これで音が変わるとしたらデータ以外に何か影響する要素があることになり、それは何でしょうと。ディープな次元の話です。

lightMPDでは、APUを固定IPアドレスで運用します。対するサーバー側のIPはUPnPなので動的でも問題ありませんが、後日車載でDHCPが無い環境で動かすことも考えMinimServerのIPアドレスも固定しました。(結局これは不要でしたけど。)
$ cd /etc 
$ sudo cp dhcpcd.conf dhcpcd_conf.bak 
$ sudo nano dhcpcd.conf 
#でコメントアウトされたテンプレート行があるので、#を外し自分の環境に合わせて修正します。
interface eth0 
static ip_address=192.168.1.91/24 
static routers=192.168.1.1 
static domain_name_servers=192.168.1.1 

ルーターのDHCP機能を使っている場合は、割り当てアドレスが重複しないように設定を変更しておきます。

ブートローダーおよびパッケージの書き込み

ここからlightMPDのインストールです。
公式ページから「ブートローダー」および「パッケージ」をダウンロード。APU用の最新バージョンはv1.2.0でした。
ブートローダーを解凍してできたイメージファイルをUSBメモリーに書き込み。
FAT32でフォーマットし、Win32DiskImagerで書き込みます。
書き込むとPCからドライブとして認識されなくなるので、いったんUSBメモリーを取り外して再度挿入します。

次にパッケージを解凍。こちらはイメージ書き込みソフトでなく普通にzipファイルをUSBメモリーに上書き解凍すればOK。

設定

lightMPDでは、前回のラズパイのようなSSHコンソールとは異なり、起動ディスク(今回はUSBメモリー)内のテキストファイルをPCで直接編集して設定を行います。

lightmpd.confおよびmpd.confの2つの設定ファイルは、lightMPDの動作モードに応じて選択します。/lightMPD/confディレクトリにテンプレートがあります。
/lightMPD/conf/upnpmode(UPnPのレンダラーとして使用するモード)のファイルを/lightMPDにコピー。
テキストエディタ(TeraPadなど、文字コードUTF-8・改行コードLFに設定できるもの)で修正します。

/lightMPD/lightmpd.confの設定
自宅のネットワーク環境に合わせて修正。

[network]
interface=eth0
address=192.168.1.92
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の設定
(2019/8訂正)DSDの扱いをここで設定できます。使用するDACがDoP形式によるDSD入力に対応しているので、DoP伝送を指定しました。このバージョン(mpdの0.20系以降)から指定方法が変わっているので注意。DoPを指定せずMinimServerでもdopwavを指定しない場合、カーネルが対応するDACのみネイティブ(マーカーレス)伝送、それ以外はPCM変換再生となります。

audio_output {
    ...
    dop     "yes"
}


他にもリサンプラーなど楽しそうな設定がたくさんありますが、ひとまずこらえてデフォルトのままで。

/boot/grub/menu.lstの設定
システムタイプをAPU2、ブートデバイスをUSBメモリーに指定。

kernel /boot/bzImage-5.0.3rt1 root=/dev/ram0 ro console=ttyS0,115200n8 ramdisk_size=81920 rootfstype=romfs rootdelay=5 clocksource=tsc idle=poll processor.max_cstate=1 isolcpus=1 nohz_full=1 rcu_nocbs=1 lightmpd.systype=apu2 lightmpd.bootdev=/dev/sda1

最低限これだけで音が出せます。NASモードより簡単です。

動作確認

設定が終わったらUSBメモリーをAPUのUSBポート(上段)に挿して電源ON。
その昔MS-DOSをフロッピーディスクから起動していた感覚に近いかも。
今回は幸い一発で動作してくれたものの、モニター出力もSSHコンソールも無いので動かなかったときの調査は厄介です。あまり設定を弄らず、まずは確実に動く「ベースキャンプ」を確保することをお勧めします。
alt
基板むき出しでないので、市販のオーディオ機器と並べても遜色ありません。
USBポートに接続しているDAPはUSB-DACの役です。
写っていませんが前回のMinimServerからLAN越しに再生しています。
なりは小さくとも、サーバー・レンダラー(トランスポート+DAC)・コントロールと、いっちょまえのネットオーディオ"フル"システムです。
スマホやDAP1台で済ませるより、オッサンはこういうコンポーネント構成に反応するわけさ。
電源ONから20秒ほどで再生可能となりました。


コントロールはスマホから。UPnP/DLNA/OpenHome対応アプリが使えます。
Android版のアプリをいくつか試したので紹介しておきます。
基本的な使い方は共通で、サーバーとレンダラーを最初に選択する以外は普通の音楽再生アプリと同じ。アルバム・アーティストなどナビゲーションツリーに従って選曲します。

BubbleDS(BubbleUPnPのOpenHome専用バージョン)
オーソドックス。安定感あり。
alt

Hi-Fi Cast
動作軽快。全曲シャッフルが使いやすい。
※UPnP/DLNA対応ですがOpenHome対応ではないので他のと挙動が少し違います。
alt

LINN Kazoo
シンプル。我が家にLINNがやって来た!
alt

LUMIN App
Kazooと対照的な多芸タイプ。タブレット映え。我が家にLUMINが(略)
alt

機能の違いこそあれど、どのアプリも表示は日本語含め問題ありませんでした。ハイレゾロゴなど並べなくても普通に再生するオトナな対応でよろしい。

OpenHome陣営にはLINN、それ以外で以前取り上げた(現在も愛用中の)roonもあり、ネットオーディオのソフトウェアは英国勢が強い。サーバーとレンダラーはそのまま、したがって音質に影響なく使い勝手でアプリを選べるのは良いですね。




以上で完成です。
動作確認できたら、lightmpd.confの[debug]セクションの項目を「no」に変更してログ出力を抑制しておきます。

MPDはマニア向けのイメージがありますが、UPnP、というかOpenHome対応を身につけたlightMPDは使い勝手の良さも注目されてよいと思います。

音質も良好です。自宅オーディオでリニア電源と組み合わせてみたところ、ラズパイのroonブリッジを超える音が出てきて「おっ?!」となりました。
Linuxのオーディオは「ラズパイ」に「HAT」を載せて「I2S」で接続するパターンばかりかと思っていたので、こんなシステムが組めるのは全くのノーマークでした。市販のUSB-DACやDDCを使う場合でも音質にケアしたディストリビューションやハードウェアが選べるのはありがたいことです。

欠点はやってみるまでも無く、システム全体の立ち上げめんどい。ホームならサーバーを常時稼動させておくことが(ラズパイの消費電力はごくわずかなので)できますし、lightMPDの起動も早いので気になりませんが、車載となるとネットワークの準備から始まるわけで、起動時間と環境整備の二重の意味で「立ち上げ」めんどい・・・



このレベルでサクサクとブラウズできて、エンジンONですぐ立ち上がり、音の良い車載デジタルトランスポートはいつ出ますか・・・?
数百枚のアルバムを持ち運べるようになったのだから、それを一瞬で見渡せるような操作系が欲しい。旧態依然としたインターフェースではもう困るのです。もちろんそれ以前のタグ理解しないとか無理。

まもなく登場の
alt
が気になりつつ、今年の残り半分はこっちで行こうかと検討中。
そういえば、LINNとロゴマーク似てますね。OpenHome対応しませんかオーテクさん?



(2019/6/22追記)
安定動作を確認できたので車載運用を開始しました。
顛末は整備手帳にて。

(2019/7/7追記)
主力音源として正式採用しました。
車載運用は面倒ですが、それでも使いたいと思わせる音質です。

(2019/8/4追記)
USB-DAC/DDCはオーテクHRD500のまま、変わったのはUSBから手前だけなのに、何で?という位の変化がありました。
S/N感、分解能、空間再現に優れた、目の覚めるような音が出てきます。
逆に「まったり」とか「色気」とか「芳醇」とかを求める人には合わないかも。方向性の明確な音です。

(2019/11/26追記)
OpenHomeでは複数のコントロールポイントが共存できます。
車載時に同乗者のスマホにもアプリを入れておけば、それぞれのスマホから自由に選曲できて楽しいです。例えるなら、人数分リモコンがあるカラオケBOX。市販カーオーディオには見当たらない便利さで、こんな応用もありますよということで。

(2020/2/17追記)
独自のパルスアレイDACでお馴染み、CHORDから2go/2yuという製品が発表されました。2goはmicroSDスロットを備える多機能サーバー、2yuは同軸・光・USBのデジタル出力インターフェースで、この2つを組み合わせると機能的には今回製作したサーバーとレンダラーを一体化したようなデジタルトランスポートとなります。果たして音質的にはどんなものか、CHORDユーザーの自分には「刺さる」アイテムです。



(2020/6/20追記)
車載導入から1年経ちました。当初その発熱の多さからすぐ壊れるかもと疑っていたリニア電源も、ノートラブルで夏冬乗り切ってくれました。
自分としては1年もオーディオシステムを変更しなかったのは珍しく、それだけ不満の少ないものだということかと。MinimServerとLightMPDの組み合わせは、音質・操作性・安定性とも優れたレベルにあると結論してよいと思います。
(立ち上げの面倒さはやはりあるのですが・・・慣れましたw)

あえて現状の課題を挙げるなら、
・真夏の高温下で、MinimServerを動かしているラズパイの動作がちょっと怪しくなる
・オーテクのDACが、DoP入力の仕様上DSD256を再生できない
の2点で、対策を考えています。




ネットワークオーディオ関係の記事をまとめてみました。よかったらこちらもご覧くださいませ。
ネットワークオーディオを楽しもう
Posted at 2019/06/15 17:58:52 | コメント(0) | トラックバック(0) | オーディオ | クルマ

プロフィール

「自分のブログの内容にどこぞの謎情報を混ぜられたものが「AIによる回答」として提供される。生成AIに利用された絵師の気持ちが理解できたと同時に、想像以上に信用ならねーなという思い。みんカラも学習拒否の設定させて欲しいぞ。」
何シテル?   06/08 05:24
「なかるー」改め「なかるう」、「う」は大きい「う」です。 音楽のあるドライブが好きです。いい音だったらもっと楽しいですよね。なのでいい音を追求してます。 更...

ハイタッチ!drive

みんカラ新規会員登録

ユーザー内検索

<< 2025/8 >>

     12
3456789
10111213141516
17181920212223
24252627282930
31      

リンク・クリップ

3Wayスピーカーのクロスオーバー設定 位相合わせ 
カテゴリ:その他(カテゴリ未設定)
2025/06/14 21:11:12
備忘 Passat Variant 11年14万kmの整備振り返り 
カテゴリ:その他(カテゴリ未設定)
2024/10/18 00:02:25
Ottocast A2AIR Pro 
カテゴリ:その他(カテゴリ未設定)
2024/06/18 03:24:43

愛車一覧

フォルクスワーゲン パサート セダン フォルクスワーゲン パサート セダン
フォルクスワーゲン パサート セダン (DBA-3CCAX) に乗っています。 シトロエ ...
日産 ティーダラティオ 日産 ティーダラティオ
(2015/8)乗り換えのため手放しました。 日産 ティーダラティオ15G(DBA-S ...

過去のブログ

2024年
01月02月03月04月05月06月
07月08月09月10月11月12月
2023年
01月02月03月04月05月06月
07月08月09月10月11月12月
2022年
01月02月03月04月05月06月
07月08月09月10月11月12月
2021年
01月02月03月04月05月06月
07月08月09月10月11月12月
2020年
01月02月03月04月05月06月
07月08月09月10月11月12月
2019年
01月02月03月04月05月06月
07月08月09月10月11月12月
2018年
01月02月03月04月05月06月
07月08月09月10月11月12月
2017年
01月02月03月04月05月06月
07月08月09月10月11月12月
2016年
01月02月03月04月05月06月
07月08月09月10月11月12月
2015年
01月02月03月04月05月06月
07月08月09月10月11月12月
2014年
01月02月03月04月05月06月
07月08月09月10月11月12月
2013年
01月02月03月04月05月06月
07月08月09月10月11月12月
2011年
01月02月03月04月05月06月
07月08月09月10月11月12月
ヘルプ利用規約サイトマップ
© LY Corporation