Raspberry Pi 2でハイレゾ・Airplay対応 オーディオサーバを作る 〜Raspberry Pi 2設定編〜

f:id:karaage:20150711204511j:plain:w640

2017/01/22 Volumio2でのオーディオサーバ構築に関して追記

Volumio2でRaspberry Pi 2/3両対応のハイレゾオーディオサーバ構築

 下記記事で、最新バージョンのVolumio2でRaspberry Pi 2/3両対応のハイレゾオーディオサーバ構築する方法に関して記載しています。今から作る方は下記の記事を参照した方がよいかと思います。


オーディオサーバ作ったきっかけ

 下記記事の作者の興奮、熱量におされて。「オーディオサーバつくらないかんとばい!」と何故かクッキングパパばりのえせ九州弁でつぶやいて、気づいたら部品を購入していました。Apple Music 3ヶ月無料期間を思いっきり有効活用したいというスケベ心もあったかもしれません。

 上記記事の作者が製作した、Raspberry Pi 2を使った自作オーディオなる電子書籍も購入してしまいました。

Raspberry Pi 2対応「Raspi Audio」導入編

Raspberry Pi 2対応「Raspi Audio」導入編

 これ、Linuxの基礎に関してまで解説ある上、情報量半端なく、初心者から中上級者まで参考になる良書だと思います。Raspberry Piで自作オーディオするなら買って損なしでしょう。
 上記電子書籍や、ネットで色々調べた情報を元にミュージックサーバを作ってみようと思うので、作り方とか色々メモ代わりに残しておこうと思います。この記事を誰かの役に立てようとかはあんまり思ってないです。好きなように使ってください。

ミュージックサーバ構成図

f:id:karaage:20150711205115j:plain:w640

 大体こんな感じでしょうか。今回作ろうとしてるのは上の図のMusic Serverとかかれたところです。機能としては以下くらい

  • ハイレゾ対応
  • Airplay対応
  • NAS対応(マウント可能)
  • プレイヤー機能
  • ブラウザ経由でコントロール・設定可能

ミュージックサーバに必要なもの

 ハイレゾ対応無しで1から揃えると1万円程度。後日追加予定のハイレゾ対応有りも加えると2万円程度(工具とアンプ、スピーカは除く)でしょうか。

Raspberry Pi 2 Model B

Raspberry Pi 2 Model B

Raspberry Pi 2。必須

microSDカード

BUFFALO 11n対応 11g/b 無線LAN子機 親機-子機デュアルモード対応モデル WLI-UC-GNM2

BUFFALO 11n対応 11g/b 無線LAN子機 親機-子機デュアルモード対応モデル WLI-UC-GNM2

WiFiモジュール。無線化したいなら必要。有線でもOKです

電源。2A給電できるものを選びましょう

バッテリからの給電ケーブル。USBのタイプAオス- マイクロタイプBオスのものなら何でもOK

LOGICOOL ステレオスピーカー Z120BW

LOGICOOL ステレオスピーカー Z120BW

アクティブスピーカ。1500円の割によい音質。こういうの使うと超小型のオーディオシステム組めます。音質にこだわる人はもちろん好きなでかいアンプとスピーカ組み合わせてOK

Raspberry Pi B+ (Plus) 専用ケース RS製 (White)

Raspberry Pi B+ (Plus) 専用ケース RS製 (White)

ケース。ハイレゾ対応すると蓋はしまらなくなります。最適なケースは未だ見つけられず。

ハイレゾ対応は別途部品が必要です。近日公開予定。まとめて買いたい人はちょっと待っててね。



 公開しました!

 以下はだんだんマニアックになってくるので、気になる人だけ続きを読んでください。

Raspberry Piにミュージックサーバ用ディストリビューション(OS)インストール

 まずはRaspberry Pi 2にOSをインストールしてやりましょう。基本はSDカードをハードコピーする要領です。すみませんが、Macでのやり方のみです。WindowsはDD for Windowsとかそんな感じのソフト使うと同じようなことができるはずです。

Volumioダウンロード

 以下のサイトからVolumioというディストリビューションをダウンロードしてやりましょう。ミュージックサーバに必要な色々なソフトが夢詰め込まれているミュージックサーバにはうってつけのディストリビューションです。他にも選択肢はいくつかあるようですが、今回は一番メジャなVolumioを試します。

 自分は現時点での最新のバージョン1.55をダウンロードしました(Raspberry Pi 2の場合は、現時点では1.55を選択する必要があるみたいです)。ファイル名はVolumio1.55PI.img

ディスクのフォーマット

 次にディスクをフォーマットしましょう。好きな方法でよいですが、確実なのはSD Formatterを使う方法です。以下のサイトからダウンロードしたSD Formatterを使ってSDカードをフォーマットをしましょう。ドライブを選択するだけの簡単設計。

