Las distribuciones de Linux más populares se están estandarizando respecto al manejo de audio a través de un componente llamado PulseAudio. Se trata de la última encarnación de una funcionalidad muy antigua para soportar que múltiples aplicaciones compartieran un único dispositivo de audio, los famosos servidores de audio.
Si bien estos servidores antes se centraban sólo en compartir el dispositivo de audio entre varias aplicaciones, hoy en día existen muchas formas de usar el audio y con la avalancha de dispositivos enchufables como parlantes USB o audífonos bluetooth, estas soluciones se quedaban cortas.
Con Ear Candy se comienzan a ver los primeros frutos de usar como base un servidor de audio moderno como PulseAudio. Su principal característica es manejar en forma inteligente lo que el usuario está escuchando. Por ejemplo si estás viendo un video y recibes una llamada por Skype, el audio del video se reducirá para que pongas atención en la llamada. O bien si estás escuchando música y abres un video en Youtube, la música se detendrá automáticamente para darle prioridad al video que quieres ver.
Favoreciendo la usabilidad, Ear Candy no es un programa con millones de opciones para modificar, sino que simplemente lo ejecutas y te olvidas de él. Sólamente lo recordarás cuando automáticamente aparezca para hacer su trabajo, antes de que por hábito muevas el mouse para detener esa canción de fondo.
En su última versión incluso no es necesario indicarle cómo debe manejar las aplicaciones, gracias a la estandarización que existe en Linux para entregar información acerca de las aplicaciones al entorno de escritorio – qué es la misma que se usa para construir el menú organizado por categorías – EarCandy es capaz de analizar la descripción de cada aplicación para detectar qué hace y actuar en consecuencia.
Si bien ya es usable y estable, EarCandy aún se considera en estado Alpha y no hay paquetes para usuarios finales. Aquellos con alma de pionero pueden descargarlo directamente desde el repositorio bzr de EarCandy.
El manejo de audio en Linux siempre ha sido un tema bastante conflctivo, el estado actual es notablemente superior a lo que existía hace un par de años atrás, pero aún a veces aparecen pesadillas del pasado.
Existen al menos dos capas de abstracción para exponer el audio a las aplicaciones. La primera capa corresponde a los drivers, y la segunda es el servidor de audio, un proceso que ayuda a eliminar las restricciones de los dispositivos de audio tradicionales en sistemas operativos multitarea.
Los drivers de audio en Linux se manejan como un componente especial del kernel, con su propio set de drivers y aplicaciones para administrar los dispositivos. Originalmente se usaba Open Sound System (OSS) y más tarde fue reemplazado por ALSA que era capaz de manejar hardware con nuevas capacidades.
En la década de los noventa, en los tiempos de OSS, los dispositivos de audio eran muy sencillos y salvo destacadas excepciones, todos usaban una arquitectura basada en SoundBlaster. Básicamente se trataba de un dispositivo con varias entradas, un mezclador, un canal de audio en estéreo y un sintetizador, ya sea un clásico FM (Yamaha OPL3) o en sus versiones más modernas, uno basado en wavetables.
Con esta arquitectura, y considerando que en esos años los sistemas eran monotarea, con un canal de audio era suficiente. En paralelo aparecían dispositivos como Gravis Ultrasound que permitían hasta 32 canales de audio independiente, pero eran orientados a música, no a compartir canales entre aplicaciones.
La solución que adoptó Linux para poder usar un sólo canal para múltiples aplicaciones en forma simultánea fue agregar un componente central que tenía control sobre ese canal y las aplicaciones le enviaban el sonido a ese componente, se conoció como sound server o servidor de sonido. No se realizó un esfuerzo de estandarización y aparecieron dos implementaciones, una asociada al gestor de ventanas Enlightenment llamada Enlightenment Sound Daemon o ESD, y otra de KDE llamada Analog Realtime Synthesizer o aRts.
Dadas estas condiciones, las aplicaciones tenían que decidir entre usar el dispositivo en forma directa via OSS (o ALSA), mediante ESD o mediante aRts. Y para ello comenzaban a depender de bibliotecas específicas de ESD o aRts.
Si eso parece un problema, donde las cosas se ponían complicadas era cuando una aplicación sólo implementaba acceso directo a OSS y se apropiaba del dispositivo de audio, dejando sin audio a todas las aplicaciones que lo quisieran utilizar, incluyendo a los servidores de sonido. Otro escenario posible era tener una aplicacion que gentilmente compartía el sonido por ESD, pero este dejaría fuera las aplicaciones con aRts.
Estos servidores comenzaron a perder relevancia cuando apareció ALSA, ya que en caso de disponer de hardware con más de un canal de audio se puede entregar a cada aplicación su propio canal, o bien emular esta capacidad por software de una forma transparente a la aplicación, aunque obviamente consumiendo más recursos del procesador.
Las cosas se pusieron más entretenidas aún con la aparición de dispositivos de audio enchufables, desde tarjetas de audio profesionales (Digidesign, M-Audio, etc) a unos simples audífonos bluetooth. Esto cambia totalmente el modelo que antes se tenía de dispositivos fijos, que siempre estaban disponibles.
PulseAudio surge como una solución diseñada bajo criterios acorde a los requerimientos actuales de audio, es una capa de abstracción que reemplaza a los servidores de audio tradicionales, pero que evita los errores cometidos en el pasado, como es la dependencia de un entorno de escritorio o el deficiente manejo de la latencia que tenían los servidores tradicionales.
PulseAudio es una abstracción completa del sistema de audio subyacente, puede combinar múltiples dispositivos de audio como uno solo, manejar niveles de volumen por aplicación, sincronizar múltiples flujos de audio, etc.
Si bien algunos usuarios aun experimentan problemas con PulseAudio, se trata de una solución que vino para quedarse y sentar las bases de una nueva era del manejo de audio en Linux.
Link : EarCandy is a smart PulseAudio Volume Manager (Web Upd8)
Publicado por Franco Catrin el 22 de May 2009 en la categoría Destacados, Software con los tags alsa, Audio, Linux, pulseaudio. Tiene 57 comentarios.
57 Comentarios
Control de audio inteligente en Linux con Ear Candy

