🎧

MPD on Raspberry Pi でリモート音楽再生環境を作る💪

2021/09/13に公開

はじめに

お宅に Raspberry Pi 余ってませんか?快適な自粛生活のために、リモートで音楽を流せる環境を Raspberry Pi に作ってみましょう。

この記事では Music Player Daemon (MPD) を利用して、スマホや PC から RasPi に対して音楽の再生をリモートで操作できる環境を整える方法を紹介します。

用意するもの

  • Raspberry Pi
    • Raspbian でセットアップ済みであることとします
  • スピーカー
    • 今回の方式では Raspberry Pi から直接音が出るので、スピーカーの接続が必須です
    • こだわる方は USB-DAC などお好みの高品質再生環境をお使いください
  • 音楽ファイルの格納場所
    • RasPi 内の SD カードや、USB-HDD、NAS などをご用意ください

蛇足ですが、我が家ではファイルは NAS に溜まっており、USB 接続された電子ピアノがスピーカー代わりになっています。

MPD のセットアップ

MPD のインストール

それではさっそく Raspberry Pi に mpd をインストールしていきます。インストール自体は apt でサクッと終わらせてしまいましょう。

$ sudo apt update
$ sudo apt install mpd

設定ファイルの編集

次に設定ファイルを編集します。/etc/mpd.conf に格納されていますので、お好みのエディタでいじりましょう。なお、事前に以下の項目を調べておいてください。

  • 音楽ファイルを格納しているディレクトリ
  • Raspberry Pi のローカル IPv4 アドレス
  • ALSA のデバイス番号

特にローカル IPv4 アドレスは再起動のたびに変わると厄介なので、固定しておくことをおすすめします。

ALSA のデバイス番号は以下のように調べられます。今回は USB 接続のスピーカーに流し込みたいので、カード番号 1 デバイス番号 0 というのを覚えておきます。

$ aplay -l
**** ハードウェアデバイス PLAYBACK のリスト ****
カード 0: Headphones [bcm2835 Headphones], デバイス 0: bcm2835 Headphones [bcm2835 Headphones]
  サブデバイス: 8/8
  サブデバイス #0: subdevice #0
  サブデバイス #1: subdevice #1
  サブデバイス #2: subdevice #2
  サブデバイス #3: subdevice #3
  サブデバイス #4: subdevice #4
  サブデバイス #5: subdevice #5
  サブデバイス #6: subdevice #6
  サブデバイス #7: subdevice #7
カード 1: USBSpeaker [USBSpeaker], デバイス 0: USB Audio [USB Audio]
  サブデバイス: 1/1
  サブデバイス #0: subdevice #0

また、alsamixer コマンドで適宜音量を調節してみてください。

では設定ファイルを開いて、以下の項目を編集してください。

/etc/mpd.conf
# 音楽ファイルが格納されたディレクトリ
music_directory  "/mnt/nas/music"

# Raspberry Pi のローカル IPv4 アドレス
bind_to_address  "192.168.100.10"

# ポート番号はデフォルトですが、コメントを外しておきます
port  "6600"

# 調べておいた出力デバイスの番号を、コメントを外して記入。
# plughw:(カード番号):(デバイス番号) としておけば基本的にOK。
# plughw でうまく音が鳴ってくれなかったら `plug` を取って `hw` で挑戦してみると良さそう
audio_output {
  type    "alsa"
  name    "My ALSA Device"
  device  "plughw:1,0"
}

MPD の起動

あとは systemd で起動してあげるだけです。デーモン登録と同時に起動も行ってしまいます。

$ sudo systemctl enable --now mpd

接続テスト

適当なクライアントを入れて接続テストをします。CLI だと mpc が簡単です。まずはサクッとインストールしてしまいます。

// Ubuntu
$ sudo apt install mpc
// Arch
$ sudo pacman -S mpc

次に登録されている音楽のリストを取得するコマンドを叩いてみましょう。host オプションには Raspberry Pi のローカル IP アドレスを指定します。今回は例として 192.168.0.10 を入れてありますが、ご家庭の環境に応じて変更してください。

$ mpc --host=192.168.0.10 ls

これで楽曲が取得できれば OK です。できなければライブラリをアップデートするコマンドを叩いてあげましょう。しばらくすればライブラリが取得されて、ls コマンドで取得できるようになります。

# mpc --host=192.168.100.200 update

これで MPD のセットアップは終了です。あとはお好みのクライアントソフトを使って音楽を再生してみてください。

おわりに

この記事では、Raspberry Pi に MPD をインストールして、Raspberry Pi に接続されたスピーカーから、ライブラリに登録された音楽を流す方法を紹介してきました。今回はクライアントとして CLI のものを紹介しましたが、プロトコル自体は公開されているので様々な実装があります。

例えば Windows だと MPDCtrl ですとか、iOS だと yaMPC なんかが使い勝手が良さそうな感じがします。

この方式の良いところは例えば iPhone 側の音声出力を占領しないところにあると思っています。まぁファイルとして所有している音源しか流せない、すなわち音楽系サブスクサービスとの相性は最悪ですけど、それは仕組み上仕方ないという事で。

そういうわけで一家に一台こういうデバイスを置いてみるのも悪くない選択肢じゃないでしょうか。ぜひ作ってみてください。

Discussion