La sortie audio commence retardée

10

Via SPDIF, le son écoutable commence tard, par exemple dans la boîte de dialogue Test du son, je peux au maximum entendre "Gauche" quand la voix doit dire "Avant Gauche".

Lorsque j'ai pavucontrolouvert (en arrière-plan) tout en cliquant sur le son de test, il démarre immédiatement.

Généralement, à partir de n'importe quel fichier audio / multimédia, le début n'est pas émis / écoutable. Connexion optique ou coaxiale. Cela ne semble affecter Ubuntu 12.10, ce n'était pas le cas en 12.04, ne semble pas être le cas en 13.04!

De ubuntuusers.de un peu d'aide - jouer un sinus non audible pour garder spdif en vie:

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

Matériel sur un ASRock 970 Extreme3 ​​(et 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

Certaines pulseaudio -vsorties collées sur http://paste.ubuntu.com/5629082/

Puis-je mettre à niveau à partir de pulseaudio 2.1 en quelque sorte?

Sortie Ubuntu 13.04 en direct collée sur http://paste.ubuntu.com/5630475/ - en fait ici, seule la toute première invocation du son (ou après une longue pause utilisateur?) Commence retardée, c'est-à-dire après "... Left", "Front Right" est entendu alors qu'en 12.10 c'est toujours "... Left", "... Right".

type
la source
1
Pouvez-vous donner plus d'informations sur la carte son et sur quoi elle est connectée? Pouvez-vous essayer avec jackd si c'est le cas aussi? car il peut être lié à Pulse Audio et non à la carte son.
ttoine
Realtek ALC892 semble offrir beaucoup de hits dans google à mine à travers: /
tapez
l'installation du pilote du fabricant comme dans community.linuxmint.com/tutorial/view/1236 n'a pas aidé non plus. une ligne indique: {.id = 0x10ec0892, .name = "ALC892", .patch = patch_alc662},
tapez

Réponses:

26

Je sais que je suis sur le point de faire revivre un vieux fil, mais j'ai trouvé une solution de travail facile qui résout le problème.

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

Pour désactiver le chargement du module module-suspend-on-idle, commentez la ligne suivante dans le fichier de configuration utilisé (~ / .config / pulse / default.pa ou /etc/pulse/default.pa):

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

Enfin, redémarrez PulseAudio pour appliquer les modifications.

Dr_Evil
la source
C'était aussi la réponse pour moi, mais elle a un inconvénient. Certains programmes audio utilisent ALSA pour transmettre directement un format particulier à un récepteur de cinéma maison pour le décodage plutôt que d'utiliser le rééchantillonnage parfois douteux de l'AP. Cela fonctionne facilement grâce à cette même fonction de suspension.
Moilleadóir
3

Il semble que la gestion de l'alimentation empêche la carte son d'émettre le premier extrait audio. Sur http://wiki.gentoo.org/wiki/Power_management/Soundcard , les bits importants sont les suivants:

Réglage du runtime

Vous pouvez régler le pilote dans le système de fichiers sysfs sous / sys / module / snd_hda_intel / parameters

Le bouton power_save_controller contrôle, si le mode d'économie d'énergie est activé. Il est préréglé par l'option du noyau ... économie d'énergie ....

Le bouton power_save définit le délai d'expiration en secondes. Il est prédéfini par l'option du noyau Délai d'expiration par défaut ...

pm-utils

pm-utils contient un script pour activer le mode d'économie d'énergie sur batterie et le désactiver sur secteur. Il remplace les valeurs par défaut du noyau.

Si vous utilisez pm-utils, mais que vous ne voulez pas ce type de régulation, désactivez le script: root # touch /etc/pm/power.d/intel-audio-powersave

D'après le texte ci-dessus, les choses à essayer sont:

  1. dans le terminal, exécutez ce qui suit et essayez à nouveau de lire l'audio:

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

    Si l'audio est correct, vous devez le rendre permanent en ajoutant un nouveau fichier dans /etc/modprobe.d/ avec le contenu suivant:

    options snd_hda_intel power-saving=N
    
  2. exécuter sudo touch /etc/pm/power.d/intel-audio-powersaveet redémarrer

    si le correctif a fonctionné, l'audio devrait être lu normalement, sinon supprimez à nouveau le fichier:

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

Si aucun de ces travaux, alors je suis à court d'idées :-).

Daniel Llewellyn
la source
Super réponse, merci beaucoup! Malheureusement, pas encore de changement.
tapez
quel type de "nouveau fichier" dois-je créer dans etc / modprobe.d /?
Bhikkhu Subhuti
1

Il s'agit d'un problème général avec SPDIF / sortie numérique et le récepteur traitant le signal, etc. S'il n'y a pas de signal, le récepteur passe en mode veille. Il faut de quelques à quelques centaines de millisecondes pour commencer à jouer le signal. La SEULE façon de résoudre ce problème est de faire en sorte que votre sortie SPDIF envoie constamment QUELQUE signal, gardant ainsi le traitement du récepteur vivant à tout moment. Pour le moment, je viens de résoudre ce problème dans Windows en utilisant un petit utilitaire écrit par un gars en .NET qui génère un signal nul à tout moment. Il l'appelle SPDIF Keep-Alive. Cela permet au signal de circuler et à mon récepteur d'écouter constamment. Je n'ai pas encore vu de moyen de le faire pour Linux, mais j'imagine que le support pour créer une telle chose est PARTOUT. J'espère que cela a donné à quelqu'un une idée de ce qu'il faut rechercher ou où chercher ensuite! -K9SPY

Audio numérique Keep-Alive Keep Alive SPDIF Keep-Alive Keep Alive TOSLINK Keep-Alive Keep Alive

K9SPY
la source
1
  1. Trouvez les fichiers de configuration PulseAudio qui contiennent des load-module module-suspend-on-idlelignes:

    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. Commentez ces lignes.

  3. Redémarrez PulseAudio pour appliquer les modifications:

    pulseaudio -k

Je viens de tester sur Ubuntu 17.04 et cela fonctionne très bien.

neatsoft
la source
Cela a fonctionné pour moi en 19.04, sauf pour la partie redémarrage. J'ai dû redémarrer pour redémarrer pulseaudio car cela pulseaudio -km'a donné quelques erreurs.
muclux
0

La réponse acceptée concernant le non-chargementmodule-suspend-on-idle ne résout pas le problème pour moi. Pour «corriger» cela, j'ai dû laisser une commande de silence continu s'exécutant en arrière-plan, voir MISE À JOUR 2 de la question suivante:

Et j'ai reproduit ce problème à la fois dans les haut-parleurs internes des ordinateurs portables et les PC via HDMI et un casque, pas besoin de SPDIF, sur les derniers ArchLinux et Ubuntu.

pepper_chico
la source