0.5 ms is just what PA reports as the minimal latency. I don't need it to be this small, I just don't want it to grow up to 100 ms without the possibility to automatically drop it back to normal. I suppose it's not possible to make PA work with fragments as ALSA does. As I understand from the Lennart's article, the latency in ALSA is the size of period ±something. For PA it's the size of fragment * number of fragments as it reports this as the minimal latency in pacmd list-sinks. It's also very noticeable when you use realtime apps like LMMS or games.
However, it's not true for dmix. I play a file with everything at default on my home PC with SB Live 7.1 (at work the overall picture is more or less the same), here's what I have: > aplay -v /usr/share/sounds/alsa/Front_Center.wav Playing WAVE '/usr/share/sounds/alsa/Front_Center.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Mono Plug PCM: Route conversion PCM (sformat=S32_LE) Transformation table: 0 <- 0 1 <- 0 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 : 8192 period_size : 1024 period_time : 21333 tstamp_mode : NONE period_step : 1 avail_min : 1024 period_event : 0 start_threshold : 8192 stop_threshold : 8192 silence_threshold: 0 silence_size : 0 boundary : 4611686018427387904 Slave: Direct Stream Mixing PCM Its setup is: stream : PLAYBACK access : MMAP_INTERLEAVED format : S32_LE subformat : STD channels : 2 rate : 48000 exact rate : 48000 (48000/1) msbits : 32 buffer_size : 8192 period_size : 1024 period_time : 21333 tstamp_mode : NONE period_step : 1 avail_min : 1024 period_event : 0 start_threshold : 8192 stop_threshold : 8192 silence_threshold: 0 silence_size : 0 boundary : 4611686018427387904 Hardware PCM card 0 'CA0106' device 0 subdevice 0 Its setup is: stream : PLAYBACK access : MMAP_INTERLEAVED format : S32_LE subformat : STD channels : 2 rate : 48000 exact rate : 48000 (48000/1) msbits : 32 buffer_size : 8192 period_size : 1024 period_time : 21333 tstamp_mode : ENABLE period_step : 1 avail_min : 1024 period_event : 0 start_threshold : 1 stop_threshold : 4611686018427387904 silence_threshold: 0 silence_size : 4611686018427387904 boundary : 4611686018427387904 appl_ptr : 0 hw_ptr : 0 The buffer size is 8192 frames which is8192 / 48000 == 0.17066 s == 170 ms but there's no noticeable latency at all. If I setup PA not to use tsched and set 8 fragments of 21 ms each (almost exactly as in dmix), I have this setup then: Apr 16 19:16:17 homecomp pulseaudio[6121]: [pulseaudio] alsa-util.c: Hardware PCM card 0 'CA0106' device 0 subdevice 0 Apr 16 19:16:17 homecomp pulseaudio[6121]: [pulseaudio] alsa-util.c: Its setup is: Apr 16 19:16:17 homecomp pulseaudio[6121]: [pulseaudio] alsa-util.c: stream : PLAYBACK Apr 16 19:16:17 homecomp pulseaudio[6121]: [pulseaudio] alsa-util.c: access : MMAP_INTERLEAVED Apr 16 19:16:17 homecomp pulseaudio[6121]: [pulseaudio] alsa-util.c: format : S32_LE Apr 16 19:16:17 homecomp pulseaudio[6121]: [pulseaudio] alsa-util.c: subformat : STD Apr 16 19:16:17 homecomp pulseaudio[6121]: [pulseaudio] alsa-util.c: channels : 2 Apr 16 19:16:17 homecomp pulseaudio[6121]: [pulseaudio] alsa-util.c: rate : 48000 Apr 16 19:16:17 homecomp pulseaudio[6121]: [pulseaudio] alsa-util.c: exact rate : 48000 (48000/1) Apr 16 19:16:17 homecomp pulseaudio[6121]: [pulseaudio] alsa-util.c: msbits : 32 Apr 16 19:16:17 homecomp pulseaudio[6121]: [pulseaudio] alsa-util.c: buffer_size : 8064 Apr 16 19:16:17 homecomp pulseaudio[6121]: [pulseaudio] alsa-util.c: period_size : 1008 Apr 16 19:16:17 homecomp pulseaudio[6121]: [pulseaudio] alsa-util.c: period_time : 21000 Apr 16 19:16:17 homecomp pulseaudio[6121]: [pulseaudio] alsa-util.c: tstamp_mode : ENABLE Apr 16 19:16:17 homecomp pulseaudio[6121]: [pulseaudio] alsa-util.c: period_step : 1 Apr 16 19:16:17 homecomp pulseaudio[6121]: [pulseaudio] alsa-util.c: avail_min : 1008 Apr 16 19:16:17 homecomp pulseaudio[6121]: [pulseaudio] alsa-util.c: period_event : 1 Apr 16 19:16:17 homecomp pulseaudio[6121]: [pulseaudio] alsa-util.c: start_threshold : -1 Apr 16 19:16:17 homecomp pulseaudio[6121]: [pulseaudio] alsa-util.c: stop_threshold : 9079256848778919936 Apr 16 19:16:17 homecomp pulseaudio[6121]: [pulseaudio] alsa-util.c: silence_threshold: 0 Apr 16 19:16:17 homecomp pulseaudio[6121]: [pulseaudio] alsa-util.c: silence_size : 0 Apr 16 19:16:17 homecomp pulseaudio[6121]: [pulseaudio] alsa-util.c: boundary : 9079256848778919936 Apr 16 19:16:17 homecomp pulseaudio[6121]: [pulseaudio] alsa-util.c: appl_ptr : 0 Apr 16 19:16:17 homecomp pulseaudio[6121]: [pulseaudio] alsa-util.c: hw_ptr : 0 The point is, while the configuration looks the same the latency is huge, it's exactly 168 ms and is just unbearable. That's what happens after some really bad PC slowdowns because of the workload and it happens for every app and there's no way to make it behave properly without restarting PA and everything else. So why PA doesn't work as dmix does? Why dmix has 168ms buffer and responds instantly like there's no perceptible latency? Why dmix never underruns (at least audibly) while PA does it pretty often on a range of chipsets? I would be pretty happy with 21 ms fixed latency that never underruns but I just can't setup PA to work like this. Please, Raymond, don't go into the details, like, this particular card isn't Intel HDA the period size in PA is slightly less (1008 vs 1024) and so on. I see it clearly, that's not important here. What's important is the fact that dmix does its job much better than PA in any configuration (negligible latency + no underruns) and I want to know why and how to make PA work like dmix in this regard. -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to pulseaudio in Ubuntu. https://bugs.launchpad.net/bugs/996906 Title: periodic audio skips with Intel HDA Status in PulseAudio sound server: Confirmed Status in pulseaudio package in Ubuntu: Confirmed Bug description: When running PulseAudio, if I'm playing music via any source (Exaile, Totem, Flash in Firefox or Chromium, VLC, etc.) every few minutes the audio will skip once or twice. top doesn't show any process eating CPU any more when it happens. dmesg doesn't show anything. Nothing else seems to be affected. It doesn't seem to happen regularly. I just installed Ubuntu 12.04 from scratch (with pulseaudio 1:1.1-0ubuntu15), but the same thing happened in 10.04 on the same hardware. Uninstalling the PulseAudio packages and going back to ALSA gives me no issues whatsoever, which is how I know the issue is with PulseAudio. I'm using my onboard audio device: $ lspci | grep Audio 00:14.2 Audio device: Advanced Micro Devices [AMD] nee ATI SBx00 Azalia (Intel HDA) Following mailing list instructions, pulseaudio -vvvv --log-time shows during a skip: ( 684.030| 5.000) I: [alsa-sink] alsa-sink.c: Underrun! ( 684.030| 0.000) I: [alsa-sink] alsa-sink.c: Increasing minimal latency to 26.00 ms ( 684.030| 0.000) D: [alsa-sink] alsa-sink.c: Latency set to 26.00ms ( 684.030| 0.000) D: [alsa-sink] alsa-sink.c: hwbuf_unused=60952 ( 684.030| 0.000) D: [alsa-sink] alsa-sink.c: setting avail_min=15944 ( 684.030| 0.000) D: [alsa-sink] alsa-sink.c: Latency set to 26.00ms ( 684.030| 0.000) D: [alsa-sink] alsa-sink.c: hwbuf_unused=60952 ( 684.030| 0.000) D: [alsa-sink] alsa-sink.c: setting avail_min=15944 ( 684.031| 0.000) D: [alsa-sink] protocol-native.c: Underrun on 'ALSA Playback', 0 bytes in queue. ( 684.036| 0.004) D: [alsa-sink] protocol-native.c: Requesting rewind due to end of underrun. ( 684.036| 0.000) D: [alsa-sink] alsa-sink.c: Requested to rewind 10940 bytes. ( 684.036| 0.000) D: [alsa-sink] alsa-sink.c: Limited to 3320 bytes. ( 684.036| 0.000) D: [alsa-sink] alsa-sink.c: before: 830 ( 684.036| 0.000) D: [alsa-sink] alsa-sink.c: after: 830 ( 684.036| 0.000) D: [alsa-sink] alsa-sink.c: Rewound 3320 bytes. ( 684.036| 0.000) D: [alsa-sink] sink.c: Processing rewind... ( 684.036| 0.000) D: [alsa-sink] sink.c: latency = 1337 ( 684.036| 0.000) D: [alsa-sink] sink-input.c: Have to rewind 3320 bytes on render memblockq. ( 684.036| 0.000) D: [alsa-sink] source.c: Processing rewind... ( 696.234| 12.197) I: [alsa-sink] alsa-sink.c: Underrun! ( 696.234| 0.000) I: [alsa-sink] alsa-sink.c: Increasing wakeup watermark to 15.99 ms ( 702.033| 5.799) I: [alsa-sink] alsa-sink.c: Underrun! ( 702.033| 0.000) I: [alsa-sink] alsa-sink.c: Increasing minimal latency to 36.00 ms ( 702.033| 0.000) D: [alsa-sink] alsa-sink.c: Latency set to 36.00ms ( 702.033| 0.000) D: [alsa-sink] alsa-sink.c: hwbuf_unused=59188 ( 702.033| 0.000) D: [alsa-sink] alsa-sink.c: setting avail_min=15680 ( 702.033| 0.000) D: [alsa-sink] alsa-sink.c: Latency set to 36.00ms ( 702.034| 0.000) D: [alsa-sink] alsa-sink.c: hwbuf_unused=59188 ( 702.034| 0.000) D: [alsa-sink] alsa-sink.c: setting avail_min=15680 ( 702.034| 0.000) D: [alsa-sink] protocol-native.c: Underrun on 'ALSA Playback', 0 bytes in queue. ...and it goes on. The "Underrun!" messages alone happened a few times before, but it didn't skip. I'd like to use PulseAudio, but it's pretty annoying having audio skip all the time. ProblemType: Bug DistroRelease: Ubuntu 12.04 Package: pulseaudio 1:1.1-0ubuntu15 ProcVersionSignature: Ubuntu 3.2.0-24.37-generic 3.2.14 Uname: Linux 3.2.0-24-generic x86_64 NonfreeKernelModules: nvidia AlsaVersion: Advanced Linux Sound Architecture Driver Version 1.0.24. ApportVersion: 2.0.1-0ubuntu7 Architecture: amd64 AudioDevicesInUse: USER PID ACCESS COMMAND /dev/snd/controlC0: toxite 2136 F.... pulseaudio /dev/snd/pcmC0D0p: toxite 2136 F...m pulseaudio Card0.Amixer.info: Card hw:0 'SB'/'HDA ATI SB at 0xfe024000 irq 16' Mixer name : 'Realtek ALC889' Components : 'HDA:10ec0889,1458a102,00100004' Controls : 48 Simple ctrls : 22 Date: Tue May 8 21:45:17 2012 InstallationMedia: Ubuntu 12.04 LTS "Precise Pangolin" - Release amd64 (20120425) ProcEnviron: TERM=xterm PATH=(custom, user) LANG=en_US.UTF-8 SHELL=/bin/bash SourcePackage: pulseaudio UpgradeStatus: No upgrade log present (probably fresh install) dmi.bios.date: 12/03/2009 dmi.bios.vendor: Award Software International, Inc. dmi.bios.version: F2 dmi.board.name: GA-790FXTA-UD5 dmi.board.vendor: Gigabyte Technology Co., Ltd. dmi.board.version: x.x dmi.chassis.type: 3 dmi.chassis.vendor: Gigabyte Technology Co., Ltd. dmi.modalias: dmi:bvnAwardSoftwareInternational,Inc.:bvrF2:bd12/03/2009:svnGigabyteTechnologyCo.,Ltd.:pnGA-790FXTA-UD5:pvr:rvnGigabyteTechnologyCo.,Ltd.:rnGA-790FXTA-UD5:rvrx.x:cvnGigabyteTechnologyCo.,Ltd.:ct3:cvr: dmi.product.name: GA-790FXTA-UD5 dmi.sys.vendor: Gigabyte Technology Co., Ltd. To manage notifications about this bug go to: https://bugs.launchpad.net/pulseaudio/+bug/996906/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp