PulseAudio es un programa servidor de sonido con capacidad de red distribuido a través del proyecto freedesktop.org . Se ejecuta principalmente en Linux , incluyendo el Subsistema de Windows para Linux en Microsoft Windows y Termux en Android ; varias distribuciones BSD como FreeBSD , OpenBSD y macOS ; así como distribuciones Illumos y el sistema operativo Solaris . Funciona como un middleware entre las aplicaciones y el hardware y gestiona flujos de audio PCM sin procesar . [ 5 ]
PulseAudio es software libre y de código abierto , y está licenciado bajo los términos de la LGPL-2.1 o posterior . [ 4 ]
Fue creado en 2004 con el nombre de Polypaudio, pero fue renombrado en 2006 a PulseAudio. [ 6 ]
PulseAudio compite con el más reciente PipeWire , que proporciona un servidor PulseAudio compatible (conocido como pipewire-pulse), y PipeWire ahora se usa por defecto en muchas distribuciones de Linux, incluidas Fedora Linux , Ubuntu y Debian . [ 7 ] [ 8 ] [ 9 ]
Compatibilidad con Microsoft Windows
En Microsoft Windows , PulseAudio se ejecuta en el Subsistema de Windows para Linux .
El kernel NT era compatible anteriormente mediante MinGW (una implementación del conjunto de herramientas GNU , que incluye varias herramientas como GCC y binutils ). Sin embargo, la adaptación del kernel NT no se ha actualizado desde 2011. [ 10 ]
Arquitectura de software