6IO dijo el 22-5-2009 a las 15:23:
Excelente artículo.
¿alguien sabe que pasa con el soporte de ASIO en Linux?
Ver Comentario... tarao dijo el 22-5-2009 a las 15:27 ...

6burton_x dijo el 22-5-2009 a las 15:29:
Excelente articulo, creo sinceramente que desde que aparecio PulseAudio las cosas cambiaron para muchos
.

3CarlosMC dijo el 22-5-2009 a las 15:34:
COmo siempre Franco, GRAN ARTICULO!!!
debo decir que muy interesate ya que para mi siemrpe ha sido la parte mas olvidada en mi sistema, debido a que el audio simpre a funcionado bien, a mi por lo menos me basta con alsa…
mi duda es…
coomo se integra PulseAudio a la plataforma de multimedios utilizada en KDE 4.2.x? me podrias dar mas detalles para ver si necesito implementar PulseAudio en mi sistema…
saludos

7Rockergarden dijo el 22-5-2009 a las 15:36:
@Franco,
Por el aporte a la cultura Linux, gracias.
Slds!

5Franco Ferrari dijo el 22-5-2009 a las 15:37:
Excelente implementación. Ojalá que llegue a buen puerto y que las distros lo implementen.
La primera vez que instalé Debian (Hace como un año y medio), la configuración de Gnome todavía usaba mezcla de sonido por software
______
@tarao: tu nick lo dice todo ¬¬
Franco Catrin dijo el 22-5-2009 a las 15:39:
7@IO
ASIO es específico para Windows y cumple un rol similar a PulseAudio

-5Control de audio inteligente en Linux con Ear Candy : Blogografia dijo el 22-5-2009 a las 15:39:
[...] Click here to view the embedded video. [...]

-2James P.+Wack dijo el 22-5-2009 a las 15:42:
@IO: ASIO ~> JACK, se supone que hacen lo mismo, pero irónicamente algunas placas sin ASIO funcionan mejor en JACK
Ver Comentario... Erwin Ried dijo el 22-5-2009 a las 16:05 ...

-2Erwin Ried dijo el 22-5-2009 a las 16:09:
De forma particular me refería a esta opción: http://robboek.com/2009/02/04/windows-7-automatically-reduce-the-volume-when-you-are-on-a-call/

0paskys dijo el 22-5-2009 a las 16:19:
Un paso mas cerca de tener a linux como el sistema operativo ideal.

