Valkertown Home

2006-02-15-alsa-51

Bueno, hace algún tiempo me pagaron un pequeño trabajo con la compra de una SounBlaster Live 24bits 7.1 y hasta hace muy poco núnca pase de hacerle funcionar en mi GNU/Linux con dos canales.

Recientemente decidi que debia utilizarla completamente y compre un pequeño juego de sonido 5.1.

Para hacer funcionar todos los canles con ALSA resulto algo cercado a trivial solo que es tan tonto que no se espera:

`

$aplay -Dplug:surround51 archivo_de_6_canales.wav

`

Encontre algunos WAV de 6 Canales con los que probar y todo va de maravilla hasta este punto.

Pero existe un grave problema!! el 99.9% de mis Mp3/Ogg/FLAC/MUSE son de dos canales exceptuando algunas canciones que Herulor me paso (Sailormoon PST Versión Español, Con P de pirata).

Para solucionar este condenado problema, pues solo sonaban los tweeters del frente rebusque la documentación de ALSA, esto me enseño bastante aunqe al final me dejo algo frustrado en algunos aspectos.

Como mi idea es hacer el post breve, my .asoundrc quedo:

`

  1 pcm.dmix_front{

  2  type dmix

  3  ipc_key 1024

  4  slave.pcm front

  5  slave.channels 2

  6 }

  7 pcm.dmix_rear{

  8  type dmix

  9  ipc_key 1025

 10  slave.pcm rear

 11  slave.channels 2

 12 }

 13 pcm.dmix_center{

 14  type dmix

 15  ipc_key 1026

 16  slave.pcm center_lfe

 17  slave.channels 2

 18 }

 19 pcm.dmix_side{

 20  type dmix

 21  ipc_key 1027

 22  slave.pcm side

 23  slave.channels 2

 24 }

 25 pcm.dmix51_a{

 26 type multi;

 27     slaves.a.pcm "dmix_front";

 28     slaves.a.channels 2;

 29     slaves.b.pcm "dmix_rear";

 30     slaves.b.channels 2;

 31     slaves.c.pcm "dmix_center";

 32     slaves.c.channels 2;

 33     bindings.0.slave a;

 34     bindings.0.channel 0;

 35     bindings.1.slave a;

 36     bindings.1.channel 1;

 37     bindings.2.slave b;

 38     bindings.2.channel 0;

 39     bindings.3.slave b;

 40     bindings.3.channel 1;

 41     bindings.4.slave c;

 42     bindings.4.channel 0;

 43     bindings.5.slave c;

 44     bindings.5.channel 1;

 46 pcm.!default {

 47     type plug

 48     slave.pcm plug:surround51

 49     slave.channels 6

 50     route_policy duplicate

 51 }

`

Bien, si que quiere fijar un poco en el archivo para lograr el efecto deseado solo hacen falta las lineas 46-51, sin embargo en el trancurso de la creación de ese archivo descubri como hacer mezclas de dos clases:

Mezcla(Mixing): Se utiliza el plugin dmix y permite que varios programas utilicen el mismo dispositivo de sonido al tiempo y el se encarga de hacer la mezcla. Usualmente esto me resulta molesto pero queria probar si se podia.

Mexcla de Canales o TSonido(Multi): Este es una propiedad de alsa bastante interesante, con esto se pueden simular dispositivos de un numero de canales igual a la suma de todos los canales disponibles en TODAS las tarjetas de sonido disponibles. Con esto no hace falta tener una tarjeta 4.0,5.1,7.1 bastaria con aprovechar las tarjetas de sonido adicionales con las que se cuente. En mi archivo queria hacer un mega-dispositivo que pudiese tener full surround y Mixing, pero alsa se quejo de mi configuración. Google dice que es posible pero mi ALSA dice que no, cuando recompile todo lo relacionado lo volvere a intentar.

Eso es todo y va para el log.

EOT

comments powered by Disqus

© 2008-2012 Carlos A. Perilla deepspawn at valkertown dot org | Based on original design by Andreas Viklund