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

なかるうのブログ一覧

2020年09月09日 イイね!

ネットワークオーディオ自作(8) ラズパイサーバーを改良する

ネットワークオーディオ自作(8) ラズパイサーバーを改良する最近ちょっとしたトレンドになった
「PSPのバッテリー、膨らんでませんか?」
の件。リチウムイオン電池にはつきもののこの現象、気持ちのいいものではないですよね。冷静に見れば
「寿命が誰でも見てわかる、優れた設計」
とも言えるのかもしれませんが、知らない間に進行するのは怖い。



これはゲーム機の問題というよりは、リチウムイオン電池が一時期に集中して販売された製品がたまたまPSPだった、ということでしょう。
老朽化した電池が問題を起こす時期に入ってきたとすれば要注意。携帯電話、モバイルバッテリー、デジカメ・・・皆さんも「不発弾」かかえてませんか?
使ってないリチウムイオン電池など、持っていて良いことなんてありません。さっさと処分おススメ。そういえばごみ回収車や処分場の火災事例もあります。燃えないゴミに出しちゃダメですよ。

こんな便利な(エネルギー密度の高い)ものは簡単に代えが効かないことはわかります。でも、中身はもちろん膨張を引き起こすガスも可燃性ですし、「電池」と、従来のそれと同じ呼び方をするには危険度のレベルが違う印象があります。

肌身離さず使用し数年で買い替える(=点検と回収のサイクルが確立している)スマホあたりはまだいいとして、カメラやDAPにまで採用するのはどうなんだろう。想定外が簡単に起きちゃうのが家電製品なわけで、そこまで普及させてよい技術と言えるのだろうか?と、そんな気がするのです。大変失礼ですがノーベル賞なんてもらっちゃって良かったの?

「押入れの奥に眠っていたお爺さんのカメラを復活!」なんてノスタルジーは今後はもう無理、逆に「爺ちゃんがこんなもの仕舞い込んでいたせいで・・・」と白い目で見られる時が来るとしたら悲しいことです。

導入部の話題にしては風呂敷を広げ過ぎました。何が言いたいかというと。

大電力を贅沢に使って高性能を追求するのも結構、でもメーカーなら保証期間過ぎたらどうなっても知らない、はねーだろと文句を一つ。
あと、乾電池で動く機械は10年後でも20年後でも使えるから好き!なので、低消費電力化の努力も続けてほしいなと、こちらはささやかな願いです。





さておきそんなわけで、自分ちの電池を総点検したところ、UPnP(DLNA)サーバーとして導入したラズベリーパイのUPS(無停電電源)のバッテリーがこんな事になっていました。
alt
これでも通電中より時間が経ってしぼんでいます。発見時はもっと「映える」絵面でしたよ。

リチウムイオン電池はそういうもの。1年で膨らんでしまうのは早い気もしますが、UPSの特性上常に満充電状態、しかもラズパイに温められて使われているので、電池にとって厳しい条件であることは確かです。クルマから降りるときはラズパイも持ち出すよう気を遣ってはいたのですけど・・・

面倒くさいコマンドを打ち込む必要もなく、エンジンを切ればラズパイを自動でシャットダウンしてくれるUPSは超便利で、自分には欠かせないアイテムとなっています。1年後同じことになるなら次からは半年でバッテリー交換するか?ちょっと面倒になってきたぞ・・・

いや違うな。パンパンに膨らんだ電池を見てしまった恐怖から、「脱リチウムイオン電池」活動をしたくなったというのが正直なところ。
ラズパイで使えるメンテナンスフリーなUPSを探してみました。

alt
Juice4halt J4H-HV-TRM (Nelectra)
4をforと読んで「ジュース・フォー・ホルト」といいます。電池の代わりにコンデンサ(スーパーキャパシタ)を使ったUPSです。キャパシタの取り付けがなんともDIYな感じ。
スロヴァキアのNelectra社が数年前にクラウドファンディングしていたもので、当時は残念ながら目標額に到達しなかったものの、くじけず販売にこぎ着けてくれたので入手してみました。
販売されているのは上のボードのみで、ラズパイやケースなどは別に用意します。

キャパシタによるバックアップ時間は長くても1分ほど。電源が落ちても動作させ続けることが目的の通常のUPSと異なり、電源が落ちたら安全に停止させることに特化した製品です。電池を使わないので発火・爆発の危険性が低く、広い使用温度範囲は車載にも適していると思います。

説明動画です。

電源を投入するとキャパシタに初期充電してからラズパイを起動、電源が落ちると自動でシャットダウンしてくれます。
この初期充電の時間は、車載時にはイグニッション時の瞬断対策として機能してくれるので具合が良いのです。


購入

