12
12
2016
BeagleBone + Botic で簡単DSD Native 再生(その5)
BBB/BBG Botic環境をRoon Bridge化してみる
今回の一連のディジタルオーディオ関連の記事を読んでいる類の人であれば、”Roon” というキーワードを何度も目にしている(耳にしている)ことだろう.”Roon” について簡単に説明するのは難しいので、”Roon” について知りたければ、 Roon Labsのホームページを見るなり、”Roon” について書かれた記事を参考にして欲しい.
【注記】BoticをRoon Bridge化するために、Botic本来の環境に手を加えることになるので、BoticをMPD主体で運用する場合は、ここで紹介する Roon Bridge化はお薦めできない.今回紹介する方法でRoon Bridge化するのであればMPDの併用は諦めて、RoonBridge専用機にするのが良いだろう.GLIBCを強制的に新しいバージョンに入れ替えてしまうので、Boticで組み込まれている各種パッケージの整合性が保てなくなってしまう.
【追記】Debian JessieをBotic化した後に、mpdおよびRoonBridgeの設定を行う方法
この後で紹介するRoonBridgeのインストールは、glibcのバージョン問題などで結構面倒な作業が必要になるが、Debian JessieをBotic化した後に、mpdおよびRoonBridgeの設定を行う方法であれば、RoonBridgeのインストールは簡単になる.RoonBridge化を試みる場合は、Debian Jessieをベースにすると良いだろう.
【Debian JessieのBotic化のための参考記事】
みみず工房の“yo”さんがDebian JessieのBotic化について手順を紹介しているので、こちらの記事を参考にすると良いだろう.
・I2Sの世界(4) [ http://mimizukobo.sakura.ne.jp/articles/articles020.html#025 ]
・I2Sの世界(5) [ http://mimizukobo.sakura.ne.jp/articles/articles020.html#022 ]
Debian Jessie + Botic 環境で、mpdとRoon Bridgeの両方を稼働させた状態で比較テストをやってみたが、mpdでの再生の方が圧倒的に音が良かった.Roonでの再生はmpdでの再生に較べるとどことなく音が曇ったような感じを受ける.この場合の両者の再生環境の違いは、プレイヤー(Roon : 音源はMac mini のSSD ローカルディスク、 mpd: Cantata V1.5.2 + NFS サーバ上のファイルをmpd側にNFSマウント)環境の違いのみで音源データは同じ物だ.
Roonプロトコルは一般には公開されていないプロプライエタリなプロトコルなので確かな事は言えないが、mpdプロトコルに較べて圧倒的に重い(音データ以外にも色々な情報のやり取りが行われている)筈なので、この辺の違いが音質差となって現れているのだろう.やはり音質に徹底的に拘るのであれば、Roonは許容できないだろう.
[ 御本家 ]
・Roon Labs [ https://roonlabs.com ]
[ Phile-web の記事 ]
・ 『クラウド/ローカルをシームレスにつなぐ“総合音楽鑑賞プレーヤーソフト”「Roon」の魔法とは?』 逆木 一
・『Q&A形式で解説!今注目の音楽再生ソフト「Roon」にまつわる“16のギモン”』佐々木 喜洋
・『非対応機器が約1万円でRoon対応に変身! ラズベリーパイで“Roon Bridge”を作った』佐々木 喜洋
・『いま話題のRoonをラズパイで!ラズパイ・オーディオの「Roon Bridge化」を検証する』海上 忍
今回の記事は、BeagleBone Black/Greenの Botic V7 環境に、Roon Bridge 関連のソフトウェアを組み込んで、MPDだけではなく、Roonによる再生もできるようにしてしまおうという企画だ.
予めお断りしておくが、私には現時点で Roon について何かを述べるだけの十分な知識も経験も無いので、今回の記事では Roon の再生品質の善し悪しやその存在意義については敢えて触れないことにする.そのうち、Roon について何か書くかもしれない.
ここ数ヶ月間Roonを試してきたが、ここ暫くは私のデジタル系オーディオ再生のメインプレーヤーとして活躍してくれる事だろう.音質面は一先ず置いておいて、ユーザエクスペリエンスでこのRoonに勝る物はないだろう.MPDクライアントの出来の悪さ、不安定さには正直閉口していたので、Roonの登場は私にとっては福音だ.
音質に関してはlightMPDなどと較べると明らかに見劣りする(クラッシック愛好家で音質に拘る人達には許容できない?)が、それでもRoonの再生環境を手放す気にはならない.RoonではPCM/DSD共に曲間の切替えノイズは皆無で、MPDクライアントやAudirvanaなどの専用クライアントなどで生じるデータ形式の異なる曲の切替えノイズに悩まされることがなくなったのは何よりも快適だ.幸か不幸か私にはほんの些細な音質の違いが気になるような神経質な地獄耳を持ち合わせていないので、Roonの再生環境でそこそこ満足している.正直これ以上デジタル環境の再生音質に拘るより、昔のようにアナログの世界で楽しいオーディオライフを送りたいと気持ちが強い.
Botic環境のRoon Bridge化
Roon Bridgeがどのようなものかについては上記の記事を読んで貰うとして、今回は Botic V7環境を Roon Bridge化する際の手順について紹介する.
Roon Bridgeは、Windows環境(32/64bit)、Mac OS環境、Linux環境の何れでも稼働させることができるようだが、BoticはLinux環境なので、当然Linux用のパッケージをダウンロードしてBotic環境にそれらをインストールすることになる.残念ながらLinux用のRoon Bridgeソフトウェアはまだ開発途上(多分今後も...)で、対応しているLinuxディストリビューションは限られているようだ.
Ubuntuなどの比較的メジャーで汎用的なLinuxディストリビューションでは手間を掛けずに簡単に構築可能なようだが、残念ながら Botic のようなマイナーなディストリビューションでは、Roon Bridgeソフトウェアをインストールして稼働させるには、足りない部分を自分で環境構築しなければならない.
とりあえず今回は、トライ&エラー方式でBoticをRoon Bridge化させてみたときの手順を紹介する.
【Linux版のRoon Bridgeインストラースクリプトのダウンロード】
Downloadページ [ https://roonlabs.com/downloads.html ] 中の、”Roon Bridge” から “Linux” のリンクを辿ると “LinuxInstall“ページが表示される.ここには. Roon Server/Bridge をLinux環境下で稼働させるための条件や環境について触れられているので、先ずは一読しておく.
先ずは、Roon Bridge で必要な環境を挙げておく.
・libasound2 (1.0.29+ recommended) : ALSA(Advanced Linux Sound Architecture)のバージョンは 1.0.29以上を推奨
・glibc 2.14 (or higher) : glibcのバージョンは 2.14以上
・Recent Linux Kernel : 4.x 系の最新カーネル
Native DSD再生にはこれらの条件をクリアしていなければならないようだ.Botic V7 (rc3)での環境をちょっと調べてみた.
kernelのバージョンは 4.8.13なので問題はないが、libasound2のバージョン情報が k4.8.13-botic7-rc3 に書き換えられていて、条件に合致するのかどうか良く判らない.glibc(libc) のバージョンが 2.13なので、このままでは駄目そうだ.とりあえず、ダメ元でこのページに書かれている内容に従って、Roon Bridgeのインストール作業を実施して行くことにしよう.
最初のインストーラースクリプトのダウンロードで curl がインストールされていないので転けてしまった.やれやれ...
先ずは、 curl をインストールしてからインストーラースクリプトをダウンロード.
インストーラスクリプト “roonbridge-installer-linuxarmv7hf.sh” を実行すると
と何やらエラーメッセージを吐いて異常終了してしまう.圧縮されたファイルを解凍できないようなので、 ”bzip2″ をインストール後に、先程のインストールスクリプトを再実行する.
何やらインストールは上手く行ったようなメッセージが吐き出されている.Roon Bridge も既に起動されているようなので、どのようなプロセスが走っているのか確認してみる.
あれー!??? "Roon Bridge" 関連のプロセスが見当たらない.何処??? 勿論、この状態では Roon Coreからも認識されない.先ずはエラーとなる原因をシステムのログ情報から探し出すこにする.
"/var/log/syslog" を確認すると、
やはり、glibc(libc) のバージョンが低すぎるようで異常終了している.glibc(libc) を最新版にアップデートしないといけないようだ.
【glibcのアップデート】
glibcのアップデートに関する情報を拾い集めていたら、"stack overflow" サイトに "http://stackoverflow.com/questions/19471683/lib-libc-so-6-version-glibc-2-17-not-found" なるQ&Aを見つけた.このページの最後の方に、"InvictusRex28" さんが次の様な手順で glibをアップデートすれば良いという回答をしているので、この方法でアップデートする.
どうやら パッケージのリポジトリに "http://ftp.debian.org/debian sid main" を追加して、"libc6" をアプデートすれば良いようだ."/etc/apt/sources.list" に
"deb http://ftp.debian.org/debian sid main"
の1行を追加し、apt-get コマンドでアップデートする.
"/etc/apt/sources.list"
libc というLinuxの重要ライブラリの入れ替えなので、メッセージを確認しながらアップデートを行う事にする.
今度は上手くRoon Bridgeが起動したようだ.それにしても Linux上のRoon環境は "RoonBridge.exe", "RAATServer.exe" など気持ち悪いったらありゃしない.何で最初からLinux環境に合わせて作ってくれないのかな.Windows .Net 環境をベースに開発しているのがちょっとね〜...
Roon全般がやたら重いのはどうやら"Mono" という .Net互換フレームワークの使用が原因かもしれない.イーサネットポートのアクセスランプの様子を見ていてもネットワーク通信の帯域は相当消費しているようなのでRAATプロトコル自体も重そうだ.Mac OS, Linux, Window 間の互換性の維持のためだけにコンピュータリソースを浪費するのも如何な物か...