• 車種別
  • パーツ
  • 整備手帳
  • ブログ
  • みんカラ+
イイね!
2021年05月16日

直結ネットワークオーディオ(概念実証編)

直結ネットワークオーディオ(概念実証編) どうも、半年ぶりのブログです。更新の少ないこんなところに見にきてくれて、ありがとうございます。

ここ2年ほどはネットワークオーディオに取り組んでいます。PV数を見る限り結構人気のこのシリーズ、今回はちょっとマニアックなところを攻めます。






自分のネットワークオーディオはこんな構成で始めました。
alt
ラズベリーパイ(3B)のサーバー
ネットワークオーディオ自作(1) MinimServer
APU.2D4のレンダラー
ネットワークオーディオ自作(2) lightMPD
を製作しました。スマホからコントロールする、コンパクトなDLNA/UPnP/OpenHome対応システムです。

こんな風に車載しました。
ネットワークオーディオ車載
alt
モバイルルーター Aterm MR04LN(NEC)
スイッチングハブ LSW-TX-3EP/CUW(BUFFALO)

その後、レンダラーをAPUからPCに
ネットワークオーディオ自作(7) lightMPDをPCで(番外編)
サーバーはUPSを変更して12V電源化、アプリをMinimServer2へ
ネットワークオーディオ自作(8) ラズパイサーバーを改良する
と更新しています。PCを車載するため安定化電源も追加しました。
PC用安定化電源(遅延起動対応)


音源を自前で用意するセルフ再生としては、機能的にはこれで満足。音質的にもそれまでのAndroid端末やDAPより改善しましたが、ネットワークオーディオにふさわしい音質改善方法は何かないものか、と探ってみました。


オーディオ用ネットワークの分離
alt
オーディオ用ネットワークを他と分離するために、図のルーター2(数千円で購入できるトラベルルーター)を追加しました。詳しくはこちら。
ネットワークオーディオ用ネットワークの分離
こんなことで音質が上がる、てゆうか「落ちなくなる」んですよ。ネットワークにつながっている機器が多いほど効果を実感できると思います。

これで完成だな、と整備手帳を上げて悦に入っていたところ、
「追加ルーターはラズパイでできるのでは?」
「ついでにHUBも無くせるんじゃね?」

とのレビューコメント(意訳)を頂きました。

ぐぬぬ・・・その手があったか!
ネットワークに欠かせない、というか「あって当たり前」のHUBを無くしてしまうというのは、相当にアグレッシブな発想です。コメントではストレートマフラーに例えられていたのが言い得て妙だなぁと。世の中にはオーディオ用スイッチングHUB(!)なんてのがある位なので、良いか悪いかはともかく音質への影響があるはずと直管、いや直感しました。
高級ケーブルとかも否定はしません(むしろ好物です)が、もっと根本的な、原理的なところに手を入れる、そんなアプローチでオーディオをやってみたかった!のです。
それに、ラズパイがあればサーバーもルーターもHUBも要らないなんて、今ネットワークオーディオで商売しているメーカーさんは・・・やらないよね。


システムプラン

まずはイメージから。
alt
サーバーとなっているラズパイにソフトウェアルーターを追加し、
・モバイルルーターに対する子機 と
・スマホに対する親機
の2つの役割を持たせます。ラズパイ・PC・スマホの3台でオーディオ専用ネットワークLAN2を構成します。ルーター機能によりセグメントを分ければ、上位のネットワークLAN1からLAN2に不要なブロードキャストパケットが流れ込むことはありません。さらにサーバーとレンダラーは対向接続のため他からのアナログ的なノイズ混入はゼロ、かつHUBによるバッファ(ストア&フォワード)動作もなく低レイテンシーです。

なお理解のためwlan0およびwlan1と分けて記載してあるWi-Fiは、実際にはラズパイの内蔵Wi-Fiだけで実現できます。
USBドングル型のアダプターを使用する場合も「デュアルモード」対応かつ同時動作可能な機種なら同じく1つでOKです。


OS導入

ラズパイのOSは今回もデスクトップレス版を使用します。
OSイメージ作成アプリのRaspberry Pi Imagerを公式サイトからダウンロード、Raspberry Pi OS Lite(32bit)を選択してmicroSDカードに書き込みます。
alt

ラズパイのコンソールとして、USBポートにキーボード、HDMIポートにモニター(TVでも可)を接続、microSDカードをセットして起動します。
LANポートには何もつなぎません。よって最初はインターネットが使えず、ローカルコンソールで設定してゆきます。


Wi-Fiネットワークに接続

OS標準の構成ツールで設定します。
(ログイン後、以下同じ)
$ sudo raspi-config 
alt

「System Options」から「Wireless LAN」を選択、初回は地域コードの設定を促されるので「JP」を選択後、接続するルーターのSSIDとパスワードを入力します。
「Localization Options」からタイムゾーンとキーボードも設定しておきます。日本語キーボードを使う場合、設定しないと「 | 」(パイプ記号)が入力できなかったりするので注意。

