Me puse a escuchar musica en amarok mientras escuchaba pensaba ¿por que se escuchara peor que en windows? viendo los wikis de alsa y con la ayuda de un amigo(gracias jano(en el foro esta como kooler)).
Primero alsa resamplea todo a 48khz, como la mayoria de estas tarjetas son ac97 no hay problema, lo malo es que la conversion a 48 khz es de pesima calidad, esta se hace a muy rapidamente para no dejar lento el sistema o bloquear el servidor de audio, para mejorar esto hay que bypasear los filtros alsa, con esto pasa directamente al kernel y los resultados son buenisimos, el filtro que ocupa el alsa para resamplear se llama dmix, ese es el filtro que hay que saltarse, ahora aca los pasos para saltarse el filtro:
1.-Buscar un archivo llamado .asoundrc en la carpeta /home/~user/ si no aparece primero antes que nada se ejecuta asoundconf list

la salida indica que tengo una nvidia ck804 que es una realteck ac97.
Ahora procederemos a crear el archivo (todo esto se hace como usuario normal nunca como root o con el comando sudo) con el siguiente comando:
asoundconf set-default-card CK804 con este comando creamos el archivo .asoundrc que es donde pegaremos la configuracion.
Ahora procedemos a editar .asoundrc y agregamos lo siguiente al final del archivo.
pcm.!default {
type hw
card 0
}
ctl.!default {
type hw
card 0
}
ejemplo:
Ahora a reiniciar el desktop-manager ( osea gnome kde xfce lo que se tenga instalado) y ya tendra sonido directamente sin dmix.
Mas info en :
ALSA project - the C library reference: PCM (digital audio) plugins
Main Page - ALSA wiki
Para los que al hacer el tip de audio reproducen un solo sonido a la vez
lo saque de una configuracion 5.1 y hasta el momento es la que mejor se ha portado.
Code:
pcm.snd_card {
type hw
card 0 # change to your cards number or name
}
# 6 channel dmix:
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 # see below
rate 48000
channels 6
period_time 0
period_size 1024 # try 2048 against skipping
buffer_time 0
buffer_size 5120 # in case of problems reduce this
# in case of skipping, try increasing
}
}
sonido 4.1 por mi
Code:
pcm.ca0106 {
type hw
card 0
}
ctl.ca0106 {
type hw
card 0
}
pcm.ch41dup { # Reproducción 4.1
type route
slave.pcm surround41
slave.channels 5
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
}
sonido 5.1 por kooler
Code:
pcm.!default {
type plug
slave {
pcm "surround51"
format "unchanged"
rate 48000
}
route_policy duplicate
}
sonido 5.1 por mi
Code:
pcm.snd_card {
type hw
card 0 # change to your cards number or name
}
# 6 channel dmix:
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 # see below
rate 48000
channels 6
period_time 0
period_size 1024 # try 2048 against skipping
buffer_time 0
buffer_size 5120 # in case of problems reduce this
# in case of skipping, try increasing
}
}
# upmixing:
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" # upmix first
# playback.pcm "dmix6" # just pass to 6 channel dmix
# capture.pcm "dsnoop:0" # doesn't work for me
capture.pcm "snd_card"
}
# change default device:
pcm.!default {
type plug
slave.pcm "duplex"
}
sonido 5.1 de la pagina que puso marcel era parecido el script pero no igual
Code:
# 6 channel dmix:
pcm.dmix6 {
type dmix
ipc_key 1024
ipc_key_add_uid false
ipc_perm 0660
slave {
pcm "hw:0,1"
rate 48000
channels 6
period_time 0
period_size 1024
buffer_time 0
buffer_size 5120
}
}
# upmixing:
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" # upmix first
capture.pcm "hw:0"
}
# change default device:
pcm.!default {
type softvol
slave.pcm "duplex"
control {
name "Software Master"
card 0
}
}
Aporte de Oscagriff
Code:
pcm.!default {
type hw
card 0
}
ctl.!default {
type hw
card 0
}
slave {
pcm "hw:0,0"
period_time 0
buffer_time 0
period_size 2048 # jm: much smoother than 1024/8192!
buffer_size 32768
rate 44100
}