SD Memory Card Formatter - SD Association

ディスクのデバイスファイルを確認

 MacでコピーしたいSDカードを挿入後にdfコマンド実行してSDカードのデバイスファイルを確認。よくわからなければ、挿入前と挿入後でdfコマンド実行して比較しましょう。

$ df -h

 挿入後に増えているデバイスファイルがSDカードのデバイスファイルです。例えば /dev/disk2とか/dev/disk3とか。

イメージ書き込み

 以下は/dev/disk2 がSDドライブの場合の例。以下のコマンドでSDカードの中身をRPi.imgというイメージファイルに読み出します。 書き込みしたいSDカードを挿入して、以下のコマンドでアンマウント

$ diskutil umountDisk /dev/disk2

 以下のコマンドで書き込み。disk2をrdisk2にするのがポイント。理由は…よくわからないです、すみません。(2015/10/19追記)なんでも、アンバッファモードになって速度が速くなるみたいです。bs=1mは一度に書き込む容量を表していて1m(1MB)くらいにしないとこれまた速度が遅くなります
 例えばドキュメントフォルダ直下にイメージファイルを置いた場合は以下の通り。

$ sudo dd if=Documents/Volumio1.55PI.img of=/dev/rdisk2 bs=1m

 しばらく(数分)待つと完了のメッセージが出るので、書き込み完了。途中経過が気になる方はCtrl+Tで進捗を表示できます。あとは以下のコマンドでアンマウントしてからSDカードを取り出しましょう。

$ diskutil eject /dev/disk2

Raspberry Pi 2 + Volumioの設定

 Volumio書き込んだSDカードをRaspberry Pi 2に挿入して電源を入れると起動します。有線のEtherを繋げば、デフォルトでブラウザやsshでアクセスできるようになっています。
 起動確認とかsshのアクセスとか、Raspberry Piの基本的なことでつまっている場合は、以下を参照していただければ多少助けになるかもしれません。


ブラウザでの設定

 以下はVolumioのブラウザで設定できる項目。GUIで設定できるので簡単です。

無線LAN(WiFi)設定

 無線LAN化したいとき。有線LANを使うなら不要です。手順は以下

  • ブラウザでvolumio.localにアクセス
  • 右上のメニュボタンからNetworkを選択
  • WiFi設定(SSID パスワード)を入力
  • しばらく待ってStatusがConnectedになったらOK
  • 有線LANを外して再起動すると無線で接続

f:id:karaage:20150711112000j:plain:w640

 無線LAN繋がらなくてなんでだろうと思っていたら、セキュリティ設定がWEPじゃなくてWPAだったというおちでした。
 無線LANのStatusがConnectedにならない状態で有線LANも外して電源を切ってしまうとはまる(ブラウザやsshでアクセスできなくなる)ので注意。何度かはまりました。頑張ってローカルで設定しなおしてもよいですが、再度OSから書き直してもよいかなと思います。

NAS接続

 音楽ファイルを入れたNASがあれば、その音楽を再生することができます。MenuからLibraryを選択し、ADD NEW MOUNTをクリックして設定項目を入力するだけです。
 注意するのは、+ show advance optionsを開いてMount flagsの欄に",sec=ntlm"を追加する必要があること。自分の環境だとこれをやらないと接続できませんでした。

sshでのアクセスしての設定

 ターミナルからsshでアクセスして設定する項目。以下の設定はしなくてもミュージックサーバとしては機能しますので必要と思う項目を設定ください。ただ、インターネット接続するなら、セキュリティ的にOSアップデートはしておいた方がよいかな。

sshアクセス方法。

 Macならターミナル開いて以下で接続できます。デフォルトでsshのポートは空いています。

$ ssh [email protected]

 パスワードはデフォルトはvolumioです。ログインできると、信じられないほどダサいログイン画面が表示されます。ブラウザの画面とかはあんなにクールなのに…

f:id:karaage:20150711113152p:plain:w640
 信じられないほどダサいログイン画面

 Windowsの人はTeratermとかで同じようなことできると思います。

時間(タイムゾーン)設定

 以下で設定画面に入る

# raspi-config

Internationalisation Options: 言語の設定をする
Change Timezone: 時間帯を設定する【Asia/Tokyo とする】

USBポート 1.2A電流供給対応

 通常は0.6Aに制限されているRaspberry PiからのUSB電流供給を1.2Aまで増加できます。アクティブスピーカにRaspberry Piから電源供給したいときとかありそうなので設定しておいて損はなさそうですね。

 以下で/boot/config.txtを開きます。

$ sudo vi /boot/config.txt

 末尾に以下の2行を追加して上書き保存すればOK。

safe_mode_gpio=4
max_usb_current=1
OS アップデート

 とりあえず一通りアップデートしておきましょう。以下のコマンドでアップデート。

