Music TO GO!

2014年09月07日

スマートフォンのハイレゾ再生とDAC活用のまとめ

現時点でのスマートフォンのハイレゾ再生の対応とDACの活用についてまとめてみました。(以下スマートフォンと書いてあるところはタブレットもほぼ同様です)
また私のメモみたいなものでもあるので不明なところはそのように書いています。

このページは随時更新します
(最終更新 2014/9/3)

    iOSAndroid
    
スマートフォン単体での
ハイレゾ再生

対応状況× サポートなし△ 機種による
(LG G2やGalaxy Tablet 3など)
要件アプリダウンサンプリングでの再生は可ハイレゾ再生にはメーカー標準アプリ要のはず (Appendix2)
OS×
△ 機種による(ベンダー依存)
外部DAC
使用
アクセサリーモード
対応状況PCM
PCM44/16まで
(96/24可? *1)
PCM44/16まで
DSD対応できない対応できない
要件DACiDevice対応AOA2.0対応
ケーブルライトニング(または30pin)-USB AMicro B - USB A
アプリ依存しない *1依存しない
OSすべて対応OS 4.1以上 (AOA機能実装のため)
ホストモード
対応状況PCM192kHzまで可能 (384kHz ?)基本44/16まで。ハイレゾはソフト依存
DSDアプリ依存のネイティブ対応可能(DoP) *3アプリ依存のネイティブ対応可能(DoP) *4
要件DACUSB Audio Class1.0対応以上
(ハイレゾならクラス2.0)
消費電力制限あり *2
USB Audio Class1.0対応
消費電力制限は不明確
ケーブルカメラコネクションキットUSB OTG MicroB - MicroB
アプリCD品質では依存しない
DSDはアプリ対応が要 *3
CD品質では依存しない
ハイレゾ/DSDはアプリ対応が要 *4
OS
iPad : iOS4.1以上
(ハイレゾは4.2以降)
iPhone: iOS7.0以上
基本的に4.0以上(ホスト機能のため)
他は機種依存。Appendix 2参照。


*1 A&K AK10はハイレゾ可能との情報。その場合アプリもハイレゾ対応が必要。
*2 バスパワーの場合はHerusのような低消費電力タイプが必要。
それ以外ではバッテリーを使用したセルフパワーが必要。
*3 iOSでは標準のMusicでも24bit透過をサポートしている。
PCMハイレゾならFLAC PlayerやHF Player、DSDならHF PlayerかHibikiなど
*4 USB Audio Player Proやメーカー依存アプリなど



IMG_3449_filtered.jpg
iPhoneとHerus
カメラコネクションキットをホストモードで使用し、直接変換プラグでB端子に入力


Appendix 1 : アクセサリーモードとホストモードの違いについて

オーディオに限らず基本的なことですが、USBは規格上で機器関係は平等ではなく、一方がホストとなり、もう一方がデバイス(アクセサリー)となるように定められています。これはUSBのポートの形でも判別できます。A端子がついてるとホスト機器で、B端子がついているとデバイスです。なお最近C端子が規格化されましたが、これは両方を兼ねます。
ふつうPCでUSB機器を使用するときは常にPCがホストですが、スマートフォンはホストにもデバイス(アクセサリー)にもなりえます。そのためUSB機器の接続はスマートフォンがデバイス(アクセサリー)モードの場合とホストモードの場合に分けられます。

アクセサリーモードではアクセサリープロトコルに対応した特別なDACが必要です(例 Fostex HP-P1)。アクセサリーモードではスマホが周辺機器側になるため消費電力で有利ですが、アクセサリープロトコルによってデジタルの転送レートが制限されるという問題があります。
AppleではiPodのころからアクセサリーモードでのデジタル出力に対応していました。はじめの対応機種はWADIAのiTransportで2008年頃です。一般にiOSではアクセサリープロトコル対応DACはiDevice対応DACと呼ばれます。
Androidではかなり遅れて2013年のOS4.1からAndroid Open Accessesaryプロトコルのv2.0でUSB Audioが定められました(下記の記事)。このUSB Audioはよく勘違いされますが、USB オーディオクラスドライバーのことではありません。
http://vaiopocket.seesaa.net/article/278202078.html
Androidではアクセサリープロトコル対応DACはAOA対応DACと呼ばれます。(例 TEAC HP50)

ホストモードでは基本的にPCオーディオのUSB DAC接続と同じ接続形態となります。そのためアクセサリーモードのようにアクセサリープロトコルに対応した特別なDACを必要としませんが、USB DACが標準ドライバー(USB Audio Class)対応である必要があります。カスタムドライバーのインストールが必要であるDACは使用できません。これはiOSでもAndroidでも3rdパーティードライバーのインストールができないためです。なぜかというと、まずふつうは管理者になれない(rootを取れない)こと、そしてOS自体にドライバーを動的に組み込む仕組みがないからです(Macのカーネルエクステンションのようなカーネルの動的リンク機能です)。例外はアプリ自体にドライバーを内蔵しているAndroidのUSB Audio Player/Recorder proです。
またホストモードの場合はDACには消費電力制限があります(iOSはきびしくAndroidは緩い)。このため特にiOSの場合はDACはセルフパワー(例 iDSD micro)であるか、バスパワーの消費電力が非常に低いか(例 Herus)のどちらかが必要です。

