You are currently browsing the tag archive for the ‘server’ tag.

Première chose à savoir : par défaut PulseAudio est configuré en stéréo

C’est important à savoir avant d’aller bidouiller en vain asound.conf ou autres. Alsa est certainement déja configuré pour le surround par défaut, mais par défaut PulseAudio ne vous donnera que de la stéréo. Et pour rêgler cela, la manip’ est assez simple.

Première chose à faire, sauvegarder les fichiers de configuration que nous allons éditer:

sudo cp /etc/pulse/daemon.conf /etc/pulse/daemon.conf.original && /etc/pulse/default.pa /etc/pulse/default.pa.original.

La manière simple:

Si vous avez l’une des configuration suivantes, vous avez de la chance. Vous pouvez rêgler le problème simplement. Si ce n’est pas le cas, voyez la section suivante.

2.0, 4.0, 5.0, 5.1, 7.1

Ouvrez simplement un terminal et tapez:

gksudo gedit /etc/pulse/daemon.conf

Faites défiler le texte jusqu’à ce que vous voyez la ligne suivante

; default-sample-channels = 2

Décommentez la ligne en retirant le « ; » et changez le « 2 » selon votre configuration:

2.0 -> laissez 2
4.0 -> 4
5.0 -> 5
5.1 -> 6
7.1 -> 8

Sauvegardez, quittez, redémarrez pulseaudio (ou plus simplement redémarrez ubuntu) et voilà, le son surround devrait fonctionner normalement.

La manière moins simple

Vous devrez cette partie si vous avez l’une des configurations suivantes:

2.1, 4.1, 6.0 ou tout autre chose non listée plus haut.

Pourquoi est-ce plus compliqué?

Pulseaudio à une facon particulière de nommer les différents canaux. Dans la manière simple expliquée ci-dessus, vous dites à PulseAudio le nombre de canaux à utiliser mais dans un ordre déterminé. Cet ordre est le suivant

Avant G, Avant D, Arrière G, Arrière D, Centre, Subwoofer, Coté G, Coté D.

Si vous avez un système en 2.1, pulseaudio enverra les canaux gauche/droite correctement mais il enverra l’arrière gauche dans le subwoofer, et ce n’est pas vraiment l’effet recherché. Pour corriger cela, Ouvrez un terminal et tapez:

gksudo gedit /etc/pulse/default.pa

Cherchez les lignes suivantes:

### Automatically load driver modules depending on the hardware available
.ifexists module-hal-detect.so
 load-module module-hal-detect
 .else
 ### Alternatively use the static hardware detection module (for systems that
 ### lack HAL support)
 load-module module-detect
 .endif

Commentez toutes les lignes d’un « # ». Cela empêchera pulseaudio de configurer automatiquement votre carte son. Maintenant vous devez ajouter une ligne à ce bloc qui ressemblera à ceci:


### Automatically load driver modules depending on the hardware available
 #.ifexists module-hal-detect.so
 #load-module module-hal-detect
 #.else
 ### Alternatively use the static hardware detection module (for systems that
 ### lack HAL support)
 #load-module module-detect
 #.endif

### Configuration manuelle surround. Décommentez les lignes ci-dessus et commentez la ligne suivante pour
### revenir à la configuration originale.
load-module module-alsa-sink device_id=0 channels=5 channel_map=front-left,front-right,rear-left,rear-right,lfe

Dans cette configuration, il s’agit d’un sytème 4.1 avec une seule carte son.

Vous pouvez créer votre propre configuration en suivant l’exemple suivant. Il est important de noter que l’ordre des canaux est important. Si vous entendez que deux canaux sont inversés (genre centre/subwoofer avec arrière D/G) vous n’avez qu’à changer l’ordre de ces derniers. La plupart des cartes veulent que ces canaux soient spécifiés dans un ordre précis.

  • device_id correspond bien sur à la carte son. si vous n’avez qu’une carte, c’est certainement 0.
  • channels=X : le X devrait être remplacé par le nombre de canaux à utiliser.
  • channel_map=x,x,x,x,x,x,x cette liste séparée par desvirgule détermine les canaux à utiliser. Il est conseillé de suivre le même ordre utilise par PulseAudio (voir début du guide) et de simplement retirer le canal inutile. Les ccanaux valides sont les suivants (en gras):

left (G), right (R), mono, center (Centre), front-left (Avant R), front-right (Avant G), front-center (Avant Centre), rear-center (Arrière Centre), rear-left (Arrière G), rear-right (arrière D), lfe (LowFrequencyEffects: effets basse fréquence), subwoofer, front-left-of-center (Avant G du centre), front-right-of-center (Avant D du centre),  side-left (Coté G), side-right (Coté D), aux0 jusqu’à aux15 (Auxiliaires 0 à 15), top-center (Centre Haut), top-front-left (Haut, Avant G), top-front-right (Haut Avant D), top-front-center (Centre haut), top-rear-left (Haut Arrière G), top-rear-right (Haut Arrière D), top-rear-center (Haut Centre Arrière)

Il est préférable d’utiliser une combinaison des paramêtres suivants: front-left, front-right, front-center, rear-center, rear-left, rear-right, lfe, side-left, side-right

