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