[Armadillo:09193] Re: Armadillo-800EVAのAndroid上でサウンド再生速度が約8〜9%速い

mitsui email@hidden
2013年 9月 12日 (木) 10:21:28 JST


中井様

お世話になっております。三井です。

2番目に教えて頂いた方法(Android側の設定変更)で試すことができました。

"Android 2.3.7r1.0" に "Android 2.3.7 r1.0パッチ(No SGX)"
をあてたソースコードで、教えて頂いた部分を変更してAndroidビルドを行い、
rootfsで以下のファイルを差し替えることで動作が改善されることを確認できました。

/system/lib/libaudio.so
/system/lib/hw/alsa.default.so

なお、Androidビルドは以下の過去ログを参考にしました。
http://lists.atmark-techno.com/pipermail/armadillo/2012-May/008036.html

今回は上記2ファイルを差し替えることで確認しましたが、
本来であれば上記以外に差し替えが必要なファイルがありましたら、教えて
頂けると有難いです。

よろしくお願いいたします。


On Thu, 05 Sep 2013 14:38:16 +0900, mitsui wrote:
> 中井様
> 
> お世話になっております。三井です。
> 
> 回答ありがとうございます。
> 
> 最初に教えて頂いた方法(カーネルに添付のパッチをあてる)で試してみたところ
> 動作が改善されることを確認できました。
> (OpenSL/ESで作成したプログラムも正常動作できました。)
> 
> 2番目に教えて頂いた方法(Android側の設定変更)は、現在、Androidビルド環境を
> 準備中でして、期待通りにrootfsが作成・動作できたら試してみたいと思います。
> また、ご報告いたします。
> #できれば、2番目の方法を採用したいかなと思っています。
> #rootfs作成の過程で疑問が生じた際は、再度質問させてもらえると助かります。
> 
> 解決策が見つかり大変助かりました。
> ありがとうございました。
> 
> よろしくお願いいたします。
> 
> 
> On Wed, 04 Sep 2013 16:01:26 +0900, nakai wrote:
>> 中井です。
>>
>> もう一点、Android側の設定変更でも解決できそうです。
>>
>> device/atmark-techno/armadillo-800eva/BoardConfig.mk の以下の部分
>> ---
>> # MultiMedia defines
>> BOARD_USES_ALSA_AUDIO := true
>> #ALSA_DEFAULT_SAMPLE_RATE := 48000
>> ---
>> 上記の「ALSA_DEFAULT_SAMPLE_RATE := 48000」のコメントアウトを外して、
>> rootfsをビルドしなおすとAndroid側でデフォルトのサンプリングレートが変更され、
>> うまくいきそうです。
>> # HDMI-Audio側でも正常に音をならすには、この修正の方がベターだと思います。
>>
>> 参考まで。
>>
>>
>>
>> (2013年09月04日 15:41), nakai wrote:
>>> 中井です。
>>>
>>> 現象を確認しました。
>>> アプリが44.1kで再生しようとしているが、ハードウェアは48kで再生しようとして
>>> このような現象が発生していると推測しました。
>>>
>>> そこで、今まではWM8978の内部で
>>> 単純にdividerを通してBCLKを生成していたところを、
>>> PLLを利用してBCLKを生成するように変更しました。
>>> パッチを添付: linux-2.6.35-a800eva-at3_fix-wm8978-audio.patch
>>>
>>> このパッチをあてlinuxイメージを更新して、
>>> 動作が改善されるか試してもらえますでしょうか?
>>>
>>> Armadillo開発者サイト - Armadillo-800EVA製品マニュアル - 第12章 カーネルのビルド
>>> http://manual.atmark-techno.com/armadillo-800-eva/armadillo-800-eva_product_manual_ja-1.3.1/ch12.html
>>>
>>>
>>>
>>> (2013年09月02日 17:00), mitsui wrote:
>>>> はじめまして。
>>>> Armadillo-800EVAのAndroid上でサウンド系のプログラミングを試している三井と申します。
>>>>
>>>> Armadillo-800EVAのAndroid上でサウンド再生を行うと再生速度が約8〜9%速い現象が発生し
>>>> 困っています。
>>>>
>>>> 以下、私が行った手順です。
>>>> (1)再生時間180秒のwavファイルを用意する
>>>>    (サンプリングレート44.1KHz、48KHzどちらでも現象発生)
>>>> (2)ArmadilloをLinux(Debian)で起動し、(1)のファイルを内蔵ストレージのパーティション1
>>>>    (/dev/mmcblk0p1)にコピーする
>>>> (3)ArmadilloをAndroidで起動し、プリインストールされている「音楽」アプリを起動する
>>>> (4)"曲"を選択すると、(2)でコピーしたファイルが見えるので、その曲をタップして再生開始
>>>>    させる
>>>>
>>>> タイム表示では180秒で再生完了しますが、実際の時間を測定すると約166〜167秒となっています。
>>>>
>>>> なお、wavファイルは1000Hzサイン波を使用したのですが、スペアナで周波数を測定すると
>>>> 約1080〜1090Hzあたりにピークが見えており、再生速度が8〜9%速いことで辻褄は合っています。
>>>>
>>>> Androidは、android-2.3.7_a800eva_20120222.tar.gz、linux-a800eva-1.02.binで一度リカバリ
>>>> したものを使用しています。
>>>>
>>>> AndroidNDKでのOpenSL/ESを使用したPCM再生でも同様の現象が見られ、Androidアプリ("音楽")
>>>> の原因ではなさそうと考えています。
>>>>
>>>> 同じような現象が発生する方、または、原因、解決策をご存知の方はいらっしゃいませんでしょうか。
>>>> ご教示頂ければ幸いです。
>>>>
>>>> どうぞ、よろしくお願いいたします。
>>>>
>>>> _______________________________________________
>>>> armadillo mailing list
>>>> email@hidden
>>>> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> armadillo mailing list
>>>> email@hidden
>>>> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
>>
>> _______________________________________________
>> armadillo mailing list
>> email@hidden
>> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
> 
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo




armadillo メーリングリストの案内