音楽プレーヤーVolumioをRaspberry Piで使う

Raspberr Pi

手持ちDACを利用してRaspberry Piで音楽プレイヤーを構築したので手順を晒してみます。
利用した音楽プレイヤーは Volumio です。

はじめに

某所でDACのキットを手に入れたので、これを利用した音楽サーバを構築しました。

このDAC、Windows PC 等でも利用できるのですが、Raspberry Pi ( 以下 rpi ) に繋いで常時起動している音楽サーバとしての利用を目指します。

音楽サーバは Raspbian ベースで自分でソフトウェアをインストールして構築する方法もありますが、音楽サーバー用のディストリビューションである Volumio を利用します。

Volumio は NAS 上の音楽ファイルを再生したり、Web Radio の再生なども可能ですが、以下ではインストール、及び、SDカード上に 音楽ファイルを配置して Volumio 単体で ( NAS等を利用せずに ) 音楽サーバにするための手順に関して書きます。

Raspberry Pi + Volumio で出来る事

出来る事をざっくりと書いてみます。

音楽再生に関する機能

  • ローカル ( SDカード内 ) の音楽ファイルを再生
  • USB接続されたストレージ ( USBメモリやUSB接続HDD ) 内の音楽ファイルを再生
  • NAS等のファイルサーバ上 ( SMB or NFS で接続 ) の音楽ファイルを再生
  • ネットラジオの再生
  • DLNA 対応
  • Airplay 対応
    iPad, iPhone, PC+iTunes 等で再生している音楽をネットワーク経由でストリーミング再生できます。
  • 各種ソフトからコントロール可
    • Webブラウザ
    • iPad, iPhone, iTunes ( Airplay )
    • MPDクライアント ( PC, スマホ )
    • DLNAクライアント ( PC, スマホ, 対応家電 )

オーディオ出力

  • i2s 接続のDACを利用可
    • Wolfson Audio Card
    • IrBerryDAC
    • HifiBerry DAC
    など
  • USB DACを利用可
  • HDMIオーディオ出力可
  • アナログオーディオ出力可

通常上になるほど高音質

その他

  • 無線LANドングル ( USB接続 ) を利用した無線LAN対応が可
  • 有線でのLAN接続も可(rpi Model B系)
概要

環境

Volumio のバージョンは以下になります。
作業環境はWindows(8.1)を想定しています。

Volumio release version: 1.55

Volumio のインストール

SDカードにVolumio をインストールするまでの手順を示します。

Volumio の取得

先ずはSDカードに書き込むためのイメージファイルを取得します。

  1. Volumio のWebサイトにアクセスし、右上メニューの DOWNLOAD をクリックします。
    volumio top
  2. ダウンロードページに遷移するので Raspberry Pi を選択してイメージをダウンロードします。
    volumio download
  3. Sorceforge からダウンロードが行われます。作業環境用PCにダウンロードします。

SDカードにOSイメージを書き込む

ダウンロードした ( zip ) ファイルを解凍すると、拡張子が img のファイルになっていると思います。( 1.55 の場合 Volumio1.55PI.img )
これがRaspbianのOSイメージになっているので、これをMicroSDに書き込みます。

imgファイルをSDカードに書き込むためには、そのためのソフトウェアが必要です。
ここでは Win32 Disk Imager というソフトウェアを利用した方法を説明します。

  1. 書き込み先のMicroSDカードをPCのカードスロットに挿入します。
  2. Win32 Disk Imager のバイナリファイルを取得して解凍します。
  3. 解凍先の Win32DiskImager.exe を実行します。
  4. Win32DiskImager が起動するので、Image File に先に解凍してある Volumio のイメージを指定します。

    ※下図中では (別記事 の図を使いまわしているため ) Raspbian と書いてありますが Volumio に読み替えてください
  5. イメージファイルを選択したら、書き込み先を確認して[ Write ] ボタンをクリックします。書き込みが開始されます。
  6. 書き込みが完了したら、SDカードをPCから取り出してください。

Volumio の起動

書き込みを行った MicroSD カードを利用して Volumio を起動します。 以下の手順で行います。

  1. OSイメージを書き込んだSDカードを rpi のカードスロットに挿入する。
  2. ( オプション ) ディスプレイを接続する。
  3. ( オプション ) 入力用デバイスを接続する。
  4. ネットワークケーブルを接続する。
  5. 電源をONにします ( microUSB のケーブルを差し込む )。

