Music TO GO!

2012年12月20日

Neutron Music Player - Androidの本格的な高音質再生アプリ

Neutron Music PlayerはAndroidの本格的な音楽プレーヤーアプリで、高音質に特化したものです。スマートフォンの音楽再生アプリはどちらかというとデザインとか機能に行きがちですが、こうしたアプローチはAndroid Rockbox以外ではいままでにはありませんでした。内容的にもPCやMacなどの音楽再生プレーヤーに近いような本格的な再生アプリです。というか、HQ Playerなみのかなりマニアックなソフトウエアです。
Walkman ZやiBasso DX100にも使用できます。Walkman Zが一番素晴らしい組み合わせです。
以下の画像はNEONの項のDX100のHardware表示以外はすべてWalkman Z(Android 2.3)でデバッガー(ddms)を利用してスクリーンキャプチャしたものです。DX100も同様にddmsでスクリーンキャプチャしています。

device-2012-12-18-233836.png     device-2012-12-15-221558.png

* Neutron Music Playerの特徴

1 64bit処理

Neutron Music Playerは32/64-bitの切り替え可能なオーディオレンダリングエンジンを採用しています。Aurdivanaなどでうたっているような64bit処理がスマートフォンでも可能となります。
64bit処理と32bit処理の切り替えは設定メニューから動作中に可能です。64bit処理の利点としてはEQやリサンプリングなど計算を伴う信号処理をしたときの計算精度が高い(音質が高い)ということですね。こうした64bit処理やディザ処理には1GHzを超えるスペックのCPUが推奨とされます。

2. NEON対応

Neutron Music PlayerはNEONに対応した別バージョンが用意されている点も特徴的です。普通にGoogle PlayからインストールするとNEON非対応版がインストールされるようです。NEON対応版のダウンロードはNeutronのホームページのDownloadリンクから行います(これはapkインストールになります)。
NEONは大量のデータ処理を効率よく行うものでAdvanced SIMDと呼ばれます。このSIMDというのは一つの命令(Single Instruction)で複数のデータ(Multi Data)を同時に処理する演算器のことです。これはマルチメディア処理に大きな力を発揮します。これ自体は珍しいわけではなくPentiumの昔からMME/SSEとしてプロセッサに入っています。

NEONが使えるかどうかは設定のAudio Hardware画面で確認できます。下記にWalkman ZとiBasso DX100を例示します。CPUの欄を見て、ARMアーキテクチャの隣に+NEONと表示されてあればそのプロセッサではNEON対応しています。VFPはNEONではなく前の規格です。

device-2012-12-15-221411.png     device-2012-12-15-223003.png
ハードウエア表示(左: Walkman Z、右:iBasso DX100)

iBasso DX100のARMプロセッサはNEONに対応してるのでNEONバージョンをインストールできます。上のDX100の画面はNEONバージョンを導入済です。
AudioHardwareのところのVECがNEONになってればNEONバージョンが動作しています。VECはベクタープロセッサーのことでしょう。ベクター演算とは行列演算のことで、SIMD演算器みたいに並列処理できるプロセッサのことです。対して一般的なCPUはスカラープロセッサと言います。
と、いう情報処理講座はともかく、NEONだと25%ほど処理性能を改善できるそうです。DX100のNEONバージョンだとiBasso音楽アプリに対してもなかなか引けを取りません。Android標準のAudioFlingerのAudioTrack APIでオーディオデータを書きだしているので44/16しか対応できないのが残念です。これはiBasso APIを使わないとだめですね。この辺はオープン化してほしいところです。なぜAndroidは標準のAPIを使うと16bitが限界なのかはこちらのRockboxのときに書いた記事をご覧ください。
http://vaiopocket.seesaa.net/article/251275779.html

Walkman Zで使われているTegra2は残念ながらNEONに対応していません(Tegra3はNEON対応)。代わりにVFPを使用します。これははじめのVでわかるようにやはりベクター演算機能です。(NEONはVFPの置き換えになります)
一方でこの開発者の弁によると、Tegra作ってるNVIDIAはGPU使ったデータ処理にたけているので、Tegra2でNEONが使われていなくても、他の同クラスARMチップよりは効率よくNeutronに向いているとのこと。ですのでWalkman Zが必ずしもNeutronに向いていないことはないようです。Nexus 7はTegra 3なのでNEON版が使えます(後述)。

NEONとかVFPってスマートフォンを普通に使ってるぶんにはユーザーが意識する必要はありませんが、たかが携帯って言っても現代スマートフォンの中にはこれだけ先進的な機構が入ってるということです。


3. ネイティブコード実行