3rob dijo el 22-5-2009 a las 16:20:
@Erwin Ried: no entremos a ver quién replicó a quién, ya que el desarrollo de esta aplicación es anterior a todo lo que conocemos acerca de Seven. No digo que Microsoft haya imitado esta funcionalidad a Ear Candy, ni que sea original de esta ultima, creo que es una evolución lógica que perfectamente pudo haber sido implementada de manera paralela por los dos equipos. Pero lamento el que el equipo de Era Candy no posea los recursos suficientes como para avanzar con mayor velocidad en el proyecto, cosa que si poseen los de Microsoft y por eso lo tendrán listo muchísimo antes.
Espero que llegue pronto.
Saludos
Franco Catrin dijo el 22-5-2009 a las 16:39:
14@Erwin Ried
Las características de Windows 7 que aparece en el artículo son casi todas las que ya tiene PulseAudio. Por otra parte aunque Ear Candy no esté empaquetado, ya está funcionando, como en el ejemplo del video.
Al igual que @rob, creo no se puede saber si uno replica características de otro porque podría ser cualquiera. En todo caso al final de cuentas, la cosa es que el usuario disfrute de estos avances, independiente de donde provengan.
Ver Comentario... scb dijo el 22-5-2009 a las 16:43 ...
Ver Comentario... tarao dijo el 22-5-2009 a las 17:08 ...
Ver Comentario... tarao dijo el 22-5-2009 a las 17:10 ...

11desenfoque dijo el 22-5-2009 a las 17:26:
@tarao… es que estàn tan caras las manzanas ultimamente…

-1Marcelo dijo el 22-5-2009 a las 17:28:
Lo de windows 7 es algo como lo que tiene el control de volumen en gnome actualmente… creo; eso seria
___________________________________________
estaria bacan ver luego eso de Ear Candy…
ahora estoy teniendo problemas de audio, suena muy bajo, pero debe ser por el kernel que le puse (2.6.30 Rc6), creo que me tirare por uno estable… eso seria
PD: creo que en un futuro, esta APP, y la de Wayland mejoraran la arquitectura de las distros linux, todo para mejor…
Off- Topic: el kernel que instale hace que ande mas rapido el pc, aunque se sigue demorando un millon de años en encerder mi pc (es viejito y tengo ubuntu 8.10)
Franco Catrin dijo el 22-5-2009 a las 17:31:
20@Marcelo
Qué características tiene tu PC? Ojo que en 9.04 aceleraron bastante el arranque (35 segundos app en llegar al escritorio y disco en reposo).

2kotak dijo el 22-5-2009 a las 17:31:
La verdad que uno de mis formas de evangelizar a sido a través del sonido en Linux los cuales SIEMPRE han sonado mejor que en W$, sin embargo, en mis demostraciones de antaño usualmente peteaba algo y el sonido aunque se escuchaba mejor me dejaba en ridiculo cuando fallaba, ahi fué cuando sólo hacia pruebas controladas, es decir, Amarok abierto y nada más.
en todo caso ahora ya no tengo ese problema y junto con mostrarle KDE4 quedan hablando siempre bien del sistema del pinguino.

1Marcelo dijo el 22-5-2009 a las 17:37:
@Franco:
Tengo una placa Asrock m266 (todo integrado, y el video sin aceleracion)
512 Ram ddr 333
Un Celeron de 2Ghz
Un disco de 40 GB de 5200 rpm ATA
PD: el pc tiene 5 años y como 2 meses… “quiero cambiarlo…”

3Fakeroot dijo el 22-5-2009 a las 17:58:
@marcelo : prueba desintalar Pulse audio que en mi viejo duron 1600mhz consume como un 15% de cpu mientras reproduce audio
http://www.ubuntugeek.com/how-to-remove-pulse-audio-ubuntu-810-intrepid-ibex.html

1Marcelo dijo el 22-5-2009 a las 18:13:
@Fakeroot:
Basicamente mi problema es que el pc se inicia en 2 minutos(en realidad no es drama ya que generalmente lo pongo a hibernar), y que los videos en youtube se me ven como cortados (por la no aceleracion de video)
Este finde yo cacho que instalo ubuntu 9.04 (la tengo desde el día que salio pero no la e instalado porque tengo el disco duro lleno y tengo que grabar los archivos primero)
PD: gracias en todo caso