NOTES:

  • Un utilisateur reporte qu’en lancant PulseAudio depuis un terminal, alsa_ctl se plaignait de paramètre supplémentaire ou de surround51 introuvable. Il a dû spécifier « device=hw:0 » en remplacement de « device=hw:0,0 device_id=0 »
  • Si vous avez un subwoofer, il est conseillé d’utiliser lfe et non subwoofer, cela semble aller contre la logique mais le canal du subwoofer est quasiment toujours labellé « lfe »

Une fois terminé, sauvegardez le fichier, fermez, redémarrez et voilà!

Si vous n’avez pas de son ou si vous avez lamentablement foiré votre configuration, pas de panique! Pour retrouver votre configuration d’origine, ouvrez un terminal, tapez ceci et redémarrez.

sudo cp /etc/pulse/default.pa.original /etc/pulse/default.pa && cp /etc/pulse/daemon.conf.original /etc/pulse/daemon.conf

Source: Sammydee’s HOWTO: Surround sound in pulseaudio

Realtime, pour quoi faire?

Si votre idée du multimédia est de regarder des films ou écouter de la musique tout en naviguant sur internet, vous n’aurez probablement pas besoin du support en temps réel.

Le temps réel est important pour les personnes qui ont besoin de la priorité maximale pour les applications audio et vidéo et où ces fonctions sont la principale utilité de la machine (sur les DAW ou Digital Audio Workstations par exemple). Le realtime est important aussi pour les utilisateurs utilisant des programmes qui nécessitent une faible latence sur leurs machine.

En général, si vous êtes satisfait avec vos applications multimédia telles qu’elles sont, vous n’avez certainement pas besoin du realtime et vous risquez d’altérer votre machine si vous essayer de l’y forcer.

Oui mais j’ai des messages d’erreur!!!

Si lorsque vous démarrez PulseAudio en mode verbose (-v), vous vous inquiétez des messages suivant, pas de panique. Pulse n’a pas besoin d’être dans le groupe-rt pour fonctionner correctement. Il ne s’agit pas d’erreurs mais de messages informatifs (et oui, c’est ca le mode verbose).

$pulseaudio -vD
(...)
high-priority scheduling was requested in the configuration. However, we lack the necessary priviliges:
I: main.c: We are not in group 'pulse-rt' and PolicyKit refuse to grant us priviliges. Dropping SUID again.

I need real fuckin’ time, dammit!!!

Ok ok, si vous voulez vraiment du realtime avec pulseaudio et si vous avez deux sous de bon sens, vous tournez déjà sur un kernel realtime. Si ce n’est pas le cas, cherchez un peu vous trouverez comment faire. Une fois installé, il n’y a plus qu’à vous ajouter au groupe pulse-rt avec ces petites commandes:

pulseaudio -k
sudo adduser $USER pulse-rt
pulseaudio -vD

pulseaudio -k: termine pulseaudio comme il se doit
sudo adduser $USER pulse-rt: ajoutes l’utilisateur courant au groupe pulse-rt, vous pouvez bien sur remplacez $USER par le nom d’utilisateur que vous voulez
pulseaudio -vD: démarre pulseaudio en mode verbose (-v) et en tant que démon (-D grr!)

Et voilà!

Si vous ne le savez pas encore, PulseAudio est le nouveau serveur de son à tout faire. Pour ceux qui ne peuvent pas se séparer de JACK voici comment combiner les deux.

Deux modules sont disponibles: l’un pour la source (module-jack-source) et l’autre pour le sink (module-jack-sink). Cela signifie que tout logiciel compatible avec PulseAudio le sera également avec JACK et vice-versa, Youpi!

Le fichier à éditer est /etc/pulse/default.pa (pour une config globale) ou ~/.pulse/default.pa (pour une config per user). Toutes les options sont…optionelles donc l’ajout d’un simple « load-module module-jack-sink » ou « load-module module-jack-source » suffira mais voici tout de même la syntaxe au cas où.

load-module module-jack-sink sink_name=nom_du_sink server_name=nom_du_serveur client_name=nom_du_client channels=nombre_de_canaux
load-module module-jack-source source_name=nom_du_sink source_name=nom_de_la_souce server_name=nom_du_serveur client_name=nom_du_client channels=nombre_de_canaux

sink_name/source_name: définit le nom du sink ou de la source. Si omit, le sink sera nommé « jack-out » et la source « jack-in ».

server_name: détermine le serveur JACK auquel se connecter. Si omit, pulse se connectera au serveur par défaut.

client_name: définit le nom du client donné a JACK. Si omit, le nom sera PulseAudio.

channels: définit le nombre de canaux à utiliser. Si omit, le defaut sera le nombre de canaux disponibles sur le serveur JACK.

connect: prend une valeur booléenne si activé (enabled, valeur par defaut), PulseAudio essaiera de se conencter aux ports du server JACK.

Source: PulseAudio Modules

Si vous êtes l’heureux propriétaire d’un laptop, vous remarquerez la tripotée de câbles qui clouent votre portable au bureau. Ubuntu Server permet de se débarrasser de tout cela en créant un serveur d’impression, un serveur de fichiers et/ou un serveur web (LAMP) etc. mais malheureusement pas de serveur de son.

