Le fichier de configuration du système est stocké dans '/etc/asound.conf', toutes les applications conformes à ALSA liront ce fichier à chaque démarrage. Le meilleur endroit où regarder pour avoir une idée de vos périphériques sonores actuels est ici, dans '/proc/asound/'. Si vous n'avez pas de fichier de configuration, les applications ALSA utiliseront /proc/asound/card0 comme périphérique sonore par défaut. Vous pouvez vérifier la version d'ALSA que vous exécutez ici '/proc/asound/version'.
Chaque périphérique sonore est associé à un ensemble de "pcms". Chaque pcm est en fait un canal de sortie : "front", "rear", "surround41", "surround51", etc. Vous pouvez voir quels canaux pcm sont disponibles en utilisant cette commande :
aplay -L | grep CARD
Quelques-uns de ces canaux pcm ne correspondent pas à des sorties audio physiques mais sont des canaux logiciels fournis par ALSA. Celui qui nous intéresse est appelé 'dmix'. Le canal 'dmix' est un mixeur logiciel fourni par ALSA pour gérer plusieurs flux d'entrée simultanés.
Une chose à noter est l'utilisation de plusieurs conventions pour identifier un dispositif sonore particulier. Le fichier de configuration utilisera card0, card1, etc ou simplement 0, 1, etc. Il est également possible de se référer à la carte par son nom, comme Creative, Nvidia, etc. Ces noms sont définis comme des soft links dans le répertoire ALSA proc : 'ls -l /proc/asound'. Typiquement, lorsqu'on se réfère à un canal PCM dans le fichier de configuration, le format est le suivant : "nom-canal:card-index,sub-index". Ainsi, par exemple, "dmix:2,0" fait référence au canal pcm dmix de la carte 2, sous-dispositif 0. Vous pouvez voir les sous-dispositifs associés à chaque carte son en utilisant cette commande :
aplay -l
L'étape finale est le fichier de configuration lui-même, situé ici '/etc/asound.conf'. Nous avons besoin de 2 composants dans ce fichier, une définition du canal 'pcm' et une définition du canal 'ctl'. Le canal 'pcm' définit notre sortie et est responsable du multiplexage de plusieurs flux sonores dans un seul canal de sortie matériel. Le canal 'ctl' est utilisé pour le mixeur et est responsable du contrôle du volume.
ALSA utilise un canal pcm logiciel appelé "plug" qui gère le multiplexage. Il s'agit d'un frontal logiciel pour un canal de sortie pcm asservi. Le canal de sortie pcm asservi doit lui-même être capable de mixer. Voici un exemple de fichier de configuration :
pcm.custom
{
type plug
slave
{
pcm "dmix:2,0"
}
}
ctl.custom
{
type hw
card Creative
}
pcm.!default pcm.custom
ctl.!default ctl.custom
Dans ce cas, j'utilise le canal de sortie 'dmix' pour le troisième périphérique sonore du système "dmix:2,0". Le 3ème indice est 2 car il commence à partir de 0 (card0, card1, card2). En outre, le schéma 'ctl' fait référence à la même carte, mais cette fois en utilisant son nom en liaison souple 'Creative'.
J'espère que cela sera utile à d'autres.