上記 ( オプション ) の機器を接続しないで起動した場合、その後の作業はWebブラウザ、及び、SSH経由で行います。

疎通確認

Volumio では Samba がインストールされており(自動起動する)、NMBによる名前解決ができるようになっています ( ホスト名は volumio )
ホスト名でアクセス可能かどうかは volumio ( あるいは volumio.local ) に PING を打ってみましょう。以下のように応答が帰ってくれば、ホスト名によるアクセスが可能です。

C:\> ping volumio

volumio [xx.xx.xx.xx]に ping を送信しています 32 バイトのデータ:
xx.xx.xx.xx からの応答: バイト数 =32 時間 =1ms TTL=64
xx.xx.xx.xx からの応答: バイト数 =32 時間 =1ms TTL=64
xx.xx.xx.xx からの応答: バイト数 =32 時間 =1ms TTL=64
xx.xx.xx.xx からの応答: バイト数 =32 時間 =1ms TTL=64

ホスト名でアクセスできない場合はIPアドレスでアクセスします。
デフォルトでは DHCP から取得する設定になっているので、割り当てられたIPアドレスはDHCPサーバのアドレス払い出し状況等で当たりをつける等してください。

Webブラウザでアクセスする

疎通確認ができたら、ホスト名、あるいは、IPアドレスでアクセスしてみましょう。
http://ホスト名(又はIPアドレス)/ でアクセスします。

Volumio Web Interface

上図のような WebUI が表示されれば OK です。

Volumio の設定

「はじめに」 に書いた通り、SDカード ( ローカル ) に音楽ファイルを置いて、スタンドアロンで音楽サーバとして機能するように Volumio を設定します。

ファイルを置く場所

ローカルに音楽ファイルを置く場合、先ずファイルを置く場所を決める必要があります。

Volumio では音楽データベース ( ライブラリ ) を構築/更新するディレクトリが決められており、このディレクトリ下に音楽ファイルを置くのが管理/使い勝手の点から最もやりやすいと言えます。
以下ディレクトリが該当します。

ディレクトリパスリンク先
NAS/var/lib/mpd/music/NAS/mnt/NAS
RAM/var/lib/mpd/music/RAMPLAY/run/shm
USB/var/lib/mpd/music/USB/mnt/USB

※Volumio のメニュー( MENU ) から Library を選択した際、以下記載がある。

Volumio creates and updates its music database via the following source directories:

また、以下ディレクトリは Samba で共有設定がなされています。

( Windows PC 等から共有フォルダとしてアクセス可能であるという事 )
共有名ディレクトリパス
WebRadio/var/lib/mpd/music/WEBRADIO
Ramplay/run/shm
USB Music/var/lib/mpd/music/USB
NAS/var/lib/mpd/music/NAS

従って、NAS、USB の何れかのディレクトリ ( あるいはそのサブディレクトリ ) に音楽ファイルを置くのがよいでしょう。こうする事で以下メリットが得られます。

  • 音楽DBの構築/更新対象になる。
  • Windows PC 等から共有フォルダとしてアクセスできる
    (音楽ファイルのコピーや削除が可能)

以下では、SDカードの余った領域を利用してこれを /mnt/USB にマウントして 利用する手順を示します。

SDカードの余った領域を使う

前述の手順で Volumio のイメージからSDカードを作成した場合、1.5GB 程の領域が利用されており、残りは使われていない状況になっています。

この余った領域を利用します。

以下では SSHクライアントを利用しての作業になります。

適当なSSHクライアントで Volumio にログインして下さい。

※Volumio には 以下アカウントでログインできます。

アカウントパスワードコメント
rootvolumio
piraspberryVolumio は Raspbian ベースであるため Raspbian のデフォルトアカウントである pi も利用できる。
ログイン後 "sudo -i" 等とする事で管理権限が必要な作業を行う事も可能。

パーティションの新規作成

raspi-config から "Expand Filesystem" を実行する事で余った領域を使うように設定する事も可能ですが、今回は余った領域を利用して別パーティションを作成し、これを /mnt/USB にマウントするものとします。

