昨年GoogleからNexus7がリリースされたときから、「買ってみよう」とは思っていたんですよ。ただ「使うかどうかも分からないのに19,800円か……」と躊躇したせいで、タイミングを逸し、その後迷っていたら、値下げの噂などがあり待ってみたり……としているうちに半年。ついに思い立って注文したら翌日にNexus10が発売されてしまいました。TwitterによるIT Mediaの松尾公也さんの情報によれば「Nexus10のレイテンシーが小さいらしい」とのことだったので、慌ててGoogleにNexus7のキャンセル申請をし、36,800円とちょっと高いNexus10を注文してみました。
これ、中国で生産していて、注文すると中国からFEDEXで直接配送されてくるんですね。届いたパッケージを開けて出てきたのは2,560 x 1,600のHDディスプレイを搭載したタブレット。iPadとほぼ同寸ですが、若干細長くなった感じでしょうか。「iPadって寒い部屋だとアルミボディーなのですごく冷たいけど、Nexus10はラバーコーティングなのでちょっといいかも……」などと思いながらセッティングを始めました。
先日手元に届いたGoogleのAndoroidタブレット、Nexus10
OSは最新のAndroid 4.2.1 Jelly Beanに自動でアップデートされました。
OSは自動アップデートでAndroid 4.2.1 Jelly Beanに
ここで、とにかく試してみたかったのは
・レイテンシー的に見てDTM用途に使えるのか
・USBオーディオインターフェイスが使えるのか
の2点です。
WaveSynthを試してみたけれど、レイテンシーの面でiOS版と比べてかなり劣る
まず1点目のテストとしては、以前AV Watchの記事「AndroidのDTMアプリが充実しない理由とは?」でも開発者取材をしたWaveSynthというアプリ。同じものがiPad用にも出ているので、比較がしやすいんですよね。届いたその日に試してみたところ、結果はNGでした。鍵盤を押してから音が出るまでに100~200msec程度でしょうか…。確かに以前、スマホのGalaxy Nexusで試したときより向上している気がしますが、演奏したくなるデバイスではないですね。その瞬間でガッカリです。
試しにインストールしてみたHeat SynthesizerのDEMO版
ところが、先日「Heat Synthesizerというのがあるよ、デモ版でいいので入れてみては?」と知人に教えてもらい、無料のデモ版(セーブできないだけとのこと)をインストールしてみました(製品版は371円です)。あまり期待はしていなかったのですが、試してみるとちょっとビックリです。
そう、これは3オシレーター、2VCF、4EG、3LFO……を搭載したシンセサイザで、アルペジエーターというか簡易的なシーケンサ機能を搭載した、結構しっかりとしたアプリになっています。まあ、確かにAndroid用にはすでにいろいろなシンセサイザが出ているようなことは知っていたので、機能面自体には、さほど驚きはありませんでした。
アルペジエータとして使える簡易的なピアノロールのエディタも装備
が、触った瞬間に「えっ??」と思ったのがレイテンシーです。そう、画面下にタッチパッドといった感じの鍵盤を表示させることができるのですが、これをタッチしてみると、「パンッ」とすぐに音が出るんです。厳密にいえば遅れはありそうですが、50msecを切っているのではないでしょうか……。iOSの音源と比較しても、極端な差はなさそうです。
パッドのような鍵盤を弾くと、非常にレイテンシーが小さく、これなら演奏できる!
鍵盤が鍵盤だから、これで演奏するというものではないかもしれませんが、この速度が出せるのならAndroidも期待できそうですよ。もしかしたら設計時において、WaveSynthで使っているのとは異なるAPIがあるとか、調整パラメータがあるのかもしれませんね。ぜひ開発者のみなさんには、いろいろとトライしていただきたいところ。
ちなみにこのHeat Synthsizer、Android 2.3以上で動作可能とのこと。試しに手持ちのGalaxy Nexusにインストールしてみましたが、エラーが出て起動することもできませんでした。そのためNexus10以外の端末でのレイテンシーがどうなのかは分かりませんが、何か情報があれば、ぜひ教えてください。
※Twitterやここの掲示板でいろいろな方から情報をいただきました。Galaxy Nexusでも動くようなので、ダメだったのは私の端末の問題のようです。レイテンシー状況も非常にいいようです。
またHeat SynthsizerにはWindowsのVST版もあるようで、これとWiFi接続すると、Android側をコントローラとして使うこともできるそうです。これについてはまだテストしていませんが、かなりいろいろなことができるアプリのようです。
次にもう1つの課題、「USBオーディオインターフェイスが使えるか」というのにもチャレンジしてみました。情報によればNexus10のUSBデバイスは、スレーブとしてもホストとしても機能するのだとか……。ただし、ホストとして使う場合には、ホスト用に配線された変換アダプタが必要とのことで、事前にバッファローの「USB microB 変換アダプタ」なるものを購入しておいたのです。
これを使うことで、確かにPCのキーボードやマウスをNexus10で使うことができました。そして、USBクラスコンプライアントのオーディオインターフェイスを接続してみると、通電はするようです。そして、音を出してみると……、ダメだ、Nexus10のスピーカーから出てしまいます。
USBの変換アダプタを使ってRolandのDUO-CAPTURE EXに接続してみたが……
もしかして、供給電力が小さいためなのかな……と思い、RolandのDUO-CAPTURE EXに電池を入れた状態で接続してみましたが……、ん~、残念ながら反応してくれません。
ネットで検索してみるとNexus7の事例ですが、やっぱりダメみたいですね。ただ、標準のOSでないAndroidをインストールすればUSBオーディオインターフェイスを使うワザはあるとのこと。とはいえ、そうまでして使うこともないので、ここでは一旦あきらめましょう。
Nexus10のオーディオ入出力の音質評価はまだしていませんが、普通には使えるけれど、本気でというと、難しいものはありそうです。この辺をどう捉えるかではありますが、レイテンシーの面では今後期待はできそうだし、いろいろなアプリも出てきているので、AndroidのDTMの世界、もうちょっと追いかけてみようと思っています。
【Google Playストア】
Heat Synthesizer DEMO版
コメント
先日私のGalaxy Tab 10.1でもHeat Synthesizerを試してみたのですが、レイテンシがかなり酷かったので、ハードウェア側の仕様や実装方法による原因も大きいのかもしれません。
Acidが出た時に、ミュージシャンがMac→winへ移るというのがあったそうですね。
友達がデートコースペンタゴンの知人だったので、そう聞きました。
タブレットでも何か画期的なものがandroidで出れば起きるかもしれないですね☆
個人的は、いろいろは買えないので、ディベロッパーはiOSに留まって欲しいですが…
Nexus7ユーザーです。
こちらでもHeat Synthsizerは低レイテンシーですよ。
ついでにGalaxy Nexusでも試してみましたが、手元では起動できました。そしてやはり速いですね。
Androidアプリが普通Javaで書かれるのはご存知だと思いますが、Native Development Kitというものを使うとCやC++で書くこともできるんですよね。これに含まれるOpenSL ESというAPIを使うと、レイテンシーを低く抑えられるようです。
国産アプリでも採用しているものがありますね。
https://play.google.com/store/apps/details?id=org.oxxxide.fmsynth
こちらも速いです。
またリーク情報によると、この記事内の写真にも出ているDAWアプリ「Caustic」も近々このAPIに乗り換えるそうですよ。楽しみです。
Androidはたしか4.1以降でレイテンシーを小さく抑えてるとかだった気がします。
なので4.0までの機種だとさらに遅いと思われます。
今後Androidでも音楽関係が充実してくると面白いですね。
国府宮さん
なるほど、ハードウェアとかOSの問題なんでしょうね。
katsunoさん
確かに、キラーアプリがあると世の中動きますから。個人的にはiOSとAndroidがうまく戦っていっしょに進展してくれるといいな、と。
やっちんさん
貴重な情報をいっぱいありがとうございます。私も少し勉強してみます。Causticもなかなかすごいですよね。また、面白い情報があったら、ぜひまた教えてください!
shunetさん
なるほど4.0と4.1の間に壁があるんですね。この辺もいろいろとテストすると面白そうです。
価格的にも4万円台、サイズも10inch、バッテリー動作時間も似たような
ATOM搭載のWindows8タブレットが買えるこのご時世
AndoroidのタブレットでDTMはもうドっちゃでもいいかなという気がしないでもないけども・・・。
Androidが日本に入ってきた頃に足繁く日本Androidの会のワークショップに通ってあれこれと調べてましたが、東工大の教授とのやり取りでは、当時(Android2.1)からリアルタイム性を要求されるアプリは、Javaで表面的なインターフェースのみを記述して、核になる部分はC(GCCのARMクロスコンパイラとかが使えます)でダイナミックライブラリの形式で作成して、Javaから呼び出して処理をそっちに渡してしまう使い方をするのがよいという結論でした。
確かNative Development Kitが出る前からやるひとはやってたわけです。にわかプログラマーには敷居は非常に高かったですが、ライブラリなんかもLinuxのものが使えましたし、結構なんとかなりました。
特にゲームとかは殆どC/C++で書かれてたっぽいです。
ちなみに、こないだのCESではATOM搭載、正真正銘Intel insideのAndroidスマホも出品されてたみたいですね。
バッテリー稼働時間も遜色なかったとか
ってことはWindows8スマホなんかも作れるってことかな?
ちなみに、こないだのCESではATOM搭載、正真正銘Intel insideのAndroidスマホも出品されてたみたいですね。
バッテリー稼働時間も遜色なかったとか
ってことはWindows8スマホなんかも作れるってことかな?
Jimi♪さん
コメントありがとうございます。
そうですね、まあ、自明のことではありますが、Javaでは無理があるので、Cで書くなり、アセンブラ(さすがにそれはしないか…)で書けばいいわけですよね。ただ、Nexus10とか機種を絞ればいいけれど、Android全般とすると、かなり厳しくなってきますよね…。
おっしゃるとおり、Windowsでいいし、Windowsなら現在のプラットフォームが利用できるわけですが、あとはそれがどう普及してくるかですよね。まあ、すでに安いのであれば、それでいいのかもしれませんね。
まぁぶっちゃけて言うと、通話してる時にレーテンシー感じないと思うんですが、
要はその程度までレーテンシーは下げられるだけの方法はあるということです。
機種依存だって99%がARM搭載機ですから、バイナリでの互換はほとんど来にする必要はないですし。
要はやらなかっただけということだと思います。
ただ、現在安心して共通して使えるデバイスがヘッドホン(スピーカー)、マイクというのが現状ですね。USBに関してはコントローラーチップがどうなってるかワカラナイ厳しい壁が立ちふさがってます。こればっかりはOSでチップの差異を吸収して対応してもらえないと厳しいでしょうね。
WindowsタブレットならSONER乗っければパーフェクトLTM(ラップトップミュージック)タブレットですねー。
http://matome.naver.jp/odai/2134698866572874601