SDL調査メモ

 ちょっと、再度*1SDLを少し覗いてみてわかったこと。


SDL_AudioSpecの「sample」はもろにバッファのサンプル数。
 サンプリングレートの方はfreqで指定するので注意。

・バッファ数は「2」で固定。(NUM_BUFFERSだっけ?)

SDL_Audioの方はバッファリング等の基本的な出力周り担当。
 SDL_mixerの方は出力するデータそのものの扱いを担当。

( 要するに、
SDL_Audioは「音を鳴らすだけ」、
SDL_Mixerは「データを流すだけ」 )
 なので、


・「SDL_mixerはそんなに入力からの遅延とか気にしていない?」

・「「sample」でバッファ長が決まる」
ということになる?(ちょっと前者はアレだけど(汗))

…となると、SDL_mixerとか使ってるとS.E.の遅延とか意外と気になるんじゃ?



 と、ふと思い返してみると、

ツミキで少し撃破音・ショット音に違和感を感じていたような気がしていたことを思い出した。

…アレが遅延…なのか?

というわけで、ツミキの音のフォーマットはというと、


・44100Hz / 16bit / mono
・4096samples
って、モノラルだったのか(汗)

…と、ソレは置いておいて4096ということは、


sample_len = (1 / 44100) (≒ 0.000022675(sec))
sample_len * 4096 ≒ 0.0928(sec) = 92.8(ms)
なので、バッファx1あたり約93ms位の長さになるから、

それに準じた位の時間は遅延している

…はずなんだけど、意外と気にならないものなのかな…要検証。

というか、後でSDL_mixerで試してみます。





 --- 追記(09/01/02 21:23)

 いや、ちょっと待て。

「バッファ長 = 遅延時間」

は大間違いじゃないか(汗)

正確には、

「バッファ長 = 最大遅延時間」

だから、もう少し反応が速いことも普通にあり得る。




*1:SDL_mixerのラッパlib作るときに読んだことがある