1TurboMAC dijo el 22-5-2009 a las 18:16:
Para mi, la gran pesadilla que tengo dia a dia, es el famoso arts. Le quita el sonido a otras aplicaciones como Audacity o Tuxguitar. NUnca he entendido bien como funciona, pero me encantaria que fuera totalmente reemplazado por pulse audio o simplemente por alsa.

4Stein! dijo el 22-5-2009 a las 18:16:
Pedazo de artículo Franco.
Que bien que se estén preocupando del tema, yo todavía tengo ataos para usar Skype y un juego por ejemplo, siempre es o lo uno o lo otro… aunque con el paso de las distribuciones como que se va haciendo más facil solucionar parcialmente el problema.
A mi parecer, una vez que se soluciona completamente el tema del sonido, solo quedaría que las empresas desarrolladoras de software sigan interesándose por Linux y ya estaría completito el SO.

1TurboMAC dijo el 22-5-2009 a las 18:16:
Por cierto, @franco, sabes si pulse audio trae efectos de audio??? Algo asi como Realce de Stereo, Reverb, Echo, Fade, Pitch, etc???

1KDE-RDNG dijo el 22-5-2009 a las 18:20:
La desventaja de PulseAudio (como cualquier otra capa) es la latencia, la cual en algunos escenarios es importante tomar en cuenta.
Esperemos que esos (cada vez menos) problemas de PA se vayan solucionando y que saquen GUIs en Qt para KDE
Franco Catrin dijo el 22-5-2009 a las 18:47:
29@marcelo
Cualquiera de los componentes que cambies de tu computador te va a ayudar:
512 Ram ddr 333 -> 1GB
Un Celeron de 2Ghz -> Pentium 4 de 2Ghz
Un disco de 40 GB de 5200 rpm ATA -> Disco de 7200 SATA o ATA por lo menos
Hay unos discos duros que tienen más caché con otro y se nota la diferencia. A veces la gente se fija sólo en la capacidad pero el caché es bien importante en el rendimiento. Lo típico son discos de 2MB de caché, y hay de 8MB a veces casi por el mismo precio.
Hace poco actualicé mi PC y me compré una tarjeta madre intel con video integrado y para el uso que le doy funciona de película. Es una de las más económicas para esas prestaciones, una de la serie G31. No soy muy bueno para los juegos, pero Compiz anda suavecito.
Franco Catrin dijo el 22-5-2009 a las 18:49:
30@Marcelo
Si actualizas a 9.04 ya vas a formatear, aprovecha de hacerlo con ext4, es más rápido que ext3, el sistema de archivos por omisión.
Franco Catrin dijo el 22-5-2009 a las 18:50:
31@TurboMac
Esto te puede ayudar temporalmente:
http://linuxnotes.blogspot.com/2005/04/intel-845g-audacity-and-arts.html
Franco Catrin dijo el 22-5-2009 a las 19:01:
32@TurboMAC
Sobre los efectos de audio, si se puede, pero no están disponibles para el usuario final. Básicamente lo que hacen es insertar plugins de LADSPA en la cadena de salida de audio.
Por ejemplo:
http://ubuntuforums.org/showthread.php?t=789578
Franco Catrin dijo el 22-5-2009 a las 19:06:
33@KDE-RDNG
Antes no se tenía en cuenta la latencia en estos servidores de audio, pero si en PulseAudio
Además de tratar de reducir la latencia, implementa funciones para que las aplicaciones puedan medir la latencia y compensar respecto a eso.
Siempre habrá un compromiso entre latencia y rendimiento. Si reduces la latencia, el rendimiento se ve afectado. Si quieres mejorar el rendimiento tienes que acumular más datos para enviarlos de a bloques más grandes al dispositivo de sonido, aumentando la latencia.
Dado que siempre al pasar por el computador va a haber latencia, hay tarjetas de audio que tienen monitoreo por hardware para escuchar la señal antes de entrar al computador. Eso en conjunto con la compensación de latencia hace que al menos no afecte tanto como debería.

6Stein! dijo el 22-5-2009 a las 20:36:
Hay tipos dedicados, y Franco jajajajajajaja
FayerWayer debería darse con el morro de Arica en el pecho jajajajaja
Grande Francooo!

