作ってみた!ラズパイガジェット達はこちら

AirPlayを設定する(Raspberry Pi で作るミュージックシステム)

スポンサーリンク
airplay 設定(setting)

AmazonPrimeMusicをブラウザから再生するために5インチモニターをセットしたRaspberry Pi 3BのミュージックシステムにスマホからAirPlayするためShairportSyncをインストールします。

作業は全てSSHで他のマシンから可能です。

Macのターミナルなどから接続します。(WindowsからはPuTTYからとか)

ssh pi@192.168.*.*

piはRaspbianのユーザー名、@以下はそのローカルIPアドレスです。

ShairportSyncのインストール

GitHubを参考にインストールしていきます。ソースコードをダウンロードしてmakeしインストールします。つまりアプリケーションのようなパッケージではありません。ちょっと分かりにくいですが、例えるなら、プラモデルと同じで、部品をダウンロードして部品を組み上げ、そして完成させるという形です。

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

事前準備としてライブラリなど必要な物をインストール

以下引用のように必要な物を先にインストールしていきます。この際、既にインストールされている以外をインストールになります。先程のプラモデルの例で言うと、事前にニッパーや接着剤などを容易するようなイメージです。

Debian, Ubuntu and Raspbian users can get the basics with:

# apt-get install build-essential git xmltoman – these may already be installed.
# apt-get install autoconf automake libtool libdaemon-dev libpopt-dev libconfig-dev
# apt-get install libasound2-dev for the ALSA libraries
# apt-get install libpulse-dev for the PulseAudio libraries
# apt-get install avahi-daemon libavahi-client-dev if you want to use Avahi (recommended).
# apt-get install libssl-dev if you want to use OpenSSL and libcrypto, or use mbed TLS otherwise.
# apt-get install libmbedtls-dev if you want to use mbed TLS, or use OpenSSL/libcrypto otherwise. You can still use PolarSSL with apt-get install libpolarssl-dev if you want to use PolarSSL, but it is deprecated as it’s not longer being supported.
# apt-get install libsoxr-dev if you want support for libsoxr-based resampling. This library is in many recent distributions; if not, instructions for how to build it from source for Rasbpian/Debian Wheezy are available at LIBSOXR.md.
# apt-get install libsndfile1-dev if you want to use the convolution filter.

 

ターミナルの表示

アップグレード: 1 個、新規インストール: 49 個、削除: 0 個、保留: 55 個。
8,918 kB のアーカイブを取得する必要があります。
この操作後に追加で 24.0 MB のディスク容量が消費されます。

 

以下のコマンドで必要なものだけインストールされますのでしばし待ちます。ひとつずつ実行しても良いですが、まとめて指定できます。

sudo apt-get install -y build-essential git xmltoman autoconf automake libtool libdaemon-dev libasound2-dev libpopt-dev libconfig-dev avahi-daemon libavahi-client-dev libssl-dev libsoxr-dev

ソースコードをダウンロード&ビルド&インストール

GitHubからShairportSyncのソースコードを以下のコマンドでダウンロードします。

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

shairport-sync のディレクトリへ移動します。

cd shairport-sync

make前にmakeファイルを作成します。

autoreconf -i -f

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

autoreconfしてから./configureです。この辺は難しく考えずにそのままコピペで実行してください。

そしてmakeコマンドでビルドします。これでアプリケーションになります。

make

 

インストール前にshairport-syncのユーザーとグループを追加します。ユーザーはaudioグループにも追加します。サービスでデバイスを制御する場合、制御したいグループに追加しないとなりませんね。

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

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

インストールします。

sudo make install

サービスに追加する設定

自動的に起動させるためサービスに設定します。これがないとコマンドでいちいち起動しないとなりませんね。サービスとして裏で常に起動させるためです。

sudo systemctl enable shairport-sync

サービスの起動

sudo systemctl start shairport-sync.service

これでサービスとしてAirPlayが利用できます。但し、以下の設定を変えてより良くします。

Shairport-Syncの設定

音量を100%に設定

sudo amixer cset numid=1 100%

設定変更

Shairport-Syncの設定ファイル(.conf)を編集します。必要な箇所を変更します。

sudo nano /etc/shairport-sync.conf

GitHubの例のように必要な箇所を探します。

表示する名前など使いやすいようにします。
general =
{
name = "Front Room";
password = "secret";
interpolation = "soxr";
// ... other general settings
};

変更するのは、name、password、interpolation(補間という英単語)、ignore_volume_controlだけにしました。

