Hace unos dias descubrí por casualidad un articulo de badopi que explicaba como reproducir sonidos simultaneamente (e.g. escuchar los avisos de Gaim mientras escuchas tu mp3 favorito con XMMS) con los drivers de sonido
Para comenzar simplemente recomendar que utiliceis los drivers ALSA para vuestras targetas de sonido ya que como muchos sabreis estos ya vendran incorporados en los nuevos kernels 2.6.x, y si encima podemos conseguir escuchar varios sonidos simultaneamente a nivel de drivers pues mucho mejor.
Por lo visto el termino Full Duplex no engloba segun ALSA la habilidad de reproduccion de sonidos simultaneos, sino simplemente la capacidad de poder reproducir sonidos y grabar a la vez. En cambio, la reproduccion de sonidos es denominada Direct Mixing.
Por defecto el Full Duplex viene activado, pero no se por que motivo el Direct Mixing no. Para activarlo/configurarlo es tan sencillo como crear un archivo llamado “.asoundrc” en nuestro directorio de usuario (e.g. /home/usuario/.asoundrc) con el siguiente contenido:
# ~/.asoundrc # Everything shall be dmixed, so redefine "default": pcm.!default { type plug slave.pcm "ossmix" } # OSS via aoss should d(mix)stroyed: pcm.dsp0 { type plug slave.pcm "ossmix" } # our ICE1712 dmix: pcm.ossmix { type dmix ipc_key 1024 slave { pcm "hw:0,0" period_time 0 period_size 1024 buffer_size 4096 # buffer size < 6653, but pow(x, 2) rate 44100 # we want to play CDs only } bindings { 0 0 1 1 } }
Si quereis saber que hace concretamente estas lineas podeis consultar este artículo de ALSA.
Solo con esto estais permitiendo que todas las aplicaciones que soporten ALSA (ya que la utilización de este es diferente a los drivers OSS tradicionales) puedan reproducir sonido simultaneamente. Sin ir mas lejos xmms tiene un plugin para poder utilizar ALSA.
Personalmente, usuario de gnome, lo que hago es aprovechar que ESD (eSound) tiene soporte de ALSA y activarlo. Entonces puedo reproducir simultaneamente todas aquellas aplicaciones que tienen soporte o de ESD o de ALSA, por ejemplo, con gaim puedo hacer que use ESD y el xmms que use ALSA y conseguir el efecto deseado.
Como nota final solo indicar que para usuarios de Gentoo, la instalación de drivers ALSA se puede realizar facilmente siguiendo este tutorial. Y para poder tener todas las aplicaciones que implementen el soporte ALSA activo, se debe cambiar la variable USE (/etc/make.conf) para que contenga "alsa" y "esd" en caso que tb queramos soporte para eSound. Recomendaria el uso de "ufed" para realizar cambios en la variable USE (emerge ufed).
Esto es todo, espero que todos podais reproducir varios sonidos a partir de ahora facilmente y sin problemas 🙂
Autor: marble
Puedes poner el fichero asoundrc en /etc/asoundrc para que esta configuración afecte a todo el sistema… tal y como se dice aquí. (Me encanta juntar 2 páginas que hablan de los mismo xDD
)
Creo l’arxiu, li dic al xmms que faci servir ossmix i em diu el següent:
xmms: pcm.c:2480: snd_pcm_hw_params_can_pause: La declaración `params && params->info != ~0U' no se cumple.
Abortado
I re, que se’n va a fer punyetes! O_o ELs drivers alsa els vaig compilar jo… podria ser que m’hagues deixat alguna cosa al fer el ./configure! M’ho miraré.
També podria ser que la meva sound blaster 16 no ho soportés… (te uns quants anys).
—
Edgar Salgado (mengor)
GnuPG: 1EFA19EE
Com indiques a l’XMMS?? Existeis un plugin alsa-xmms que només l’has de seleccionar (evidentment ha d’estar instal·lat) com a sortida d’audio i res més. Igual si vols utilizar ESD.
Amm! Jo em pensava que ho havia d’indicar, que en comptes de fer servir “default” fes servir “ossmix”, però ja he vist que a l’arxiu de configuració, “default” apunta a “ossmix”…
Doncs amb default si que em funciona el so del xmms, però no he provat programes simultanis amb alsa. 🙂
—
Edgar Salgado (mengor)
GnuPG: 1EFA19EE
Per cert, com es configura l’esd perque funcioni amb alsa? És l’unic que falta… 🙂
—
Edgar Salgado (mengor)
GnuPG: 1EFA19EE
marble@luna ~ $ cat /etc/esd/esd.conf
[esd]
auto_spawn=1
spawn_options=-d ossmix -terminate -nobeeps -as 2
spawn_wait_ms=100
Només vaig afegir el “-d ossmix”. ESD ha de tindre suport ALSA tb, eh? Per comprobar-ho:
marble@luna ~ $ ldd /usr/bin/esd|grep asound
libasound.so.2 => /usr/lib/libasound.so.2 (0x4005c000)
Si et surt aquesta linea, perfecte 🙂
Ja fa temps que m’estic barallant amb el so per poder mesclar-los, i aquest article m’ha aportat una mica de llum, tot i així no em funciona ni cap enrera [traducció de “ni pa’tras”]. Tinc l’alsa compilat amb tots els moduls que he trobat i tal i pascual i funciona, pero no em mescla res de res, només un programa pot accedir a la tarja, he mirat i remirat tota la doc que he trobat, la oficial d’alsa no és gens clara per cert. Algú intueix per que no mescla? tinc una SB 64 PCI [Ensoniq ES1371] i uso el mòdul snd_ens1371, amb el oss-mixer i tota la pesca [n’hi han uns quants].
Sobre la configuració d’esd, en debian esta a /etc/esound/esd.conf, però no en fa cas [tinc la opció nobeep i continua sonant quant l’engego, amb “esd -nobeep” des del terminal no sona el beep inicial].
També m’emprenya que cada cop que engego l’ordenador, la mescaldora esta tota a volumns mínims i cada cop els he de pujar manualment…
Fent alsaconf [una utilitat de debian], diu que no troba cap tarja PnP.
Alguna idea?
— Utopic
In a world without walls,
who needs gates and windows?
http://www.gnu.org
El meu germà te la mateixa tarja que tu i li he configurat igual que a tots els meus PCs, es a dir, com dic a l’article i comentaris. Si el teu esd ignora la configuració de l’/etc millor prova a executar-ho tu mateix amb els paràmetres que hi han a l’arxiu de configuració (que he indicat en un altre comentari meu).
Has de tenir instalat alsa-base i executes ” # dpkg-reconfigure alsa-base” i llavors selecciones la teva tarjeta de so 🙂
Ara cada cop que reinicies se’t guarda i carrega la configuració del mesclador.
Per cert, jo l’alsaconf no el tinc instalat, no se que és, però no el trobo pas a faltar 😉
Jo com que he conseguit la mescla amb el esd, doncs no em liaré més amb l’alsa perque el esd no està linkat (ldd /usr/bin/esd|grep asound no em dona cap resposta :(). Ja en tinc prou amb això. Ademés no estic segur que la Sound Blaster 16 que tinc sigui capaç de fer-ho… jeje
—
Edgar Salgado (mengor)
GnuPG: 1EFA19EE
Ho tens tot per ESD… la qualitat no es massa bona tinc entès, ho notes al mesclar sons, que sona pitjor?
Ara mateix acabo de trovar un altre gran article d’aquest mateix tema a badopi.
http://www.badopi.org/node/view/325
A més, em fa gràcia perque sortim referenciats en la paraula sectaris, amb l’article de’n davidcg xDD
Si que ho noto, però bueno, tampoc passa res, ja que fins ara només escoltava una cosa a la vegada i els sons que sonen malament son les notificacions (gaim, gnome…).
Quan tingui una targeta que ho soporti ho activo 🙂
—
Edgar Salgado (mengor)
GnuPG: 1EFA19EE
¿Como haces para utilizar el gaim?, por ejemplo.
Yo tengo en /etc/libao.conf y ~/.libao puesto default_driver=alsa y puesto el sonido en automático como dicen en la FAQ de Gaim y no me coge alsa :-/, ¿como activas el soporte de ALSA que ESD ofrece?
PD:perdona mi ignoracia, pero es que me he decidido a empezar con Debian y sólo llevo dos días como aquel que dice.También estuve mirando la opción de realizar guion con skeleton para el demonio ESD pero creo que la tuya es mejor.