1Bernardo Arancibia dijo el 22-5-2009 a las 22:17:
En Archlinux ya se puede instalar desde AUR … habrá que probarlo, está buena la idea aunque yo prefiero eliminar los sonidos extras de las aplicaciones, como el messenger o de eventos como esos. Interesante artículo Franco.

2TurboMAC dijo el 22-5-2009 a las 22:59:
YO estuve viendo pero depende de muchas cosas de gnome que no quier instalar por que tengo kde jajaja

1Peyesein dijo el 23-5-2009 a las 00:21:
Del 100% de articulos que existen sobre pulseaudio, este hace parte del 50% que lo critica bien. No soy muy entendido del tema, pero supongo que si mucha gente se queja debe ser porque en algo deben tener la razon.

1Dickinson_h2k dijo el 23-5-2009 a las 00:34:
No necesariamente. En la mayoría de los proyectos open-source y/o libres hay muchas quejas (40% por lo menos, supongo…)
Esto por el simple hecho de haber disputas entre “usuarios finales” y los desarrolladores del software. Muchas quejas, por ejemplo, se han basado en el simple hecho de “completamente personalizable” o de “amigable para el usuario final”… en proyectos como PulseAudio, tal tipo de discusiones, me parece, deben ser pan de cada día… y los no entendidos (o muy entendidos, por el contrario) dejarán sus malas impresiones.
Saludos!

2jci dijo el 23-5-2009 a las 00:50:
@Franco:
la latencia no solo se mide por los ciclos de CPU contra la maquina (ya que pueden haber otros procesos ocupandolo), si es que usas algun sistema “anti latencia” (las comillas son mias). Recordar, por ejemplo, los intentos de UBStudio y los kernels de RealTime (que andaban mejor que los experimentos actuales) donde la latencia no llegaba a los 420 ms en promedio, aunque eso no le importaria al usuario comun.
OSS no fue exclusivo de Linux, pero era lo que se tenia ante una voragine de clones de SB16 en el mercado (en aquellos entonces). Codigo realmente usable, pero no en las situaciones que son comunes actualmente (”oh, quiero que se escuchen los videos de yutub”, entre otros ejemplos). ALSA solo coloco una capa para que el desarrollo de aplicaciones para ISVs no se vieran afectados entre cambios de version de OSS, y la mentira de aplicaciones concurrentes que usaran el mismo dispositivo. Para la gente desarrollando drivers fue un descanso de OSS (aparte, esos wnes cambiaron su licencia). Aun se puede usar ALSA para “que varios programas toquen musiquita en sus notificaciones” pero la implementacion no fue nada simple. Imaginen como usar motosierras para poder cortar las piezas del coliseo romano: rectas, ok. Curvas…ni tanto.
ESD y ARTS fueron exclusivas de cada ambiente de escritorio, solo por que cada implementacion de “sonido” de los escritorios tenia una forma de manejo del audio. Si queria ocupar Kopete en GNOME o GAIM en KDE, serian soluciones incompatibles. Para los fanboys de Windows, existe DirectSound desde que lo conozco (1996) y ese ha sido como un buen manejado (pero culero estandard) desde aquellas epocas.
Ahora Pulseaudio trae mas dolores de cabeza que soluciones. Pero que va! Reportar el problema (y ojala reproducir el por que) es mas beneficioso que seguir alegando. Eso!

-1Enlaces del 23-05-09 | evelio.info dijo el 23-5-2009 a las 03:17:
[...] Control de audio inteligente en Linux con Ear Candy por Franco Catrin [...]

0Rodrigo dijo el 23-5-2009 a las 16:16:
@Franco, es raro, pero en mi notebook (chipset intel 945gm) el volumen de salida se divide en FRONT (que serian los parlantes) y el Master… el problema es, conecto audifonos al equipo, y los parlantes del notebook siguen sonando. Tengo que silenciar manualmente el FRONT para escuchar solo audifonos,.. es incómodo…
Que opinas? problemas de alsa?.. PulseAudio? he visto muchos notebooks con este tipo de chipsets con el mismo drama…
Ayudaría Ear Candy a futuro con mi problema?
Saludos!

1Christian dijo el 23-5-2009 a las 20:27:
Al principio no estaba muy convencido, pero creo que ahora me gusta que Fayerwayer de soporte online para Linux. Grande!