Neutron Music Playerのもうひとつの特徴はAndroid SDKを使用していないということです。
これはRockboxでも一部そうですが、AndroidのJAVAフレームワークではなく、既存のマルチメディアライブラリをCかなんかで流用しているのだと思います。つまりそれだけ実行は早いということです。これはNeutronの音の良さの大きな理由の一つでしょう。ただし容量は多少かさみます。またNeutronはUI操作や表示がAndroid標準ではなく使いにくいところがありますが、それもSDKを使用していないからのようです。
ソフトウエアの構成としてはAndroid Rockboxアプリに近いですね。もちろん実験的なAndroid Rockboxよりは完成度はずっと高く普通に使えます。また他のOSに移植性も高いでしょう。実際にBlackberry版もあるようですが、もしかするとBlackberryがオリジナルなのかもしれません。

4. 豊富な機能

Neutron Music Playerは機能設定がとても豊富で、ギャップレスやリプレイゲインなどの機能もありますし、クロスフィード、ディザ処理など信号処理系もそろっています。信号処理系を使う時は64bit処理モードにすると良いでしょう。イコライザーもクロスフィードも細かく設定が可能です。イコライザー設定はアルバムごとに設定することが可能です。これは後のノーマライゼーション設定でも使います。

device-2012-12-15-221130.png   device-2012-12-15-221144.png   device-2012-12-15-221159.png
設定リストとイコライザー、クロスフィード画面

ちなみにクロスフィードとサラウンドは排他関係です。これはクロスフィードはヘッドフォン用でサラウンドはスピーカー用の設定だからということのようですが、Neutronはヘッドフォンだけではなくスピーカー用の機能もいろいろとあるのが特徴です。おそらくAndroid Rockboxみたいになにかの汎用マルチメディアライブラリを使用するということなのかもしれません。

Neutron Music Playerの機能のなかでも面白いのはノーマライゼーションキューという機能です。音が割れるようなオーバーロードする音源ファイルの適正化(ノーマライズ)をバッチ処理で行うことができます。ノーマライズするためにはいったんファイルのなかを解析して最大音量部分を検出しなければならないので、これはリアルタイムではなくバッチ処理で行います。Neutronでは音源ファイルをリサンプリングするのではなく、ファイルは修正しないでイコライザーなどで補正するパラメーターを作成し、さきに書いたイコライザーのアルバム別設定機能を使用して音を変化させるという手法です。

device-2012-12-16-225848.png   device-2012-12-16-225928.png   
左はBind EQ設定、右はBind EQを適用した後のノーマライズ設定

まずノーマライズしたいAlbumをどれか選んで長押し、Bind EQを選んでからNormaliseを選択すると曲別にノーマライゼーションをバッチで実行します。(数値が入ってる曲が解析済み)

device-2012-12-16-230202.png   device-2012-12-16-230451.png
左は処理中、右はノーマライズ適用したアルバム

画面はアルバム"12&1 Song"にノーマライズを設定したところです。Unbind EQをすると設定を簡単に解除できます。64bit処理と併用するとクリアさはさほど遜色なく、割れるような曲をスムーズに再生できます。これはちょっと他にない長所ですね。

device-2012-12-15-221222.png   device-2012-12-15-221234.png   device-2012-12-15-221255.png
設定リストとリサンプリング設定、ノーマライゼーションキューの説明画面(作業中は進展が表示される)

device-2012-12-15-221308.png   device-2012-12-15-221330.png
設定リスト

またリサンプリングもユーザーが変換品質を設定可能です。ここでいうリサンプリングは44kHz以外のサンプリングレート(48とか96)の楽曲を再生するときに44kHzにリサンプルするための設定です。Androidですので出力は44/16固定になります。これはAudio Hatdware表示でも確認できます。前にも書きましたが、iBasso APIのような特殊な仕組みがない限りはAndroidでは44/16が限界です。
よくDAPで24bitファイルや96kHzが再生できたからハイレゾ音源がDAPで再生できたという人がいますが、実際にはiBasso DX100やiriver AK100のようなハイレゾDAP以外ではこうしたOSのボトルネックやDACの制限などで、仮に再生できたとしても実際は44/16に切られるか丸められています。NeutronのResampling設定はその丸めを明示的に行うことができるというものです。


* Neutron Music Playerの音と使用感

