Android10以降をサポートしているつもりだったのですが、libflluidsynth.soをAndroid15でチューニングしているうちに、古い端末で音が割れるようになってしまいました。
今回対処しているのは以下の点です。こちらでは、Aquos Sense (Android11)できちんとなるようになったことを確認しています。
・レンダリングのスレッド数を3としていたものを1に変更しました。
Oboeの仕様はあまり知らないのですが、レンダリングスレッドでロックが発生すると音が途切れるのは、Windows/ASIOで経験済なのです。
・周波数を48khzに固定していたものをやめました。
最近の端末は、48khzでレンダリングしても問題がなく、むしろ48khzがネイティブであるので、スムーズになると思ったのですが、少し以前の端末では、44.1khzらしく、逆に遅い端末にさらなる負荷をかけていたということになりますので、訂正しました。
・ゲインを0.7としていましたが、音が賑やかな場合に割れていたようです。FluidSynthにゲインの自動調整が入ったことも関係して、0.2でいいかなとなりました。
ゲインを標準の0.2に戻しています。
・レンダリングを浮動小数点(端末が対応していれば)に変更しました。整数で計算するよりは、音割れしにくい上、万が一しても醜くならないのだと思っています。端末が対応していない場合、いまでも整数を用います、それで、ゲインを0.2に戻す変更も加えています。
少し以前の端末は、オフィスにもあるのですが、なかなか動かせる順番がめぐってこないですね。もう1台なにかあるといいのかなー。ってところで、、、(以下略
まぁ、古い機種でも動くのは、このアプリも売りでもあるので、テストが、倍々になるけど、がんばりますぅ。