製品は3モデルあり、いずれもNelectra社のWebサイトで購入できます。
・通常のラズパイと同じ5V電源を使用する「J4H-5V-USB」(動画はこれ)
・電源として7-28Vを入力可能な「J4H-HV-TRM」
・さらにRTCとRS-485通信を追加した「J4H-HV-TRM-RTC-485」

1号機の経験から、今回は2番目のHVモデルを調達。注文後PayPalで請求が届き、支払って3週間ほどで商品が到着しました。(連絡がなくちょっと不安になりましたが、問い合わせたら追跡番号を教えてくれました・・・)

電源は付属しないため別途必要です。自宅用に12VのACアダプター(前回までに購入したPCの付属品を流用)、車載用にはシガーソケットに接続するDCケーブルを用意しました。

(2020/10追記)後日測定したところ、12V入力での電流は初期充電時の0.8A程度が最高のようです。ラズパイ3は5V電源をUSBのmicroBコネクタに供給する形式ですが、microBでの規格上限に近い電流となるためUSBチャージャーで給電すると電源やケーブルにシビアだったりします。12V/1.5~2A程度のACアダプターなら容易に入手でき、車載時もアクセサリー電源を直接接続できるので非常に使いやすいです。


組立

UPSの取り付け自体は動画の通りラズパイに載せるだけで簡単です。
ケースには少しこだわってみました。

使ったことのある方はご存じと思いますが、ラズパイは放熱に無頓着だと簡単に性能低下(クロックダウン)を起こします。「ラズパイオーディオ」で画像検索すると基板むき出しの写真が多い理由には、DACなどを載せた時にうまく収められるケースが少ないことに加え熱の問題もあります。

以前のUPS PIcoを使ったサーバーもksyの公式プラケースに入れて(チップにヒートシンクは付けていましたが)密閉状態で使っていたところ、真夏の車内では動作が怪しくなることがあり、今回は放熱に有利なアルミケースを使います。熱だけ気にするならケース無しでファンでも付けた方が良いのですけど、見栄えも良くしたいので。

alt
CASE 01 (AVIOT)

オーディオ用で作りの良いケースです。ラズパイ本体より高価なちょっとした高級品。これ、画像で見える部分はトップの木を除き全部アルミの切削なんです。贅沢ですねぇ。
対応するラズパイのモデルは3Bで最新ではないものの、性能的にはMinimServerを動作させるに十分で、3B+や4より発熱が少ないのでかえって好都合。

DACを載せるスペースがありUPSも入りそうなこと、
アルミケースであること、
そしてこれも使えるかなと。
alt
ノイズ対策用に、ラズパイの基板とHATの間に取り付けるシールド板が付属します。今回DACを使うわけではなくシールドに意味があるかは不明ですが、分厚い銅板を放熱に利用している事例を見つけたのでアイデア拝借。

alt
クールスタッフ チューブタイプ(沖電線)

銅箔を絶縁膜で挟んだシート状の伝熱・放熱用部材です。発熱するICチップに貼り付けるだけでも放熱効果があり、さらに丸めてケースなどとの間に挟み込むことで熱を逃がすこともできます。
沖電線Webサイトのデータでは、ヒートシンク並みの性能があるようです。

alt
秋月で購入したクールスタッフの寸法は30x100mm。ざっと必要量を計算したところ1枚で足りそうです。

alt
ラズパイで特に発熱するICは、3Bの場合はCPU、LAN、メモリーの3つ。はさみでカットし、こんな感じに付属の両面テープで貼り付けました。銅板と接触する側には別に購入した熱伝導シートを載せています。裏面のメモリーチップも同様に処理し、こちらはケースの底面に接触させます。
クールスタッフの表面は絶縁されていますが、カットした端面は銅箔が露出するので周辺の部品と接触しないよう注意が必要です。

alt
シールド板とUPSの基板裏の部品が干渉するので、市販のスタッキングヘッダー(高さ8.5mm)を使ってかさ上げしました。スペーサーはM2.5x11mm。それでもまだ引っ掛かるキャパシタは、足をちょっと曲げてエッジプロテクタで養生しました。(これ以上かさ上げするとケースに入らない)

alt
ケースに収め、電源をUPS上の端子に接続します。自分は5.5mm x 2.1mmのDCジャックにしてみました。コードを引き出す部分のパネルが取り外せ、アルミ板なのでやすり等で簡単に加工できます。

ハードウェアはこれで完成。なかなかいい感じに仕上がりました。
ソフトウェアのインストールに移ります。


MinimServer2について

前回セットアップした時から1年経ち、OSもアプリも変化していますので、最新版として書き直します。