再生フォーマットはかなり豊富で有名どころはほとんどカバーしてます。(もちろんDRM付きはサポートしてません)
MP1, MP2, MP3, OGG (Vorbis), FLAC, WMA, WMA Lossless (16-bitのみ), AC3, AAC, M4A, M4B, M4R, MP4, 3GP, 3G2, MOV, ALAC, APE (Monkey's Audio), WV (WavPack), MPC (MusePack), WAV, AU, AIFF, MPG/MPEG (audioのみ), AVI (audioのみ)
以上はホームページから記載

device-2012-12-15-220947.png   device-2012-12-15-221052.png   device-2012-12-15-221107.png

アルバムアートをダウンロードする機能は付いていません。埋め込まれていれば表示できる。ただアルバムリスト画面ではPowerAmpなどが取ってきた画像を表示しているようですが、再生画面ではそうした画像は表示されません。

device-2012-12-16-230623.png
曲の長押しメニュー

アルバムや曲メニューの上で長押しするとその曲をキューに入れるか、プレイリストに入れるかの選択ができます。

音楽ライブラリのスキャン(データベースの再構築)は初回にスキャンするか聞いてきます。手動でやるときはArtistやAlbumの選択のある階層の下にSourceというメニューがあり、そこでRefreshを選択すると再スキャンします。Playlistメニューの長押しでもRefreshできるようです。また実際は自動でもスキャンしているようです。
タグのデータベースだけではなく、フォルダー階層たどれますので、タグ付けされてなくても大丈夫です。

device-2012-12-15-220817.png

Androidらしく、Widgetも用意されています。


実際に音を聴いてみるとWalkman ZではPowerAmpなどと比較すると明らかにわかるくらいの透明感と空間表現の向上があります。PowerAmpとMeridianやWinAmpを比べても微々たる音質差しかありませんが、そうした差とは大きく異なります。Rockboxよりもさらにクリアで上質ですね。
PowerAmpとWalkman Zの組み合わせだと音がドライで薄いところがあったので、イコライザーとかトーンでごまかしてたところがありますが、そうすると音がやや曇りがちです。Neutronではクリアでかつ自然で豊かな音が楽しめます。イコライザーは必要な時だけ本来の目的で使えば良いことですし、同時にイコライザーでの音質低下も最小にできるので積極的に使えます(ノーマライズも同様)。

Walkman Z持っている人はその実力を見直すことでしょう。K3003とかFitear togo 334などの高性能イヤフォンと組み合わせると性能の高さを堪能できます。Walkman Z単体でPCオーディオやっているような雰囲気が味わえるのが面白いところです。Neutronでいろいろと設定を変えて、いかにWalkmanのS-Masterのもともと持ってる性能が引き出されるかということですね。
ただMP3などのビットレートの低い音源を再生すると悪さもそのまま出てしまいますので、そうした低ビットレートの音源についてはWalkman付属のソフトで高域補完などDSP処理をして再生した方が良いと思います。

Walkman Fでも使えると思いますが、Android4.0の場合は設定メニューが2.3のようにハードキーでは出ないので、いったん設定アイコンのあるメニュー画面に戻って設定が必要です。
Android WalkmanはもともとAndroid端末してはそれほどスペックが高い方ではないので、もっとハイスペックのスマートフォンならNeutronの性能を引き出せるかもしれませんが、そうしたハイスペックのスマートフォンではWalkman Zのような高度なオーディオハードウエアを搭載していませんから悩ましいところです。

iBasso DX100でも使うことができて、なかなか良い音を聴かせてくれます。さきに書いたようにDX100ではNEON版をインストールしました。DX100の場合はNeutronがiBasso APIをサポートできればもしかすると最強となるかもしれませんが、なんとかしてほしいところです。DX100の兄弟機であるHDP-R10ではGoogle Playが無効化されるそうなのでインストールについてはコメントできません。
Nexus 7ではTegra 3を使用しているのでNEONバージョンを使えます。NEONバージョンのNeutronはなかなか音質も良く感じられます。

それとAndroidのマスターヴォリュームとの連携がうまくないのかそういう仕様なのか、Neutronの再生画面を出してるときにボリュームを上下させると、AndroidのマスターボリュームではなくNeutron内部のゲインが上下するようです。いったん再生画面を閉じてウィジット状態でボリュームを操作するとAndroidのマスターヴォリュームで操作できます。妙に音が小さいという時の原因はこの辺を確認ください。

Neutron Music Playerではスピーカーを使用するシステムも考慮しています。マルチチャンネルも考慮しているのですが、仕様からするとスマートフォン向けというだけではなく、やはり汎用のミュージックプレーヤーライブラリを流用しているように思えます。

Neutron Music PlayerはWalkman ZでDAPがAndroid化した利点を存分に生かせるアプリという感じです。
Neutron Music Playerの購入はGoogle Playから可能です。こちらはGoogle Playのリンクです。無料版もありますので試してみてください。

Neutronは音は良いし機能豊富ですが、UIが分かりにくく使いにくいのが難点です。UIが使いやすいのはSelect! Music Playerなどが最近の新しいのでは良いのではと思います。画面の広いタブレットでカジュアルに使うにはSelect! Music Playerをチェックしてみると良いかもしれません。
下はNexus 7でのSelect! Music Playerです。Select!では波形が表示されるのも面白いところです。
Screenshot_2012-12-19-22-35-18.png
Select! Music Playerのリンクはこちらです
posted by ささき at 00:16 | TrackBack(0) | __→ PCオーディオ・ソフト編 | このブログの読者になる | 更新情報をチェックする