ElectroBlog

ElectroBlog

This is ElectroBlog for explaining my electronics projects such as Raspberry Pi and Micro:bit.

Raspberry Pi Zero w (7) iPhoneやiTunesのAirPlayを使用して外付けUSB DACからFLACやAACファイルを再生(Shairport Sync)(OSはRaspbian)

  f:id:ElectroBlog:20170507193514p:image

Stream music with Airplay from your iPhone to your Raspberry Pi. 

 

最近インストールしたShairportを利用してiTunes(AirPlay)でRaspberry Piから音楽を再生しているが、どうも再生デバイスの切断エラーが起こるので厄介。

そこで別の方法としてShairport Syncをインストールしてみた。

今回はRaspberry Pi Zero wとRaspberry Pi ZeroおよびRaspberry Pi 3で安定した動作を確認できた。

  

注記:Zero wは日本の技適が取れていないようなので内蔵無線LANを使用しない方法を解説していきます。

 

手順は以下の通り。

①Raspberry Piとssh接続(外付け無線ルーター or Ethernet)

②外付け無線LANを利用してRaspberry Piをインターネットへ接続

③外付けUSB DACを接続。音声出力先の変更。

④Shairport SyncをRaspberry Piへインストール。

⑤iTunes(Windows)やiPhoneから音出し

 

まず①、Raspberry Piとssh接続できるようにする。

手順は下記リンクに記載。

Raspberry Pi Zero w(2) 初期設定:HDMIディスプレイを使わずに外付け無線ルーターだけで簡単にSSH接続する(Raspbian) (Zero wも共通) - ElectroBlog

 

 次に②、外付け無線LANを利用してRaspberry Piをインターネットへ接続させる。

手順は下記リンクに記載。

Raspberry Pi Zero w (4) 小型USB無線LANを使って自宅wifiのネットワーク経由でSSH接続する(Raspbian) - ElectroBlog

 

そして、③については下記リンクに記載。 

Raspberry Pi Zero w (4) USB DACから音楽を再生(Raspbian) - ElectroBlog

 

ここまで終わればあと少し。

AirPlayを使ってitunesやiPhone等から音を出すときはPCやiPhone内の音源を利用できるため、Micro SDカードに音源をいれる必要がない。

外付けDACが正常に接続されているかは下記コマンドで確認する。

aplay /usr/share/sounds/alsa/Rear_Center.wav

音が鳴ればOK。

④に移る。

 

ここからの手順は下記リンク先のReadmeを参考にした(2017年5月7日現在)。

GitHub - mikebrady/shairport-sync: AirPlay audio player. Shairport Sync adds multi-room capability with Audio Synchronisation

リンク先で下の方にスクロールすると

Shairport Syncの説明が始まる。

まず下準備として下記内容をインストールする。

f:id:ElectroBlog:20170507200302p:plain

実際に上から一つ一つインストールしていく。

sudo apt-get install build-essential git xmltoman

f:id:ElectroBlog:20170507200454j:plain

下記、Yを実行。

f:id:ElectroBlog:20170521172342p:plain

 

sudo apt-get install autoconf automake libtool libdaemon-dev libasound2-dev libpopt-dev libconfig-dev

f:id:ElectroBlog:20170507200408j:plain

下記、Yを実行。

f:id:ElectroBlog:20170521172315p:plain

 

sudo apt-get install avahi-daemon libavahi-client-dev

f:id:ElectroBlog:20170507200749j:plain

 下記、Yを実行。

f:id:ElectroBlog:20170521172315p:plain

 

sudo apt-get install libssl-dev

f:id:ElectroBlog:20170507200618j:plain

 下記、Yを実行。

f:id:ElectroBlog:20170521172315p:plain

 

sudo apt-get install libmbedtls-dev

f:id:ElectroBlog:20170507200638j:plain

→上記の通りlibmbedtls-devが使えなさそうなので、Readmeどおりに代替としてPolarSSLをインストールしてみる。

f:id:ElectroBlog:20170507200945p:plain

sudo apt-get install libpolarssl-dev

f:id:ElectroBlog:20170507200728j:plain

  下記、Yを実行。

f:id:ElectroBlog:20170521172517p:plain

 

sudo apt-get install libsoxr-dev

f:id:ElectroBlog:20170507200818j:plain

   下記、Yを実行。

f:id:ElectroBlog:20170521172517p:plain

 

完了したら手順どおりShairport Syncをダウンロードする。

git clone https://github.com/mikebrady/shairport-sync.git

f:id:ElectroBlog:20170521172645p:plain

 

次に

cd shairport-sync

f:id:ElectroBlog:20170521215324j:plain

 このディレクトリから

autoreconf -i -f

を実行する。

f:id:ElectroBlog:20170521172755p:plain

(このまま時間がかかるので反応するまっでひたすら待つ)

 

下記画面に戻るまで待つ。

f:id:ElectroBlog:20170521172829p:plain

 

続いて、オプションファイルを選択する。

ここでは推奨どおりに選択した。

f:id:ElectroBlog:20170507201551j:plain

./configure --with-alsa --with-avahi --with-ssl=openssl --with-metadata --with-soxr --with-systemd

を実行する。

f:id:ElectroBlog:20170521172852p:plain

 

そして、下記コマンドでビルドする。

make

f:id:ElectroBlog:20170521173021p:plain

 

ここで、セキュリティーの影響でグループとユーザーを設定する必要がある。

getent group shairport-sync &>/dev/null || sudo groupadd -r shairport-sync >/dev/null

f:id:ElectroBlog:20170521173126p:plain


getent passwd shairport-sync &> /dev/null || sudo useradd -r -M -g shairport-sync -s /usr/bin/nologin -G audio shairport-sync >/dev/null

f:id:ElectroBlog:20170521173141p:plain

 

下記を実行してインストールする。

sudo make install

f:id:ElectroBlog:20170521173205p:plain

 

下記コマンドでRaspberry Pi起動時にShairport-Syncを起動するよう設定する

sudo systemctl enable shairport-sync

f:id:ElectroBlog:20170521173221p:plain

 

下記コマンドから実際に起動してみる(次回から起動時に自動実行される)。

sudo systemctl start shairport-sync.service

f:id:ElectroBlog:20170521173238p:plain

 

ここからは実際に音出しとなる。

Raspberry Piを接続している自宅wifiにPCをつなぐ。

iTunesを起動して、Airplayボタンを押してみると

RaspberryPi

がデバイスとして表示される。

(Raspberry Piも同じ自宅wifiに接続)

 

RaspberryPiを選択して音源を再生すると無事にUSB DACから音が再生された。

f:id:ElectroBlog:20170507202248j:plain

 

次に自宅wifiに接続しているiPhoneから下記3つのアプリでデバイス選択して音楽を再生したところ、無事に再生できた。

・Music (m4aファイルとmp3ファイルで確認)

f:id:ElectroBlog:20170507193531p:image

Music app

 

・ONKYO HF Player

・KORG iAudioGate

この2つのアプリではハイレゾ音源の再生も確認できた。

(flacファイル、m4aファイル、wavファイルで確認) 

 f:id:ElectroBlog:20170507193514p:image    f:id:ElectroBlog:20170507193524p:image

 ONKYO HF PlayerとKORG iAudioGate

 

f:id:ElectroBlog:20170507204304j:image    f:id:ElectroBlog:20170507204311j:image 

Raspberry Pi ZeroとRaspberry Pi Zero w

 

f:id:ElectroBlog:20170507204318j:image

Raspberry Pi 3

内蔵無線LANが使用できるので電源CableとUSB DACだけで動作できる。