簡単にそれぞれの特徴をまとめると以下の通りです。

アクセサリーモード
1.スマホの電力消費が少ない
2 対応サンプルレートの制限あり
3. 特別対応DACが必要

ホストモード
1. 電力消費制限あり
2.サンプルレートは比較的自由
3. 汎用なDACを使用できる

* さきに書いたようにアクセサリーモードとホストモードはスマートフォンとUSBデバイスの接続について一般的なことであり、オーディオに限りません。たとえばAndroidのADKではアクセサリーモード接続です。これはAndroid周辺機器の開発目的なので本来はAndroidはホストモードになるところですが、消費電力を考慮してのことです。


Appendix 2 : iOSとAndroid基本ソフトのハイレゾ対応について

Macのころから音楽分野に通じていたAppleではオーディオインターフェースへの取り組みも早く、iOSでは2010年のiPadの発売当時から標準のUSB オーディオクラスドライバーが搭載されていました。はじめはCD品質(オーディオクラス1)でしたが、iOS4.2でハイレゾ対応となりアシンクロナス転送に対応しました。
http://vaiopocket.seesaa.net/article/164939985.html

iOSから真のハイレゾが出せるかどうかについてはすでに2011年に下記の検証をしています。このときは規格上のある問題もあってWavelengthのゴードンさんとハイレゾが出るかどうかについてCA上で論争したこともあるのですが(下記記事の中に言及してます)、結局はこの検証であのゴードンさんも認めてくれました。

Androidはアクセサリープロトコルと同様にこの点でもかなり遅れていて、現時点ではOSに標準のUSBオーディオクラスドライバーは搭載されていません。Androidでは次バージョンのAndroid LでUSB オーディオクラスドライバーが搭載される予定です。この時点でホストモードでのUSB DACが使えるようになります。
ただしAndroidはベンダーのカスタマイズの幅が広いのでベンダーがすでに独自で搭載していることがあります。たとえばサムソンはGalaxy S3あたりからホストモードでの使用ができました。また改変カーネルをユーザーがインストールすることもできます。これにはルート権限が必要です。
もうひとつの手段としてはeXtreamのアプリであるUSB Audio Player/Recorder proを使用する方法があります。

ちなみにAndroidのスマートフォンOSの制限ということで言うとホストモードを使用する最低限の制限はAndroid OS 4.0以上ということになります。これはUSBホストモードをはじめてサポートしたのがTablet版の3.xであり、3.xはスマートフォンがないので、スマートフォンとしては4.0が最低限となります。

つまりAndroid OSでのDACサポートは以下のような経緯となります。
4.0(ICS) OSでホストモード接続のサポート → ベンダー対応機種かeXtreamソフトを使ったホストモードでのDAC接続が可能
4.1(Jerry Bean) USB Audio(AOA2.0)のサポート → 標準的にアクセサリーモードでのDAC接続が可能
4.5(L) オーディオクラスドライバーのサポート(予定) → 標準的にホストモードでのDAC接続が可能

またAndroidでは標準の音声システム(ミキサーを含む)であるAudioFlingerとフレームワークであるメディアライブラリーはハイレゾに対応していません。そもそもデータ型が16bitタイプしかありません。そのためALSAなどLinuxレベルの音声システムをJNIなどのインターフェースを使用してAndroidの世界と結び付けてハイレゾ対応するのが一般的だと思います。これには非標準のライブラリを必要とするため、ハイレゾ対応アプリは注意が必要です。この辺の記事をご覧ください。

ちなみにAndroidの音楽分野への取り組みでは、4.1以降はこれらの取り組みに加えて低レイテンシー化が図られています。

Appendix 3. DACとの接続ケーブル

アクセサリーモードではDACがホストでありUSB A側であるため、USB A->スマートフォン端子の形状のUSBケーブルが必要です。スマートフォン端子は旧iOS機では30ピンであり、現行iOS機はライトニングです。AndroidではMicroUSBとなります。例外はiriver AK10でAK10側は独自端子です。
ホストモードではスマートフォンがホストになりますのでスマートフォン側は本来はUSB A端子でなければなりません。しかしスマートフォン側は通常デバイス側特有(iOS)かB端子(Android)ですので、これを変換する必要があります。それがiOSではカメラコネクションキットであり、AndroidではOTGケーブルです。DAC側はデバイスとなりますのでUSB B端子となります。



posted by ささき at 23:08 | TrackBack(0) | __→ スマートフォンとオーディオ | このブログの読者になる | 更新情報をチェックする