Raspberry Pi 2 Model Bでミュージックサーバを構築してみた
公開日:
:
最終更新日:2019/11/05
Raspberry Piの技術メモ Raspbian
Raspberry Pi 2 Model B を使って、高音質で低消費電力な静音ミュージックサーバを構築したいと思います。
(Raspberry Pi 3 でも同様です)
使用するOSは、Raspbian jessieです。
目次
要件
まず、私が求めるミュージックサーバの要件を考えてみます。
- 高音質
- 簡単
- 音楽データをたくさん保存できる
- 安価
- 低消費電力
- 静音
要件対応
各要件に対してどうやって対応するかを考えてみます。
高音質
Raspberry Pi 2 Model Bに光デジタル出力(S/PDIF)を取り付け、光デジタル入力(S/PDIF)を搭載しているアンプおよびスピーカーに接続します。
光デジタルでデータのやり取りをするので、高音質です。
簡単
Paspberry Pi 2 Model B に光デジタル出力(S/PDIF)は、USBタイプのものを選びます。(Raspberry Piに増設する基盤タイプとは違い、USBに挿すだけなので簡単)
音楽データを沢山保存できる
音楽データ格納用のストレージは、容量の大きいUSBメモリを選びます。
安価
USBタイプの光デジタル出力(S/PDIF)は量販されているので安いです。
USBメモリはコストパフォーマンスが一番良いものを選びます。
アンプおよびスピーカーは家にあるものを使います。
低消費電力
Raspberry Piなので、基本的に低消費電力です。
Raspberry PiのUSBバスパワーで電力を補えるぐらい低消費電力な光デジタル出力(S/PDIF)を選びます。
Raspberry PiのUSBバスパワーで電力を補えるぐらい低消費電力なUSBメモリを選びます。
静音
Raspberry Piなので、静音です。
音楽データ保存用のストレージはHDDではなく無音なUSBメモリを選びます。
準備した機材
結果として、以下のものを用意しました。
Raspberry Pi 2 Model B
これがないと始まらないです。OSは、Raspbian jessieです。
光デジタル出力(S/PDIF)
ベリンガー BEHRINGER UCA202(UCA222)を用意しました。
参考記事:USBで光デジタル出力を追加できるBEHRINGER UCA202 を買ってみた
USBメモリ
SanDisk UltraFit 128GBを用意しました。
参考記事1:USBメモリ(SanDisk Ultra Fit 128GB)を購入してみた
参考記事2:SanDisk Ultra Fit 128GB 4個でRAID5を構築してみた
ホームシアターシステム
光デジタル入力(S/PDIF)を搭載しているYAMAHAの5.1chホームシアターシステム TSS-15 (TSS-20)
を用意しました。
コストパフォーマンスのとても良いスピーカーです。
参考記事:ヤマハ ホームシアターシステムTSS-15買ってみた。
さて、必要な材料が揃いましたので、引き続き構築に入ります。
ミュージックサーバの構築
必要パッケージのインストール
Raspbian jessie に、ミュージックサーバ構築に必要なパッケージ(ミュージックサーバのデーモンとクライアント)をインストールします。
1 |
$ sudo apt-get install mpd mpc |
サービスの管理に便利なchkconfigコマンドをインストールしていない場合は、入れておきます。
1 |
$ sudo apt-get install chkconfig |
MPDの設定
Music Player Daemon(ミュージックプレーヤサーバ)の設定をします。
1 |
$ sudo vi /etc/mpd.conf |
最低限必要な設定を実施します。
1.音楽データ保存ディレクトリ設定
/usbmemというディレクトリにusbメモリをマウントしてusbメモリ内にmusicというディレクトリに音楽データを格納する場合の例です。
変更前
1 |
music_directory "/var/lib/mpd/music" |
変更後
1 |
music_directory "/usbmem/music" |
2.プレイリスト保存ディレクトリ設定
/usbmemというディレクトリにusbメモリをマウントしてusbメモリ内にplaylistsというディレクトリにプレイリストを格納する場合の例です。
変更前
1 |
playlist_directory "/var/lib/mpd/playlists" |
変更後
1 |
playlist_directory "/usbmem/playlists" |
3.起動時にうまくホストとIPアドレスがbindできずにエラーが出ることがあるらしいので、回避設定
変更前
1 |
bind_to_address "localhost" |
変更後
1 |
#bind_to_address "localhost" |
4.音楽データ追加時の、データベース自動更新設定
変更前
1 |
#auto_update "yes" |
変更後
1 |
auto_update "yes" |
最低限、紹介した4箇所の設定をすれば動きます。
自動起動設定
Raspbian jessieの起動時にMPDが自動起動するように設定します。
1 |
$ sudo chkconfig mpd on |
USB光デジタル入力(S/PDIF)の接続
Raspberry Pi にベリンガー BEHRINGER UCA202を接続します。
Raspbian jessieの起動時にきちんと認識させるのが一番良いので、再起動しておきましょう。
1 |
$ sudo reboot |
もしくは、Raspberry PiにベリンガーBEHRINGER UCA202を接続してからRaspberry Piの電源を入れてください。
音声出力先の変更
デフォルトでは、Raspberry Piのオンボードの端子 bcm2835 から音声が出力されるため、ベリンガー BEHRINGER UCA202のS/PDIF出力から出力されるように変更します。
設定の確認
認識されているサウンドカードを確認します。
1 2 3 4 5 6 |
$ sudo cat /proc/asound/cards 0 [ALSA ]: bcm2835 - bcm2835 ALSA bcm2835 ALSA 1 [CODEC ]: USB-Audio - USB Audio CODEC Burr-Brown from TI USB Audio CODEC at usb-3f980000.usb-1.5, full speed |
ベリンガーBEHRINGER UCA202のデバイス番号が1として認識されています。
デフォルトで使用するデバイスの変更
ベリンガーBEHRINGER UCA202のデバイス番号が1と分かったので、デフォルトの音声出力を1番に設定します。
1 |
$ sudo vi /usr/share/alsa/alsa.conf |
変更前
1 2 |
defaults.ctl.card 0 defaults.pcm.card 0 |
変更後
1 2 |
defaults.ctl.card 1 defaults.pcm.card 1 |
再起動して反映します。
1 |
$ sudo reboot |
音量設定
私の場合、スピーカー側で音量を調節しますので、Raspberry Pi側では常に音量100%に設定します。
設定
1 2 3 4 5 6 7 8 9 |
$ sudo amixer set PCM 100% Simple mixer control 'PCM',0 Capabilities: pvolume pswitch pswitch-joined Playback channels: Front Left - Front Right Limits: Playback 0 - 128 Mono: Front Left: Playback 128 [100%] [0.00dB] [on]★100%になった Front Right: Playback 128 [100%] [0.00dB] [on]★100%になった |
確認
1 2 3 4 5 6 7 8 9 |
$ sudo amixer Simple mixer control 'PCM',0 Capabilities: pvolume pswitch pswitch-joined Playback channels: Front Left - Front Right Limits: Playback 0 - 128 Mono: Front Left: Playback 128 [100%] [0.00dB] [on]★100% Front Right: Playback 128 [100%] [0.00dB] [on]★100% |
MPD の再起動
念のために再起動しておきます。
1 |
$ sudo service mpd restart |
ステータスを確認してみます。
1 2 3 4 5 6 7 8 9 10 |
$ sudo service mpd status ● mpd.service - Music Player Daemon Loaded: loaded (/lib/systemd/system/mpd.service; enabled) Active: active (running) since 水 2016-01-20 00:51:47 JST; 4s ago Main PID: 1478 (mpd) CGroup: /system.slice/mpd.service mq1478 /usr/bin/mpd --no-daemon 1月 20 00:51:47 raspberry systemd[1]: Started Music Player Daemon. |
音楽ファイルの追加
mp3やflac等の音楽データをMPDで使用するディレクトリに入れます。
sambaでファイルサーバとして公開しておくと、Windows等からファイル操作できるのでオススメです。
参考記事:Raspberry Pi 2 Model Bでファイルサーバを構築してみた
クライアントから操作する
AndroidやiPhone等の、MPDクライアントアプリを使い、MPDを操作します。
私はMPDroidというアプリを選定しました。
再生してみて、スピーカーから音が出れば成功です。
MPDroidでのカバーアート表示
MPDクライアントアプリで、カバーアート(ジャケット)の画像を表示したい場合は、引き続き以下の設定が必要です。
webサーバのインストール
apache2をインストールします。
1 |
$ sudo apt-get install apache2 |
音楽データを格納しているディレクトリへのシンボリックリンクを作成
/usbmem/music に音楽データを格納している例です。
1 |
$ sudo ln -s /usbmem/music /var/www/music |
Raspbian jessie起動時に、自動でwebサーバが起動するようにします。
1 |
$ sudo chkconfig apache2 on |
apache2を再起動します。
1 |
$ service apache2 restart |
カバーアート画像格納ルールについて
音楽データのカバーアート(ジャケット)を表示したい単位(アルバム毎とか)でフォルダ分けして、フォルダ内に”folder.jpg”という名前でジャケットの画像を入れればOKです。
後は、MPDクライアント側で、ローカルの画像を表示する設定を入れればOKです。
MPDroid具体的には以下3つの設定をしてください。
- Download local coverart
- Path to music
- Cover filename
画像で説明すると、以下赤枠で囲っている部分です。
Path to music 設定で、http://`RaspberryPiのIPアドレス`/music を指定。
Cover filename 設定で、folder.jpg を指定。
設定が終われば、こんな感じでカバーアートが表示されます。
最後に
ミュージックサーバにすると、すぐにストレージ容量が足りなくなりますね。
HDDでも良いですが、静音かつ低消費電力というのが理想なので、SSDでしょうか。
音楽データを扱う場合、一度書き込んだらなかなか書き換えは行わないと思いますので、「単価が安いが書き換えに弱い」といわれているTLCモデルを選択するのがコスト的に良さそうですね。
AD

関連記事
-
-
Raspbian Jessieの基本セキュリティ設定を実施する
Raspbian jessieの基本セキュリティ設定です。 デフォルト設定のままでは簡単に不正ログイ
-
-
Raspberry Pi 2 Model B とRaspberry Pi 3 Model B の比較
Raspberry Pi 3 Model B が発売されましたね。 私は先日Raspberry P
-
-
Raspberry Pi 2 Model Bでファイルサーバを構築してみた
本記事は、Raspberry Pi 3に対応しています。 Raspbian jessie でSam
-
-
Raspberry Pi 2 Model B用にUSBメモリ(SanDisk Ultra Fit 128GB)を購入してみた
Raspberry Pi 2 Model B 用に最適そうなUSBメモリを購入してみました。 Sa
-
-
Raspberry Pi 2 Model B で L2TP/IPSec VPNサーバを構築してみた(その3)
本記事は、Raspberry Pi 3に対応しています。 さて、 Raspberry Pi 2 M