Sound output starts delayed

Via SPDIF hearable sound starts late, e. g. in the Test Sound dialog I maximally can hear "Left" when the voice should say "Front Left".

When I have pavucontrol open (in the background) whilst clicking on the Test Sound it starts immediately.

Generally, starting any audio/media file, the beginning is not output/hearable. Connecting either optical or coaxial. This only seems to affect Ubuntu 12.10, wasn't the case in 12.04, doesn't seem to be the case in 13.04!

From ubuntuusers.de a bit of help -- playing a non hearable sinus to keep spdif alive:

apt-get install sox
play -n -c2 synth sin gain -100   # -c2 for two channels

Hardware on an ASRock 970 Extreme3 (and GeForce 210):

$ cat /proc/asound/cards
 0 [SB             ]: HDA-Intel - HDA ATI SB
                      HDA ATI SB at 0xfe200000 irq 16
 1 [NVidia         ]: HDA-Intel - HDA NVidia
                      HDA NVidia at 0xfe080000 irq 25

$ cat /proc/asound/card0/codec* | grep Codec
Codec: Realtek ALC892

Some pulseaudio -v output pasted to http://paste.ubuntu.com/5629082/

Can I upgrade from pulseaudio 2.1 somehow?

Live Ubuntu 13.04 output pasted to http://paste.ubuntu.com/5630475/ -- actually here only the very first invocation of sound (or after some long user pause?) starts delayed, ie after "... Left", "Front Right" is heard whereas in 12.10 it's always "... Left", " ... Right".


Solution 1:

I know I'm about to revive an old thread, but I have found a easy working solution that fixes the problem.

From : https://wiki.archlinux.org/index.php/PulseAudio

To disable loading of the module-suspend-on-idle module, comment out the following line in the configuration file in use (~/.config/pulse/default.pa or /etc/pulse/default.pa):

### Automatically suspend sinks/sources that become idle for too long
# load-module module-suspend-on-idle

Finally restart PulseAudio to apply the changes.

Solution 2:

It sounds like power management is preventing the soundcard from outputting the first snippet of audio. From http://wiki.gentoo.org/wiki/Power_management/Soundcard, the important bits are as follows:

Runtime tuning

You can tune the driver in the sysfs filesystem under /sys/module/snd_hda_intel/parameters

The power_save_controller knob controls, if power-saving mode is enabled. It's preset by the kernel option ... power-saving ....

The power_save knob sets the time-out in seconds. It's preset by the kernel option Default time-out ...

pm-utils

pm-utils contains a script to enable the power-saving mode when on battery and disable when on AC. It overrides the default values of the kernel.

If you use pm-utils, but don't want this kind of regulation, disable the script: root # touch /etc/pm/power.d/intel-audio-powersave

From the above text, the things to try are:

  1. in the terminal, run the following and try playing audio again:

    echo N | sudo tee /sys/module/snd_hda_intel/parameters/power_save_controller
    

    If audio is fine, then you need to make it permanent by adding a new file in /etc/modprobe.d/ with the following content:

    options snd_hda_intel power-saving=N
    
  2. run sudo touch /etc/pm/power.d/intel-audio-powersave and reboot

    if the fix worked then audio should play normally, if not then remove the file again:

    sudo rm /etc/pm/power.d/intel-audio-powersave
    

If neither of these work, then I'm out of ideas :-).

Solution 3:

  1. Find PulseAudio config files which contains load-module module-suspend-on-idle lines:

    neatsoft@desktop:~$ grep module-suspend-on-idle /etc/pulse/*
    /etc/pulse/default.pa:load-module module-suspend-on-idle
    /etc/pulse/system.pa:load-module module-suspend-on-idle
    
  2. Comment out that lines.

  3. Restart PulseAudio to apply the changes:

    pulseaudio -k

Just tested on Ubuntu 17.04 and it works fine.