PulseAudio permet de transférer votre belle musique sur le réseau (local ou non) et de la jouer sur un autre PC en quelques clics. Malheureusement cela n’est pas (encore) intégré à Ubuntu Server et il faut donc bidouiller un peu la machine pour arriver à ses fins.

Ce tutoriel permet de configurer PulseAudio via la ligne de commande (SSH) et implique qu’il soit déja correctement installé sur le client et le serveur. Notez aussi que ce tutoriel n’a pas été testé sur d’autres machines que la mienne.

Coté serveur

Première chose: se logger sur le serveur (ssh utilisateur@IP) et installer Alsa ainsi que PulseAudio:

sudo apt-get install alsa-base pulseaudio pulseaudio-module-zeroconf

Tout se passe dans un seul fichier: /etc/pulse/default.pa (pour une config globale) ou ~/.pulse/default.pa (pour une config spécifique a un utilisateur). Tout d’abord faites une copie de sauvegarde, c’est un gros fichier, il vaut mieux etre prudent:

sudo cp /etc/pulse/default.pa /etc/pulse/default.pa_original

ou

cp ~/.pulse/default.pa ~/.pulse/default.pa_original

puis éditez l’un des fichiers:

sudo nano /etc/pulse/default.pa

ou

nano ~/.pulse/default.pa

Les passages en gras montrent les parties modifiées (commentées d’un « # » ou non) afin de se débarrasser des dépendances à X ou ESD qui ne sont pas installés sur un serveur:

(…)
### Network access (may be configured with paprefs, so leave this commented
### here if you plan to use paprefs)

#load-module module-esound-protocol-tcp #inutile puisque esound n’est pas installé
#ici 192.168.1.0/16 correspond à toutes les adresses du réseau local (192.168.1.*)
#vous pouvez la modifier selon votre configuration:

load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.1.0/16
load-module module-zeroconf-publish

### Charge le module de réception du stream RTP
load-module module-rtp-recv #autorise l’acces du serveur par d’autres machine
(…)

#Commentez les lignes suivantes (dépendances à X)
(…)
#load-sample x11-bell /usr/share/sounds/gtk-events/activate.wav
(…)
#load-module module-x11-bell sample=x11-bell
(…)
#load-module module-x11-publish
(…)
#load-module module-gconf
(…)

Finalement, lancez PulseAudio en tapant « pulseaudio -Dv » dans la ligne de commande. L’option -D lance le démon et -v active le mode verbose afin de voir d’éventuelles erreurs. Notez que le message à propos de pulse-rt n’est pas une erreur, ce n’est qu’une notification. S’il n’y a pas d’autres erreurs c’est que vous avez réussi. Youpi!

Note Importante:

Par défaut le volume d’ALSA est à zéro, lancez la commande « alsamixer » dans un terminal et montez le son là où c’est nécessaire (généralement au niveau de Master, PCM et/ou Front).

Coté client

Cette partie assume que vous avez déja installé PulseAudio, si vous êtes sous Ubuntu Hardy c’est forcément le cas, sinon allez voir ici.

Ici tout est plus simple, on a un joli desktop, il n’y a qu’a cliquer où il faut. Mais d’abord il faut installer les outils graphiques:

sudo apt-get install paman paprefs pavucontrol padevchooser

Dans le Menu > Système > PulseAudio Preferences cochez la dernière case sous l’onglet « Network Access » et la deuxième case dans l’onglet Multicast/RTP puis fermez.

cliquez pour agrandir

Allez ensuite dans Menu > Applications > Son & Vidéo > PulseAudio Device Chooser. Une icône apparaît dans le tray. Cliquez dessus et dans Default Serveur, cliquez sur le nom du serveur qui apparaît en haut de la liste (voir notes plus bas).

Lancez votre musique favorite sans oublier de choisir PulseAudio comme serveur audio et voilà le travail: la musique est jouée sur le serveur! Pour renvoyer le son sur le portable, choisissez le serveur par défaut dans PulseAudio Device Chooser et redémarrez l’application.

Notes

Les utilisateurs de firestarter ayant des problèmes pour détecter le serveur, je conseille de purger et désinstaller firestarter (il s’agit vraisemblablement d’un bug avahi/firestarter).

Si vous préferez garder firestarter, allez voir ici pour le fix. Vous pouvez aussi spécifier le serveur a utiliser en choisissant « Autres » dans PulseAudio Device Chooser et en rentrant l’adresse du serveur en question.

Pour info, le protocole RTP/Multicast utilise le port 5353.

Renvoyer le son via le réseau est assez gourmand en bande passante: environ 50ko/s en download, 250ko/s en upload pour un fichier FLAC et vice-versa coté serveur.

Et si comme moi vous trouvez cette configuration soulante, allez donc plussoyer cette idée sur Ubuntu Brainstorm (cliquez sur l’image):



HELP !

Pour tout problème de son, conseils, ou simplement pour causer musique et apprécier l'ambiance, vous êtes les bienvenus au salon musique

Archives