Page suivantePage précédenteTable des matières

6. Tester et utiliser

Maintenant vous êtes prêt à tester si le gestionnaire sonore est réellement disponible, avant de l'utiliser.

6.1 Le système de fichiers /proc

Vous pouvez trouver beaucoup de renseignements sur votre système dans le répertoire /proc. /proc est un système de fichiers "virtuel", ce qui signifie qu'il n'existe pas réellement, mais fournit grosso modo une vue d'ensemble sur les processus de votre ordinateur. Pour que /proc soit accessible, votre noyau doit être compilé avec le support de /proc, ce qui est le cas dans la plupart des distributions, mais si vous avez compilé votre propre noyau sans /proc, vous n'aurez bien évidemment rien dans /proc.

/proc/modules recense les modules chargés. Une fois les gestionnaires ALSA chargés, en tapant cat /proc/modules vous devriez avoir quelque chose de ce genre :

snd-pcm1-oss      4            0
snd-sb16          1            1
snd-sb-dsp        4    [snd-sb16]      0
snd-pcm1          4    [snd-pcm1-oss snd-sb-dsp]      0
snd-pcm           3    [snd-pcm1-oss snd-sb16 snd-sb-dsp snd-pcm1]    0
snd-mixer         3    [snd-pcm1-oss snd-sb16 snd-sb-dsp]      1
snd-mpu401-uart   1    [snd-sb16]      0
snd-midi          4    [snd-sb16 snd-sb-dsp snd-mpu401-uart]   0
snd-opl3          1    [snd-sb16]      0
snd-synth         1    [snd-sb16 snd-opl3]     0
snd-timer         1    [snd-opl3]      0
snd               8    [snd-pcm1-oss snd-sb16 snd-sb-dsp snd-pcm1 snd-pcm snd-mixer snd-mpu401-uart snd-midi snd-opl3 snd-synth snd-timer]    0
Si quelque chose s'est mal passé pendant l'installation du gestionnaire, vous aurez quand même quelques gestionnaires «snd», mais pas de support audio.

Par exemple (note : ne vous amusez surtout pas à entrer les commandes suivantes, le gestionnaire cs4236 a besoin de paramètres) :

win3:~# modprobe snd-card-cs4236
/lib/modules/2.0.35/misc/snd-card-cs4236.o: init_module: Device or resource busy
snd-mixer: Device or resource busy
win3:~# cat /proc/modules
snd-cs4236        2           0
snd-cs4231        3    [snd-cs4236]    0
snd-timer         1    [snd-cs4231]    0
snd-pcm1          4    [snd-cs4236 snd-cs4231] 0
snd-mixer         3    [snd-cs4236 snd-cs4231] 0
snd-pcm           3    [snd-cs4236 snd-cs4231 snd-pcm1]       0
snd-mpu401-uart   1           0
snd-midi          4    [snd-mpu401-uart]       0
snd-opl3          1           0
snd-synth         1    [snd-opl3]      0
snd-timer         1    [snd-cs4231 snd-opl3]   0
snd               8    [snd-cs4231 snd-timer snd-pcm1 snd-mixer snd-pcm]     0
Vous pouvez vérifier l'existence d'une carte son en regardant /proc/asound/cards. Par exemple :
bash$ cat /proc/asound/cards
0 [card1          : SB16 - Sound Blaster 16
 Sound Blaster 16 at 0x220, irq 5, dma 1&5
Dans l'exemple précédent (où j'ai oublié les options) l'affichage aurait été :
win3:~# cat /proc/asound/cards
--- no soundcards ---
Une carte CS4236 fonctionnelle donnerait
0 [card1         ]: CS4236 - CS4237B
 CS4237B at 0x534, irq 7, dma 1&0
Si vous avez beau vérifier et revérifier vos réglages et que vous n'avez toujours rien, allez faire un tour dans la section dépannage.

Le répertoire virtuel /proc/asound fournit beaucoup d'autres renseignements sur le gestionnaire. Notez cependant que /proc/asound n'existera qu'une fois le premier module ALSA chargé. S'il n'y a pas de /proc/asound, cela signifie simplement que le module snd n'a pas été chargé convenablement. Vous pouvez trouver la liste des cartes installées dans /proc/asound/cards, puis des renseignements sur la première dans /proc/asound/0, sur la suivante dans /proc/asound/1, etc.

