Advanced Linux Sound Architecture (Français)
Advanced Linux Sound Architecture est un composant du noyau Linux qui gère les cartes sons et qui fournit une API de plus haut niveau pour les développeurs d'applications.
Si vous recherchez une alternative, vous pouvez utiliser Open Sound System (OSS).
Installation
Noyau
Sous ArchLinux, le noyau par défaut est déjà configuré pour profiter d'ALSA. Il ne reste qu'à installer certains utilitaires pratiques en espace utilisateur et à modifier la configuration si nécessaire. Udev s'occupe automatiquement de la détection du matériel, et du chargement des pilotes adéquats.
Espace utilisateur
Certains utilitaires sont utiles pour contrôler alsa :
- alsa-utils contient un contrôle du volume des différents canaux alsamixer, ainsi qu'un lecteur pcm utile à des fins de tests.
- alsa-oss fournit la compatibilité avec des applications OSS avec la prise en charge de dmix[broken link: invalid section]
Ainsi, pour installer ces paquets, tapez la commande suivante :
pacman -S alsa-utils alsa-oss
Régler les niveaux
Par défaut, tous les canaux sont muets. Pour remédier à cela, vous pouvez utiliser alsamixer
, avec une interface curse, ou bien directement amixer
en cli.
Les canaux muets sont reconnaissables au MM au bas de la barre de niveau. Utiliser la touche M pour changer son état. Vérifiez aussi que les niveaux ne sont pas à 0.
Utilisez les flèches haut et bas pour monter ou baisser le volume, gauche et droite pour naviguer entre les différents canaux disponibles.
Il faut en général régler les canaux PCM
, Master
et Front
voire plus si vous possédez une carte son évoluée.
Pour une utilisation générale, régler les trois premiers canaux est suffisant.
PCM
, vous risqueriez de perdre en qualité. Testez alors si le son marche :
speaker-test -c 2
Si le test est négatif, rendez-vous au paragraphes Configuration puis Problèmes.
Vous devriez sauver vos niveaux pour qu'ils ne soient pas perdus après un redémarrage :
alsactl store
ce qui créera un fichier /var/lib/alsa/asound.state
.
Configuration
Pour voir si la (ou les) carte(s) est de suite reconnue, faire :
cat /proc/asound/cards
Ce qui va donner la liste des cartes sons reconnues par alsa.
Ré-échantillonnage haute qualité
Par défaut, alsa ré-échantillonne automatiquement tous les sons à 48000 Hz, cela via dmix qui utilise un algorithme de basse qualité qui produit des distorsions audibles notamment sur tous les fichiers musicaux issus de CDs (44100 Hz ; les DVDs étant en 48000 Hz).
Pour utiliser l'algorithme haute qualité Secret Rabbit Code (= libsamplerate), il faut tout d'abord installer les paquets alsa-plugins et libsamplerate.
Ensuite créer le fichier ~/.asoundrc
et y insérer :
~/.asoundrc
defaults.pcm.rate_converter "samplerate_best"
- Les autres algorithmes disponibles sont
samplerate_medium
,samplerate
,samplerate_linear
etsamplerate_order
. - Samplerate_best offre la meilleure qualité sonore après ré-échantillonnage mais utilise beaucoup de ressource pour cela, ce qui est un moindre mal pour les audiophiles et les nouvelles générations de processeurs.
- Samplerate_medium, nettement moins gourmand, est quant à lui un bon compromis entre qualité et consommation de ressource processeur (idéal pour les netbooks).
Source : Secret Rabbit Code
Passer la fréquence d'échantillonnage par défaut en 44100 Hz
La fréquence d'échantillonnage par défaut d'Alsa est de 48000 Hz, hors cela n'est absolument pas optimal pour un système audiophile ayant pour but de diffuser du son à 44100 Hz (les CDs et une grande majorité du son sur internet ; les DVDs étant en 48000 Hz). En effet, le ré-échantillonnage parfait n'existe pas et même le meilleur algorithme introduira son lot de distorsions et d'artefacts plus ou moins audibles, en plus de consommer des ressources processeurs !
La solution dans ce cas est évidente, passer l'échantillonnage par défaut d'Alsa en 44100 Hz pour éviter le ré-échantillonnage :
Éventuellement créer le fichier ~/.asoundrc
et y insérer :
~/.asoundrc
# réglage de la carte son par défaut, selon la commande « aplay -l », card = carte et device = périphérique defaults.pcm.card 0 defaults.pcm.device 0 defaults.ctl.card 0 # fréquence d'échantillonnage defaults.pcm.dmix.!rate 44100 # algorithme de re-échantillonnage defaults.pcm.!rate_converter "samplerate_medium"
Source : alsa-project.org
Mixer plusieurs sources sonores
Pour pouvoir jouer plusieurs sons de plusieurs applications en même temps sur la même carte son ne prenant pas en charge le mixage matériel.
Il y a un plugin pour ALSA appelé dmix (direct mixing) qui permet un mixage logiciel sans installer un serveur de son comme Pulseaudio ou Jack.
Dmix est maintenant utilisé par défaut. Notez que son utilisation peut réduire légèrement la qualité.
Pour activer le mixage multi-utilisateurs, notamment pour utiliser Music Player Daemon (MPD), insérez ceci dans /etc/asound.conf
: partie dédié
Dmix ne permet pas un mixage pour cartes son multiple. Pour remédier à ce problème il faut définir chaque carte indépendamment, comme ceci dans /etc/asound.conf
(multi-utilisateurs) ou ~/.asoundrc
:
~/.asoundrc
# réglage des cartes son, selon la commande « aplay -l », card = carte et device = périphérique pcm.carteInterne { type hw card 0 device 0 } ctl.carteInterne { type hw card 0 device 0 } pcm.carteUsb { type hw card 2 device 0 } ctl.carteUsb { type hw card 2 device 0 } # Creation d'un Dmix pour chacune pcm.interneMix { type dmix ipc_key 1024 ipc_key_add_uid false ipc_perm 0666 slave { pcm "carteInterne" channels 2 periods 128 period_time 0 period_size 2048 buffer_size 4096 } bindings { 0 0 1 1 } } pcm.usbMix { type dmix ipc_key 2048 ipc_key_add_uid false ipc_perm 0666 slave { pcm "carteUsb" channels 2 periods 128 period_time 0 period_size 2048 buffer_size 4096 } bindings { 0 0 1 1 } } # Sortie multi cartes pcm.both { type route; slave.pcm { type multi; slaves.a.pcm "interneMix"; slaves.b.pcm "usbMix"; slaves.a.channels 2; slaves.b.channels 2; bindings.0.slave a; bindings.0.channel 0; bindings.1.slave a; bindings.1.channel 1; bindings.2.slave b; bindings.2.channel 0; bindings.3.slave b; bindings.3.channel 1; } ttable.0.0 1; ttable.1.1 1; ttable.0.2 1; ttable.1.3 1; } pcm.!default { type plug slave { pcm both } } ctl.!default { type hw card 2 }
Pour plus d'informations, rendez-vous sur la page dédiée.
Problèmes
Carte graphique ATI et puce audio Intel
Si le son disparaît totalement ou de manière aléatoire en fonction du redémarrage du PC. Le souci vient peut-être d'un conflit entre le module snd_hda_codec_atihdmi et snd_hda_intel. Il vous faudra éditer le fichier modprobe.conf en root :
nano /etc/modprobe.d/modprobe.conf
Et le modifier pour rendre prioritaire la carte/puce son Intel.
# # /etc/modprobe.d/modprobe.conf (for v2.6 kernels) # # options snd_hda_intel index=0 options snd_hda_codec_atihdmi index=1
Microphone non-fonctionnel
Le paquet alsa-firmware n'est pas installé par défaut.
Son installation peut donc résoudre le problème.
pacman -S alsa-firmware