ラズパイにVolumioミュージックサーバを構築する

 

過去にインストールした記録用として掲載しています。

最新のVolumioは多少、画面構成が新しくなっています。

私の日常生活で音楽は欠かせません。

Amazon MusicやApple Musicなどは当然ながら月会費が発生します。音楽は毎日聞けるわけでもないので、必要な時に聞けて、今まで取りためたMP3等の音源を活用して、尚且つ、ここが大事です!Alexaより音声操作ができないか?

色々とWebを物色してみると、Raspberry PiでVolumioというフリーの特化したRspbian!?を入れてあげると、希望する行いたいことが全部できそうです。

使用した物

Raspberry Pi Zero W

 音楽再生の本体

PHAT DAC

  Raspberry Pi Zero Wにイヤホンジャックがないため

スマホ付属の電源とUSBケーブル

 本体に電源を給電用

小さなタイプ(Micro USB Type-B)を普通のUSB端子(USB Type-A)に変換するコネクタ(記憶では100均で買ったような!?

  キーボードとかマウスを付けて設定をする用

  USBハブもあると便利です

 Amazonだとこれとか?

 小さなタイプ(Mini HDMI Type-C)を通常のHDMI(HDMI Type-A)に変換するコネクタ

  Raspberry Pi Zero Wの画面出力用

  Amazonだとこれとか?

ケース

Raspberry Pi 4 ModelBのセットで余ったケースを流用

MicroSDカード 128GB

SanDisk microSDXC ULTRA 128GB 80MB/s SDSQUNS-128G Class10

  ここにOSや音楽を格納するので、それに見合った容量

  Amazonだとこれとか?

有線LANアダプター

CableCreation 超高速USB 3.0 to RJ45 ギガビットイーサネットアダプタ

10/100/1000 Mbps (IC チップセット付き RTL8153) USB有線LAN 0.1m

約1600円でした。

Raspberry Pi Zero Wは無線LANなので最初に設定する際、必要となります。

Amazonだとこれとか?

100均のUSBハブ

手持ちの適当なものでいいと思います。USB3.0でなくてもできます。

こちらは100均の4ポートでそれぞれの電源スイッチが付いたUSBハブを使ってます。

Rspberry Pi Zero Wについて

 

Raspberry Piとは、もともと教育用で作られたものです。教育用という事もあり安価なパソコンで数千円ぐらいで買えます。(ま~基板ですが・・・・

また、こちらでも家庭菜園で使用していますが、ザックリ!言うとIOTの組み込み型等で使えるパソコン基板です。

本題の音楽再生ごときは、そんなにCPUパワーは要らないので小型で安価な「Raspberry Pi Zero W」で十分です。

今回の構成はpHAT DACを使用するため、音の再生処理はpHAT DACが行うのでRaspberry Pi Zero W側のCPU処理速度は低くても問題ありません。

価格については、こちらの物は数年前に安い時に購入したので、現在2020年4月時点でAmazonでは6000円ぐらいで売ってました。ターゲット価格は10ドルらしいので、普通に買えば2000円もあればおつりがくるんじゃん!

Raspberry Pi Zero Wのいい所は、以下

 消費電力が低い150mA(0.75W)

 ものすごく小さい、Raspberry Piの数あるバージョンの中でも小さい方です。

 Wi-Fiがオンボードで付いている。Wi-Fiで使用するのを想定しています。

 余計なインターフェースがない。<–消費電力を抑えられる

 HDMIへの出力が付いているので、再生楽曲の情報などをテレビに映すこともできます。

 発熱が少ないので、一応、ヒートシンクもつけておけば夏場の常時運用も可能だと思います。

完成した本体の写真です。

Volumioのインストール

Volumioのダウンロード

Volumioホームページ

上記より、OSのイメージZipを作業用パソコンへダウンロードします。

volumio-2.729-2020-03-18-pi.img.zip

ダウンロードを解凍しておきます。

MicroSDのフォーマット

I・O DATAのフォーマッタを使います。

以下のURLより自分の作業用PCのOS用をダウンロードする。

https://www.iodata.jp/lib/software/i/1498.htm#


MicroSDをSDアダプタを付けてパソコンに刺します。

解凍します。「HDDFMT.exe」を選択します。


手順書作成のために8GのMicroSD使ってます。自分が刺したMicroSDか?しっかり確認してください。「次へ」


「FAT32」「MBR」のまま「次へ」


警告がでるので「はい」を選択します。


「注意事項に同意します」「次へ」を選択します。


「実行」でフォーマットが開始されます。


「完了」でフォーマットは終了です。

 

MicroSDへ書き込み

Etcherを使ってMicroSDカードへOSを入れ込むためにダウンロードします。

https://www.balena.io/etcher/


Etcher for Windows (x86|x64) (Portable)をダウンロードします。


balenaEtcher-Portable-1.5.45.exe をクリックして実行します。

警告がでますが「実行」を選択する。


「Select image」でvolumio-2.729-2020-03-18-pi.imgを選択します。


「Select drive」が表示された場合はMicroSDがマウントされているドライブを選択します。

「Flash!」で書き込みます。

※書き込みできない場合はフォーマットがFAT32になっていないのが原因かもしれません。


オレンジ色の所が100%まで書き込みが終わるとMicroSDにOSが書き込まれます。


書き込みが100%まで達すると、しっかり書き込まれているか?の検証が始まります。


「Successful device」が表示されればOKです。右上のXで閉じましょう。

pHAT DACの取付

Raspberry Pi Zeroと同サイズの、安価ながら高品質なDAC機能を追加するpHATボードです。

2 × 20のGPIOピンヘッダで、Raspberry PiのI2Sインタフェースから192 kHz、24ビットのオーディオを出力します。

Volumioの元から用意されているドライバI2S DACに対応しているので、後からドライバみたいなものをインストールする必要もありません。

3000円くらいの値段です。

3.5 mmのステレオジャックは実装済ですが、デュアル RCA フォノコネクタは実装・同梱されていません。

早速、ハンダで馬(ピン)を付けます。全部のピンを使う分けではないので配線がつながっているところだけ、ハンダをつければ良いと思います。但し、固定の意味で両端は必須です。

ハンダ付けが完了したら、Raspberry Pi Zero Wと接続します。

Volumioの初期設定

 書き込んだMicroSDカードをRaspberry Piに刺します。

 HDMI変換アダプタにモニタを付けます。

 USB変換アダプタにUSBハブを付けてキーボード、マウス、LANアダプターを付けます。

 電源ケーブルを刺してRaspberry Piを起動します。

※無線LANで接続する場合は、起動してしばらく立つとWiFiにVolumioのアクセスポイントが出てくるのでそこへ接続します。

起動中は、本体の緑色LEDが点灯又は点滅をしているのが確認んできます。画面はしばらく黒いままですが、起動処理は続いています。

さすがにRaspberry Pi Zero WはCPUパワーがないので立ち上がるまでに時間がかかります。その分、運用時の消費電力が少ないのでガマンしましょう。

しばらくすると起動プロセス画面のあと「VOLUMIO」のロゴがでてきます。

OSが立ち上がると、プロンプト画面になります。

以下の同じ「volumio」をいれるとログオンできます。

 

Raspbian GNU/Linux 8 volumio tty1
volumio login: volumio
password: volumio


無事ログオンできるとWelcome画面とプロンプトが立ち上がります。


この状態ですと、まだ、Wi-fiルータとの設定ができていないので無線LANでの接続はできません。

コマンドで「ifconfig」といれるとeth0のIPアドレスが分かります。

___
/\_ \ __
__ __ ___\//\ \ __ __ ___ ___ /\_\ ___
/\ \/\ \ / __`\\ \ \ /\ \/\ \ /’ __` __`\/\ \ / __`\
\ \ \_/ |/\ \L\ \\_\ \_\ \ \_\ \/\ \/\ \/\ \ \ \/\ \L\ \
\ \___/ \ \____//\____\\ \____/\ \_\ \_\ \_\ \_\ \____/
\/__/ \/___/ \/____/ \/___/ \/_/\/_/\/_/\/_/\/___/

Free Audiophile Linux Music Player – Version 2.0

C 2015 Michelangelo Guarise – Volumio Team – Volumio.org


Volumio Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
volumio@volumio:~$ifconfig
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:66532 errors:0 dropped:0 overruns:0 frame:0
TX packets:66532 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:6768907 (6.4 MiB) TX bytes:6768907 (6.4 MiB)

eth 0 Link encap:Ethernet HWaddr **:**:**:**:**:**
inet addr:192.168.0.21 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:12997978 errors:0 dropped:0 overruns:0 frame:0
TX packets:6748137 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:8986855724 (8.9 GB) TX bytes:5864315907 (5.8 GB)

wlan0 Link encap:Ethernet HWaddr **:**:**:**:**:**
inet addr:**:**:**:**:**:** Bcast:**:**:**:**:**:** Mask:**:**:**:**:**:**
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0 MiB) TX bytes:0 (0 MiB)


調べたIPアドレスを使って作業用PCのブラウザURL欄にIPを入れます。

http://192.168.**.** <– 家庭用LANはCクラスなのでこの形態

Volumioの画面が立ち上がります。

「日本語」を選択して「Next」を選択します。


そのまま「Next」を選択します。


「I have an I2S DAC」でYESを選択します。

「Select your i2s DAC」で「pHAT DAC」を選択します。

「Next」を選択します。


前バージョンより増えた項目です。

「I want the full set of options」を選択しました。後で変更できます。


接続するWi-Fiルータを選択してルータに載っているパスワード(key)を入力し「接続」を選択します。


接続してる画面になります。

接続が完了したら「Next」を選択します。


「Successfully connected」と出ていれば無線LANでの接続は問題なく繋がるハズです。「Next」を選択します。


SDカード内にmp3を格納するので、そのまま「Next」を選択します。

※NASの登録については後ほど解説します。今は行いません。


全ての設定が終わって、最後、寄付してくれよ~と出てきます。

作者さんゴメンネ!!、貧乏なんで金ないんだよ~!

「作ってくれてありがとう!」と言って「Done」を選択します。


再起動前に無線LANとしての接続で認識させたいので有線LANアダプターをUSBハブより外します。

再起動が促されるので「再起動」を選択します。


再起動後、無線LAN(Wi-Fi)はつながったもののIPアドレスが分かりません。

HDMI出力のRaspberry Piの画面でログオンします。

Raspbian GNU/Linux 8 volumio tty1
volumio login: volumio
password: volumio


eth0(有線LAN)を調べた時と同様にwlan0(無線LAN)のIPを調べます。

___
/\_ \ __
__ __ ___\//\ \ __ __ ___ ___ /\_\ ___
/\ \/\ \ / __`\\ \ \ /\ \/\ \ /’ __` __`\/\ \ / __`\
\ \ \_/ |/\ \L\ \\_\ \_\ \ \_\ \/\ \/\ \/\ \ \ \/\ \L\ \
\ \___/ \ \____//\____\\ \____/\ \_\ \_\ \_\ \_\ \____/
\/__/ \/___/ \/____/ \/___/ \/_/\/_/\/_/\/_/\/___/

Free Audiophile Linux Music Player – Version 2.0

C 2015 Michelangelo Guarise – Volumio Team – Volumio.org


Volumio Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
volumio@volumio:~$ifconfig
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:66532 errors:0 dropped:0 overruns:0 frame:0
TX packets:66532 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:6768907 (6.4 MiB) TX bytes:6768907 (6.4 MiB)

wlan0 Link encap:Ethernet HWaddr **:**:**:**:**:**
inet addr:192.168.0.22 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:39329 errors:0 dropped:0 overruns:0 frame:0
TX packets:23063 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:45371030 (43.2 MiB) TX bytes:3750931 (3.5 MiB)

Volumioにログオン・視聴

調べたIPアドレスを使って作業用PCのブラウザURL欄にIPを入れます。

無事、無線LANでの接続ができました。


音楽が鳴るか?テストのため、「おら~!わくわくするぞ!」(孫悟空)と言いながら、音楽ファイルをアップロードする作業に入ります。

エクスプローラのアドレス欄にブラウザのhttpで開いた時のIPアドレスを「¥¥192.168.*.*」と半角小文字で入れます。※ *はVolumioのIPね

開いたら「Internal Strage」を開きます。


Internal Storage内に楽曲データをコピーします。

フォルダ内のジャケット写真を「cover.jpg」とするとジャケット画像にPGが表示される?っぽいので、アルバムごとにフォルダを作って、MP3曲データとJPGジャケット画像をいれる。

これでアップロードは完了です。


 


確認します。

ブラウザ上から左側の「音楽ライブラリ」で中画面「INTERNAL」を選択します。


先ほどアップロードしたMP3が登録されました。それぞれクリックすると再生されます。


ボリュームは使わない設置にしています。と言うか?pHAT DACはMP3データをハードウェア処理してスピーカから音を出しているので、余計なソフトウェア処理をしないで音を出した方が音が良いらしいです。

Volumioの各種設定

ブレイバックオプションの設定

DSD Direct」は余計な処理なくDACに直接音声データを送り込みます。

ハイレゾ音源は音圧みたいなデータを決まったサンプリングレートで送る技術ですが、それを送る項目ととらえた方がいいと思います。

DSD over PCM(DoP)」はパソコンの標準ドライバに合ったフレームに入れて音声データを送り込むため、コントロール情報が付加されていて通信量が多少増加しますが結局、DACでDSDデータのみを取り出すので2つともDACでは元データとなります。こちらはハイレゾもMP3もいけるみたいです。

もともとMP3音源を再生するために構築したので、設定自体はこの設定です。

PCMという単語がでてきたので簡単に説明しますと、波の音声をデジタル化するための音声符号化技術です。

シャノンさんと日本だと染谷さんが提唱した原理です。「現信号の2倍以上でサンプリングすれば元信号を再現できる。」です。(たしか?こんな感じだったハズ

標本化、量子化、符号化の3つの工程でデジタル化します。基本となるのはデジタルハイアラーキの0次群で64Kbpsとなります。8ビット×8000サンプリングね。8000サンプリングとは電話での音声が基本となっているので、このビット数やサンプリング数を上げる事によって音の再現性が上がります。

ホットスポットをOFFにする

ホットスポット(解放設定)をそのままにしておくのはセキュリティ上、好ましくないのでOFFにします。

ブラウザ左側の「設定」を選択します。

「ネットワーク」を選択します。


「ホットスポットを有効にする」を「off」にします。で「保存」を選択します。

家のテレビにVolumio画面を映す

家庭用テレビなど、設定のために接続したHDMIでVolumioの楽曲内容を表示したい場合があります。

スマホのWi-FiをオンにしてブラウザのURL欄に「192.168.*.*」と入れると、Volumioの画面が出てきます。それでも操作はできます。

もちろん、スマホから音はでませんが・・・・(爆

家などで作業用パソコンを使用しないで直接、HDMIで繋いだテレビとマウスでVolumioを操作したい場合は「Touch Display Plugin」を使います。

元々は、スマホやタブレットみたいなタッチディスプレイ用のプラグインですが、家のTVにはタッチ操作機能がないので画面を表示させるのみで使います。

画面左側の「プラグイン」を選択して「Miscellanea」を選択します。

「Touch Display Plugin」のインストールを選択します。


「アクティブ」が付いていれば動いてます。


マウスアイコンの表示をさせるには、上記画面の「設定」から「Show Mouse Pointer」を「On」にします。

テレビ画面を見てみましょう。

WebGUIの文字化けを治す

「Touch Display」でテレビ側にGUI画面が映りましたが、一部、日本語が文字バケしています。それを修正します。

画面左側の「音ロ」が文字バケです。


HDMI出力された画面で以下のコマンドを入力します。

途中、「Do you want to Continue?」と聞かれるので「y」を入力します。

インストールが終了するとコマンドプロンプトに戻ります。

volumio2volumio:~$sudo apt-get install fonts-ipafont
..
..
Do you want to Continue?[Y/n]:y

音楽共有ストレージでNASを使う

画面左側の「設定」を選択後、「Sources」を選択します。


「新規ドライブを追加」を選択します。


重要な所・・・

「パス」は音楽データが入っているフォルダまでのパスを指定します。

「ユーザ名、パスワード」はNASのフォルダにパスワードをかけていれば、そのIDとパスワードとなります。

「オプション」はSambaのバージョンを明記していると思うのですが、表示の通り、「vers=1.0」と記入します。


「マウント済み」にチェックが入れば認識しています。


「音楽ライブラリ」で「NAS」が表示されれば成功です。

ちなみに他のフォルダについては、

NAS

ディレクトリパスは「/var/lib/mpd/music/NAS」

リンクは「/mnt/NAS」

RAM

ディレクトリパスは「/var/lib/mpd/music/RAMPLAY」

リンクは「/run/shm」

USB

ディレクトリパスは「/var/lib/mpd/music/USB」

リンクは「/mnt/USB」

ここまでで最初に書いた行いたい事の半分が終わりました。(汗

次はいよいよ、Alexa君との連携となります。

ミュージックサーバー構築(Alexa編)

 

その他

SSHで接続する

TeraTremを使えるようにするには、Web上から設定画面をクリックすればつながるようになります。

※TeraTermの解説は省略します。設定をいじるので慣れてない人はやらない方がいいかも

作業PCのブラウザ上で

http://192.168.*.*/DEV

を入力すると設定画面が出てきます。

SSHの箇所で「ENABLE」を押します。※特に変化なし


TeraTermを起動します。


IPを入れて、そのまま「OK」を選択します。


SSHがつながる状態になっているとログインの画面になります。

ユーザー名:volumio

パスフレーズ:volumio

で「OK」を選択します。


ログオンできるとオープニング画面となります。

省電力化

この項目は記録として載せます。

Vimをインストールします。

sudo apt-get install vim


USBをオフにします。※この操作をするとTeraTermなどからの操作やWebからの操作しか受け付けなくなります。

volumio@volumio:~$ sudo apt install libusb-dev
volumio@volumio:~$ sudo wget http://www.gniibe.org/oitoite/ac-power-control-by-USB-hub/hub-ctrl.c
volumio@volumio:~$ apt-get install python build-essential git device-tree-compiler gcc-4.9 g++-4.9
volumio@volumio:~$ gcc -O2 hub-ctrl.c -o hub-ctrl -lusb
volumio@volumio:~$ sudo cp -a hub-ctrl /usr/local/bin


rc.localのexit 0より上の最終行あたりに追記します。

volumio@volumio:~$ sudo vi /etc/rc.local
## USB DISABLE
sudo hub-ctrl -b 1 -d 2 -P 2 -p 0
/bin/sleep 2
sudo hub-ctrl -b 1 -d 2 -P 3 -p 0
sudo hub-ctrl -b 1 -d 2 -P 4 -p 0
sudo hub-ctrl -b 1 -d 2 -P 5 -p 0


HDMIの停止とPOWER LEDの消灯

Raspberry Pi Zeroはありませんが、他のラズパイはPOWER LEDは赤いランプです。緑のランプ(ACT LED)を消灯するには別途作業が必要です。

volumio@volumio:~$ sudo vi /etc/rc.local
## HDMI DISABLE
sudo /opt/vc/bin/tvservice -o

volumio@volumio:~$ sudo vi /etc/rc.local
## POWER LED DISABLE
echo 0 | sudo tee /sys/class/leds/led1/brightness

volumio@volumio:~$ sudo vi /boot/config.txt
## ACT LED DISABLE
dtparam=act_led_trigger=none
dtparam=act_led_activelow=off

## PWR LED DISABLE
dtparam=pwr_led_trigger=none
dtparam=pwr_led_activelow=off

# turn wifi and bluetooth off
## Turn Wifi and Bluetooth DISABLE
dtoverlay=pi3-disable-wifi
dtoverlay=pi3-disable-bt

Bluetooth接続

これが出来ると、pHAT DACとか要らなくなり、Bose SoundLinkとの接続も線なしで接続できるようになると思いますが、何度か?挑戦しましたが、、、

プラグインで追加をして行いましたが、どうしてもアクティブにならず、あえなく断念しました。

将来的に使えるようになると一層使い易くなると思います。

Raspberry Pi本体OSのアップデート

Volumioといいつつ、RaspbianのOSなのでOS事態のアップデートが行えるこれにより、パフォーマンスが改善されたり、パッケージの不具合なども解消される可能性がある。

volumio@volumio:~$sudo apt-get update

終わったら、次に

volumio@volumio:~$sudo apt-get upgrade

この2つのコマンドはラズパイでは当たり前のコマンドとなります。

HDMIでもし画面がでなくなったら

GUI画面の呼び出し方です。

Linuxはもともと、サーバーOSなのでXwindowSystemっていう、デスクトップ環境がインストールされて尚且つ起動しないとGUI(Grafic User Interface)になれません。基本はCUI(Command User Interface)での操作(コマンド)です。

立ち上がらない場合は、「startx」でXwindowSystemを起動します。

volumio2volumio:~$startx

便利なコマンド

Wifi状況の確認でwlan0が表示されなければ停止されています。

volumio@volumio:~$ ip link show

Alsaサウンドの設定

volumio@volumio:~$ sudo alsamixer -Dhw

ラズパイの温度確認

volumio@volumio:~$ sudo vcgencmd measure_temp

ラズパイの電圧確認

volumio@volumio:~$ sudo vcgencmd measure_volts

カーネルの確認

volumio@volumio:~$ uname -rv

出来たらいいな

Volumioを使う前はZinaというWeb音楽サーバを構築していました。その際、アルバムの概要やアーティストの概要及び写真を階層フォルダにジャケjpgと概要txtを入れておけば以下のように表示してくれます。

これがVolumioにできれば最高なのですが。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です