Alsa Surround 5.1 + DMix + AlsaEqual

Nessa dica, vou mostrar como usar ALSA em Surround 5.1, com DMix, e AlsaEqual, não pretendo entrar muito em detalhes.

Primeiro vamos instalar o que precisamos, no ArchLinux rode os comandos abaixo:
pacman --needed -S alsa-lib alsa-plugins alsa-utils
## necessário yaourt
yaourt -S alsaequal alsaequal-mgr caps
## usuários x86_64
yaourt -S alsaequal lib32-alsaequal alsaequal-mgr caps
Depois vamos as configurações, toda configuração do ALSA nesse tutorial será feita no arquivo ~/.asoundrc, no final do post colocarei o meu arquivo completo.
Vamos começar com Dmix + Surround 5.1, abaixo a configuração:
pcm.snd_card {

type hw

card 0

}



pcm.dmix6 {

type dmix

ipc_key 1024

ipc_key_add_uid false # let multiple users share

ipc_perm 0660   # IPC permissions (octal, default 0600)

slave {

pcm snd_card

rate 48000

channels 6

period_time 0

period_size 1024

buffer_time 0

buffer_size 5120

}

}



pcm.ch51dup {

type route

slave.pcm dmix6

slave.channels 6

ttable.0.0 1

ttable.1.1 1

ttable.0.2 1

ttable.1.3 1

ttable.0.4 0.5

ttable.1.4 0.5

ttable.0.5 0.5

ttable.1.5 0.5

}



pcm.duplex {

type asym

playback.pcm "ch51dup"

# playback.pcm "dmix6"  # just pass to 6 channel dmix

# capture.pcm "dsnoop:0"  # doesn't work for me

capture.pcm "snd_card"

}



pcm.!default {

type plug

slave.pcm "duplex"

}

Como o DMix não suporta reproduzir sobre o plugin "pcm" somente "hw", foi preciso algumas linhas a mais...
Depois configuramos o AlsaEqual:
ctl.equal {

type equal;

}



pcm.plugequal {

type equal;

# Modify the line below if you do not

# want to use sound card 0.

#slave.pcm "plughw:0,0";

#by default we want to play from more sources at time:

slave.pcm "plug:duplex";

}



pcm.equal {

# Or if you want the equalizer to be your

# default soundcard uncomment the following

# line and comment the above line.

#pcm.!default {

type plug;

slave.pcm plugequal;

}

Esse é muito simples.

Nota: Nesse caso o "equal" não está como padrão, sendo necessário a aplicação especificar que vai usar o "equal" veremos isso mais abaixo.
Dessa Maneira sempre que abrir uma aplicação/programa ele irá usar o DMix, assim você vai poder reproduzir vários streams ao mesmo tempo, sendo assim quem precisa de PulseAudio ? :D
Abaixo vou listar a configuração de algumas aplicações para usar AlsaEqual.

Audacious:

Preferências→Áudio→Plugin de Saída: Saída do Alsa
Feche o Audacious, e edite o arquivo ~/.config/audacious/config
No final do arquivo Adicione (caso já tenha "[alsa]", substitua):
[alsa]

pcm=equal

mixer-element=Master

BMP(Beep-Media-Player):

Preferências→Plugins→Saída→Plugin de saída de atual: Plugin de saída ALSA 0.9.x.x
Preferências→Dispositivo de áudio: "equal" sem aspas→Checar "Usar controle de volume por software"

Mplayer/SMPlayer:

MPlayer
Editar/criar Arquivo ~/.mplayer/config
ao=alsa:device=equal

channels=6

SMPlayer
Opções→Preferências→Geral→Áudio→Definido pelo utilizador...:"alsa:device=equal", sem aspas→Canais por padrão: 6 (5.1 Surround)
Como prometido meu .asoundrc completo:
pcm.snd_card {

type hw

card 0

}



pcm.dmix6 {

type dmix

ipc_key 1024

ipc_key_add_uid false # let multiple users share

ipc_perm 0660   # IPC permissions (octal, default 0600)

slave {

pcm snd_card

rate 48000

channels 6

period_time 0

period_size 1024

buffer_time 0

buffer_size 5120

}

}



pcm.ch51dup {

type route

slave.pcm dmix6

slave.channels 6

ttable.0.0 1

ttable.1.1 1

ttable.0.2 1

ttable.1.3 1

ttable.0.4 0.5

ttable.1.4 0.5

ttable.0.5 0.5

ttable.1.5 0.5

}



pcm.duplex {

type asym

playback.pcm "ch51dup"

# playback.pcm "dmix6"  # just pass to 6 channel dmix

# capture.pcm "dsnoop:0"  # doesn't work for me

capture.pcm "snd_card"

}



ctl.equal {

type equal;

}



pcm.plugequal {

type equal;

# Modify the line below if you do not

# want to use sound card 0.

#slave.pcm "plughw:0,0";

#by default we want to play from more sources at time:

slave.pcm "plug:duplex";

}



pcm.equal {

# Or if you want the equalizer to be your

# default soundcard uncomment the following

# line and comment the above line.

#pcm.!default {

type plug;

slave.pcm plugequal;

}



pcm.!default {

type plug

slave.pcm "duplex"

}

Compartilhe no:

Dono do blog e Autor.
Possui conhecimento em diversos assuntos, ensina coisas e apresenta soluções através dos problemas que ele mesmo se depara em seu desktop e na Web.

Devido sua rotina não tem tempo para o blog mas sempre que possivel publica post unicos e exclusivos

1 Resposta em "Alsa Surround 5.1 + DMix + AlsaEqual"

  1. Blog...

    A person necessarily assist to make significantly articles I might state. That is the first time I frequented your web page and to this point? I surprised with the analysis you made to create this particular put up incredible. Great activity!...

    ResponderExcluir

Eu espero que voce...

1. Comente com moderação.
2. Sugira ou Opine.
3. Divulgue.