PROJET AUTOBLOG


®om's blog

Site original : ®om's blog

⇐ retour index

Mise à jour

Mise à jour de la base de données, veuillez patienter...

PulseAudio et X-forwarding : trouver le serveur de son

lundi 29 septembre 2008 à 18:55

J’avais d’abord présenté comment exécuter un lecteur audio à distance, en ayant son affichage localement (présentation de SSH, chapitre 5).

J’ai ensuite présenté comment rediriger le son vers un autre PC (grâce à PulseAudio).

Le problème, c’est qu’avec PulseAudio, l’exécution d’un lecteur audio à distance avec l’affichage en local ne fonctionne plus : le son ne sort nulle part, même si à l’écran tout a l’air de fonctionner :

ssh monserveur -XC rhythmbox

En effet, la variable d’environnement PULSE_SERVER n’étant pas affectée lors d’un ssh -X, le lecteur ne trouve pas de serveur audio.

La solution propre serait de rajouter une ligne dans ~/.pulse/client.conf :

echo "default-server={$HOSTNAME}unix:/tmp/pulse-$USER/native" >> ~/.pulse/client.conf

Mais un bug de PulseAudio, corrigé dans la version 0.9.12, fait que cette solution ne fonctionne pas. Et malheureusement, cette version ne devrait pas apparaître dans Ubuntu avant la version 9.04.

Une solution consiste donc à l’initialiser lors du lancement du lecteur audio :

ssh monserveur -XC 'PULSE_SERVER="{$HOSTNAME}unix:/tmp/pulse-$USER/native" rhythmbox'

Si vraiment l’on veut éviter d’affecter cette variable à chaque fois manuellement, on peut rajouter à la fin du fichier /etc/ssh/sshd_config la ligne suivante :

PermitUserEnvironment yes

puis, toujours sur le serveur, définir la variable d’environment dans le fichier ~/.ssh/environment :

echo "PULSE_SERVER={$HOSTNAME}unix:/tmp/pulse-$USER/native" >> ~/.ssh/environment

Après avoir redémarré le serveur :

sudo /etc/init.d/ssh restart

il est possible de lancer sur le client :

ssh monserveur -XC rhythmbox

Le son ne sera plus perdu dans une faille de l’espace-temps :-)

Thunderbird : mails HTML et texte brut

samedi 27 septembre 2008 à 20:33

Il m’arrive souvent (tout le temps?) de vouloir envoyer des mails en texte brut. Mais par défaut, Thunderbird utilise un éditeur supportant le HTML (même si lors de l’envoi il propose d’envoyer le mail en texte brut), et parfois, il change de police (lors de copiers-collers, de citations…) :

thunderbird-police-size

On peut bien sûr désactiver le HTML directement dans l’éditeur, grâce au menu Options → Format → “Texte seulement”, mais il faut le faire à chaque nouveau mail. Pour le faire une fois pour toute, il faut se rendre dans “Paramètres des comptes” :

thunderbird-police-size

Maintenant, lorsqu’on clique sur “Écrire” pour rédiger un nouveau message, il est en texte brut.

Et si exceptionnellement, un jour, on veut envoyer un mail en HTML, il suffit de cliquer sur “Écrire” en maintenant le bouton Shift appuyé :-)

Son grésillant : volume PCM à réduire

samedi 20 septembre 2008 à 18:48

Lorsque je lisais de la musique sur mon PC fixe, branché sur l’ampli, le son n’était vraiment pas bon, alors que le même fichier audio sur mon pc portable branché sur l’ampli fonctionnait nickel.

J’ai donc conclu que ma carte son était morte, et je me renseignais pour aller en acheter une nouvelle.

À tout hasard, j’ai regardé la doc ubuntu, et je suis tombé sur :

Veillez à ne pas augmenter PCM à plus de 80 % pour préserver un son d’une bonne qualité.

J’ai donc baissé le volume PCM, monté le son de l’ampli, et le problème a disparu :-)

volume

Pourtant, sur mon PC portable, même avec le volume PCM à 100%, il n’y a aucun problème.

Si vous avez une mauvaise qualité sonore, avant d’investir dans une carte son, pensez à réduire le volume PCM.

Utilisez une sortie son d'un autre PC avec Ubuntu 8.04 !

dimanche 14 septembre 2008 à 13:03

Dans ma présentation de SSH (au chapitre 5), j’expliquais comment exécuter un lecteur audio à distance, en ayant l’affichage en local. Pour résumer, supposons qu’un PC fixe (qui joue un peu le rôle de serveur) contienne toute notre audiothèque, et soit relié à un ampli. Il peut être pratique de vouloir contrôler cette musique à distance avec le PC portable, tranquillement installé dans le canapé. La redirection de l’affichage du lecteur distant sur le PC local répond à ce problème.

Maintenant, prenons un autre cas de figure : je veux que les sons qui sortent actuellement sur le PC portable soient finalement redirigés vers l’ampli (par exemple le son d’une vidéo lue dans un navigateur).

Ceci est possible grâce au serveur de son PulseAudio intégré à Ubuntu 8.04. Et en plus, c’est très simple à mettre en œuvre.

