Como configurar o ALSA?

5

Depois de mudar de Unity para XFCE, tive dificuldades com minha configuração de som. Eu tenho várias placas de som no meu sistema, a que eu quero usar é a última a ser carregada pelo kernel. ALSA parece estar usando o primeiro por padrão.

Além disso, não consigo usar som em mais de um aplicativo ao mesmo tempo, recebo erros como "dispositivo de som em uso" etc. Alguém pode me fornecer algumas dicas sobre a arquitetura do ALSA, as ferramentas que preciso usar para para investigar o sistema e conselhos sobre como estruturar o arquivo de configuração.

    
por Gearoid Murphy 14.11.2011 / 14:49

1 resposta

12

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.

    
por 14.11.2011 / 15:37