2006/07/02(日) [n年前の日記]
#6 [iappli] SEを鳴らすと画面が止まる
という報告が。F505iだけ。サウンドを無効にすると画面が止まらないらしいので、SE再生時に何かが起きてるらしい。勝手な想像だけど、複数のSEを鳴らそうとした際に問題が起きてるような。
*1
もしかすると、同時発音数(?)とか音色とかが関係してるのかもしれない。同じSEを鳴らそうとしたときは、それまで鳴らしていた音色と同じだから、発音数は今までと変わらない = 問題が出ないけど、違うSEを鳴らそうとすると音色が異なるから、発音数を消費 → 発音数が足りなくなった場合、発音数に空きがでるまで待たされる、とか? あくまで勝手な想像でしかないけど。
とりあえず、F505iだけは、SEを1種類しか鳴らさないように修正。画面が止まるよりはいいだろうと…。SEの再生終了イベントでフラグ管理して次のSEを鳴らす、という処理にしておいたほうがいいのだろうか。でも、それだとほとんどのSEが鳴らなくなる予感。どれもそこそこ長目の時間、再生されるデータになってるし。…このへん今後の課題。
それにしても、 _FM x 6 + PSG x 3 のハードで出来ていたことが、32音とか48音とか64音とか同時に出せるはずのハードでどうして出来ないのだらう。メモリ管理もそうだけど、貧乏なハードウェア資源の上で富豪的プログラミング(なのか?)をどこか夢見ちゃって実装してみたらトラブル発生。てな印象が。「ワークはこれだけ」「その代わりその領域は、アプリだけが使う」「メモリ管理もアプリ制作者の仕事のうち」のほうが、おそらく、トラブルは少なくて済むような気も。…それだと開発速度が落ちるのかな。次から次へと新機種が出てる世界だしなぁ。
もしかすると、同時発音数(?)とか音色とかが関係してるのかもしれない。同じSEを鳴らそうとしたときは、それまで鳴らしていた音色と同じだから、発音数は今までと変わらない = 問題が出ないけど、違うSEを鳴らそうとすると音色が異なるから、発音数を消費 → 発音数が足りなくなった場合、発音数に空きがでるまで待たされる、とか? あくまで勝手な想像でしかないけど。
とりあえず、F505iだけは、SEを1種類しか鳴らさないように修正。画面が止まるよりはいいだろうと…。SEの再生終了イベントでフラグ管理して次のSEを鳴らす、という処理にしておいたほうがいいのだろうか。でも、それだとほとんどのSEが鳴らなくなる予感。どれもそこそこ長目の時間、再生されるデータになってるし。…このへん今後の課題。
それにしても、 _FM x 6 + PSG x 3 のハードで出来ていたことが、32音とか48音とか64音とか同時に出せるはずのハードでどうして出来ないのだらう。メモリ管理もそうだけど、貧乏なハードウェア資源の上で富豪的プログラミング(なのか?)をどこか夢見ちゃって実装してみたらトラブル発生。てな印象が。「ワークはこれだけ」「その代わりその領域は、アプリだけが使う」「メモリ管理もアプリ制作者の仕事のうち」のほうが、おそらく、トラブルは少なくて済むような気も。…それだと開発速度が落ちるのかな。次から次へと新機種が出てる世界だしなぁ。
*1: 複数のSEを鳴らすと言っても、DoJa 3.0対応機種の場合、ポートとやらが2つまでで。BGMとSEで使うので、SEを実際に複数鳴らすことはできず。後から再生要求のあったほうが、前に鳴ってたそれを上書き、というか優先が高いものとして扱う、のであろうと思ってるのだけど。<N505i関係のPDFにはそんな風なことが書いてあったような。例えば、アイテム取得音が鳴ってるときに爆発音の再生要求があれば、後から要求された爆発音だけが鳴る、という感じになる、のであろうと予想してるのだけど。
[ ツッコむ ]
以上です。