リブート後、Wi-Fiが有効になります。
$ ifconfig wlan0 
としてIPアドレスが割り振られていれば成功です。(起動時の画面にも表示されます。スマホアプリの Fing も便利。)
ここまででインターネットに接続できたので、OSを最新状態に更新しておきます。
$ sudo apt-get update 
$ sudo apt-get full-upgrade 
$ sudo reboot 


内蔵Wi-Fiアダプタの機能を調べてみました。
$ iw list | grep -A 4 "interface combinations" 
    valid interface combinations: 
        * #{ managed } <= 1, #{ P2P-device } <= 1, #{ P2P-client, P2P-GO } <= 1, 
          total <= 3, #channels <= 2 
        *
#{ managed } <= 1, #{ AP } <= 1, #{ P2P-client } <= 1, #{ P2P-device } <= 1, 
          total <= 4,
#channels <= 1 
managed はクライアント、APはアクセスポイントです。model 3B のラズパイでは、クライアントとアクセスポイントの同時動作は可能ですがチャンネル数は1、つまり同じチャンネルを共有するということ。速度は落ちるかもですが、DLNAのコントロール用なので大丈夫でしょう。


Wi-Fiルーター構築

さて肝心のネットワークをどうやって実現するか?いくつか試してみて、ここで解説されている方法がうまく動作したので紹介します。

StackExchange.com - Access point as WiFi router/repeater, optional with bridge

ステップ1. systemd-networkdのインストール
ステップ2. hostapdのインストール
ステップ3. wpa_supplicantの設定(クライアント)
ステップ4. インターフェースwlan0の設定
ステップ5. hostapdの設定(ブリッジ)
ステップ6. wpa_supplicantの設定(ブリッジ)
ステップ7. インターフェースbr0、eth0の設定

手順が多めですが、アレンジが必要なのはWi-Fiの設定とIPアドレスくらいで、ほとんど記事の通りにしていけば大丈夫です。

alt

設定後はこうなります。システムプラン通りです。
これでWi-Fiルーターとしての設定ができました。Wi-Fiのアクセスポイントにスマホなどを接続し、インターネットに抜けられることを確認します。


サーバーとレンダラーの対向接続

こちらは簡単。PC同士を(HUB同士も)直結する場合、本来LANケーブルにはクロスケーブルという特殊な結線のものを使います。しかしLANコントローラとOSが「AutoMDI/MDI-X」対応であれば通常のLANケーブルが使用可能です。

ラズパイとlightMPDのPCを接続し、Wi-Fi上のスマホから Fing などを使ってlightMPDが見えれば通信できています。

ストレートとクロスを間違えたり、HUBレスにしたからといって機器に電気的な過負荷がかかったり壊れたりすることはありません。普通に動くケースが多いと思います。


MinimServer2のインストールと設定

UPnP/DLNAサーバーのMinimServer2をインストールします。方法は以前のブログで紹介した通りなので省略します。
MinimWatchから設定できるプロパティに ohnet.subnet という項目があり、複数のネットワークがある場合にMinimServerが使用するネットワークを指定できるようになっています。今回の構成では192.168.13.0にすべきと思いますが、設定してもしなくても再生できていてよくわかりません。


動作確認と考察

UPS付きラズパイとLIVA Q2はクルマで運用中のため別システムを作って動作確認しました。
alt
ラズパイとPCを直結。PCはUSBメモリーからlightMPDを起動、つながっているDAPはUSB-DACの代わりです。ラズパイにWi-Fi接続したスマホから、UPnPコントロールアプリ(BubbleDS)で再生しています。

改善と検討したい点がありますが、ひとまず完成とします。
(残課題とフォローアップに記載)

USB伝送におけるバルクペット、ネットワークオーディオのDirettaもそうで、データ伝送プロトコルによる音質改善は最新のデジタルオーディオでは割と見かけるようになりました。
クロック情報が含まれるS/PDIFと違って、USBやネットワークオーディオの伝送経路にはそこかしこに「非同期」が存在し、それを吸収するためのバッファ(メモリー)が必要です。
(非同期が悪ではなく、非同期と同期のどちらが音質的に有利かはケースバイケースなのでここでは触れません。)

大きなバッファを一気に満たすのか、小さなバッファをこまめに制御するのか。また、大きなパケットでドカンと送るのか、小さなパケットでちょろちょろ送るのか。非同期伝送にはシステムの数だけ送り方のバリエーションがあります。

エラーが発生しないよう適切に設計されている限り、送り方でデータが変わるわけではありません。しかしアナログ段への影響は(残念ながら)ゼロにはできず、伝送プロトコルによってその影響をコントロールしよう、ということなのでしょう。

