Maintenant vous êtes prêt à tester si le gestionnaire sonore est réellement disponible, avant de l'utiliser.
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.
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.
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).
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.
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.
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.
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
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.
"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
"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.