MPD(Music Player Daemon) 備忘録

Photo by deliyum.

Photo by deliyum.

祭日が多く時間があったので,以前から興味を持っていた MPD(Music Player Daemon) を Raspberry pi に導入してみました.その備忘録です.

MPD(Music Player Daemon) とは?

元サイトによると

Music Player Daemon (MPD) is a flexible, powerful, server-side application for playing music. Through plugins and libraries it can play a variety of sound files while being controlled by its network protocol.

なので,まぁ要するにサーバーサイド音楽プレーヤーですね.

実は入れる前は,音楽専用ストリーミングサーバーだと思い込んでいましたし,確かにストリーミングサーバーとしても使えるのですが,本来は,ネットワーク対応の音楽プレーヤーとして使うものなんですね.製品としては,

HAP-Z1ES | コンポーネントオーディオ | ソニー
ソニー コンポーネントオーディオ 公式ウェブサイト。コンポーネントオーディオHAP-Z1ESの商品ページです。

に近いものです.要するに,PCやスマホからコントロールできるオーディオプレーヤーとして使うのが正しい使い方なんだと思います.

じゃあ,何で注目されているのかと言うと,Raspberry Pi + 安価な DAC で安価(市販のものとは1桁は違う)だけど自由度の高い高音質なネットワークオーディオが作れる,しかも DAC を選択でき,専門家でなくても工作できたりするので楽しい,ということのようです.

まぁ音楽ストリーミング専用サーバーとしても使えるのですが,正直ストリーミングサーバーとしては,DLNA サーバーの方が対応機器が多い分便利な気がします.

MPD(Music Player Daemon) の設定

色々なところで紹介されているので,今更なのですが,MPD を使うために Raspberry pi にどんなパッケージが追加されるのかの記録として残しておきます.

必要な作業は以下の通り.

  1. mpd と lame or vorbis のインストールと設定
  2. mpd のクライアントアプリケーションのインストール
  3. CoverArt を表示させるための Web Server の設定

まず,mpd と lame,もしくは vorbis を入れます.mpd はストリーミングの為に lame か vorbis を利用するからです.今回は lame を入れています.Raspbian jessie だと mpd も lame も特になにも設定しなくても apt-get で導入できます.

なんか山のように依存するパッケージが入ってきます.

設定は /etc/mpd.conf を編集することで行います.今回はローカルネット内で配信用として使うのが目的ですので,以下のように設定しました..

今回はストリーミングサーバーとしての利用ですので,標準で有効になっている alsa は無効化しています.なお,この設定だと,

  • 6600 port /tcp: mpd 操作用.要するにリモコンアプリが通信するポート.
  • 8000 port /tcp: streaming port

です.また,音源を配置するフォルダの標準は /var/lib/mpd/music です.このフォルダに音源となるファイルをどうにかして転送すればよい訳です.

少ないファイル数なら ssh(scp) で転送しても良いのですが,さまざまなフォルダに分けて保存されたある程度たくさんのファイルを転送するのはこれだと大変です.smb server 等を入れて /var/lib/mpd/music を共有フォルダとして設定しても良いのですが,面倒だったので,それらのファイルが保存されている Windows の共有フォルダを

のようにマウントしてそこからコピーしました.

これで mpd の設定が出来ましたので,Raspberry pi が起動と同時に mpd も起動するよう,

として,mpd の設定は終了となります.

MPD クライアントのインストール

MPD は音楽プレイヤーサーバーなので,コントロールするには専用のクライアントが必要になります.要するにリモコンソフトですね.mpd と 6600 port/tcp で通信することでコントロールします.

従って,別に Raspberry pi にインストールしなければならない訳では無く,ios, android, MacOS, Windows, Linux 用のさまざまなクライアントソフトが公開されているようです.

最も基本的なものは,コマンドラインから使える mpc の様ですが,ターミナルから使えるもう少し使い易い高機能な mpd クライアントとしては ncmcpp が有名なようで,両方とも Raspbian jessie だと apt-get でインストールできます.

https://www.musicpd.org/clients/mpc/

NCurses Music Player Client (Plus Plus) | rybczak.net

使い方は起動後に F1 を押せば分かりますし,特に何も設定しなくてもローカルの mpd と通信しますので,動作確認には向いていると思います.なお,Raspbian から入る ncmpcpp は 0.5.10 で,現時点の最新は 0.7.5 と比べてかなり古いです.

iOS, Android, MacOS, Windows 用のクライアントは数多くあるようですが,

iOS MPod (iPhone), MPad (iPad)
Android MPDroid

等が有名どころのようで,使ってみると確かに安定しており使い易いです.なお,当然,使うときには,どの MPD を使うのか,つまり,参照する MPD をインストールした Raspberry pi の IP アドレスとポート(6600 port/tcp)を設定してやる必要があります.

また,多くのクライアントは MPD のコントロールのみに対応しています.ターミナルアプリケーションである mpc と ncmpcpp もコントロールのみに対応します.つまり,http ストリーミングには対応していません(MPod, Mpad, MPDroid は対応している)し,これも当然ですが,対応している場合もきちんとアドレスとポート(今回の設定だと 8000 port)を設定しなければなりません.

mpd クライアントが http ストリーミングに対応しない場合,別にストリーミングを再生できるソフトウェアを用意しなければなりませんが,面倒ならば chrome 等のブラウザで,

  • http://192.168.***.***:8000

にアクセスすれば OK です(192.168.***.*** は MPD をインストールした Raspberry pi の IP アドレス).最近のブラウザは http ストリーミングに対応しているものが多く,遅延はしますが,単に音楽を聴くだけならこれでも十分だと思います.

さて,このままでも使えることは使えるのですが,MPod, MPad, MPDroid 等は CoverArt にも対応しています.やっぱり CoverArt が無いと寂しいので,次はこれに対応させるための設定を行います.

CoverArt のために web server を立てる

MPod, MPad, MPDroid は Rasbian jessie の標準設定だと,

  • /var/lib/mpd/music/A/B (/var/lib/mpd/music は音源用フォルダ)

というフォルダに音源ファイル music.mp3 と Folder.jpg があり,ブラウザで,

  • http://192.168.***.***/A/B/Folder.jpg

のようにそれらファイルにアクセス可能な場合(192.168.***.*** は mpd をインストールした Raspberry pi のアドレス),この Folder.jpg を music.mp3 のカバーアートとして表示します.だから,これが実現できるように Web サーバーを設定してやれば良いだけです.このために Apache などを入れるのも面倒なので,/etc/rc.local の最終行に

のように追加して再起動すれば良いです.

結論

最初にも書きましたが,正直ストリーミングサーバーとしては,DLNA サーバーの方が対応機器が多い分便利な気がします.さらに MPD の Web クライアントを Raspberry pi にインストールして,Web ブラウザからコントロールできるようにした方が絶対に便利です.例えば,

Home – O!MPD
O!MPD is a responsive MPD web client based on PHP and mySQL.

とかですね.

しかし,ここまでするのならば初めから Raspberry pi をもう1台買って,音楽専用ディストリビューションの Volumio などを使った方が手間と出来の良さから絶対に良い.

と言うことで,入れて試しては見ましたが,結果は微妙な感じです.Volumio の専用サーバーとして1台 Raspberry pi を追加しようかどうか現在考え中.

スポンサーリンク
large rectangle advertisement
スポンサーリンク
large rectangle advertisement