Tout d’abord, installez le paquet padevchooser à la fois sur le PC serveur et sur le PC client, puis lancez padevchooser en console (ou allez dans le menu Applications → Son et vidéo → PulseAudio Device Chooser) : une icône apparaît alors dans le systray.

Sur le serveur, cliquez sur cette icône, puis “Configure Local Sound Server…”, et dans l’onglet “Multicast/RTP”, activez “Enable Multicast/RTP receiver”. Sur le client, faites de même, sauf que c’est “Enable Multicast/RTP sender” qu’il faut activer. Les deux machines peuvent avoir simultanément le rôle de client et de serveur.

Ensuite, sur le client, cliquez sur l’icône de PulseAudio dans le systray, puis “Volume Control”. Pour chaque flux sortant (ici VLC et Rhythmbox), vous pouvez choisir si le son doit sortir en local ou à distance :

pavc

Le réglage est appliqué “à chaud” (le son change aussitôt de sortie audio).

Il est possible de configurer de manière plus précise, pour choisir sur quelle carte son de quel PC le son doit sortir, ainsi que de définir une sortie son par défaut. Je vous laisse fouiller les préférences :)

Merci à Compte0 qui m’a fait découvrir cette fonctionnalité.

Note : pour que cela fonctionne avec les vidéos Flash, il faut le paquet libflashsupport, en attendant que *Flash* supporte nativement PulseAudio. Attention cependant, il est possible avec ce paquet que des plantages de Firefox surviennent aléatoirement sur des pages contenant du *Flash* ; si cela vous arrive, désinstallez simplement le paquet. Vous pouvez également tester la version RC de Flash Player 10, qui supporte PulseAudio en natif, ou attendre la version 8.10 d’Ubuntu, prévue pour le 30 octobre 2008.

EDIT: Tout fonctionne correctement depuis la version 8.10.

LaTeX : hyperref + numérotation = warning

dimanche 14 septembre 2008 à 11:11

Lorsque l’on veut utiliser LaTeX pour générer un document pdf, le package hyperref peut s’avérer bien pratique, car il permet de rendre les liens du document cliquables. Il modifie également la gestion de la numérotation des pages, ce qui peut poser problème.

Tout d’abord, prenons un exemple sans utiliser le package hyperref.

\documentclass[a4paper]{report}

\usepackage[francais]{babel}
\usepackage[utf8]{inputenc}

\title{Exemple}
\author{®om}

\begin{document}

\maketitle

\begin{abstract}
Un résumé
\end{abstract}

\tableofcontents

\chapter{Un chapitre}
Le premier chapitre.

\end{document}

C’est un document de 4 pages, qui compile sans problème. Lorsque l’on ouvre le pdf ainsi généré avec evince (le lecteur pdf par défaut de Gnome), les pages sont numérotées de 1 à 4 dans la partie réservée aux vignettes :

latex1

La page de titre et la page du résumé n’étant pas numérotées sur le document, les numéros imprimées sur les pages ne sont pas les mêmes :

Cela peut poser des problèmes de compréhension lors du visionnage d’un pdf par l’utilisateur : pour trouver la page 14 (où le numéro 14 est imprimé), il doit donc chercher la page 16 dans la liste des vignettes.

De plus, sur le document généré, les références ne sont pas cliquables (par exemple, il est impossible de cliquer sur une ligne du sommaire pour être aussitôt redirigé vers la page correspondante).

Utilisons alors le package hyperref, en rajoutant :

\usepackage{hyperref}

Maintenant, les liens sont cliquables :

latex-tableofcontents

Le problème de décalage de numéros est également résolu :

latex2

Cependant, il y a maintenant plusieurs pages numérotées 1, ce qui, en plus d’être assez perturbant et disgrâcieux, provoque un warning à la compilation :

destination with the same identifier (name{page.1}) hasbeen already used,
duplicate ignored

Pour éviter ce problème, une astuce consiste à utiliser une numérotation différente pour la page de titre et pour la vraie numérotation, par exemple une numérotation par lettres (de toute façon elles ne seront pas affichées). Pour cela, on peut utiliser \pagenumbering{alph} et \pagenumbering{arabic} (les options disponibles sont présentées ici.

\documentclass[a4paper]{report}

\usepackage[francais]{babel}
\usepackage[utf8]{inputenc}
\usepackage{hyperref}

\title{Exemple}
\author{®om}

\begin{document}

\pagenumbering{alph}
\maketitle

\begin{abstract}
Un résumé
\end{abstract}

\tableofcontents

\pagenumbering{arabic}
\chapter{Un chapitre}
Le premier chapitre.

\end{document}

Maintenant, le warning a disparu, et nous avons bien le résultat attendu :

latex3

Au passage, les liens par défaut ne sont pas très design (un rectangle rouge autour des liens). Il est possible de passer des paramètres à hyperref pour changer ce comportement :

\usepackage[colorlinks,linkcolor=blue]{hyperref}

Le paramètre colorlinks indique de colorer directement le texte d’un lien, plutôt que de l’encadrer, et linkcolor permet de changer la couleur.

Le résultat :

latex-tableofcontents2

Merci à la section 4.4.2 de ce document :)

Can't retrieve feed: file_get_contents(): php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution