ようやくRaspberry pi + Raspbian + USB-DACでAmazon Prime Musicを再生できるようになりました。
https://gadgetsmartphone.net/raspberry-pi-%E3%81%A7-amazon-prime-music-%E3%81%8C%E4%BD%BF%E3%81%84%E3%81%9F%E3%81%84-usb-dac%E3%81%A7%E9%9F%B3%E3%81%8C%E5%87%BA%E3%81%AA%E3%81%84%E7%B7%A8/
が、音飛び(音切れ)が発生して音楽を聴いていて非常に気になります。
これは何としても解決せねば。
mpdに比べてCPU負荷の高いAmazon Prime Music
まずわかったことは、mpdに比べてChromium + Flashを使っているAmazon Prime Musicは非常にCPU使用率が高いという点です。
mpdはハイレゾの曲を再生していてもmpd自体のCPU使用率が10%に届くことはないくらいなのですが、Amazon Prime Music再生中のChromiumは平気で80%を超えてきます。
リッチなGUIを描画するための負荷や、Flashを介してストリーミングで音楽を再生するオーバーヘッドがあるのでしょうがないといえばしょうがないのですが、たぶんこれが原因だと推定しました。
デフォルトでは最高性能の半分しかでないRaspberry pi 3 + Raspbian
そこでRaspberry pi 3 + Raspbianの環境で性能を上げる方法を調べたところ意外なことが分かりました。
なんと、デフォルトではCPUのクロック周波数が600MHzに固定されており、最高性能の1.2GHzに比べて半分になっているそうです。
熱や消費電力の問題があるのでこうなっているのかもしれませんが、このせいで性能が抑えられているようです。
cpufrequtilsで性能向上
CPUの動作周波数を向上するため、cpufrequtilsをインストールします。
sudcpufreq-set -g performance
とするとCPUが常に1.2GHzで動作してくれます。
ちなみに、デフォルトでは
sudo cpufreq-set -g powersave
としたのと同じ状態になっているようです。
まだ音飛びが発生、GUI描画が原因
cpufreq-set -g peformanceとすることでCPUの性能が上がり、かなり音飛びの頻度が減りました。
しかしながら、まだ時々音飛びします。
またもやいろいろ試したところ、どうやらAmazon Prime Musicの画面描画が大きな負荷になっていることが分かりました。
現在再生中の曲の位置やおすすめの曲などを表示しているので負荷がかかっているのでしょう。
そこで、音楽再生を開始したらChromiumの画面を最小化したところ、かなりCPU負荷が下がりました。この状態であればほぼ音飛びは発生しなくなりました。
快適な再生環境が構築できたが熱や消費電力に不満
紆余曲折ありましたが、これでVolumio相当の音楽再生環境 + Amazon Prime Musicの再生環境が1つのRaspberry pi + Raspbian + USB-DACで実現できました。
しかしながら、CPUを常に1.2GHzで動作させるのは熱と消費電力の点から避けたいところです。
次回はこの点を改善する方法を探りたいと思います。
(追記): I2SのDACを使ったら音飛びが全くなくなりました。経緯は以下の記事から。
https://gadgetsmartphone.net/raspberry-pi-%e5%90%91%e3%81%91i2s%e6%8e%a5%e7%b6%9a%e3%81%aedac%e3%81%ae%e8%aa%bf%e6%9f%bb%e3%81%a8%e3%81%be%e3%81%a8%e3%82%81/
コメント