さて音質的にはどんなもんでしょう。
HUBレス伝送によるレイテンシー削減は、ベルトドライブに対するダイレクトドライブのような音をもたらしてくれるのでしょうか。(んなバカな、いやそうとも言えんぞ・・・)
かつてはメーカーしかできなかったようなことが、1万円もしない手のひらサイズのコンピュータで試せるのは楽しいものです。


残課題

・Wi-Fiの制御系がどうにも頼りない感じ。再生時間表示がスキップしたり、アルバムアートの取得が遅かったり、一晩放っておくと接続が切れていたり。対する有線LANの再生系は盤石で、音飛びなど無く良い音で再生を続けてくれるので本腰を入れて改善したいと思います。

・UPnP版のlightMPDにはキャッシュがあり標準で有効になっています。HUBレスにしておいて、最後の最後に1曲まるごと格納できるようなバッファを設けるのはどうなんだろう。思想が合っていないような気もしたりしなかったり。

・あ、MTU値を最適化する宿題ももらってました。これも後日。


フォローアップ
(2012/5/27追記)
まずはよわよわなWi-Fiをなんとかしようと試みました。

1. パワーマネジメント機能の無効化
この対策は定番のようです。FAQにOFF推奨ってなっている機能って何よ?
$ sudo nano /etc/rc.local 
/sbin/iw dev wlan0 set power_save off
/sbin/iw dev ap@wlan0 set power_save off

$ sudo raspi-config 
System Optionsの「Wait for Network at Boot」を有効に

2. ACアダプターの容量アップ
3までのラズパイはmicroBのUSBコネクタで給電する仕様ですが3A近い電流を流すのはちょっと無理があり、ケーブルとコネクタの抵抗成分により電圧不足になりがちです。
コンソールに低電圧の警告「Under-voltage detected!」が出るような状態だと、ラズパイの内蔵Wi-Fiは性能が低下するようです。

以上の2つで多少改善しましたが、完全な解決には至らず。
あれれ、意外と手こずるぞ・・・今回は「概念実証編」ということにして、次回「実用化編」に続きます。
ブログ一覧 | オーディオ | クルマ
Posted at 2021/05/16 10:01:14

イイね!0件



タグ

今、あなたにおすすめ

ブログ人気記事

中橋の人道橋を渡りました♪
ツゥさん

大人の修学旅行 高知編
愛島福さん

SMP北関東 新緑の妙義山~軽井沢 ...
くね7さん

昨日は月曜日(シ・ガり散らかす🍩)
u-pomさん

オアシスミーティングの前日に舞子公 ...
2.0Sさん

皆さん、こんばんは〜🙋🏻今日は ...
PHEV好きさん

この記事へのコメント

2021年5月16日 10:07
こんにちは
ゆくゆくはやってみたかったイマジネーションにしか過ぎなかった事だったのですが、具現化なさっているとは・・・これはすごい。
コメントへの返答
2021年5月16日 10:23
コメントありがとうございます!
まだまだ大きなイベントもオフ会も難しい状況で、時間だけはあるのでこんなことしてますw
2021年5月17日 1:36
白眉です、直管デッパのイラストでパサートが変身したのかとびっくりしました。完成おめでとうございます。MTUはスイッチレスならいじる必要無しですよ。俺のクルマ直管だぜって自慢してみたいですね。
コメントへの返答
2021年5月17日 23:57
ありがとうございます。
「直管」の表現がとてもインプレッシブだったので、勝手ながら全面的に採用させていただきました。
当初考えていたルーティングがうまくいかず、手っ取り早くブリッジにしました。

プロフィール

「qobuzアプリで対応プレーヤーが使えるQobuz Connectがスタート。ということは、CarPlayを使いつつ任意のハードで音声出力できるのでは?」
何シテル?   05/11 15:22
「なかるー」改め「なかるう」、「う」は大きい「う」です。 音楽のあるドライブが好きです。いい音だったらもっと楽しいですよね。なのでいい音を追求してます。 更...

ハイタッチ!drive

みんカラ新規会員登録

ユーザー内検索

<< 2025/5 >>

    123
45678910
11121314151617
18192021222324
25262728293031

リンク・クリップ

備忘 Passat Variant 11年14万kmの整備振り返り 
カテゴリ:その他(カテゴリ未設定)
2024/10/18 00:02:25
Ottocast A2AIR Pro 
カテゴリ:その他(カテゴリ未設定)
2024/06/18 03:24:43
柳楽光隆さんのメローなジャズのプレイリスト 
カテゴリ:その他(カテゴリ未設定)
2024/01/07 23:24:33

愛車一覧

フォルクスワーゲン パサート セダン フォルクスワーゲン パサート セダン
フォルクスワーゲン パサート セダン (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月
ヘルプ利用規約サイトマップ

あなたの愛車、今いくら?

複数社の査定額を比較して愛車の最高額を調べよう!

あなたの愛車、今いくら?
メーカー
モデル
年式
走行距離(km)
© LY Corporation