MinimServerはJavaベースのUPnP(DLNA)サーバーで、flacはもちろんDSDにも対応しています。タグやアルバムアートの処理が確実で、ナビゲーションツリー(「アルバム」とか「アーティスト」とか切り口を変えて一覧表示する、あれです。)の見せ方も実用的なもの。普通にありそうで実は数少ない「ちゃんとした」音楽サーバーアプリと言ってよいと思います。
WindowsやMacの他Linux版もありQNAPなどのNASやラズパイでも動作可能という、動作環境の幅広さも魅力です。

そのMinimServerが今回(Linux版は今月)バージョンアップしてMinimServer2となりました。機種別のインストール方法はこちら
新バージョンは機能限定の無償版(Starter Edition)と年間ライセンス制のフル機能版の2本立てで、通常の配信機能は無償版でカバーできます。
MinimStreamerによるトランスコード配信を行うためにはフル機能版が必要です。初年度のライセンス料は$39(3台まで利用可能)で、次年度からはディスカウントされるようです。この機能については最後に解説します。

ドネーションウェア(寄付歓迎)の旧バージョンも今のところダウンロード・利用可能ですが、今後アップデートは提供されずMinimStreamerもいずれ使用不可となるそうなので、あえて今から旧バージョンを入れる必要はないでしょう。
(2020/10追記)公式サイトから旧バージョンのダウンロードが消えました。旧MinimStreamerの利用期限は2021/1までとのことです。
(2021/2追記)旧MinimStreamerの利用期限が2021/3に延長されました。

(2021/4追記)旧MinimStreamerが利用期限を迎えました。今後MinimStreamerの機能を使うにはMinimServer2のライセンスが必要です。


準備作業1(PC側)

・楽曲ファイルの保存にはUSBストレージを使います。
alt
ポータブルSSD 480GB SSD-PL480U3-BK/N (バッファロー)
exFAT形式でフォーマットし(後で使うのでディスクラベルを控える)、楽曲ファイルを入れておきます。自分は
¥Music¥フォーマット¥アーティスト¥アルバム¥曲
としていますが、MinimServerはタグによるデータベース管理が基本なのでフォルダ構造は何でも構いません。MinimServerに限らず、ネットワークオーディオを楽しむならタグをきちんと入力することに全力を注ぎましょう。
参考:flacニヨル楽曲管理ノススメ
alt
楽曲ファイルの他、次のファイルもダウンロードして入れておきます。
MinimServer2(Linux ARM hard float版)
juice4haltの自動シャットダウン用スクリプト(7zは解凍しておく)

・MinimServerの状態監視と設定はPCから行えます。
PCにJavaおよびMinimWatch2をインストールしておきます。


OSのインストール

現在のラズパイ公式OSはRaspberry Pi OSです。前回インストール時のRaspbian StretchからRaspbian Busterをはさみ2代後となります。
OSイメージ作成には、専用アプリのRaspberry Pi Imagerが公式サイトで提供されているので利用してみます。
alt
Raspberry Pi OS (other)からデスクトップレスのLiteバージョンを選択し、microSDカードを作成します。
alt


準備作業2(ラズパイ側)

・最初だけラズパイをローカルで設定します。
alt
USBポートにキーボードを接続。
テレビとHDMIケーブルで接続。
家のルーターとLANケーブルで接続。(ネット接続が必要です)
SSDもつないでおきます。

・OSを書き込んだmicroSDカードをセット、電源を投入し、テレビとキーボードでログインします(pi/raspberry)。

・ラズパイに割り当てられたIPアドレスを調べます。
※現在のOSでは起動時の画面にIPアドレスが表示されますね。
$ ifconfig 
同一ネットワークにスマホがあれば、アプリのFingでも調べられます。

・設定ツールでブートパーティションをリサイズ、SSHを有効化。
$ sudo raspi-config 
alt
「Advanced Options」から「Expand Filesystem」
 ※リサイズは現在のOSでは自動で行われるようなので蛇足かも。
「Interfacing Options」から「SSH」→「Yes」
終了→リブートすると、以降の作業はPCから可能になります。
モニターやキーボードはここで外してしまっても大丈夫。


USBディスクを使えるようにする

・SSHでログイン
PCでターミナルアプリのPuTTYを起動。
alt
調べたIPアドレスに接続しログイン。
alt
「デスクトップレス」のOSですから、ここが全世界です。以降、コマンドとテキストエディタを駆使して設定してゆきます。