En términos generales, ALSA es un subsistema del núcleo que proporciona el controlador de hardware de sonido, y PulseAudio es el motor de interfaz entre las aplicaciones y ALSA. Sin embargo, su uso no es obligatorio y el audio se puede reproducir y mezclar sin PulseAudio.
PulseAudio actúa como un servidor de sonido, donde se crea un proceso en segundo plano que acepta la entrada de sonido de una o más fuentes (procesos, dispositivos de captura, etc.). El proceso en segundo plano luego redirige estas fuentes de sonido a uno o más sumideros (tarjetas de sonido, servidores PulseAudio de red remotos u otros procesos). [ 11 ]
Uno de los objetivos de PulseAudio es redirigir todas las secuencias de sonido a través de él, incluidas las de los procesos que intentan acceder directamente al hardware (como las aplicaciones OSS heredadas ). PulseAudio logra esto proporcionando adaptadores a las aplicaciones que utilizan otros sistemas de audio, como aRts y ESD .
En una instalación típica en Linux, el usuario configura ALSA para usar un dispositivo virtual proporcionado por PulseAudio. De esta forma, las aplicaciones que usan ALSA envían el sonido a PulseAudio, que a su vez usa ALSA para acceder a la tarjeta de sonido real. PulseAudio también ofrece su propia interfaz nativa para las aplicaciones que desean ser compatibles directamente con PulseAudio, así como una interfaz heredada para aplicaciones ESD, lo que la convierte en una alternativa viable a ESD.
Para aplicaciones de código abierto, PulseAudio proporciona la padsputilidad, que reemplaza archivos de dispositivo como /dev/dsp, engañando a las aplicaciones para que crean que tienen el control exclusivo de la tarjeta de sonido. En realidad, su salida se redirige a través de PulseAudio.
libcanberra
libcanberra es una API abstracta para sonidos de eventos de escritorio y un reemplazo total para la "API de caché de muestras de PulseAudio":
libSydney
libSydney es un reemplazo total para la "API de transmisión PulseAudio", y se han hecho planes para que libSydney se convierta eventualmente en la única API de audio utilizada en PulseAudio. [ 15 ]
Características
Las principales características de PulseAudio incluyen: [ 11 ]
- Controles de volumen por aplicación [ 16 ]
- Una arquitectura de complementos extensible con soporte para módulos cargables.
- Compatibilidad con muchas aplicaciones de audio populares [ 17 ]
- Compatibilidad con múltiples fuentes y salidas de audio.
- Una arquitectura de memoria de copia cero para la eficiencia de los recursos del procesador.
- Capacidad para descubrir otros ordenadores que utilizan PulseAudio en la red local y reproducir sonido directamente a través de sus altavoces.
- Posibilidad de cambiar el dispositivo de salida que utilizan las aplicaciones para reproducir sonido mientras lo están reproduciendo (las aplicaciones no necesitan ser compatibles con esta función; PulseAudio es capaz de hacerlo sin que las aplicaciones lo detecten).
- Una interfaz de línea de comandos con capacidades de scripting.
- Un demonio de sonido con capacidad de reconfiguración mediante línea de comandos.
- Capacidades integradas de conversión y remuestreo de muestras
- La capacidad de combinar varias tarjetas de sonido en una sola
- La capacidad de sincronizar múltiples transmisiones de reproducción
- Compatibilidad con dispositivos de audio Bluetooth con capacidades de detección dinámica.
- La capacidad de permitir la ecualización en todo el sistema
Adopción
PulseAudio apareció por primera vez para usuarios regulares en Fedora Linux , a partir de la versión 8, [ 18 ] luego fue adoptado por las principales distribuciones de Linux como Ubuntu , Debian , [ 19 ] Mandriva Linux y openSUSE . Hay soporte para PulseAudio en el proyecto GNOME , y también en KDE , ya que está integrado en Plasma Workspaces , agregando soporte para Phonon (el marco multimedia de KDE) y KMix (la aplicación de mezclador integrada) así como una GUI de "Configuración de altavoces" para ayudar a configurar altavoces multicanal. PulseAudio también está disponible en la distribución Illumos OpenIndiana , y está habilitado por defecto en su entorno de escritorio MATE .
Varios dispositivos móviles basados en Linux , incluidos Nokia N900 , Nokia N9 y Palm Pre [ 20 ] utilizan PulseAudio.
Tizen , un sistema operativo móvil de código abierto, que es un proyecto de la Fundación Linux y está dirigido por un Grupo Directivo Técnico (TSG) compuesto por Intel y Samsung , utiliza PulseAudio.
Problemas durante la fase de adopción
- La API de PortAudio era incompatible con el diseño de PulseAudio y necesitaba ser modificada. [ 21 ] Casi todos los paquetes que usaban OSS y muchos de los paquetes que usaban ALSA necesitaban ser modificados para ser compatibles con PulseAudio. [ 22 ] El desarrollo posterior de la función de audio sin fallos requirió una reescritura completa del núcleo de PulseAudio, y también fueron necesarios cambios en la API y los componentes internos de ALSA. [ 23 ] [ 24 ]
- Cuando las distribuciones adoptaron por primera vez PulseAudio, el desarrollador Lennart Poettering (también creador de systemd ) lo describió como "el software que actualmente daña tu audio". [ 25 ] Posteriormente, Poettering afirmó que " Ubuntu no hizo un trabajo precisamente estelar. No hicieron su tarea" al adoptar PulseAudio [ 26 ] para Ubuntu "Hardy Heron" (8.04), un problema que se mejoró con versiones posteriores de Ubuntu. [ 27 ] Sin embargo, en octubre de 2009, Poettering informó que aún no estaba satisfecho con la integración de PulseAudio en Ubuntu. [ 28 ]
- Interacción con componentes de sonido antiguos por parte de software específico: Ciertos programas, como Adobe Flash para Linux, causaron inestabilidad en PulseAudio. [ 29 ] [ 30 ] Las implementaciones más recientes de los complementos de Flash no requieren los elementos conflictivos y, como resultado, Flash y PulseAudio ahora son compatibles.
- Gestión temprana de desbordamientos/subdesbordamientos de búfer: Las versiones anteriores de PulseAudio a veces comenzaban a distorsionar el audio procesado debido a un manejo incorrecto de los desbordamientos/subdesbordamientos de búfer. [ 31 ]
- Para los usuarios de auriculares, existe la posibilidad de pérdida auditiva inducida por ruido debido a volúmenes extremadamente altos en caso de una aplicación que funcione incorrectamente. [ 32 ] [ 33 ] [ 34 ] [ 35 ]
Software relacionado
Otros servidores de sonido
JACK es un servidor de sonido que proporciona audio en tiempo real con baja latencia (5 milisegundos o menos) y, desde JACK2, admite un balanceo de carga eficiente mediante el procesamiento simétrico ; es decir, la carga de todos los clientes de audio se distribuye entre varios procesadores. JACK es el servidor de sonido preferido para aplicaciones de audio profesionales como Ardour , ReZound y LinuxSampler ; varias distribuciones gratuitas de producción de audio lo utilizan como servidor de audio predeterminado.
Es posible que JACK y PulseAudio coexistan: mientras JACK está en ejecución, PulseAudio puede conectarse automáticamente como cliente JACK, lo que permite que los clientes de PulseAudio produzcan y graben sonido al mismo tiempo que los clientes JACK. [ 36 ]
PipeWire es un servidor de audio y video que "tiene como objetivo admitir los casos de uso que actualmente manejan tanto PulseAudio como Jack". [ 37 ] [ 38 ]
Infraestructuras de audio generales
Antes de JACK y PulseAudio, el sonido en estos sistemas se gestionaba mediante soluciones de audio integradas multifuncionales. Si bien estas soluciones no abarcan por completo el proceso de mezcla y transmisión de sonido, JACK y PulseAudio aún las utilizan para enviar la señal de audio final a la tarjeta de sonido.
- ALSA incluye un mezclador de software llamado dmix, desarrollado antes que PulseAudio. Está disponible en casi todas las distribuciones de Linux y es una solución de mezcla de audio PCM más sencilla. No ofrece las funciones avanzadas de PulseAudio (como la programación basada en temporizadores y el audio en red). Sin embargo, al combinarse con tarjetas de sonido y software compatibles, ALSA ofrece baja latencia.
- OSS fue el sistema de sonido original utilizado en Linux y otros sistemas operativos Unix, pero fue descontinuado después del kernel de Linux 2.5. [ 39 ] El desarrollo propietario fue continuado por 4Front Technologies , que en julio de 2007 publicó el código fuente de OSS bajo CDDL-1.0 para OpenSolaris y bajo GPL-2.0-only para Linux . [ 40 ] La implementación moderna, Open Sound System v4, proporciona mezcla de software, remuestreo y cambio de volumen por aplicación; a diferencia de PulseAudio, estas características están implementadas dentro del kernel. El soporte de PulseAudio en OpenIndiana y otras distribuciones illumos se basa en la implementación de OSS en el kernel (" Boomer" ).
Véase también
Referencias
- ↑ "Noticias antiguas" . freedesktop.org . Archivado del original el 16 de mayo de 2012. Consultado el 17 de febrero de 2016 .
- ↑ "PulseAudio 17.0 · PulseAudio / pulseaudio · GitLab" . GitLab . Consultado el 13 de enero de 2024 .
- ↑ "PulseAudio" , Resumen del análisis , Open Hub , archivado del original el 13 de julio de 2023 , consultado el 6 de agosto de 2017.
- 1 2 "Licencia" , PulseAudio git , escritorio gratuito , archivado del original el 4 de marzo de 2014 , recuperado el 16 de junio de 2011
- ↑ "Formatos de audio compatibles" . www.freedesktop.org . Archivado del original el 1 de octubre de 2021. Consultado el 13 de mayo de 2023 .
- ↑ El proyecto anteriormente conocido como Polypaudio , archivado del original el 7 de enero de 2007 , recuperado el 20 de julio de 2006.
- ↑ "Cambios/DefaultPipeWire - Wiki del Proyecto Fedora" . fedoraproject.org . Archivado del original el 22 de noviembre de 2020. Consultado el 13 de febrero de 2023 .
- ↑ Sneddon, Joey (22 de mayo de 2022). "Ubuntu 22.10 convierte PipeWire en el predeterminado para el audio" . ¡OMG! Ubuntu! . Archivado del original el 22 de mayo de 2022. Recuperado el 13 de febrero de 2023 .
- ↑ "Debian 12 cambia a PipeWire y WirePlumber por defecto con el escritorio GNOME" . www.phoronix.com . Archivado del original el 1 de octubre de 2022. Consultado el 13 de febrero de 2023 .
- ↑ PulseAudio en Windows , archivado del original el 1 de marzo de 2023 , consultado el 29 de julio de 2016.
- 1 2 "Acerca de" , PulseAudio , aplicación de escritorio gratuita, archivada del original el 25 de marzo de 2013 , consultada el 11 de marzo de 2013.
- ↑ "Debian -- Resultados de la búsqueda de paquetes -- libcanberra" . packages.debian.org . Archivado del original el 14 de julio de 2014. Consultado el 13 de julio de 2014 .
- ↑ "Debian -- Resultados de la búsqueda de paquetes -- libasound" . packages.debian.org . Archivado del original el 14 de julio de 2014. Consultado el 13 de julio de 2014 .
- ↑ "Debian -- Resultados de la búsqueda de paquetes -- libcanberra-pulse" . packages.debian.org . Archivado del original el 4 de noviembre de 2009. Consultado el 13 de julio de 2014 .
- ↑ Poettering, Lennart (8 de febrero de 2007). "Resumen de FOMS/LCA" . 0pointer.de . Archivado del original el 6 de junio de 2007. Consultado el 13 de marzo de 2017 .
- ↑ Poettering, Lennart, "Entrevistas", Proyecto Fedora , Red Hat, archivado del original el 31 de agosto de 2009 , recuperado el 3 de julio de 2009.
- ↑ Wiki de Pulse Audio , PulseAudio, archivado del original el 31 de agosto de 2009 , consultado el 19 de julio de 2009.
- ↑ "LPC: Audio en Linux: un desastre [ LWN.net ] " . 18 de septiembre de 2008. Archivado del original el 1 de septiembre de 2009 . Consultado el 11 de julio de 2019 .
- ↑ PulseAudio , Debian, archivado desde el original (wiki) el 9 de noviembre de 2013 , recuperado el 9 de noviembre de 2013
- ↑ "Identidad de código abierto: Lennart Poettering, creador de PulseAudio" , TechWorld , 8 de octubre de 2009, archivado del original el 6 de abril de 2011 , consultado el 19 de junio de 2010.
- ↑ Poettering, Lennart (25 de septiembre de 2004). "Escribiendo un controlador de PortAudio" . audio.portaudio.devel . git.net. Archivado del original el 1 de marzo de 2017. Recuperado el 28 de febrero de 2017 .
- ↑ Poettering, Lennart. "PulseAudio ahora está habilitado por defecto en las nuevas instalaciones de Fedora" . Fedora Development ML . Red Hat . Consultado el 1 de marzo de 2017 .
- ↑ "Características: Audio sin fallos" . Wiki del proyecto Fedora . Archivado del original el 1 de marzo de 2017. Consultado el 28 de febrero de 2017 .
- ↑ Poettering, Lennart. "Alsa Issues" . PulseAudio - Trac . Archivado del original el 16 de octubre de 2008. Recuperado el 28 de febrero de 2017 .
- ↑ LPC: Audio en Linux: un desastre , LWN, 18 de septiembre de 2008, archivado del original el 1 de septiembre de 2009 , consultado el 3 de julio de 2009.
- ↑ Lennart Poettering (18 de julio de 2008), PulseAudio FUD , 0pointer.de, archivado del original el 2 de septiembre de 2009 , recuperado el 30 de diciembre de 2009
- ↑ Tutorial: Soluciones para PulseAudio y compatibilidad con ecualizadores de todo el sistema , Foros de Ubuntu, 10 de mayo de 2008, archivado del original el 1 de marzo de 2010 , consultado el 18 de octubre de 2009.
- ↑ I'll Break Your Audio , Blog de Lennart Poettering, 19 de octubre de 2009, archivado del original el 22 de octubre de 2009 , consultado el 26 de diciembre de 2009.
- ↑ Sin sonido después de ejecutar Flash, YouTube, etc. (solución de PulseAudio) , Foros de Ubuntu, archivado del original el 29 de febrero de 2012 , recuperado el 18 de octubre de 2009.
- ↑ PulseAudio , Wiki de Ubuntu, archivado del original el 25 de febrero de 2011 , consultado el 18 de octubre de 2009.
- ↑ "El almacenamiento en búfer excesivamente optimista en PulseAudio provoca subdesbordamientos (tartamudeos audibles, chasquidos)" . Launchpad . 10 de febrero de 2008. Consultado el 9 de noviembre de 2013 .
- ↑ "46466 - PulseAudio necesita una forma para que el usuario establezca un volumen máximo inviolable" . Bugzilla . Consultado el 6 de octubre de 2021 .
- ↑ " [ RESUELTO ] Deshabilitar PulseAudio - Página 3" . Preguntas sobre Linux . Archivado del original el 6 de octubre de 2021 . Consultado el 6 de octubre de 2021 .
- ↑ "Error #410948 'Volumen demasiado alto' : Errores : paquete pulseaudio" . Ubuntu . 9 de agosto de 2009. Archivado del original el 6 de octubre de 2021. Consultado el 6 de octubre de 2021 .
- ↑ "#837637 - La configuración de audio a menudo se restablece al 100% de volumen" . Registros de informes de errores de Debian . Archivado del original el 6 de octubre de 2021. Recuperado el 6 de octubre de 2021 .
- ↑ Véase “Módulos cargables”. Módulos , Freedesktop.org, https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Modules/#index9h2 , consultado el 28 de agosto de 2019.
- ↑ "PipeWire" . pipewire.org . Archivado del original el 25 de diciembre de 2020. Consultado el 28 de junio de 2019 .
- ↑ "En el camino hacia Fedora Workstation 31 — Christian FK Schaller" . 24 de junio de 2019. Archivado del original el 30 de septiembre de 2023. Consultado el 28 de junio de 2019 .
- ↑ Introducción a los sistemas de sonido y las API de Linux , Linux.com, 9 de agosto de 2004, archivado del original el 19 de octubre de 2014 , consultado el 23 de marzo de 2013.
El software de código abierto (OSS) está disponible no solo para Linux, sino también para sistemas operativos BSD y otros Unix. Esa puede ser su única ventaja, ya que este sistema no es muy potente y fue reemplazado oficialmente por ALSA en los núcleos 2.5...
- ↑ 4Front Technologies publica el código fuente del sistema de sonido abierto , Linux PR, 14 de junio de 2007, archivado del original el 8 de octubre de 2007 , recuperado el 8 de enero de 2012..
Enlaces externos
- Software de 2004
- Bibliotecas de audio
- Software de audio para Linux
- Software de audio gratuito
- Software libre programado en C
- API de Linux
- Colabora
- Software que utiliza la Licencia Pública General Reducida de GNU.