RaphAstronome

vendredi, 22 septembre 2017

Corriger un problème de son haché avec Mumble et PulseAudio

J'ai eu un soucis avec PulseAudio : en usage général tout semble fonctionner mais dès que l'on lance Mumble c'est le drame : le son devient totalement haché à un point où il est carrément incompréhensible. Cela hache le son de Mumble mais aussi des autres programmes (jeux, musique ...). Le fait de fermer Mumble corrige le problème après quelques secondes d'attente mais revient lorsque l'on le relance.

À cause de ce bug je suis resté longtemps sur ALSA, l'ancien système de son, mais depuis la fin de son support par Firefox il me fallait remettre PulseAudio. Je n'arrivais pas à trouver l'origine du problème et pensais au début qu'il y avait un soucis au niveau de l'interface entre Mumble et PulseAudio ou alors un problème avec la gestion de l'écho. Le bug n'était pas systématique donc les rares fois où j'utilisais Mumble j'arrêtais et relançais Mumble jusqu'à ce que cela fonctionne normalement. Pas pratique !

Mumble.png

Au final en cherchant totalement autre chose je suis tombé sur un sujet de forum où quelqu'un avait ce genre de soucis avec un programme Windows qu'il faisait tourner sous Linux avec Wine. Il était question de la variable d'environnement PULSE_LATENCY_MSEC . Je ne sais pas trop pourquoi mais avec la carte son de ma carte mère la mémoire tampon alloué par PulseAudio est trop petite dans certains cas. J'ignore totalement pourquoi cela le fait spécifiquement avec Mumble, peut être qu'il passe en mode de faible latence. J'avoue ne pas avoir démonté Mumble pour voir ce qu'il fait d'autant plus que je ne connais que très peu les API lié au son.

Toujours est t'il qu'une valeur de PULSE_LATENCY_MSEC à 30 règle le soucis pour moi. Si vous avez le même problème mettez un son en arrière plan (voir le dernier paragraphe si le son ce coupe) et lancez Mumble avec la commande suivante :

PULSE_LATENCY_MSEC=30 mumble

Répétez la commande plusieurs fois pour vérifier. Si cela ne suffit pas essayez une valeur plus grande. Ne mettez pas une valeur énorme non plus car vous auriez alors une latence gênante sur le son.

Si vous êtes satisfait de cette valeur vous pouvez la fixer dans la configuration du système dans le /etc/environment (à modifier en root), ajoutez :

# Correctif PulseAudio-Mumble
PULSE_LATENCY_MSEC=30

Vous pouvez aussi faire l'ajout dans le fichier ~/.bashrc pour ne configurer que votre compte personnel. Dans les deux cas le paramètre ne sera pris en compte qu'après avoir fermé et rouvert votre session.

Dernière chose : si lancer Mumble éteint la musique c'est normal puisque Mumble est considéré comme étant une application téléphonique ce qui coupe la musique de fond automatiquement. Si cela pose soucis cela ce configure dans /etc/pulse/default.pa où j'ai retiré la ligne "load-module module-role-cork" (mettez plutôt un "#" devant pour désactiver la ligne). PulseAudio doit être relancé pour que cela soit pris en charge.

lundi, 28 juin 2010

Erreur : version `GLIBCXX_3.4.9' not found

Le système de mise à jour dont j'ai parlé dans ce billet m'avertis d'une mise à jour, ok je la fais "apt-get update", "apt-get upgrade" comme d'habitude : pas de message d'erreur, parfait.

Je fais un "apt-get clean" pour nettoyer un peu les fichiers temporaires et là une grosse erreur arrive comme un cheveu sur la soupe :

# apt-get
apt-get: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by apt-get)
apt-get: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by /usr/lib/libapt-pkg-libc6.7-6.so.4.6)

En fait "apt-get" ne marche plus du tout ! Je ne sais pas à quoi c'est dû, peut être une erreur de miroir mais il semblerait qu'une mise à jour de libstdc++ est été passée à l'as. Lorsque j'ai fait ma mise à jour qui comprend notamment le paquet apt ça à cassé le système. Pas de panique, la commande "dpkg" elle semble fonctionner, je télécharge donc la dernière version et l'installe.

wget http://ftp.fr.debian.org/debian/pool/main/g/gcc-4.3/libstdc++6_4.3.2-1.1_i386.deb
dpkg --install libstdc++6_4.3.2-1.1_i386.deb

Attention : si cette erreur vous arrive il est probable que la version et/ou architecture ne soit pas la même, faites bien attention de télécharger le bon paquet ! Je vous conseille de vous documenter dessus sur le site de Debian. De la même façon si vous utilisez autre chose que Debian, par exemple Ubuntu, il faut télécharger la version destinée à cette distribution. On ne plaisante pas avec la libstdc++ car une part importante du système en dépend directement.

Après ceci "apt-get" fonctionne à nouveau du moins dans mon cas.

jeudi, 27 mai 2010

Problème d'affichage sur Stellarium sous Ubuntu Lucid lynx

J'ai eu un problème avec Stellarium sous Ubuntu Lucid lynx, certains terrains provoquait un affichage pour le moins buggé : [image]

Lire la suite...

mardi, 25 août 2009

Faire fonctionner le plugin munin "iostat"

Il y a dans le plugin "iostat" de munin un petit bug qui l'empêche de fonctionner correctement sur les serveur virtuels Xen, peut être d'autres aussi mais en tout cas Xen ça marche pas.

Régler ce bug est assez facile il suffit de commenter (c.a.d. désactiver) quelques lignes dans le programme du plugin :

Lire la suite...

jeudi, 20 août 2009

Lien entre PHP et MySQL en UTF8

Super mon dernier site est en UTF-8 ! Donc :

  • J'ai mes pages en UTF-8
  • J'ai déclaré le charset en UTF-8 dans les entêtes HTTP
  • Ma base de données est aussi en UTF-8

Je vais sur la page : super le site s'affiche bien par contre les données provenant de MySQL sont encore en ISO et forcement "ça fait tache".

En fait ce problème est assez bête : PHP et MySQL sont tout deux en UTF-8 mais par défaut le lien entre les deux est encore en latin1 et la chaine de caractères est donc traduit de l'UTF-8 en latin1 par MySQL.

Le problème est très facile à régler il suffit d'utiliser mysql_set_charset peu après s'être connecté à MySQL :

mysql_connect('host', 'user', 'pass');
mysql_select_db('database');
mysql_set_charset('utf8');

Cette instruction demande à MySQL d'utiliser UTF-8 et pas autre chose.

Bien sûr il est possible de l'adapter à un autre codage dont vous pouvez voir la liste avec "SHOW CHARACTER SET;".

- page 1 de 2