# apt-get update
# apt-get upgrade

 10分ほど放置するとアップデート完了です。途中変なメッセージ出てきたら Y(YesのY)、Q(QuitのQ)、N(NoのNo)を適当に押していけば次に進めます。

その他

 Volumioは奥深く、その他も色々設定項目あり細かいチューニングできます。参考サイトや下記電子書籍を参考にしてみてください。

Raspberry Pi 2対応「Raspi Audio」導入編

Raspberry Pi 2対応「Raspi Audio」導入編

 何か新しいこと試したら追記していくかもです。

追加チューニング(2016/05/28追記)

 運用していて、色々不都合に気付いて追加で設定したので記載しておきます。

ディスプレイ黒画

 どのタイミングかは不明ですが、ディスプレイに繋いで画面が出なくなりました。色々調べたところ /boot/config.txtの修正で治りました。/boot/configはPCでRaspberry PiのSDカードを読み込んで直接編集もできますし、sshでリモートログインできる場合は、以下のコマンドで編集できます。

$ sudo vi /boot/config.txt

 3行目に、以下のようにhdmi_drive=1を追記することで修正できました。ちなみにhdmi_driveはHDMIケーブルから音声出力をするかしないかという設定のようです。HDMIの音声出力は使わないので今回は1でOK。

gpu_mem=16
#hdmi_drive=2
hdmi_drive=1
dtoverlay=hifiberry-dac

 ちなみに、HDMIの音声出力する場合はhdmi_drive=2に設定するのですが、その場合自分の環境では黒画になりました。HDMI->DVI変換ケーブル使っていたので、それが原因かもしれないと思い、試しにテレビのHDMI端子に繋いだら普通に表示されました。恐らく最初のハンドシェイクの通信のどこかでこけてしまうのでしょうね。

起動速度改善

 なんか起動が異常に遅いなと思って起動ログをみていたら、どうもネットワークのIP取得のところで何度もリトライしているのが原因のようでした。無線LAN(WiFi)と有線LANの両方を設定しているのがよくないみたいです。以下のコマンドでネットワーク設定ファイル(/etc/network/interfaces)を修正してやりましょう。

$ sudo vi /etc/network/interfaces

 内容としては、以下のように最後の2行の頭に#を追加(コメントアウト)してやれば、有線のLANを無視してWiFiのみを使うようになるので、起動で失敗せず起動が高速化します。

auto lo
iface lo inet loopback

auto wlan0
iface wlan0 inet dhcp
wireless-power off
wpa-ssid <ssid>
wpa-psk <password>

#auto eth0
#iface eth0 inet dhcp
音飛び改善

 たまに音が飛んでしまうのが気になるので設定を見直してみました。playbackで以下の通りAudio BufferとBuffer before playの設定を最大近くにする。これでメモリにデータをたくさん余裕をもって保持してくれるので、そのデータ分音切れがしにくくなります。ため池的なものと思ってもらえればよいです。

f:id:karaage:20160528111324p:plain:w480

動作チェック

 これでAirplay対応したミュージックサーバは出来上がりです(まだハイレゾには対応していません)。Raspberry Pi2の標準ヘッドフォンにヘッドフォンかアクティブスピーカを差し込んでやります。
 そして、iPhoneでAirplayをしてみましょう。Raspberry Pi 2を起動して、iPhoneを起動すればAirplayの出力先にVolumioが表示されるので選択。後は好きな音楽を再生するだけ。音声がRaspberry Pi 2から出力されるはずです。

f:id:karaage:20150711204511j:plain:w640
 再生の様子

f:id:karaage:20150711204700p:plain:w480
 iPhoneでのAirplayは下から上にスワイプすると出てくるメニュの右下。正しく設定できていればAirplayのところでvolumioが選択できるようになっています。

まとめと今後の予定

 これだけでもApple Musicを流しっぱなしにしたりするだけで素敵な音楽ライフが楽しめてよい感じですね。ただ残念なことに、Raspberry Pi2の標準のヘッドフォン出力はあまり音質が良くないのです。そう聞くととたんに残念な感じになってきますね。やはり時代はハイレゾでしょう、ハイレゾならではのまろやかな、熟成した音質で楽しみたい!もう我慢できない!
 というわけで次回はRaspberry Pi2で作ったオーディオサーバをハイレゾ化してみようと思います。お楽しみにー。予定は未定。

追記:ハイレゾ対応編公開しました。よろしければどうぞー

参考サイト

PCで音楽: RaspberryPi  オーディオ・ネットワーク接続とVolumioの設定 
 詳しく書いてあり参考になります。

yjo の覚え書き: Volumio 1.5 で apt-get upgrade をしたら NAS が mount できなくなった…
 NASの設定に関して参考にしました

http://aedio.fam.cx/raspy2/raspberrypi2-DAC-doc.pdf
 これも色々丁寧に説明があるので参考になります

関連記事