来週、Appleがプレスイベントを開催するそうですね(関連記事)。なにが出るかはお楽しみとして、問題は睡眠時間の確保。Appleのイベントでは毎度のことですが、開始時刻が午前2時というのは、規則正しい生活を旨とする私にはツラすぎる……。

さて、今回は「Bluetoothスピーカー」について。スピーカーはセッティングが重要だが、接続方法がBluetoothの場合、もっと根本的な部分を考慮する必要があるのだ。

iPhoneと音質が違う?

数日前、筆者の書斎に小型スピーカーが届いた。その名は「Soma BT」、XtremeMacの新製品だ。接続方式はBluetooth、A2DPプロファイルに対応した機器のスピーカーとして利用できる。筐体サイズは約W170×D58×H71mmと小ぶりながら、50mmのドライバー2基(2.5W+2.5W)とパッシブラジエーターを搭載した高音質がウリだ。しかも容量1,150mAhのバッテリーを内蔵、背面のUSBポートにDockケーブルを差し込めばiPhoneの外部バッテリーとしても利用できる。

XtremeMacのBluetoothスピーカー「Soma BT」

本体上部のボタンで音量調整や電源ON/OFF、ペアリング開始を行う。4つ点灯するLEDは、バッテリーインジケーターだ

背面には外部機器の充電用USBポートと、Soma BTを充電するためのMicro USBポート、ステレオミニジャックの入力端子が並んでいる

Apple製品用アクセサリを専門に手がけるブランドの製品だけあって、痒いところに手が届く仕様となっている。というのも、本製品には小型マイクも内蔵されているのだ。Mac miniなどマイク非搭載機のMacユーザにとっては、Mountain Lionで「音声入力」がサポートされたこともあり、マイクの需要が高まっている。スピーカーとしてもマイクとしても使える本製品には、iPhoneとの相性のよさもあり、関心を示す向きも多いことだろう。

マイクを使用する場合は、システム環境設定「サウンド」ペインでSoma BTを入力先に指定する

さて、とiPhone 4Sとペアリングを済ませ試聴を始めると、サイズにしては低音域が豊かでウッドベースの音も輪郭がくっきりした印象。中高音域のヌケもよく、アコースティックギターのアルペジオが艶やかだ。だが、しかし。Mac miniに切り替えてiTunesでリッピングした同じ曲を再生すると、明らかに音質が違う。まるでAM放送のように中高音域がくぐもってしまうのだ。同じソースで同じ再生条件なのに、ここまではっきりと音質に差が生じるとは……というわけで、原因の調査と対策に乗り出すことにした。

bitpool値を調整する

OS Xでは、Bluetooth/A2DP機器がサウンドの出力先に設定されているとき、再生音は「BluetoothAudioAgent」により処理される。このサービスがOS XのBluetoothスタックと連携し、機器とのネゴシエーションからデータの送出までを担うという図式だ。

A2DPに必須のコーデックであるSBCには、「bitpool」というデータ転送量を調整する機構があり、44.1kHz/2chで1bitpoolあたり6~7kbps程度を消費する。このbitpoolが低く設定されていれば、それだけデータ転送量が制限されるため、そのぶん音質も低下する。つまり、bitpool値を引き上げれば音質が向上する……という目論見だ。

OS Xでは、このbitpoolの値が「~ / Library / Preferences / com.apple.BluetoothAudioAgent.plist」に記録されている。Bluetooth/A2DP機器と通信を開始する段階でこのファイルを参照するため、Soma BTを接続解除(電源オフ)した状態で、以下のコマンドを実行した。

$ defaults write com.apple.BluetoothAudioAgent "Apple Bitpool Max (editable)" -int 80
$ defaults write com.apple.BluetoothAudioAgent "Apple Bitpool Min (editable)" -int 53
$ defaults write com.apple.BluetoothAudioAgent "Apple Initial Bitpool (editable)" -int 48

なお、Bluetooth 2.xでは512kbpsを超えることが許されないため、bitpool値の限界は理論上80程度だ。機器によって最大値は異なり、試行錯誤したところSoma BTは53(サンプリングレート44.1kHz = 約328kb/s)が最大値と確認できたため、常にベストの状態で再生できるよう最低値を53に設定している。OS Xの初期値では、最低値が2とかなり低めに設定されているので、これで音質は向上するものと予想した。

筆者の環境でのbitpoolの初期値。最小値を引き上げることで音質向上を狙う

原因はこんなところに……

結果、音質は確かに改善されたが、音のくぐもった印象は拭いきれない。同じ曲を再生しても、やはりiPhoneのほうが音がいい。原因はbitpool値ではないのか?

念のため、と思いoptionキーを押しながらメニューエクストラのBluetoothアイコンをクリック、Soma BTの情報を参照したところ……コーデックがSBCと表示されている。Soma BTはAACにも対応しているはずなのに、なぜ?

Bluetooth/A2DPでは、SBCを必須コーデックとして指定しているものの、AACやMP3もオプションで使用できる。圧縮効率はAACのほうが断然高いため(そのぶん機器には高い処理性能が求められる)、データ転送幅が同じ場合、SBCよりAACのほうが高音質になるのだ。

実は、Bluetooth/A2DPのサポートはMacよりiOSデバイスのほうが進んでいる。iOS 5では、A2DPでAACをコーデックとして利用できるため(参考)、Soma BTにはAACベースの音が送出されるのだ。一方のMacでは現状AACがサポートされず、圧縮効率で劣るSBCを使わざるをえないため、どれだけbitpool値を調整しても音質向上には限界がある。

ところで、2011年7月以降のMac miniおよびMacBook Airでは、AAC以上に高効率とされるコーデック「apt-X」をサポートしている。iOSデバイスでは未サポートだが、Macの音質を優先させたい場合にはapt-X対応のBluetooth/A2DP機器をチョイスするといいだろう。

残念、筆者の環境(Mac mini(Mid 2011)、Mountain Lion)ではAACストリーミングをサポートしていなかった

iPhone 4Sで出力先をSoma BTにしたところ。同じ曲をMacと聞き比べれば、AACサポートの効果がわかるはず