【2020/9追記】「自分もやってみよう」という方は、画面に表示されている通り最低でもパスワードを変更してください。原理的にNATで守られるIPv4と異なり、IPv6が通る環境では外部から直接SSHポートに侵入されるリスクがあります。
特にフレッツのIPoE契約でレンタルルーターをセキュリティレベル「標準」に設定している場合、フレッツIPv6網からのアクセスは拒否しない仕様(!)となっています。そこにデフォルトのユーザー名・パスワードでSSHポートを開くのは・・・
いったんSSHからラズパイに入られてしまえば、それを踏み台にしてPCのHDDやWebカメラを狙う位のことは可能ですし、実際企業では勝手に社内ネットワークにつながれたラズパイがセキュリティホールになった事例があります。
対策としては他にユーザー名やポート番号変更、証明書発行などが可能で、作業後はSSHを無効にしてしまえばより安心です。


・exFATファイルシステムをインストール。
$ sudo apt-get install exfat-fuse exfat-utils 

・接続したUSBディスクのIDを調べます。
$ sudo blkid 
表示されたリストからフォーマット時につけたラベルのある行を探します。「UUID」が必要な情報です。接続するUSBディスクにより変わるので、このIDを控えておきます。
/dev/sda1: LABEL="SSD-PLU3" UUID="C2C4-9374" TYPE="exfat" ...

・起動時にUSBディスクを自動マウントするように設定します。マウント名は任意。
$ sudo mkdir /mnt/usbhdd1 
$ cd /etc 
$ sudo cp fstab fstab.bak 
$ sudo nano fstab 
fstabファイルに設定を追加します。
UUID="C2C4-9374" /mnt/usbhdd1 exfat-fuse sync,auto,dev,exec,gid=65534,rw,uid=65534,noatime 0 0 
保存してエディタを終了。

・リブートしてUSBディスクにアクセスできることを確認します。
$ sudo reboot 
(起動待ち→ログイン後)
$ ls /mnt/usbhdd1 
ファイルが表示されればOK。

(2020/9追記)
fstabでマウントする場合、書式を間違えたりUSBを接続し忘れるとOSがエマージェンシーモードに入ってしまい起動できません。またUSBディスクを再フォーマットするとUUIDが変わることがあります。立ち上がらない場合はHDMIの画面で確認します。autofsを使って自動マウントさせる方法でも良いかも。


シャットダウン用スクリプトのインストール

UPSで自動シャットダウンさせるためのスクリプトをセットアップします。こちらの通りに設定します。
/home/piディレクトリ以下に、juice4halt/binディレクトリを作成し、スクリプトをコピーします。
$ cd /home/pi 
$ sudo mkdir juice4halt 
$ cd juice4halt 
$ sudo mkdir bin 
$ sudo cp /mnt/usbhdd1/shutdown_script /home/pi/juice4halt/bin 
$ sudo cp /mnt/usbhdd1/rebootj4h /home/pi/juice4halt/bin 
$ sudo nano /etc/rc.local 

rc.localファイルの最後、exit 0の手前に以下の1行を追加し、保存終了します。
/home/pi/juice4halt/bin/shutdown_script & 
スクリプトに実行権限を設定して完了。
$ cd /home/pi/juice4halt/bin 
$ sudo chmod 755 shutdown_script 
$ sudo chmod 755 rebootj4h 

もう一つのスクリプト、rebootj4hは標準のrebootコマンドの代わりに使用します。rebootコマンドで再起動した場合、その後の自動シャットダウンは無効となります。
$ sudo shutdown -h now 
ここでいったんシャットダウン、電源を切断・再投入し、動画のように機能することを確認しておきます。SSHではシャットダウンのプロセスを最後まで見ることができないためHDMIで確認します。


MinimServer2のインストール

UPnP(DLNA)サーバーのMinimServer2をインストールします。ラズパイ用のインストールガイドに従います。
引き続きSSHコンソールから
・javaをインストール(以前のRaspbian Stretchと変わっているので注意)
$ sudo apt install default-jdk 

・SSDに入れておいたMinimServerのインストールパッケージを/home/piディレクトリに展開します。
$ sudo cp /mnt/usbhdd1/MinimServer-2.0.15-linux-armhf.tar.gz /home/pi 
$ cd /home/pi 
$ tar xf MinimServer-2.0.15-linux-armhf.tar.gz 
(2020/9修正)tarはsudoで実行しない。

・MinimServerのセットアップ
$ minimserver/bin/setup 
デスクトップ統合→無効
自動スタートアップ→有効
※setupをsudoで実行すると自動スタートアップに失敗する。

・MinimServer起動
$ minimserver/bin/startc 
初回にライブラリの場所を聞かれるので入力する
(ここでは /mnt/usbhdd1/Music)
alt
ライブラリのスキャンが始まり、しばらく経って「MinimServer is running」と表示されれば起動完了。
alt
PCに同じ内容が通知され、MinimWatchのアイコンが緑色になります。

