Raspberry Piで音楽サーバー(Rune Audio)
投稿日:2020年2月2日 更新日:
これまで、所持しているRaspberry PiにVolumioを導入し、音楽サーバーを構築しておりました。数か月前に停止させてから、しばらく眠らせたままとなっており、最近久しぶりに起動させてみましたが、youtube再生用プラグインが動きませんでした。そこでプラグインの再インストールをしましたが、youtube音声の再生を可能にするためにgoogleに送信すべきコードが、Volumio内で表示されず、プラグインを使えるようにできませんでした。
そこで今回、所持しているRaspberry PiにVolumioとは別のディストリビューションを導入し、音楽サーバーを再構築することにしました。
音楽サーバー用Linuxディストリビューション (OS)の比較
Volumio
- Raspbian + MPD使用
- youtube音声再生プラグインあり
※ 私の環境でも数年前に動いていたものの、最近では動作せず - おそらく音楽用のlinuxディストリビューションの中で最も知名度が高い
PiMusicBox
- Raspbian + Mopidy使用
- 現在の最新ver0.7.0ではyoutube serchが壊れている模様
https://github.com/pimusicbox/pimusicbox/releases/tag/v0.7.0RC7
Rune Audio
- ArchLinux + MPD使用
- 高音質(Hi-Fi)が再生できるとのこと
- 公式ダウンロードページでは2016.03でバージョン更新がないが、有志(?)による改善バージョンがある
目的
音楽サーバー用Linuxディストリビューションにはいろいろ種類があるようですが、今回はRuneAudioを選択してみました。ということで今回の目標は以下の通りです。
- Raspberry PiにRune Audioを導入する
- youtubeの音声を聞けるようにしたかった → できなかった
環境
- PC: Raspberry Pi 3 Model B
- ローカル音源の保存場所: USB-HDD (NTFSでフォーマット済)
- 音声出力: オーディオインターフェース (USB-DAC)
RuneAudioのインストール
イメージファイルの取得
https://www.runeaudio.com/forum/runeaudio-r-e1-an-improved-version-of-runeaudio-t6883.html にアクセスし、イメージファイル(*.img.xz)をダウンロードします。
SDカードへの書き込み
ダウンロードしたイメージファイルをmicroSDカードに書き込みます。私はmicroSDカード-USB変換アダプタを使用し、フリーソフトRefusを使って書き込みました。
ブート
Raspberry PiにmicroSDカード挿入し電源ONします。するとイメージファイルが読み込まれしばらくするとRuneAudioが起動します。USB-HDDを接続した状態で起動させ、この時点で自動的にUSB-HDDがマウントされていましたが、USB-HDD内に保存してある音楽ファイルは認識できず、再生することができませんでした(下記の日本語ロケール設定によって解決)。この時点で、ローカルネットワーク内のPCやスマホのブラウザからhttp://runeaudio.local/ にアクセスすることで、RuneAudioのコントロールが可能になっています。
設定
IPアドレスの固定
サーバーの管理をする上ではIPアドレスを固定してくと便利です。そのための設定を行います。
1. ローカルネットワーク内に接続しているPC or スマホのブラウザでhttp://runeaudio.local/にアクセスします。
2. RuneAudio画面が表示されたら、設定マーク>network より現在のRuneAudioが所持しているIPアドレスの確認をします。私の場合は、192.168.100.161でした。
3. ローカルネットワーク内のPCの端末(ターミナル)より、sshでRaspberry Piにログインします。端末で以下を入力すれば入れます。ただしIPアドレスは、↑で確認されたものを入力してください。
ssh root@192.168.100.161
初期パスワードは “rune”です。
4. RuneAudioはArchLinuxベースですので、ArchLinuxのコマンドを使用します。まずリポジトリの更新と、個人的に使い慣れているテキストエディタVimのインストールを行います。下記を端末に入力します。
pacman -Syy #リポジトリの更新 pacman -S vim #vimのインストール
5. ネットワーク接続に用いているインターフェース名の確認をします。
ip a # インターフェース名を確認
私の場合、IPアドレスが192.168.100.161でしたので、このアドレスが設定されているインターフェースを探しますと、”eth0″でした。
6. インターネット接続のインターフェースを設定するファイルの有無を確認してみます。
ls /etc/systemd/network/
上記のコマンドを打つと、 eth0.network見つかりましたのでファイルの中身を編集します。
vim /etc/systemd/network/eth0.network
ファイルの中身を以下のように書き換えます。
[Match]
Name=eth0
[Network]
Address=192.168.100.161/24 #現在取得してるipアドレスに固定
Gateway=192.168.100.1 #基本的に192.168.*.1 or 192.168.*.254
7. 書き換えた設定ファイルを反映させます。
systemctl reenable systemd-networkd
systemctl restart systemd-networkd
reboot #再起動
日本語、ロケール設定
USB-HDDの音楽フォルダのフルパス中に日本語が入っている場合、この日本語設定を行わないと音楽ファイルを認識してくれませんでした。上記と同様、ssh接続して設定を行います。ssh接続後、以下のようにコマンド入力していきます。
pacman -S otf-ipafont #日本語フォントインストール
vi /etc/locale.gen
ここで、en_US.UTF-8 UTF-8 , ja_JP.UTF-8 UTF-8のコメントアウトを外し保存します。
locale-gen
echo "LANG=ja_JP.UTF-8" > /etc/locale.conf
echo "LC_COLLATE=C" >> /etc/locale.conf
reboot
音声出力をUSB-DACに設定
デフォルトでは、音声出力デバイスはHDMIとなっているため、オーディオインターフェース (USB-DAC)に切り替えます。
- ローカルネットワーク内のPCのブラウザよりhttp://runeaudio.local/ (or 設定した192.168..)にアクセス
- 右上の設定アイコン > MPD > “Audio Output”の”Interface”で自分のUSB-DACを選択する
できるようになったこと
Raspberry Piに接続しているUSB-HDD内のローカル音楽ファイルを再生できるようになりました。ローカルネットワーク内に接続しているPC・スマホであれば、ブラウザからリモート制御できます。
youtube再生について
RuneAudioの設定項目にあるアドオン(プラグイン)を確認しても、残念ながらyoutube用のものはありませんでした。
軽く調べてみると、昔のバージョンではあったようなので、バージョンアップの過程でなくなったと思われます。ということで、当初の目的であったyoutubeの音声再生は実現できませんでした。
まとめ・所感
Raspberry PiにRuneAudioを導入し、USB-HDD内の音楽ファイルを再生し、オーディオインターフェース (USB-DAC)から出力する音楽サーバーを構築しました。しかしyoutube音声の再生は実現できず、当初の目的は達成できませんでした。RuneAUdio自体はUIがかっこいいですし、利用していきたい気持ちもありましたが、また別の環境を模索していくと思います。
参考サイト
linuxのネットワーク設定関連