So i have following outputs.
I created for both scenarios output that has been generated before the playback started and one immediatly after the playback finished.
This one is if i don't set the update period manually to 50ms, so it is the default 10ms.
The sound is stuttering here:
Before playback:
dsver: 0,
eax: False,
flags: DSCAPS_NONE,
free3d: 0,
freesam: 0,
freq: 44100,
hwfree: 0,
hwsize: 0,
initflags: BASS_DEVICE_STEREO,
latency: 35,
maxrate: 0,
minbuf: 10,
minrate: 0,
speakers: 2,
IsCertified: False,
Supports16BitSamples: False,
Supports8BitSamples: False,
SupportsContinuousRate: False,
SupportsDirectSound: True,
SupportsStereoSamples: False,
SupportsStereoSamples: False
1 sink(s) available.
* index: 1
name: <alsa_output.RK809.stereo-fallback>
driver: <module-alsa-card.c>
flags: HARDWARE HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
state: RUNNING
suspend cause: (none)
priority: 9000
volume: front-left: 65536 / 100% / 0.00 dB, front-right: 65536 / 100% / 0.00 dB
balance 0.00
base volume: 65536 / 100% / 0.00 dB
volume steps: 65537
muted: no
current latency: 35.92 ms
max request: 6 KiB
max rewind: 6 KiB
monitor source: 1
sample spec: s16le 2ch 44100Hz
channel map: front-left,front-right
Stereo
used by: 2
linked by: 2
configured latency: 36.00 ms; range is 36.00 .. 2972.15 ms
card: 0 <alsa_card.RK809>
module: 8
properties:
alsa.resolution_bits = "16"
device.api = "alsa"
device.class = "sound"
alsa.class = "generic"
alsa.subclass = "generic-mix"
alsa.name = "fe410000.i2s-rk817-hifi rk817-hifi-0"
alsa.id = "fe410000.i2s-rk817-hifi rk817-hifi-0"
alsa.subdevice = "0"
alsa.subdevice_name = "subdevice #0"
alsa.device = "0"
alsa.card = "1"
alsa.card_name = "Analog RK809"
alsa.long_card_name = "Analog RK809"
alsa.driver_name = "snd_soc_simple_card"
device.bus_path = "platform-rk809-sound"
sysfs.path = "/devices/platform/rk809-sound/sound/card1"
device.form_factor = "internal"
device.string = "hw:RK809"
device.buffering.buffer_size = "524288"
device.buffering.fragment_size = "262144"
device.access_mode = "mmap+timer"
device.profile.name = "stereo-fallback"
device.profile.description = "Stereo"
device.description = "Built-in Audio Stereo"
device.icon_name = "audio-card"
ports:
analog-output: Analog Output (priority 9900, latency offset 0 usec, available: unknown)
properties:
active port: <analog-output>
After playback:
dsver: 0,
eax: False,
flags: DSCAPS_NONE,
free3d: 0,
freesam: 0,
freq: 44100,
hwfree: 0,
hwsize: 0,
initflags: BASS_DEVICE_STEREO,
latency: 35,
maxrate: 0,
minbuf: 10,
minrate: 0,
speakers: 2,
IsCertified: False,
Supports16BitSamples: False,
Supports8BitSamples: False,
SupportsContinuousRate: False,
SupportsDirectSound: True,
SupportsStereoSamples: False,
SupportsStereoSamples: False
1 sink(s) available.
* index: 1
name: <alsa_output.RK809.stereo-fallback>
driver: <module-alsa-card.c>
flags: HARDWARE HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
state: RUNNING
suspend cause: (none)
priority: 9000
volume: front-left: 65536 / 100% / 0.00 dB, front-right: 65536 / 100% / 0.00 dB
balance 0.00
base volume: 65536 / 100% / 0.00 dB
volume steps: 65537
muted: no
current latency: 35.20 ms
max request: 6 KiB
max rewind: 6 KiB
monitor source: 1
sample spec: s16le 2ch 44100Hz
channel map: front-left,front-right
Stereo
used by: 2
linked by: 2
configured latency: 36.00 ms; range is 36.00 .. 2972.15 ms
card: 0 <alsa_card.RK809>
module: 8
properties:
alsa.resolution_bits = "16"
device.api = "alsa"
device.class = "sound"
alsa.class = "generic"
alsa.subclass = "generic-mix"
alsa.name = "fe410000.i2s-rk817-hifi rk817-hifi-0"
alsa.id = "fe410000.i2s-rk817-hifi rk817-hifi-0"
alsa.subdevice = "0"
alsa.subdevice_name = "subdevice #0"
alsa.device = "0"
alsa.card = "1"
alsa.card_name = "Analog RK809"
alsa.long_card_name = "Analog RK809"
alsa.driver_name = "snd_soc_simple_card"
device.bus_path = "platform-rk809-sound"
sysfs.path = "/devices/platform/rk809-sound/sound/card1"
device.form_factor = "internal"
device.string = "hw:RK809"
device.buffering.buffer_size = "524288"
device.buffering.fragment_size = "262144"
device.access_mode = "mmap+timer"
device.profile.name = "stereo-fallback"
device.profile.description = "Stereo"
device.description = "Built-in Audio Stereo"
device.icon_name = "audio-card"
ports:
analog-output: Analog Output (priority 9900, latency offset 0 usec, available: unknown)
properties:
active port: <analog-output>
And this one is after i set the update period to 50ms.
The playback is totally fine here:
Before playback:
dsver: 0,
eax: False,
flags: DSCAPS_NONE,
free3d: 0,
freesam: 0,
freq: 44100,
hwfree: 0,
hwsize: 0,
initflags: BASS_DEVICE_STEREO,
latency: 125,
maxrate: 0,
minbuf: 50,
minrate: 0,
speakers: 2,
IsCertified: False,
Supports16BitSamples: False,
Supports8BitSamples: False,
SupportsContinuousRate: False,
SupportsDirectSound: True,
SupportsStereoSamples: False,
SupportsStereoSamples: False
1 sink(s) available.
* index: 1
name: <alsa_output.RK809.stereo-fallback>
driver: <module-alsa-card.c>
flags: HARDWARE HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
state: RUNNING
suspend cause: (none)
priority: 9000
volume: front-left: 65536 / 100% / 0.00 dB, front-right: 65536 / 100% / 0.00 dB
balance 0.00
base volume: 65536 / 100% / 0.00 dB
volume steps: 65537
muted: no
current latency: 48.02 ms
max request: 8 KiB
max rewind: 8 KiB
monitor source: 1
sample spec: s16le 2ch 44100Hz
channel map: front-left,front-right
Stereo
used by: 2
linked by: 2
configured latency: 50.00 ms; range is 36.00 .. 2972.15 ms
card: 0 <alsa_card.RK809>
module: 8
properties:
alsa.resolution_bits = "16"
device.api = "alsa"
device.class = "sound"
alsa.class = "generic"
alsa.subclass = "generic-mix"
alsa.name = "fe410000.i2s-rk817-hifi rk817-hifi-0"
alsa.id = "fe410000.i2s-rk817-hifi rk817-hifi-0"
alsa.subdevice = "0"
alsa.subdevice_name = "subdevice #0"
alsa.device = "0"
alsa.card = "1"
alsa.card_name = "Analog RK809"
alsa.long_card_name = "Analog RK809"
alsa.driver_name = "snd_soc_simple_card"
device.bus_path = "platform-rk809-sound"
sysfs.path = "/devices/platform/rk809-sound/sound/card1"
device.form_factor = "internal"
device.string = "hw:RK809"
device.buffering.buffer_size = "524288"
device.buffering.fragment_size = "262144"
device.access_mode = "mmap+timer"
device.profile.name = "stereo-fallback"
device.profile.description = "Stereo"
device.description = "Built-in Audio Stereo"
device.icon_name = "audio-card"
ports:
analog-output: Analog Output (priority 9900, latency offset 0 usec, available: unknown)
properties:
active port: <analog-output>
After playback:
dsver: 0,
eax: False,
flags: DSCAPS_NONE,
free3d: 0,
freesam: 0,
freq: 44100,
hwfree: 0,
hwsize: 0,
initflags: BASS_DEVICE_STEREO,
latency: 125,
maxrate: 0,
minbuf: 50,
minrate: 0,
speakers: 2,
IsCertified: False,
Supports16BitSamples: False,
Supports8BitSamples: False,
SupportsContinuousRate: False,
SupportsDirectSound: True,
SupportsStereoSamples: False,
SupportsStereoSamples: False
1 sink(s) available.
* index: 1
name: <alsa_output.RK809.stereo-fallback>
driver: <module-alsa-card.c>
flags: HARDWARE HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
state: RUNNING
suspend cause: (none)
priority: 9000
volume: front-left: 65536 / 100% / 0.00 dB, front-right: 65536 / 100% / 0.00 dB
balance 0.00
base volume: 65536 / 100% / 0.00 dB
volume steps: 65537
muted: no
current latency: 49.59 ms
max request: 8 KiB
max rewind: 8 KiB
monitor source: 1
sample spec: s16le 2ch 44100Hz
channel map: front-left,front-right
Stereo
used by: 2
linked by: 2
configured latency: 50.00 ms; range is 36.00 .. 2972.15 ms
card: 0 <alsa_card.RK809>
module: 8
properties:
alsa.resolution_bits = "16"
device.api = "alsa"
device.class = "sound"
alsa.class = "generic"
alsa.subclass = "generic-mix"
alsa.name = "fe410000.i2s-rk817-hifi rk817-hifi-0"
alsa.id = "fe410000.i2s-rk817-hifi rk817-hifi-0"
alsa.subdevice = "0"
alsa.subdevice_name = "subdevice #0"
alsa.device = "0"
alsa.card = "1"
alsa.card_name = "Analog RK809"
alsa.long_card_name = "Analog RK809"
alsa.driver_name = "snd_soc_simple_card"
device.bus_path = "platform-rk809-sound"
sysfs.path = "/devices/platform/rk809-sound/sound/card1"
device.form_factor = "internal"
device.string = "hw:RK809"
device.buffering.buffer_size = "524288"
device.buffering.fragment_size = "262144"
device.access_mode = "mmap+timer"
device.profile.name = "stereo-fallback"
device.profile.description = "Stereo"
device.description = "Built-in Audio Stereo"
device.icon_name = "audio-card"
ports:
analog-output: Analog Output (priority 9900, latency offset 0 usec, available: unknown)
properties:
active port: <analog-output>
The diff between both:
Left is from the broken playback, right from the working one.
Before playback:
latency: 35 <-> latency: 125
minbuf: 10 <-> minbuf: 50
current latency: 35.92 ms <-> current latency: 48.02 ms
max request: 6 KiB <-> max request: 8 KiB
max rewind: 6 KiB <-> max rewind: 8 KiB
configured latency: 36.00 ms; range is 36.00 .. 2972.15 ms <-> configured latency: 50.00 ms; range is 36.00 .. 2972.15 ms
After playback:
latency: 35 <-> latency: 125
minbuf: 10 <-> minbuf: 50
current latency: 35.20 ms <-> current latency: 49.59 ms
max request: 6 KiB <-> max request: 8 KiB
max rewind: 6 KiB <-> max rewind: 8 KiB
configured latency: 36.00 ms; range is 36.00 .. 2972.15 ms <-> configured latency: 50.00 ms; range is 36.00 .. 2972.15 ms
Do these information help?