shairport-syncをRaspbianにインストールしてAirPlayレシーバーに
ちまたでは、AirPlay 2 に注目が集まっていますね。
AirPlayはApple社の独自規格で、WifiやLANを通じて音楽や動画をストリーミング再生するものです。
iPhone、iPadから、Wifi経由でリモートスピーカーにて音楽再生したり、AppleTVを経由してテレビ画面に映像を映したりします。音楽再生の方はAirPlay 2になってマルチルーム再生に対応しました。
shairport-sync というソフトウェアはAirPlayに対応したLinux用のレシーバーソフトです。
外国のマニアの方がAirPlay通信を解析して独自に作って公開したのがshairportで、shairport-syncは発展版です。AirPlay 2(マルチルーム)に対応できているのかどうかは、やってみてのお楽しみ。
今日は、RaspberryPi 標準のRaspbianにインストールする方法をご紹介いたします。
では早速はじめましょう。
必要なライブラリ導入
sudo apt-get update
sudo apt-get install build-essential git autoconf automake libtool libdaemon-dev libasound2-dev libpopt-dev libconfig-dev libavahi-client-dev libssl-dev libpolarssl-dev libsoxr-dev mpc
インストールしますか? と問い合わせがでます。
y と答えてライブラリなどインストールされるまでしばらく待ちます。
shairport-syncのインストール
git clone https://github.com/mikebrady/shairport-sync.git
続いてコンパイルしていきます。
cd shairport-sync
autoreconf -f -i
./configure --with-alsa --with-avahi --with-ssl=openssl --with-metadata --with-soxr --with-systemd --sysconfdir=/etc
make
sudo make install
これでインストールが完了しました。
shairport-syncの設定
sudo nano /etc/shairport-sync.conf でファイルを開いて下記の項目を書き換えます。
general =
{
name = "RPi-Play";
interpolation = "soxr";
output_backend = "alsa";
log_verbosity = 0;
};
sessioncontrol =
{
run_this_before_play_begins = "/usr/bin/mpc stop";
allow_session_interruption = "yes";
};
alsa =
{
output_device = "hw:0,0";
mixer_device = "hw:0";
output_format = "S32";
output_rate=44100;
period_size=4410;
buffer_size=22050;
};
# ここまでが Hifiberry-DAC用の設定 #
# Sabreberry32の場合は alsa セクション を変えます #
alsa =
{
output_device = "hw:0,0";
mixer_device = "hw:0";
mixer_control_name = "Digital";
output_format = "S32";
output_rate=44100;
period_size=4410;
buffer_size=22050;
};
ファイルを保存して閉じます。 ctrl + x のあと y エンター。
上は、ALSAデバイスが1個目の場合の例です。
aplay -l コマンドで出力したいALSAデバイスが何番目なのかを確認しておくと良いでしょう。
shairport-syncを自動起動
sudo systemctl enable shairport-sync
今、実行したいときは以下のコマンドです。
sudo systemctl start shairport-sync
以上で完了です。
バージョンは以下のようになっていました。 2018年6月1日現在
$ shairport-sync -V
3.2RC10-OpenSSL-Avahi-ALSA-soxr-metadata-sysconfdir:/etc
再生してみる
2つのラスベリーパイにshairport-syncをインストールして試してみます。
Windows版のiTunes からはこのように見えます。
マルチルームに対応できていますね。個別に音量調整も可能です。
でも、ipad(iOS 11.4)からはデバイスは見えるものの。。。
再生できるのはひとつのデバイスに限られていました。なぜでしょうか??
ここによると、新しい製品(AirPlay2 対応製品)を識別しているように見えますね。つまりiTunesからはマルチルーム再生できるけど iOSからは制限をかけているっぽいです。
shairport-syncのバージョンアップに期待しましょう。
ちなみにipadでは spotify を再生してもAirPlayすることができるので、spotify Connect 対応製品じゃなくてもshairport-syncを入れればRaspberryPiをネットワークスピーカー的に使うことができます。(フリー版のspotifyで試しました)
にほんブログ村
ブログランキングに参加中です。 めざせ1位!
もしよろしければ「ぽちっと」お願いします。
« Pi 3をWifi AccessPoint化(Raspbian stretch Lite 2018) | トップページ | アナログオーディオフェア2018は今週末 »
「Raspberry Pi」カテゴリの記事
- MotionEyeと余っているラズパイで監視カメラ(2024.11.21)
- 秋の夜長にはRaspberryPi5 RT-linux セルフビルド(2024.10.13)
- 秋の夜長にはRaspberryPi5 64bit版 Sabreberry32 ドライバコンパイル(2024.10.10)
- RaspberryPi 5 の公式OSは32bit版でも64bit?(2024.10.09)
- 秋の夜長にはRaspberry Pi5 64bit カーネル・セフル・ビルド (2024.10.07)
コメント
« Pi 3をWifi AccessPoint化(Raspbian stretch Lite 2018) | トップページ | アナログオーディオフェア2018は今週末 »
たかじんさん、こんにちは。
AP版でない方のZ-MPDに適用してみました。iPadでSpotifyを聞いたり、YouTubeを見たりする時に、ラズパイオーディオで高音質に聞けるのが良いですね。今までVolumio2でAirPlay接続をしていましたが、Z-MPDの方が音が良いです。
投稿: silverbbs | 2018年6月 2日 (土) 20時58分
silverbbsさん
airplayはalacでデータを転送しているとの事で、音質の劣化は基本的にはないですしね。
volumio2は、高音質というより、色んな人が色んな使いかたをできるように、という方向に向かってしまいましたね。
特に何もしないRaspbianにMPDを入れただけでもvolumio2よりは良い音がします。
投稿: たかじん | 2018年6月 3日 (日) 09時22分
こんにちは、オーシャンです
spotify等を再生して楽しませて頂いてます
ところで、ご存知かと思いますがパパリウスさんが数日前に復活されてVer..0.5.1を公開されました
早速試したところ、SB32のドライバがスレーブしか受付けないのですが、これは過去のたかじんさんの説明の通りなので、しょうがないかなと思っていました
しかし、Z-MPDAP版+shairportは、マスターで動いているようなのですが、何か裏技が有るのでしょうか?
投稿: オーシャン | 2018年6月 6日 (水) 16時28分
オーシャンさん
まだ 0.5.1を試しておりませんが、Z-MPDでは特に技を使っているわけではありません。
従来のshairportとshairport-syncの違いはsoxリサンプラーの有無が大きいです。
S-MPDは、音質が変わってしまうsoxリサンプラーを使わないという明確な方針があったと思うので、shairport-syncもsoxをOFFにしているかもしれませんね。
soxは、私も可能であれば使いたくないソフトです。中高域の透明感とか音の抜けが悪くなり、録音の差がマスクされる(どれも同じ音の傾向を持つ)ように感じます。
投稿: たかじん | 2018年6月 7日 (木) 19時07分
こんにちは
早朝にZ-MPD をインストールして、夕方にはここまでたどり着けました。単純にterra-termつないでコピペしただけで、音が出ました。驚異ですw サーバーにも接続できています。もの凄く使い勝手がよく、音の良いシステムになりました。感謝します。
投稿: ひろせ | 2018年7月 7日 (土) 17時43分
ひろせさん
良かったです。 Teratermコピペ。 これさえ出きれば再現可能です。
投稿: たかじん | 2018年7月 9日 (月) 00時08分
こんにちは
先日『Active Booster 基板 頒布開始しました』の記事へのコメントにて
チラと「Raspbianにshairport-syncをインストールしたけど動作してく
れない」旨を書きました。
その後、Z-MPD AP版に試したところ、こちらは問題無く動作する事が判
明しました。
なぜRaspbianだとうまくいかないのか、stretchではなくjessieにしてみ
ても、相変わらずios、MacOSともAirPlayのリストには何も表示されず
・・・。
そこで今度はshairport-sync.confの内容を最初の1行name="Rpi-Play"
から順に、1行書いては保存してreboot・・・という地道な事をしてみた
ところ、まずはAirPlayリストに「Rpi-Play」が表示され、選択できるよ
うになりました。
同時にHDMIからは音が出力されるようになり、そのまま地道な作業を続
けてみるとalsaセクションのmixer_control_name="Digital"を書いて
rebootした段階でAirPlayリストから消え、HDMIからの音も消える事が
わかりました。
結局mixer_control_name="Digital"の一行さえ入れなければAirPlayリス
トに表示され選択もできるけれど、音声はHDMIからのみ・・・というと
ころまで判ったところで途方に暮れております。
ちなみに"Digital"ではなく"PCM"だとAirPlayリストには表示されますが
、音声はやはりHDMIからのみです。
何か解決のヒントを頂けないでしょうか。
ラズパイの環境は3B & SabreBerry32にstretchです。
よろしくお願いします。
投稿: zion | 2018年8月29日 (水) 23時07分
zionさん
頂いたコメントからは、HDMIが有効になっている可能性がありますね。
sudo raspi-config で設定するか/boot/config.txtの編集が必要そうです。
http://www.raspberrypi.org/documentation/configuration/audio-config.md
出力先は、hifiberry-dacでしょうか? sabreberry32でしょうか?
いづれも/boot/config.txtにてドライバを指定してあげる必要があります。
また、オンボードの3.5mmジャックをコメントアウトしておいた方が混乱は少ないと思います。
# dtparam=audio=on
投稿: たかじん | 2018年8月30日 (木) 23時01分
たかじんさん、こんにちは
ありがとうございます!
突破口が見えた気がします。
今後はもっとラズパイの方も勉強しないとだめですね。
お手数をおかけしました。m(_ _)m
投稿: zion | 2018年8月31日 (金) 06時42分
zion さん
意外と、ALSAの指定はややこしいですよね。.asoundrc でdefault出力を指定しないといけない場合もありますし。
mpd.confの場合は、強制的に出力先を指定できますが。。
投稿: たかじん | 2018年9月 8日 (土) 20時56分