Advanced Linux Sound Architecture/Example Configurations (Português)
Este artigo deve servir como um guia para configurações mais avançadas do ALSA. A configuração fica armazenada em /etc/asound.conf como mencionado no artigo principal. Nenhuma das configurações abaixo tem a garantia de funcionar.
Upmixagem de fontes stereo para 7.1 usando dmix enquanto fontes saturadas não fican upmixadas
# 2008-11-15
#
# Esse .asoundrc vai permitir o seguinte:
#
# - upmix com arquivos stereo para alto-falantes 7.1.
# - reproduzir sons em 7.1 real, em alto-falantes 7.1,
# - permitir a reprodução de ambas fontes stereo(upmixado) e surround(7.1) ao mesmo tempo
# - usar o 6º e 7º canal (alto-falantes laterais) como uma placa de som separada, i,e, para fones de ouvido
# (Isso é chamado de saída "alternativa" ao longo deste arquivo, nomes de dispositivos prefixados com 'a')
# - reproduz fontes mono em stereo (como skype & ekiga) na saída alternativa
#
# Certifique-se de ter "8 Channels" e NÃO "6 Channels" selecionado no alsamixer!
#
# Por favor tente os seguintes comandos, para se certificar que tudo está funcionado como deveria.
#
# Testar upmix stereo: speaker-test -c2 -Ddefault -twav
# Testar surround(5.1): speaker-test -c6 -Dplug:dmix6 -twav
# Testar surround(7.1): speaker-test -c6 -Dplug:dmix8 -twav
# Testar saída alternativa: speaker-test -c2 -Daduplex -twav
# Testar upmix mono: speaker-test -c1 -Dmonoduplex -twav
#
#
# Ele pode não funcionar sem uma configuração manual para todas as placas. Se não funcionar para você, leia
# os comentários ao longo deste arquivo.
# A base deste arquivo foi escrito por wishie de #alsa e, então, modificado com as informações de várias fontes
# por squisher. Svenstaro modificou-o para suporte a saída 7.1.
# Defina a placa de som para usar
pcm.snd_card {
type hw
card 0
device 0
}
# dmix de 8 canal - saída de qualquer áudio, para todos os 8 alto-faltantes
pcm.dmix8 {
type dmix
ipc_key 1024
ipc_key_add_uid false
ipc_perm 0660
slave {
pcm "snd_card"
rate 48000
channels 8
period_time 0
period_size 1024
buffer_time 0
buffer_size 5120
}
# Algumas placas, como as variantes "nforce" exigem que o seguinte seja descomentado.
# Ele roteia o áudio para os alto-falantes corretos.
# bindings {
# 0 0
# 1 1
# 2 4
# 3 5
# 4 2
# 5 3
# 6 6
# 7 7
# }
}
# upmixing - duplica dados stereo para todos os 8 canais
pcm.ch71dup {
type route
slave.pcm dmix8
slave.channels 8
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
ttable.0.6 1
ttable.1.7 1
}
# isso cria uma placa de som de seis canais
# e emite para o oitavo canal
# i.e. para uso de mplayer, tive que definir em ~/.mplayer/config:
# ao=alsa:device=dmix6
# channels=6
pcm.dmix6 {
type route
slave.pcm dmix8
slave.channels 8
ttable.0.0 1
ttable.1.1 1
ttable.2.2 1
ttable.3.3 1
ttable.4.4 1
ttable.5.5 1
ttable.6.6 1
ttable.7.7 1
}
# compartilha o microfone, i.e. porque virtualbox pega-o por padrão
pcm.microphone {
type dsnoop
ipc_key 1027
slave {
pcm "snd_card"
}
}
# taxa de conversão, necessário para i.e. wine
pcm.2chplug {
type plug
slave.pcm "ch71dup"
}
pcm.a2chplug {
type plug
slave.pcm "dmix8"
}
# roteia o canal para a alternativa
# saída de 2 canais que se torna o 7º e 8º canal
# na placa de som real
#pcm.alt2ch {
# type route
# slave.pcm "a2chplug"
# slave.channels 8
# ttable.0.6 1
# ttable.1.7 1
#}
# skype e ekiga são apenas mono, então roteia canal esquerdo para o canal direito
# nota: isso roteia 2 canais para a alternativa
pcm.mono_playback {
type route
slave.pcm "a2chplug"
slave.channels 8
# Envia canal 0 do Skype para os alto-falantes L e R no volume máximo
#ttable.0.6 1
#ttable.0.7 1
}
# dispositivo "full-duplex" para uso com aoss
pcm.duplex {
type asym
playback.pcm "2chplug"
capture.pcm "microphone"
}
#pcm.aduplex {
# type asym
# playback.pcm "alt2ch"
# capture.pcm "microphone"
#}
pcm.monoduplex {
type asym
playback.pcm "mono_playback"
capture.pcm "microphone"
}
# para aoss
pcm.dsp0 "duplex"
ctl.mixer0 "duplex"
# softvol gerencia volume no alsa
# i.e. wine gosta disso
pcm.mainvol {
type softvol
slave.pcm "duplex"
control {
name "2ch-Upmix Master"
card 0
}
}
#pcm.!default "mainvol"
# define o dispositivo padrão de acordo com o ambiente
# variável ALSA_DEFAULT_PCM e padrão para mainvol
pcm.!default {
@func refer
name { @func concat
strings [ "pcm."
{ @func getenv
vars [ ALSA_DEFAULT_PCM ]
default "mainvol"
}
]
}
}
# descomente o seguinte se você deseja ser capaz de controlar
# o dispositivo mixador também por meio de variáveis de ambiente
#ctl.!default {
# @func refer
# name { @func concat
# strings [ "ctl."
# { @func getenv
# vars [ ALSA_DEFAULT_CTL
# ALSA_DEFAULT_PCM
# ]
# default "duplex"
# }
# ]
# }
#}
Surround51 incl. stereo de upmix & dmix, troca L/R, alto-falante em posição ruim na sala
Prática ruim, mas funciona bem para a quase tudo sem personalização adicional per-programa/arquivo:
pcm.!default {
type route
## encaminha para mixer pcm definido abaixo
slave.pcm dmix51
slave.channels 6
## "Canais Nativos" stereo, troca esquerda/direita
ttable.0.1 1
ttable.1.0 1
## esquerda/direita original comentada
# ttable.0.0 1
# ttable.1.1 1
## rota "surround nativo" de forma que ele ainda funcione, mas com sinal
## mais fraco (+ troca RL/RF), porque meus alto-falantes traseiros são
## mais aleatórios do que realmente atrás de mim
ttable.2.3 0.7
ttable.3.2 0.7
ttable.4.4 0.7
ttable.5.5 0.7
## stereo => "upmix" de quatro alto-falantes para alto-falantes "traseiros" + troca L/R
ttable.0.3 1
ttable.1.2 1
## stereo L+R => junta ao Centro & Subwoofer 50%/50%
ttable.0.4 0.5
ttable.1.4 0.5
ttable.0.5 0.5
ttable.1.5 0.5
## para testar: "$ speaker-test -c6 -twav" e: "$ speaker-test -c2 -twav"
}
pcm.dmix51 {
type dmix
ipc_key 1024
# deixe múltiplos usuários compartilhar
ipc_key_add_uid false
# permissões IPC (octal, padrão 0600)
# acho que alterar isso corrigiu algo - mas não tenho certeza do quê.
ipc_perm 0660 #
slave {
## isso é específico para meu hda_intel. Geralmente hd:0 já está bom; Para localizar: $ aplay -L
pcm surround51
# essa taxa faz minha placa de som crepitar
# rate 44100
# essa taxa evita flash o firefox de reproduzir som, mas eu não preciso disso
rate 48000
channels 6
## Quaisquer outros valores nas 4 linhas abaixo parecem fazer minha placa de som crepitar também
period_time 0
period_size 1024
buffer_time 0
buffer_size 4096
}
}