interpolationはデフォルトでは’basic’なのを先程事前準備でインストールしたsoxrというライブラをを使うと音が良くなるということでした。CPUには高負荷になりますが、音が大分違いました!オススメです。
感覚としてはbasicでは貧弱で、soxrでは普通に聴いていた音質という感想です。

変更する際、行頭のコメントアウトを削除します。
例を載せます。以下の赤下線が変更した箇所になります。

// Sample Configuration File for Shairport Sync
// Commented out settings are generally the defaults, except where noted.
// General Settings
general =
{
name = "rpi3 mpd10amazon"; // This means "Hostname" -- see below. This $
// The default is "Hostname" -- i.e. the machine's hostname with t$
// You can use the following substitutions:
// %h for the hostname,
// %H for the Hostname (i.e. with first letter cap$
// %v for the version number, e.g. 3.0 and
// %V for the full version string, e.g. 3.0-OpenSS$
// Overall length can not exceed 50 characters. Example: "Shairpor$
password = "password"; // leave this commented out if you don't want to r$
interpolation = "soxr"; // aka "stuffing". Default is "basic", alternat$
// output_backend = "alsa"; // Run "shairport-sync -h" to get a list of al$
// mdns_backend = "avahi"; // Run "shairport-sync -h" to get a list of all$
// port = 5000; // Listen for service requests on this port
// udp_port_base = 6001; // start allocating UDP ports from this port numb$
// udp_port_range = 100; // look for free ports in this number of places, $
// drift_tolerance_in_seconds = 0.002; // allow a timing error of this num$
// resync_threshold_in_seconds = 0.050; // a synchronisation error greater$
ignore_volume_control = "yes"; // set this to "yes" if you want the vol$
//(続く)

.confファイルの先頭からすぐの箇所です。他にまだ設定出来る箇所は続きますがこの4つ程度で充分でした。

なお、好みですけど、ignore_volume_control = “yes”;は、デフォルトではNOで、スマホの音量と同期させるというようなもので、スマホの音量の上げ下げでも音量を変えられます。スピーカーなどに繋いだ場合は、そのスピーカー側で音量を変更したいのと、スマホの音量が最大でもあまり大きな音ではないため設定しました。
逆に言うとスマホでは音量が制御できなくなります。嫌な人はNOのままで結構です。

同じ意味でパスワードを設定したくないならコメントアウトをすればOKです。誰でも繋がりますのでセキュリティ上、設定しました。なんとなく・・・いやでしょ?? 家庭内LANに自分しか居ないなら構わないと思いますが同居している人もスピーカーに飛ばせるのは・・・ねぇ?w

再起動

システムを再起動してみましょう。問題なく出力先が選べて再生できました?

shairportがスマホで表示

サービスに登録してあるので再起動してもShairportSyncは実行します。

終わってみれば非常に簡単ですよ。
これで先日からのミュージックシステムにAirPlayも可能になりました。
次回はMPDもインストールしてローカルにあるmp3を再生できるようにしてみたいと思います。

追記:3.5㎜ジャックで再生させる場合、以下のコマンドで出力先をアナログ出力へ変更

sudo amixer cset numid=3 1

最後に

複数人が集まる場所では盛り上がりますよ!

各人が聴かせたい音楽を次から次へと自宅のスピーカーから聴けるのは面白い体験です。スグに反映するので、途中で誰かがまた送信するとスグにその曲へ切り替わります。

音楽の趣味が違えば違う程、リアルタイムに友人・知人とお気に入りの曲を共有できます。あまり強要していない環境なので、皆が素直に楽しんでくれます。

 

Volumio2やLibreELECなどのOSは、最初から共有できるようにAirPlay可能です。※ShairportSyncは入れなくてOKです。

興味が沸いた方はこちらもどうぞ。

Volumio2+Raspberry Pi+Spotifyの設定まとめ

LibreELEC(kodi)はiPhoneアプリでリモコン要らず

設定(setting)
スポンサーリンク
この記事をシェアしたり自分用に保存してみる。
[特集] Raspberry Pi はAmazonでの購入が最もおすすめ!

Raspberry Pi 関連商品は、Amazonのセールが絡むと途端に手に入りやすくなります。価格だけでは無い利点が多いので、もしもプライム会員なら必要な関連品も含めてチェックしてみてください。
利点をまとめてみました。

こちらの記事もオススメです♪
この記事を書いた人
ラズパイダ

学べる楽しむ便利になる。小さいくせにヤケにパワフル。そんなRaspberry Pi をまだ知らない人に伝えたい。様々な場所で利用されているRaspberry Pi を知って「あっ、これもラズパイだっ!」だからラズパイダ!

ラズパイダ——利用しているWEBサービス
ラズパイダ

コメント