Si cat /proc/asound/card1/pcm0 donne quelque chose du genre :

 ES1370 DAC2/ADC
 Playback isn't active.
 Record isn't active.
cela signifie que votre gestionnaire est prêt à l'emploi, mais ne fait rien pour l'instant (donc tout s'est bien passé).

Pour les utilisateurs de noyau 2.0.x, il existe une troisième façon d'obtenir des renseignements sur les gestionnaires sonores, si vous avez chargé le module de compatibilité OSS, à savoir le périphérique /dev/sndstat. Les gestionnaires ALSA vous demandent poliment de ne pas vous fier à cette source d'informations, car elle n'est là que pour la compatibilité avec les gestionnaires OSS, et de meilleurs renseignements sont facilement disponibles via /proc/asound. Sous les noyaux 2.2.x, ALSA utilise le module soundcore du noyau et ne peut pas émuler /dev/sndstat, car cela interférerait avec les gestionnaires OSS.

6.2 Le mixer

Une fois les gestionnaires de votre carte son installés, comme vous l'indique /proc, vous pouvez essayer de faire du bruit. Tout d'abord, installez le paquetage d'utilitaires, ou tout au moins placez la commande «amixer» à un endroit raisonnable (comme /usr/local/bin).

Commencez par examiner les réglages du mixer en lançant «amixer». Cette commande affiche les réglages du mixer, à savoir les réglages de volume des différentes parties de la carte son. Le résultat peut varier énormément d'une carte à l'autre. Ma Soundblaster 16 donne :

Master         0  % (-14.00dB) : 0  % (-14.00dB)
Bass           0  % (-14.00dB) : 0  % (-14.00dB)
Treble         0  % (-14.00dB) : 0  % (-14.00dB)
Synth          0  % (-62.00dB) : 0  % (-62.00dB)
PCM            0  % (-62.00dB) : 0  % (-62.00dB)
Line-In        0  % (-62.00dB) : 0  % (-62.00dB) Mute
MIC            0  % (-62.00dB) : 0  % (-62.00dB) Mute
CD             0  % (-62.00dB) : 0  % (-62.00dB) Mute
In-Gain        0  % (-18.00dB) : 0  % (-18.00dB)
Out-Gain       0  % (-18.00dB) : 0  % (-18.00dB)
PC Speaker     0  % (-18.00dB) : 0  % (-18.00dB)
Ma carte son à base de Crystal 4237B a beaucoup d'autres options :
Master D       0  % (-22.00dB) : 0  % (-22.00dB) Mute
3D Center      0  % (-22.50dB) : 0  % (-22.50dB)
3D Space       0  % (-22.50dB) : 0  % (-22.50dB) Mute
Synth          0  % (-94.50dB) : 0  % (-94.50dB) Mute
FM             0  % (-94.50dB) : 0  % (-94.50dB) Mute
DSP            0  % (-94.50dB) : 0  % (-94.50dB) Mute
PCM            0  % (-94.50dB) : 0  % (-94.50dB) Mute
Line-In        0  % (-34.50dB) : 0  % (-34.50dB) Mute
MIC            0  % (-22.50dB) : 0  % (-22.50dB) Mute
CD             0  % (-34.50dB) : 0  % (-34.50dB) Mute
Record-Gain    0  % (  0.00dB) : 0  % (  0.00dB)
In-Gain        0  % (-18.00dB) : 0  % (-18.00dB)
Loopback       0  % (-94.50dB) : 0  % (-94.50dB) Mute
Mono           0  % (-45.00dB) : 0  % (-45.00dB) Mute
Aux A          0  % (-34.50dB) : 0  % (-34.50dB) Mute

Si vous ne recevez qu'un laconique «amixer: Specify command...», vous utilisez les utilitaires d'ALSA 0.3.2. Vous en avez besoin pour utiliser les gestionnaires 0.3.0+, mais il n'y a pas encore de documentation et comme la nouvelle interface du mixer est encore en beta test, je vous recommande de vous en tenir à ALSA 0.3.0-pre4. De plus, le nouvel amixer n'a pas encore de page man, vous devrez vous débrouiller tout seul.

Réglage du mixer en lecture

Vous aurez remarqué les indications Mute (Muet) pour certains périphériques. Cela signifie que ces périphériques n'émettront pas de son, quel que soit le réglage du volume. Certaines cartes (comme ici le CS4237B) mettent même le canal principal en sourdine. Ainsi, pour le CS4237B, il me faut lancer

amixer "master d" unmute

pour pouvoir entendre le moindre son. La Soundblaster n'a pas de sortie en sourdine, mais

amixer master 100 unmute

réglerait le volume à 100% et réactiverait le canal principal. Vous pouvez utiliser un nombre, un des mots «mute» et «unmute», ou les deux. Lancez

amixer "master d" 100; amixer pcm 100 unmute

pour régler le volume principal du CS4237B au maximum, activer le canal PCM et régler son volume au maximum. Pour des réglages séparés sur les canaux gauche et droite, utilisez un signe «deux-points», par exemple

amixer CD 25:50

(et non, je ne sais pas lequel est le gauche et lequel est le droit, mais de toute façon cela dépend aussi fortement de la position de vos haut-parleurs).

Éléments du mixer

Les différentes parties du mixer peuvent être déroutantes si vous n'avez pas de connaissances sur la production du son numérique. Le sound-HOWTO peut vous aider un peu, mais voici ici une brève explication.

Vous aurez sans doute besoin de seulement quelques éléments : l'un d'entre eux est le réglage «CD» (le volume de votre lecteur de cd-rom, pourvu qu'il soit connecté à la carte son par un câble à 3 ou 4 fils rouge,blanc et noir).

Le réglage «PCM» est utilisé pour la plupart des applications. Les programmes comme mpg123, xmms, speakfreely, realplayer et la plupart des autres utilisent le canal PCM.

«MIC» représente le micro, «line-in» est une entrée supplémentaire (pas toujours présente) de votre carte son.

Les réglages «gain» permettent un réglage supplémentaire d'amplification.

Réglage du mixer en enregistrement

Vous pouvez régler le canal CD en enregistrement en entrant

amixer cd rec

puis le remettre en lecture avec

amixer cd norec.

Si vous préférez enregistrer depuis un micro, vous devrez probablement utiliser

amixer record-gain 100; amixer mic 100 rec mute

(ne pas mettre l'entrée micro en sourdine produit des parasites si le micro capte son propre signal par les haut-parleurs). La plupart des micros ont un réglage de «gain» permettant d'amplifier le volume ; vous allez probablement devoir l'utiliser si vous ne recevez pas le moindre son du micro.

Autres réglages du mixer

Malheureusement, je n'ai pas pu modifier le réglage des canaux "3d center" et "3d space" avec amixer. Si quelqu'un y parvient, faites-le moi savoir. Vous pouvez cependant utiliser alsamixer pour cela.

La FAQ ALSA prétend qu'il est possible de restaurer les réglages du mixer avec cat <fichier>> /proc/asound/N/mixerC0D0, où <ficher contient une précédente copie de /proc/asound/N/mixerC0D0. Je n'ai pas pu le faire sur mon système, il se plaint de périphériques non existants.

6.3 Les périphériques /dev/snd/

Les gestionnaires ALSA ont des périphériques associés dans le répertoire /dev/snd. Si vous avez une carte, vous devriez avoir les périphériques suivants :

/dev/snd/pcmC0D0 - la sortie PCM de la carte0
/dev/snd/mixerC0D0 - le mixer de la carte 0
/dev/snd/controlC0D0 - le contrôleur de la carte 0
Le premier chiffre est le numéro de la carte son, le deuxième (s'il y a lieu) étant le numéro du périphérique. Une carte son ayant deux sorties PCM aurait pcmC0D0 et pcmC0D1. Note : les gestionnaires ALSA ont changé de notation par rapport à la précédente version, qui utilisait /dev/snd/pcm00 (premier chiffre pour la carte, deuxième chiffre pour le périphérique). Si ce HOWTO emploie l'ancienne notation, prévenez-moi pour que je le corrige.

Maintenant, vous êtes prêt à envoyer un fichier son dans la sortie PCM de la première carte. Essayez de copier n'importe quel fichier texte dans /dev/snd/pcmC0D0 ainsi : cat <fichier> /dev/snd/pcmC0D0. Le fichier peut être quelconque, pourvu qu'il ne soit pas de longueur nulle. Si vous avez un fichier son qui traîne quelque part, vous pouvez l'essayer. Vous pouvez aussi récupérer le fichier en http://www.ldp.org/sounds/english.au, pour entendre Linus Torvalds expliquer comment prononcer Linux.

La configuration par défaut de votre périphérique sonore est 8000 Hz, 8 bits. Ce qui signifie que le fichier "english.au" mentionné plus haut générera de la voix, tandis que les autres fichiers généreront probablement des parasites. Si vous n'entendez rien, vérifiez vos haut-parleurs, essayez de relancer amixer ou consultez un médecin. (Plus loin vous pourrez utiliser les fonctionnalités 48 kHz, 16 bit de votre carte son avec votre programme audio préféré, comme sox ou mpg123).

Si vous avez chargé le module «snd-pcm1-oss», vous pouvez également utiliser la compatibilité OSS pour accéder à votre carte son. Les correspondances suivantes sont alors effectuées :

/dev/snd/pcmC0D0 -> /dev/audio0 (/dev/audio) -> numéro mineur 4
/dev/snd/pcmC0D0 -> /dev/dsp0 (/dev/dsp) -> numéro mineur 3
/dev/snd/pcmC0D1 -> /dev/adsp0 (/dev/adsp) -> numéro mineur 12
/dev/snd/pcmC1D0 -> /dev/audio1 -> numéro mineur 4+16 = 20
/dev/snd/pcmC1D0 -> /dev/dsp1 -> numéro mineur 3+16 = 19
/dev/snd/pcmC1D1 -> /dev/adsp1 -> numéro mineur 12+16 = 28
/dev/snd/pcmC2D0 -> /dev/audio2 -> numéro mineur 4+32 = 36
/dev/snd/pcmC2D0 -> /dev/dsp2 -> numéro mineur 3+32 = 35
/dev/snd/pcmC2D1 -> /dev/adsp2 -> numéro mineur 12+32 = 44

6.4 Informations complémentaires

Le fichier INSTALL des gestionnaires ALSA mentionne quelques trucs et astuces pour indiquer leurs réglages aux gestionnaires. Leur utilité dépend des applications sonores dont vous vous servez. Les applications classiques, comme mpg123, sox (généralement utilisée par la commande play), ou RealPlayer, fonctionneront probablement parfaitement sans avoir recours à ces astuces. Je n'en ai jamais eu besoin personnellement.

/proc/asound/N/pcmN0

"Playback erase" - efface toutes les informations sur les applications OSS
"Playback <application> <nombre de fragments> <taille des fragments> [<options>]"
"Record erase" - efface toutes les informations sur les applications OSS
"Record <application> <nombre de fragments> <taille des fragments> [<options>]"

application - nom de l'application (avec ou sans chemin complet).

nombre de fragments - nombre de fragments, ou zéro pour laisser le choix à ALSA.

taille des fragments - taille des fragments en octets, ou zéro pour laisser le choix à ALSA.

options - paramètres optionnels

WR_ONLY - si l'application tente d'ouvrir le périphérique PCM en mode O_RDWR, modifier en O_WRONLY (pas d'enregistrement) - pour Quake etc.

Exemples :

echo "Playback x11amp 128 16384"> /proc/asound/0/pcm00
echo "Playback squake 0 0 WR_ONLY"> /proc/asound/0/pcm00

/proc/asound/N/sb16

"Playback 8" -> n'utiliser que le canal DMA 8 bits pour la lecture.
"Playback 16" -> n'utiliser que le canal DMA 16 bits pour la lecture.
"Playback auto" (par défaut) -> choix automatique : la première ouverture utilisera le canal DMA 16 bits.
"Record 8" -> n'utiliser que le canal DMA 8 bits pour l'enregistrement.
"Record 16" -> n'utiliser que le canal DMA 16 bits pour l'enregistrement.
"Record auto" (par défaut) -> choix automatique : la première ouverture utilisera le canal DMA 16 bits.

Exemple : echo "Record 16"> /proc/asound/0/sb16

Pour plus d'informations, consultez le fichier INSTALL.


Page suivantePage précédenteTable des matières