Bueno... no es que sea un gurú ni nada por el estilo, pero más o menos esto es lo que sé:
En un principio (Linux 2,0) el donido era algo impensable en el kernel Linux. Entonces empezaron a aparecer algunos drivers aislados para Sb16 o GUS. Cuando la gente empezó a usar Slakware y se hizo la cosa popular, la demanda de sonido fue más evidente y un grupo de personas creo la Open Sound System. Principalmente se trataba de una interfaz que debían cumplir los módulos de sonido. Utilizarían los dispositivos /dev/dsp para el PCM, /dev/seq para el MIDI y /dev/mixer para la mezcladora. Los dispositivos se numerarían como /dev/dsp0, /dev/dsp1 para la siguiente tarjeta, etc. Un enlace dinámico seleccionaría los dispositivos de la tarjeta por defecto a usar. Con el crecimiento de Linux creció la demanda de un sistema de audio de más calidad. Es ahí donde surge la Advanced Linux Sound Architecture. Ahora los drivers se reestructuran completamente y el sistema de audio se vuelve completamente configurable y flexible. La idea es que ALSA reemplace al obsoleto OSS. De hecho ALSA ofrece unos módulos que emulan OSS dentro de ALSA (creando los mencionados /dev/dsp, etc.) El acceso a los recursos con ALSA puede o no hacerse de forma exclusiva. Permite el acceso directo a los módulos de la tarjeta de sonido (que cumplen una interfaz común) o permite un acceso a mayor nivel (que es el recomendado y no-exclusivo) mediante ALSALIB. Tanto OSS como ALSA se tratan de sistemas de audio de bajo nivel, esto es: controladores de dispositivos. Por encima de estos sistemas se puede colocar una capa software que facilite y amplíe la funcionalidad del audio: los demonios de sonido. Demonios de sonido tenemos un montón: pulseaudio, jackd, esd... estos demonios son una capa software capaz de ofrecer funcionalidad extra. Por ejemplo, esd permite desvíar el audio de un equipo a otro mediante TCP/IP. Si te conctas mediante SSH a una aplicación de sonido, el audio "suena" en el equipo remoto, sin embargo con ESD se desvía a tu propia terminal y se oye ahí (evidentemente ambos equipos deben tener ESD instalado). Jackd parece ser uno de los mejores demonios de sonido. Una de sus ventajas es que permite asociar gráficamente "entradas" con "salidas". Cada aplicación que reproduce sonido aparece como una "fuente de audio" que nosotros podemos conectar con cualquier "canal de entrada", que puede ser un dispositivo físico o alguna aplicación que "acepte" audio. Además mejora la latencia del audio en general. En cuanto a la pregunta concreta de "porqué a veces varias aplicaciones se oyen a la vez y a veces no", ya lo comenté antes: si usan ALSALIB y no requieren acceso único al hardware, ALSA mezclará el audio de ambas y oiréis a ambas (el mezclado se hace por HW siempre que sea posible). Si no usan ALSALIB puede que realicen un acceso exclusivo al HW por tanto sólo una se oirá. Por otra parte, si dos aplicaciones hacen uso de la emulación de OSS que ofrece ALSA, una de ellas se bloqueará puesto que OSS nunca permitió más de una aplicación haciendo uso del sonido. Espero que os haya ayudado en algo y otra cosa... esto es lo que yo sé... pero también podría estar equivocado... Un saludo! On Thu, 09 Sep 2010 16:57:07 +0200 Ignacio Diez Arias <[email protected]> wrote: > Hola a todos. Vengo con una duda sobre el sistema de sonido > que seguramente acabe desatando un flame sobre la vida sexual de los > pitufos. :D No tengo NPI de cómo se maneja el sonido en GNU/Linux (de > ahora en adelante, "linux", pero sólo por abreviar), así que > agradecería cierta indulgencia en las respuestas. > > Según tengo entendido, y corregidme si me equivoco, ALSA se > desarrolló para tener un sistema de sonido estándar para linux, y que > fuera capaz de mezclar el audio de varias aplicaciones y por tanto, > se pudieran "oir varias cosas a la vez". > Sin embargo, me sigue pasando que hay aplicaciones que > monopolizan la tarjeta de sonido, impidiendo que otras aplicaciones > reproduzcan o graben audio. > > Me gustaría saber dos cosas: primero, por qué pasa esto; y > segundo, por qué existen también OSS y JACK y qué diferencias hay > entre los tres. > > Estoy leyendo cosas al respecto, pero me gustaría > complementarlas con vuestros comentarios. > > _______________________________________________ > CRySoL mailing list > http://crysol.inf-cr.uclm.es/ > https://arco.inf-cr.uclm.es/cgi-bin/mailman/listinfo/crysol _______________________________________________ CRySoL mailing list http://crysol.inf-cr.uclm.es/ https://arco.inf-cr.uclm.es/cgi-bin/mailman/listinfo/crysol
