web-dev-qa-db-fra.com

Comment configurer ALSA?

Après avoir commuté de l'unité à Xfce, j'ai rencontré des difficultés avec ma configuration sonore. J'ai plusieurs cartes son sur mon système, celle que je veux utiliser est la dernière à charger par le noyau. ALSA semble utiliser le premier par défaut.

En outre, je ne peux pas utiliser le son dans plus d'une application simultanément, je reçois des erreurs comme "Dispositif sonore en cours d'utilisation", etc. Quelqu'un peut-il me fournir un aperçu de l'architecture ALSA, les outils que j'ai besoin à utiliser afin de sonder le Système et conseils sur la structure du fichier de configuration.

5
Gearoid Murphy

Le fichier de configuration à l'échelle du système est stocké dans '/etc/asound.conf', toutes les applications conformes à l'ALSA liront ce fichier à chaque lancement. Le meilleur endroit pour chercher à obtenir un sens de vos appareils sonores actuels est ici dans '/ Proc/Asound /'. Si vous n'avez pas de fichier de configuration, ALSA Applications utilisera/Proc/Asound/Card0 comme périphérique sonore par défaut. Vous pouvez vérifier la vérité de l'ALSA que vous utilisez ici '/ proc/asound/version'.

Chaque dispositif sonore a un tas de "PCM" associé à celui-ci. Chaque PCM est fondamentalement un canal de sortie: "Avant", "Arrière", "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 aux sorties audio physiques mais sont des canaux logiciels fournis par ALSA. Celui qui nous intéresse s'appelle 'DMIX'. Le canal "DMIX" est un mélangeur 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 faire référence à la carte par nom, telle que Creative, NVIDIA, etc. Ces noms sont définis comme des liens soft dans le répertoire ALSA Proc: 'ls -l/proc/asound'. En règle générale, lorsque vous faites référence à un canal PCM dans le fichier de configuration, le format est comme suit: "Nom du canal: index de carte, sous-index". Ainsi, par exemple, "DMIX: 2,0" désigne le canal PCM DMIX sur la carte 2, Sous-Device 0. Vous voyez les sous-périphériques associés à chaque carte son à l'aide de cette commande:

aplay -l

La dernière étape 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 de canal 'PCM' et une définition de canal 'CTL'. Le canal 'PCM' définit notre sortie et est responsable du multiplexage de multiples flux sonores dans un seul canal de sortie matérielle. Le canal "CTL" est utilisé pour le mélangeur et est responsable du contrôle du volume.

ALSA utilise une chaîne de logiciel PCM appelée "bouchon" qui gère le multiplexage. C'est un logiciel front-end pour un canal de sortie PCM esclave. Le canal de sortie PCM esclave doit être capable de mélanger. Un exemple de fichier de configuration suit:

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 3ème périphérique son du système "DMIX: 2,0". L'index 3ème est 2 car il commence à 0 (Card0, Card1, Card2). De plus, le schéma "CTL" fait référence à la même carte, mais cette fois en utilisant son nom "Creative".

J'espère que cela convient aux autres.

13
Gearoid Murphy