・自動起動に設定
このままだとターミナルを終了するとMinimServerも終了してしまうので、
以下の手順で自動起動に設定する。
>exit (MinimServerをいったん終了する)
$ minimserver/bin/startd 
起動後、リブートしてPCのタスクトレイにあるMinimWatchのアイコンが再度緑色になれば成功です。
$ sudo reboot 

この時点でflacなどは再生可能になっています。
ローカルレンダリングに対応した(=コントローラ兼レンダラーとなれる)スマホアプリのBubbleUpnpHi-Fi Castを使って動作確認します。
alt


MinimStreamerのインストール

MinimServerの特徴として、アドオンパッケージのMinimStreamerをインストールすることにより楽曲のコーデックをトランスコード(変換)して配信可能です。
通常ネットワークオーディオではflacやaacなどのデコードはレンダラーで行いますが、サーバー側でwavに変換して配信する使い方となります。メリットはレンダラーが対応しないフォーマットを再生できる他、音質面にもあるようです。
「flacとwavじゃデータは同じなんだから音が変わるはずないじゃん。」
と思うのが普通でしょうね。まぁ、興味ある方は体験してみてください。
DSDのDoP配信(DoPE)にも使用します。ただしlightMPDなどDoP出力が可能なレンダラーを使う場合サーバーからのDoP配信は不要です。

ということで、最初はMinimStreamer無しの無償版で使ってみて、トランスコード機能を試したくなったら30日間の試用ライセンス(無償)、必要となったらフル機能版のライセンスを購入すれば良いでしょう。ライセンスの移行は設定画面ででき、再インストールの必要はありません。

・ffmpegのインストール
コーデック群のffmpegを使えるようにしておきます。
再度SSHでログイン。
$ dpkg-query -W ffmpeg 
dpkg-query: no packages found matching ffmpeg 
↑入っていなかったのでインストールしました。
$ sudo apt-get update 
$ sudo apt-get install ffmpeg 
以前はラズパイ用のパッケージが無くソースコードからビルドする必要があったそうですが、今はapt-get一発で楽ちんです。ただし最初にupdateしておかないとエラーになりました。

・ライセンス認証
alt
ライセンスの設定はPCから行えます。MinimWatchのアイコンを右クリック→Configureでブラウザが開きます。
alt
ライセンス購入後メールで送られてくる認証コードを入力してアクティベートします。

・MinimStreamerのインストール
alt
アドオンパッケージもPCからインストールします。MinimWatchのアイコンを右クリック→Propertiesで設定画面を開き、Packagesのタブにあります。
alt
インストールが終わったらRelaunchで再起動。
alt
設定画面のSystemタブ、stream.converter以下の項目が増えます。
ffmpegを自動検出したことが、stream.converterで確認できます。
使用するレンダラーに応じてstream.transcodeに設定を記述します。画像は、flacなどの非DSD音源を全てwavに変換して配信する設定です。一方DSD音源はdsf/dff形式のまま配信し、レンダラー側でネイティブ(マーカーレス)・DoP・PCM変換を選択できるようにしています。
書式の説明はユーザーガイドにあります。
(2020/10/9修正)後述するネットラジオ用に、mp3とaacの変換設定を変更。ネットラジオを使わない場合はwav24またはwavで良いと思います。


以上で完成です。今回は見た目もちょっとオーディオ機器らしい、手のひらサーバーができました。
alt
前回製作した、超小型PC(LIVA Q2)によるlightMPDレンダラーとの組み合わせ。
ラズパイとPCをルーターに接続。PCにつながっているDAPはUSB-DACの代わりです。ルーターにWi-Fi接続したスマホから、UPnPコントロールアプリで再生します。

サーバー・レンダラーともにヘッドレス(モニター・キーボード不要)で運用でき、電源を入れたら勝手に立ち上がり、いつでも電源を落とせるので市販オーディオ機器と変わらない使い勝手です・・・いや起動時間があるので「変わらない」は盛り過ぎましたスンマセン。

スマホ用のコントロールアプリはこちらで紹介しています。

楽曲ファイルの入れ替えはシンプルに、サーバーの電源を落としSSDをPCに繋ぎ変えて行う仕様としています。ネットワークに不要なトラフィックを増やさない方が良いかなと思って、ファイル共有はあえて追加していません。
再スキャンは次回のサーバー起動時に自動で行われます。

ようやくサーバーとレンダラーの2020年版が揃ったので、涼しくなったら車載してみたいと思います。


(2020/9/13追記)
サーバーだけ一足先に車載し、ACCの12Vで無事動作確認できました。
ん?前より少し音質上がってる?なんで?サーバーだよ?
アプリ・OS・ケース・電源が変わったので、どれが原因かわからん・・・


