O arquivo de configuração de todo o sistema é armazenado em '/etc/asound.conf', todos os aplicativos compatíveis com o ALSA lerão esse arquivo sempre que iniciarem. O melhor lugar para ter uma noção dos seus dispositivos de som atuais é aqui em '/ proc / asound /'. Se você não tiver um arquivo de configuração, os aplicativos ALSA usarão / proc / asound / card0 como o dispositivo de som padrão. Você pode verificar o que verison de ALSA você está correndo aqui '/ proc / asound / version'.
Cada dispositivo de som tem um monte de 'pcms' associados a ele. Cada pcm é basicamente um canal de saída: "front", "rear", "surround41", "surround51", etc. Você pode ver quais canais pcm estão disponíveis usando este comando:
aplay -L | grep CARD
Alguns desses canais pcm não correspondem a saídas de áudio físicas, mas são canais de software fornecidos pela ALSA. O que nos interessa é chamado 'dmix'. O canal 'dmix' é um mixer de software fornecido pela ALSA para lidar com vários fluxos de entrada simultâneos.
Uma coisa a notar é o uso de várias convenções para identificar um determinado dispositivo de som. O arquivo de configuração usará card0, card1, etc ou simplesmente 0, 1, etc. Também é possível fazer referência ao cartão pelo nome, como Creative, Nvidia, etc. Esses nomes são definidos como links no diretório proc do ALSA: 'ls -l / proc / asound'. Normalmente, ao se referir a um canal PCM no arquivo de configuração, o formato é o seguinte: "channel-name: card-index, sub-index". Assim, por exemplo, "dmix: 2,0" refere-se ao canal dmix pcm na placa 2, sub-dispositivo 0. Você vê os sub-dispositivos associados a cada placa de som usando este comando:
aplay -l
A etapa final é o próprio arquivo de configuração, localizado aqui '/etc/asound.conf'. Precisamos de 2 componentes neste arquivo, uma definição de canal 'pcm' e uma definição de canal 'ctl'. O canal 'pcm' define nossa saída e é responsável por multiplexar vários fluxos de som em um único canal de saída de hardware. O canal 'ctl' é usado para o mixer e é responsável pelo controle de volume.
O ALSA usa um canal pcm de software chamado 'plug', que lida com a multiplexação. É um front-end de software para um canal de saída pcm escravo. O canal de saída pcm escravo deve ser capaz de se misturar. Um exemplo de arquivo de configuração é o seguinte:
pcm.custom
{
type plug
slave
{
pcm "dmix:2,0"
}
}
ctl.custom
{
type hw
card Creative
}
pcm.!default pcm.custom
ctl.!default ctl.custom
Neste caso, estou usando o canal de saída 'dmix' para o terceiro dispositivo de som no sistema "dmix: 2,0". O terceiro índice é 2 porque começa em 0 (card0, card1, card2). Além disso, o esquema "ctl" faz referência ao mesmo cartão, mas desta vez usando o nome vinculado "Criativo".
Espero que isso seja útil para os outros.