Music Player Daemon(MPD)で遊んでみる 1

(以下は過去Qiitaに投稿していた内容です。)

RaspberryPi を使ってオーディオを楽しんでいる方々の記事を読んで、ひさびさにオーディオ熱がよみがえってきました。

RaspberryPi に DACボードを挿して、安価なデジタルアンプを通して安価なスピーカーを鳴らす。でも割といい音が出るよ。という感じの記事がよく見受けられます。 「安いけど音がよい」というフレーズに、なんとも心をゆさぶられたわけです。

構成

ハードはこんな感じです。

  • RaspberryPi3
    • これは以前から持ってたのを使います。
  • サインスマート HIFI DAC サウンドカード モジュール I2Sインターフェース Raspberry Pi B+、2 Model B対応
    • お安い DAC ボード。「HiFiBerry DAC +」と互換品らしいです。
  • FX-AUDIO- FX-2020A+ CUSTOM
    • お安いデジタルアンプ。なんでも TRIPATH 製 TA2020-020 搭載デジタルアンプは『とっても音が良い』とか...
  • ACアダプタ 12V2A
    • FX-2020A+ 用です。アマゾンの安いやつです。
  • 自作スピーカー FOSTEX FE83E ダブルバスレフ
    • 大昔に作って押し入れにしまってあった物を引っ張り出してきました。

ソフトは、Volumio と、Moode Audio を試してみました。 いずれも microSD に焼いて、RaspberryPi にさして、ブラウザからアクセスして、多少設定したらあっけなくスピーカーから音が出てきました。

色々な記事のとおり、意外なほどしっかり鳴ってくれます。まぁもっとも FE83 ですので低音は厳しいです。FX-2020A には、トーンコントロールが付いていて低音ブーストもできるのですが、あんまり上げすぎるとたいした音量でもないのにスピーカーのコーンが派手に動いてすぐ歪みが出てきます。トーンコントロールをバイパスするDIRECTモードの方が音は綺麗です。

あんまり低音の入っていないソースだと結構きれいに聞こえます。Boyce Avenue のギター弾き語りとか、すごいツヤツヤしててちょっとにんまりしてきました。当方耳が良いという自信はありませんが、これはアリですよ。

RaspberryPi に導入するソフト

RaspberryPi に導入するソフト(デストリビューション)は以下のようなものがあるそーで、どれがいいんかよくわからないです。

Volumio

ネットの記事では一番量が多いでしょうか。導入してみました。

  • DLNAサーバーのコンテンツも再生できました。
  • 操作UIがなかなかカッコいいです。
  • UIのレスポンスは、Moode Audio より良好だとおもいます。UI用に Node.js が使われているようです。レスポンスの良さは websocket によるところでしょうかね。

残念な部分

  • Bluetooth による転送(スマホ等の音を受信、外部BTスピーカーへの送信)は有料...
  • WLAN がうまくいきませんでした。色々手動でも試してみたのですが、eth0 wlan0 を同じ LAN内でDHCPにてIPアドレスを割り振ると、eth0ではUIが正しく動くが wlan0ではUIが動かないです(途中でフリーズする)。UIで使っている websocket 周りで、ブラウザにIPアドレスを返すリクエストがあるのですが、そのIPリストに eth0 のアドレスと、wlan0 に仮に振られているアドレスしかなく、wlan0 の DHCPアドレスが含まれていないたと思われます。

Moode Audio

ネットの記事でもそこそこ取り上げられています。 今のところ、Moode Audio を使っています。

  • 操作UIがややチープです。
  • PHPによる実装のためかちょっともっさりぎみ。
  • Bluetooth による転送ができました。
    • スマホからBT接続するごとに操作UI側で受付ボタン押さないといけないのはちょっと煩わしいです。
    • スマホ音が時々途切れることがあります。スマホYouTubeなんかをキャストしていると映像に対してかなり遅延があります。
  • DLNAサーバーのコンテンツも再生できました。
    • たまーにコンテンツリストがおかしくなる時があります。
    • いくつかのコンテンツで文字化けが起こりました。(設定でなんとかなるのかもしれませんが...)

RuneAudio

ネットの記事は少な目ですかね。開発が途切れているようです。OS も raspbian ではないとのことでとりあえずスルー

lightMPD

開発は日本の方のよーですね。シンプルでコンパクトが特徴のようです。

なんとなくの理解(MPD)

いずれのデストリビューションでも、「Music Player Daemon(MPD)」というデーモンが中心にあり、それに対してブラウザベースのUI(MPDクライアント、設定回り)とサーバー側の webアプリケーションがあるといったところです。あとは Bluetooth サービスってところでしょうか

  • UIに関しては、Volumio がカッコいいけど、Moode Audio はやや微妙です。
  • DLNAサーバーのコンテンツ再生対応に関しては、Volumio の方が優秀のよう。
  • Volumio の wlan には不満。
  • Bluetooth に関しては、Volumio は有料、Moode Audio は無料。ただ音切れや遅延があるとなると利用頻度は下がるかもしれないです。
  • ネットワーク周りは、ある程度決まっちゃえばそんなに変更することは無いので、コンソールから設定するほうが楽なような気がします。

などなど、いろいろ思うところが出てきます。特に UI に関しては、音楽プレーヤ部分とそれ以外の部分(ライブラリパス、ネットワーク、システム等)がありますが、後者は頻繁に使うわけではないので同一の UI に収める必要はそんなにありません。

しかも、MPDクライアントとしてスマホ用のものもあるそーで、試してはいませんが、音楽プレーヤという点ではそれらを利用するほうが良いのかもしれません。

でも待てよっと。いっそ MPDクライアントを作ってみるというのはどーなんだろう。ふつふつと思ってしましました。

目標設定

最大限の理想でいってみます。

  • MPDクライアントを自作してみます。Python か Rust を検討します。
  • DLNAサーバーのコンテンツも再生は必須。SMBサーバーへのアクセスは任意。USBデバイス上のコンテンツ再生は任意。
  • SMBサーバーは必須ではない
  • Bluetooth転送も出来ればやりたい。
  • ネットワーク周りは、コンソールで設定するものとします。
  • デストリビューションである必要はないので、必要なものはちまちま手作業でいれてみます。
  • 音楽に合わせて、UVメーター風Lチカ、スペアナ風Lチカ、なんかを作れたらいいなぁ。
  • 本当はアンプやDACの回路基板から作れたらもっと面白いんだろうけど、最近年のせいか目が辛くて無理そう。いや出来れば...
  • FE83 もいいんですけど、もちっとちゃんとしたスピーカーを準備しよう。FF125WK、FF165WK あたりが良さげに見えてきた...

何気に色々妄想してみましたが、まずは MPDクライアントの自作に対して、目途を立ててみます。 ということで次回に続く。