(2020/9/20追記)
CPU温度のモニタリングソフト「s-tui」を使って冷却性能を検証してみました。
以前のサーバーで1時間ほど連続再生した後の状態です。気温はおよそ27℃。
(RPi3B, UPS PIco, ksyプラケース密閉, CPUヒートシンクあり, MinimServerトランスコードなし)
alt

今回のサーバーではこうなりました。
(RPi3B, Juice4halt, case 01密閉, シールド版+クールスタッフ, MinimServerトランスコードあり)
alt
10℃ほど下がっています。自然空冷の密閉ケースにしては上出来かと。

lightMPDのUPnPモードの場合キャッシュが機能し、楽曲にもよりますが16bit/44.1kHzの音源などは1曲まるごとキャッシング可能です。そのためサーバーの負荷は曲の切り替わり後数秒~数10秒間だけ高くなり、その後ほぼアイドル状態となります。画像のグラフでクロックが上がっているのが選曲のタイミングです。
以前のサーバーでは「高温時に動作が怪しく」と書きましたが、高レートのハイレゾ音源を次々スキップしている時などは高負荷状態が続くので、温度上昇によるスロットリング(クロック低下)が起きていたのかもしれません。


(2020/10/9追記)
MinimStreamerにはトランスコード以外にも便利な機能があるので紹介します。
楽曲ファイルのフォルダに、こんな感じの.m3u8ファイル(テキスト)を作成します。ファイル名・フォルダ名は任意です。
alt
.m3u8ファイルの例です。文字コードはUTF8(BOM無し)、改行コードはLFです。
※通常プレイリストの拡張子はm3uですが、MinimServerではm3uの文字コードはANSI(ShiftJIS)で日本語が文字化けするので、m3u8として作成します。

#EXTM3U
#EXTINF:-1,[NHKR1TK] NHK R1 東京
http://nhkradioakr1-i.akamaihd.net/hls/live/511633/1-r1/1-r1-01.m3u8
#EXTINF:-1,[NHKR2TK] NHK R2 東京
http://nhkradioakr2-i.akamaihd.net/hls/live/511929/1-r2/1-r2-01.m3u8
#EXTINF:-1,[NHKFMTK] NHK FM 東京
http://nhkradioakfm-i.akamaihd.net/hls/live/512290/1-fm/1-fm-01.m3u8


UPnPコントロールアプリからプレイリストを選択すると再生が始まります。
普通のネットラジオ用プレイリストと異なるのは#EXTINF行の [ ] で囲まれた部分で、これがあるとストリームがMinimStreamerにルーティングされます。MinimServerがネットラジオの代理サーバーとなるわけです。書式はこちら
MinimStreamerはHLS(HTTP Live Streaming)やMPEG-DASH(Dynamic Adaptive Streaming over HTTP)といった比較的新しいストリーミングプロトコルにも対応しています。MinimStreamerがプロトコル変換を行ってくれるので、HLSやDASHに対応しないプレーヤー・レンダラーでも聴けるようになります。
さらに指定してあればトランスコードも同時に行われます。レンダラーとしてlightMPDを使う場合プロトコル変換やトランスコード無しでも再生可能ですが、数時間ほど連続してラジオを再生させるとコントロールアプリに応答しなくなることがありました。MinimStreamerを通してLPCMに変換させることにより、24時間でも安定動作するようになりました。
なお例として挙げたNHKネットラジオはURLが不定期に変わるので、上の例で受信できないときは最新のものを調べてください。




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

ネットワークオーディオ自作(7) lightMPDをPCで(番外編)

ネットワークオーディオ自作(7) lightMPDをPCで(番外編)PC探しは「リベンジ編その2」で完了のつもりでしたが・・・もう1台試したくなり追加です。
「趣味とは手段が目的となること」とは、かの長岡鉄男氏(オーディオが熱かった時代のAV評論家)の言葉。ちっちゃいPC集めも趣味ですね。
そういえばHP200LXとかThinkPad220、librettoは30にU100も持ってたなぁ。200LXは手放したことを今でも後悔していたり。あれは良いものです。




前回との違いは機種だけですので、比較し易いよう同じ構成で書きます。

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


【共通】システムプラン

以下はこれまで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などハイレゾ対応プロセッサーに更新しても対応可能です。いや買い替えませんけど。


購入

今回はエモーショナルな動機による購入なので、選定理由はスキップします。
てゆうか理由はこの絵が全てです。

LIVA Q2-4/32-W10(N4100) IOT(ECS、写真左)

本体サイズは縦横わずか7cm。右のAPUやCDケースと比べるとサイズ感がわかると思います。
これは普通に欲しくなります、よね?
台湾ECSによる超小型PCです。Amazonで3万円台前半で購入しました。