※ファイルシステムは、パフォーマンスと実績/安定性から ext4 を選択 ( 体感上も FAT32 よりは早いと思う )。
メモリリソースが少ない rpi の場合には、ext4 は妥当な選択肢ではないかと思う。( xfs 等はパフォーマンスは良いが、メモリ食いなので )

  1. fdisk を利用してパーティションを作成
    # fdisk /dev/mmcblk0
    Command (m for help): p
    (中略)
            Device Boot      Start         End      Blocks   Id  System
    /dev/mmcblk0p1   *        2048      155647       76800    b  W95 FAT32
    /dev/mmcblk0p3          155648     3411967     1628160   83  Linux
    
    Command (m for help): n
    Partition type:
       p   primary (2 primary, 0 extended, 2 free)
       e   extended
    Select (default p): p
    Partition number (1-4, default 2): 2
    First sector (3411968-30898175, default 3411968):  そのままリターン
    Using default value 3411968
    Last sector, +sectors or +size{K,M,G} (3411968-30898175, default 30898175):  そのままリターン
    Using default value 30898175
    
  2. 設定を確認し
    Command (m for help): p
    /dev/mmcblk0p1   *        2048      155647       76800    b  W95 FAT32
    /dev/mmcblk0p2         3411968    30898175    13743104   83  Linux
    /dev/mmcblk0p3          155648     3411967     1628160   83  Linux
    
  3. 書き込みます。
    Command (m for help): w
    
  4. fdisk を終了
    Command (m for help): q
    

これでSDカードの残り領域が使えるようになります。
書き込み後に 再起動か、 partprobe or kpartx しろと言われるので、

# partprobe

フォーマット

上で作成したパーティションを ext4 でフォーマットします。

# mkfs.ext4 /dev/mmcblk0p2

暫く時間がかかるので、終了するまで待ちましょう。

自動マウント設定

/etc/fstab を編集し、作成したパーティションが自動マウントされるようにします。

# vi /etc/fstab

以下を追記

/dev/mmcblk0p2 /mnt/USB ext4 defaults,noatime,noexec,nodev,nosuid 0 2

マウント

これで再起動すれば自動マウントされますが、rpi 再起動なしで利用する場合、以下でマウントします。

# mount /mnt/USB

確認

新規作成したパーティションがきちんと機能しているか確認します。

共有フォルダにアクセスする

前述の通り /mnt/USB は Samba 共有されているので、Windows PC 等からアクセス可能 ( なはず ) です。

  1. Windows エクスプローラから \\volumio、あるいは、\\IPアドレス でアクセスします。
  2. 上述の共有フォルダが表示されます。
    volumio 共有フォルダ
  3. 共有フォルダにアクセスできれば、このフォルダの中身を編集する事が可能です。
    今回は "USB Music" 下に音楽ファイルをコピーする事で、新規作成したパーティションにコピーが行われる事になります。

なお、サブディレクトリ (サブフォルダ) の作成も可能です。
サブディレクトリ下に配置された音楽ファイルもきちんとライブラリに追加されます。

自分が管理しやすいディレクトリ構成で音楽ファイルを配置しましょう。

ライブラリの更新

Samba 経由で音楽ファイルをコピーしたら、コピーしたデータがきちんとライブラリに登録されるか確認しましょう。

  1. Webブラウザで Volumio の WebUIにアクセスします。
  2. 右上の [ MENU ] > [ Library ] をクリックします。
  3. [ UPDATE LIBRARY ] をクリックします。
    Volumio Update Library

ブラウズ

ライブラリを更新したら、音楽ファイルがブラウズできるか確認します。

  1. WebUI の左下にある [ Browse ] をクリックします。
  2. Browse 画面が表示されるので、ライブラリがあるディレクトリ (今回は USB) をクリックします。
    Volumio Browse
  3. USB ディレクトリ中に コピーしたディレクトリ/ファイルが表示されればOKです。
    Volumio Browse

まとめ

Raspberry Pi + Volumio で簡単に音楽サーバを構築する事が可能です。

Airplay や DLNA にも対応しているので ( Raspberry Pi+Volumio をネットワークオーディオプレイヤーとして使う を参照 )、これらが利用できる他の機器と連携して利用するといった事も可能ですし、デジタルアンプやDAC等も組み込んでしまうといった事もできるでしょう。

Raspberry Pi は消費電力も少ないので音楽サーバとして常時起動しておいても、他の機器に比べて相当エコな運用ができるのではないでしょうか。

USB DACとの接続 等関連ネタに関しては、また時間があれば書こうかと思います。