-1carlos dijo el 23-5-2009 a las 23:02:
hay algun programa que haga eso en windows xp ??? gracias!! , saludos excelente articulo

1F3lip3 dijo el 24-5-2009 a las 04:10:
@jci
Pero entonces que pasa con soluciones como Phonon? se supone que se preocupa de “hacer la tarea” para q el sonido funcione bien en distintas plataformas… de hecho Qt lo adopto (es original de KDE) y le sumo backends para DS9 y Quicktime (ademas soporta Xine, Gstreamer y VLC)

1Leonardo dijo el 24-5-2009 a las 15:31:
Trivia OffTopic: lol.. el opening de naruto.. “Closer de Inoue Joe”
Franco Catrin dijo el 24-5-2009 a las 18:40:
47@Rodrigo
Recuerdo haber tenido ese problema y se solucionaba al activar el conmutador “Phone jack sense” o algo asi. No estaba disponible en el control de volumen por omisión, sino que había que activarlo a través de sus propiedades.
Hay que tener en cuenta que cada laptop es diferente y esos extras son específicos de cada laptop. A medida que se van conociendo más modelos (y extras), vienen esas cosas pre-activadas.
No es un problema de ALSA ni PulseAudio, solo de (pre)configuración.

1jorge dijo el 24-5-2009 a las 23:33:
espectacular el post ,nunca habia entendido bien porque habian tantos sistemas de audio ni porque algunos programas funcionaban bien o mal dependiendo del que elegia

0Muno dijo el 25-5-2009 a las 00:35:
@Rodrigo
Tu problema es comun en notebooks, debes modificar el archivo alsa-base
Código:
sudo gedit /etc/modprobe.d/alsa-base
Al final del archivo añade la siguiente linea:
Código:
options snd-hda-intel model=sony-assamd (en el caso de los vaio, mi caso)
Luego graba los cambios, cierra el archivo, reinicia y prueba nuevamente.
Si no fuera vaio el metodo es el mismo solo cambiaria el termino sony-assamd averigua por ahi…
Los cambios fueron probados tanto en intrepid como en jaunty y en ambos se soluciono el problema.
http://foros.ubuntu-cl.org/viewtopic.php?t=8152&start=0&postdays=0&postorder=asc&highlight=

0david.cs dijo el 25-5-2009 a las 02:35:
Todavía no entiendo cuál es la diferencia fundamental entre Phonon (KDE4) y PulseAudio.

0jci dijo el 25-5-2009 a las 12:22:
@F3lip3:
Phonon no es “solo sonido”, sino un gran gran backend-frontend para aplicaciones que aprovechen multimedios. Imaginalo como un monton de engines (con codecs incluidos) para reproduccion de archivos de multimedios (peliculas/musica). Es bastante similar a gstreamer en su concepto (pero con diferencias sustanciales, como el uso de Solid que es bastante mas inteligente que Ear Candy). Es exclusivo de KDE4, y ademas fue para dar una estabilidad a la gran cantidad de APIs que viven cambiando *cof*gstreamer*cof* a lo largo del tiempo.
Pulseaudio es un SOUND SERVER, similar a ESD (que tambien tiene la gracia de poder usar la red para transmitir audio). Pulseaudio se comunica casi a bajo nivel al kernel (via HAL) o via ALSA (sinks/pipes). A diferencia de Phonon, estas llamadas pueden ser ocupando la misma API de ALSA para programar aplicaciones de audio (ALSA/OSS) o bien ocupando bibliotecas de un poco mas alto nivel, como libgnome o libao. Phonon es el API de multimedios de KDE4.

0F3lip3 dijo el 26-5-2009 a las 20:32:
@jci
Gracias por la explicación me queda mucho más claro. Eso si hay un error Phonon no es solo de KDE4 es tambien de Qt, Nokia lo adopto y lo hizo parte de su toolkit

0Ear Candy, control automático de reproducción : Blogografia dijo el 28-5-2009 a las 11:39:
[...] Vía | fayerwayer [...]

0Nevil dijo el 2-6-2009 a las 08:17:
Alguno me puede decir si hay algun programa bueno para DJs con simulador de mesa de mezclas en linux similar al virtual dj y de creación similar al FruityLoops?