さすがにこの大きさで自然空冷は無理だったらしく、内部にファンを搭載しています。ホームオーディオで使うなら前回までのようなファンレス機の方が良いでしょう。
後面のインターフェースは左からHDMI、LAN、DC12V。電源は外径3.0mm/内径1.1mmのセンタープラスというちょっと珍しいサイズ。LANは1系統なので、lightMPDの「最終形態」ともいえるイーサネット分離システムには使えません。


前面には電源スイッチとUSB3.0x1、USB2.0x1。側面にあるmicroSDスロットが唯一の増設手段で、RAMや内蔵SSDの変更はできません。


HWiNFOでCPU情報を取得してみました。
CPUはCeleron N4100。セレロンブランドを名乗っているものの、開発コード「Gemini Lake」はAtomアーキテクチャ(第6世代)に属します。
4コア4スレッド、ベースクロック1.1GHz、ブースト時2.4GHz。メモリーは4GBシングルチャネルでWindows10で使うには最低限です。

CPUやストレージ、OSの違う複数のモデルがあります。デュアルコアのN4000はlightMPDには適さないので注意。N4100搭載の本機には「Windows10 IoT Enterprise LTSC」という組み込み用OSがインストールされていました。

初期セットアップ時のアカウントやパスワードの要求レベルなど、一般用のWindows10と多少の違いはありますが、普通にPCとして使うことができます。ただ安定性を重視した設定となっていて、大型アップデートのような機能追加系の更新は適用されません。
「Windows Updateのたびにアプリの動作に問題が発生して困る」なんて方は、デスクトップOSとしてこういうのを選択するとよいかもしれません。

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

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

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


こちらはシステム情報。SSDはeMMCの32GBとこれまた最低限(64GBモデルもあります)。イーサネットのコントローラはRealtek製で、lightMPDの動作条件はクリアしていそうです。

さすがに4GB/32GBではWindowsPCとして使うには厳しいですが、今回の用途には十分です。


【共通】インストール

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



システムの全景です。フル機能のUPnP/DLNA/OpenHome対応ネットワークオーディオとしては最小クラスの構成ではないかと。
ラズパイのMinimServerとPCをルーターに接続。PCにUSB-DAC(DACモードにしたDAPで代用)を接続。ルーターにWi-Fi接続したスマホから、UPnPコントロールアプリ(BubbleDS)で再生します。

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


消費電力測定

車載にあたって、APUで導入したオーディオ用リニア電源の
alt
UltraCap LPS-1.2 (UpTone Audio)

を使用したいので、その定格(DC12V 1.1A)内の電力で動作できるか確認してみます。
3.0mm/1.1mmと5.5mm/2.1mmとの変換プラグを用意し、電源ラインにワットチェッカーをはさんで計測します。

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


起動完了後は3W前後に落ち着きました。


ベンチマークアプリ(PCMark 10)を動作させると、ピークでは11W台になることもありました。


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


Windows動作時は大変優秀ですが、lightMPDのDSD再生時はG41V-4やSSDを外したGD41と同程度でHeroBoxには及ばず。本機の場合SSDはオンボードで取り外しできないので、これ以上の大幅な省電力化は難しそうです。
しかし他の機種よりflacとDSDの電力差が大きいのはなんでだろう?

小型であることによる設置の自由度をとるか、前回までのファンレス機の静粛性をとるか。クルマに持ち込んで確認してみたいと思います。

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


結果オーライ。

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

今回もBIOSのAdvancedメニューに設定がありま・・・した。

表記はMINIXと同じで、電源接続で即起動するモードに設定します。サイネージモード、あるいはキオスクモードとも呼ばれています。
ACアダプターを接続するとすぐに起動することを確認できました。


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

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

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


暑い日が続いていますので、秋に向け家での仕込み作業を続けます。
次回はサーバーを改良するつもりです。




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

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

ネットワークオーディオ自作(6) lightMPDをPCで(リベンジ編その2)どうも、ちっちゃいPCコレクター&レビュアーのなかるうです。さすがに3台目となるとレビューもルーチンワークで早い早い・・・いや自腹なんで結構痛いんですけど。みんカラさん収益化ください。

前回との違いは機種だけですので、比較し易いよう同じ構成で書きます。




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


【共通】システムプラン

以下はこれまで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
Neo G41V-4(MINIX、写真左)

LIVA Zと同じ、手のひらサイズの「ミニPC」に分類される製品です。このところ多数発売されています。
IntelのNUCや前回のKODLIX GD41より一回り大きく、右のAPUやCDケースと比べるとサイズ感がわかると思います。海外通販で2万円台後半で購入しました。

