藤本健のDigital Audio Laboratory
第837回
iOSで再生する音はビットパーフェクト出力できる? 実験してみた
2020年2月3日 12:05
先日、「Macの音は問題なくビットパーフェクト出力」は本当なのか? というテーマで、macOS 10.14 Mojave、およびmacOS 10.15 Catalinaでの検証を行なった。その時、読者からのツイートなどで要望が来ていたのが「iOSについても同じ検証をしてほしい」というもの。確かに普段iPhoneで音楽を聴いている人も多いと思うので、チェックしておいたほうが良さそうだ。そこで、Macと同じ実験をiOSでもしてみた。
iOSとUSBオーディオインターフェイスを接続……でも問題発生
先日も書いた通り、Macでの音楽再生がビットパーフェクトであるかを検証した背景は、「Windows標準のオーディオエンジン利用時はビットパーフェクトではないため」だ。もちろん、ASIOドライバやWASAPI排他ドライバを使って、foobar2000とかMediaMonkey、MusicBeeといったプレーヤーを使って再生すればビットパーフェクトを実現できるが、標準のプレーヤーでそれができないため、この連載を通じて主張を続けているわけだが、一向に変化の兆しはない。
一方で、Macなら本当に大丈夫なのか……ということで先日MojaveでiTunesを使い、CatalinaでMusicアプリを使って試してみたところ、しっかりビットパーフェクトであることを確認できた。
では、それがiOSだったらどうなのかということで、今回改めて検証してみることにした。iPhoneでもiPadでもいいのだが、オーディオインターフェイスとの相性、電力供給という面で、USB Type-C端子搭載のiPad Pro 11インチを使って試してみることにした。これを使えば、先日Macで行なったのと同じ機材で簡単にできるはずと踏んだからだ。
具体的にはSteinbergのUSB Type-C接続のオーディオインターフェイス「UR816C」をiPadに接続し、そのS/PDIF出力からオーディオ信号を出力。一方、WindowsマシンにRolandのUA-101を接続し、そのS/PDIF入力にUR816Cからの信号を入れ、それをSound Forgeを用いてキャプチャするという方法だ。
簡単にできると思ったのだが、最初からつまずいた。確かにiPadのオーディオ出力先はUR816Cになり、Musicアプリで再生した音をUR816Cのヘッドフォン端子からモニターすることもできるし、アナログ端子から出力することはできる。またS/PDIFオプティカルケーブルを通じて同期信号は行なっているようで、UA-101側もそれに対応してロックしているけれど、音が出ない。iPad側で出力先をS/PDIFに設定できず、ここから出力することができないのだ。
そこでSteinbergサイトから、ルーティングのためのユーティリティをダウンロードして使えばいいことを思い出し、dspMixFx UR-Cというアプリをインストールして使ってみたところ、そもそもS/PDIFの端子がここから見ることができない。デモモードで使うとS/PDIFとADAT切り替えなどがあるが、現状のバージョンだとこれがなくどうにも使えなかった。もしかしたらPC側のdspMixFX UR-Cで設定をして使えば動くのでは……と思って試してみたが、この方法もダメ。いきなり壁にぶつかってしまった。
もっともiOSのCore Audioの出力をS/PDIFで出せればいいだけの話なので、UR816Cにこだわる必要はない。とはいえ、手元にあったオーディオインターフェイスではS/PDIF出力はできるものの、強制的にリサンプリングがかかってしまうことが判明していたため、これを使ってはビットパーフェクトの検証ができない。それ以外にも探したものの、すぐに使えるS/PDIFを持ったオーディオインターフェイスが見当たらない。何か一つ実験用に買おうかと思っていたところ、ラトックの古い箱が見つかった。開けてみると小さなUSB DACが入っており、ここにS/PDIFの出力があったのだ。箱を見るとUSBオーディオアダプタ自作キット「RP-USBAK01」とある。実は10年前にこの連載の記事で取り上げていたものだ。
10年間まったく触っていなかったので、動くかどうかも分からなかったが、接続するとすぐに認識し、Musicアプリで再生すると、RP-USBAK01のヘッドフォン端子から音が出る。フロントのLEDランプがつくと思われるところが空洞になっていたのが気になったので、念のためとケースをばらして基板を見てみると、どうやらLEDの取り付けミスをしていたことが発覚。本来であればピンの足を長くして、穴の位置にLEDを合わせるべきところ、足を短く切ってしまっていたのだ。そのため、USB接続すると基板上で緑に光っていたが、本質的な問題ではないので、ここでは無視して、これを使うことにした。
このRP-USBAK01のS/PDIF出力を光デジタルケーブルでUA-101に接続してみると、しっかりと同期がロックされることが確認できた。そしてプレーヤーを再生すると、UA-101側から音が出てモニターすることができた。これをさっそくSound Forgeでレコーディングしてみた結果を掲載する。
元のデータと同じものが再生できているかチェック。結果は……
では、この録音したものと、元のデータは同じなのだろうか? 以前と同様、efu氏開発のオーディオ比較ソフト、WaveCompareを使って比較してみた結果がこちらだ。無音状態を飛ばす設定で比較したところ、完全に一致。つまりビットパーフェクトを実現できていることが証明できたわけだ。
いま試したのは、筆者らの自主レーベルDTMステーションCreativeで出した楽曲の一部を切り出したWAVファイルだったので44.1kHz/16bitの素材。でもiOSおよび、Musicアプリでは48kHz/24bitまで対応しているので、48kHz/24bitのWAVファイルを用意して、まったく同じ実験をしてみた。
元のファイルと、転送した結果をWaveCompareで比較してみると、今度は完全不一致。やはり24bitだとうまくいかないのだろうかと、いろいろチェックしてみて、しばらくして分かった。それは、10年前に作ったキットが44.1kHzまたは48kHzの16bit対応であり、24bitに対応していなかっただけの話だったのだ。試しに、48kHz/16bitのデータを用意して実験しなおしてみたところ、今度は完全一致した。
今回の実験はここまで。48kHz/24bitについては試すことができなかったが、iOSでも44.1kHz/16bitおよび48kHz/16bitにおいては専用のアプリを使うまでもなく標準機能だけでビットパーフェクトを実現することが証明できた。また機材が揃ったら、48kHz/24bitでの実験、さらにはアプリを使っての96kHz/24bitなどの実験をしてみてもいいかもしれない。
一方、まだテストしていないのがAndroid。手元には少し古い機材しかないので、最新機種を借りるか買うかするなどして、同様の実験をしてみたいと思っている。