最終更新:2026-04-14 (火) 10:35:19 (33d)  

ALSA/パラメータ
Top / ALSA / パラメータ

https://www.alsa-project.org/wiki/FramesPeriods

用語

  • ALSA/フレーム?
  • ALSA/ピリオド?

  • aplay -v
    $ aplay /usr/share/sounds/alsa/Front_Center.wav -v
    Playing WAVE '/usr/share/sounds/alsa/Front_Center.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Mono
    ALSA <-> PulseAudio PCM I/O Plugin
    Its setup is:
      stream       : PLAYBACK
      access       : RW_INTERLEAVED
      format       : S16_LE
      subformat    : STD
      channels     : 1
      rate         : 48000
      exact rate   : 48000 (48000/1)
      msbits       : 16
      buffer_size  : 24000
      period_size  : 6000
      period_time  : 125000
      tstamp_mode  : NONE
      tstamp_type  : GETTIMEOFDAY
      period_step  : 1
      avail_min    : 6000
      period_event : 0
      start_threshold  : 24000
      stop_threshold   : 24000
      silence_threshold: 0
      silence_size : 0
      boundary     : 6755399441055744000

snd_pcm_t

ALSA/PCM/buffer_size?

  • PCMバッファ全体のサイズ(フレーム数単位)
  • 例: 48kHzなら 24000フレーム ÷ 48000 = 500ms分

ALSA/PCM/period_size

  • 1周期(period)あたりのフレーム数。
  • アプリケーションが1回のread/writeで処理する単位。
  • 例: 48kHzなら 6000 ÷ 48000 = 125msごとに割り込み/通知が発生。

ALSA/PCM/period_time?

  • period_sizeを時間に換算した値(マイクロ秒単位)。
  • 125000μs = 125ms

ALSA/PCM/period_step?

  • 何period分おきにwakeupするかの係数

ALSA/PCM/avail_min?

  • snd_pcm_wait()やpoll() が返ってくる条件となる最小利用可能フレーム数。
  • 通常はperiod_sizeと同じ値に設定される。

ALSA/PCM/start_threshold?

  • バッファに溜まったフレーム数がこの値に達すると、PCMが自動的に再生を開始する閾値。

ALSA/PCM/stop_threshold?

  • バッファの空き領域がこの値を超えたとき(=データが枯渇したとき)にPCMを停止する閾値。

ALSA/PCM/silence_threshold?

  • バッファの空き領域がこの値を下回ったとき、ALSAが自動的に無音データを書き込む機能の閾値。

ALSA/PCM/silence_size?

aplay