alt
なぜか前回のGD41のような「カワイイ!」という感覚は感じません。一回りだけ大きいからか、Mac miniを思わせる薄型でシャープなデザインだからか、はたまた手に持った感覚がずっしり重いからか。
でもこんなちっちゃいPCなら何台でも欲しく・・・いやもういいです。

上面のスリットから放熱します。完全ファンレスで無音動作です。
後面のインターフェースは左からLAN、DisplayPort、HDMI、VGA、DC12V。LANは1系統なので、lightMPDの「最終形態」ともいえるイーサネット分離システムには使えません。

alt
コネクタは前後ではなく、このように90度の面にあります。側面には電源スイッチとUSB3.0x2、USB2.0x2、オーディオジャック、microSDスロット。

alt
このクラスのPCには珍しく筐体(ベースのみ)は鉄板でできていて、コストかかってる風ではあります。カワイイ感が希薄なのはこれか?

裏蓋を外すとM.2のSSDを1枚増設可能です。システム用SSDは別にオンボード実装されていて交換不可。RAMもオンボードの4GBのみで増設不可。WindowsPCよりは、LinuxのファイルサーバーやDaphile専用機にした方がストレスなく使えるかもしれません。

alt
プリインストールされているWindows10は海外版でした。最初のセットアップで日本語を選択しても英語表記のままだったので面食らいましたが、デスクトップ画面になってから日本語の言語パックをインストールしたところ普通に日本語OSとして使えるようになりました。
ただ設定が足りないのか、このようにバイリンガルな表示になっています。アプリはメニューを含め日本語表示され特に問題ないのでそのままにしています。

alt
HWiNFOでCPU情報を取得してみました。
CPUはCeleron N4100。セレロンブランドを名乗っているものの、開発コード「Gemini Lake」はAtomアーキテクチャ(第6世代)に属します。
4コア4スレッド、ベースクロック1.1GHz、ブースト時2.4GHz。メモリーは4GBシングルチャネルでWindows10で使うには最低限です。

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

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

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

alt
こちらはシステム情報。SSDはeMMCの64GBとこちらも控えめ。イーサネットのコントローラはRealtek製で、lightMPDの動作条件はクリアしていそうです。

前の2機種に比べるとRAM・SSDともミニマムで価格も高め。WindowsPCとしては一歩譲る感じ(なので第3候補にしていたの)ですが、実際に使ってみるとしっかりした筐体で発熱も少なく、今回のオーディオ用としては案外「当たり」かも。


【共通】インストール

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。意外にあっさり動いてくれました。一晩連続再生させてみましたが安定しているようです。


消費電力測定

車載にあたって、APUで導入したオーディオ用リニア電源の
alt
UltraCap LPS-1.2 (UpTone Audio)

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

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

起動完了後は3W台に落ち着きました。
alt

ベンチマークアプリ(PCMark 10)を動作させると、ピークでは15W近くになることもありました。
alt

lightMPDでflac音源を再生させると6W前後、DSD/PCM変換再生させた時は10W程度となりました。
alt
lightMPD動作時はSSDを外したGD41と同程度で、なかなか優秀ですがHeroBoxには及ばず。本機の場合SSDはオンボードで取り外しできないので、これ以上の大幅な省電力化は難しそうです。ちょっと微妙な結果となりました。

とりあえず候補として2台確保できたので、あとはクルマに持ち込んで確認してみたいと思います。

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


ぬかりません。

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

ちゃんと下調べしてあります。
今回もBIOSにその設定があります。ファームウェア更新は不要で最初から対応していました。
alt
前回のGD41と表記が異なりますが意味は同じ。電源接続で即起動するモードに設定します。サイネージモード、あるいはキオスクモードとも呼ばれています。
ACアダプターを接続するとすぐに起動することを確認できました。


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

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

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




ネットワークオーディオ関係の記事をまとめてみました。よかったらこちらもご覧くださいませ。
ネットワークオーディオを楽しもう
Posted at 2020/07/23 08:47:39 | コメント(0) | トラックバック(0) | オーディオ | クルマ
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) | オーディオ | クルマ

プロフィール

「@なかるう のではなく、CableJiveのライトニング延長ケーブルが機能しなくなっていました。メジャーバージョンアップ怖い。」
何シテル?   09/20 15:04
「なかるー」改め「なかるう」、「う」は大きい「う」です。 音楽のあるドライブが好きです。いい音だったらもっと楽しいですよね。なのでいい音を追求してます。 更...

ハイタッチ!drive

みんカラ新規会員登録

ユーザー内検索

<< 2025/10 >>

   1234
567891011
12131415161718
19 20 2122232425
262728293031 

リンク・クリップ

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 ...

過去のブログ

2025年
01月02月03月04月05月06月
07月08月09月10月11月12月
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