互換性重視の「AirPlay 2」

次のmacOSとiOSで「AirPlay」が変わる。WWDC 2017で公開された資料によれば、規格のうちオーディオ部分、つまりAirTunes由来の部分に若干の拡張をくわえ、名称も「AirPlay 2」に変わる。新たに「マルチルームストリーミング」に対応、複数のデバイスへ同時にオーディオストリームを出力できるようになった。Qualcomm「AllPlay」やD&M「HEOS」など、近ごろの(比較的カジュアルな)オーディオ機器ではマルチルーム機能に対応することが1つのトレンドであり、Appleも時流に乗ったという理解でよさそうだ。

ほかにも、電話の着信や通知があっても音楽再生が途切れないようオーディオ信号の再生経路を2系統に分けるしくみや、バッファー容量拡大に伴う再生/停止など曲操作のレスポンス改善などが行われているが、コーデックの追加やサンプリングレート/ビット深度の拡張は行われておらず(要はハイレゾ対応は行われなかった)、どちらかといえば小規模なアップデートだったといえる。

このように書くと、AirPlayは重視されていないのかと早合点されそうだが、そうではない。AirPlay 2でもAirTunes由来のオーディオ再生に対応するし、既存のAirPlay対応オーディオ機器もファームアップデートでAirPlay 2に対応できる(全製品ではない)など、後方互換性が考慮されている。DockからLightningに変わったときのように、レガシーを大胆に切り捨てがちなAppleだが、AirPlayではそのようなアプローチを取らなかったことにこそ注目すべきだろう。

iTunesでは以前から実装されている複数デバイスへの同時出力が「AirPlay 2」でもサポートされる

AirPlay 2でも、いわゆる「ハイレゾ」はサポートしない方針のようだ

AirPlay互換「ShairPort」のほうが進んでいる?

AirPlayはAppleのプロプライエタリな技術……のはずだが、諸事情あって互換の実装が存在する。その名も「ShairPort」、純正AirPlayとは異なり映像系のデータは扱えないが、音声であればAirPlayレシーバーとして動作する。数年前に当コラムでも取りあげており(リンク)、ご記憶の向きも多いことだろう。

当初のShairPortは開発者がプロジェクトを放棄してしまい、現在はいくつかの派生版が開発を続けている。なかでもアクティブなのは「ShairPort Sync」で、いまや多くのLinuxディストリビューション(特にRaspberry Piなどオーディオ用途向け)に収録されるなど、目にする機会は少なくない。

かつてのShairPortは安定性に難があり、再生中にストリームが停止してしまうことも珍しくなかったが、最新版(v3.0)のShairPort Syncではだいぶ改善されている。開発対象はALSA(Linuxをメインターゲットとしたサウンドアーキテクチャ)とされているが、FreeBSDやmacOSでの動作も確認されている。

ShairPort Syncの興味深いところは、純正AirPlayを"超えた"スペックを備えていること。対応するサンプリングレートは最大176.4kHz、量子化ビット数は最大32bitと、AirPlay 2では謳われていないハイレゾ対応も実現できるという。そのような条件で出力できるオーディオ機器が存在しないため試せていないが、ソースコード(ex. player.c)で確認するかぎり、48kHz/16bitが上限の純正AirPlayをデータ量において上回る実装であることは確かなようだ。

ShairPort Syncの導入には、パッケージマネージャー「HomeBrew」が近道だ

このShairPort Sync、我らがmacOSでもかんたんに試すことができる。パッケージマネージャー「HomeBrew」をインストールし、Termninalで「brew install shairport-sync」を実行すればOK。これでコマンドや各種リソースが自動的にダウンロード&インストールされるので、あとは「shairport-sync」を実行すればOK。これで、iPhoneやiPadなどAirPlayクライアントからMacへ音を"飛ばす"ことができる。

試してみると……確かに、6年前にMacで試したときとは段違い。完璧とまではいわないが、音途切れはかなり減っているし、アルバムアートワークなどのメタデータもしっかり転送される。Terminalからの起動とはなるものの、iPhoneで利用しているストリーミングサービスをMacのスピーカーで聴いてみたい、Macに接続しているUSB DAC経由で聴いてみたい、というときに利用できそうだ。

「brew install shairport-sync」でShairPort Syncを導入したあとは、「shairport-sync」を実行するだけ

iPhoneからMac(MBAir.local)へAirPlayでオーディオ出力しているところ。使い勝手は純正AirPlayとまったく同じ