La situación es relativamente fina cuando se trata de distribuciones convencionales como Ubuntu, Debian o Fedora porque sus desarrolladores han hecho todo lo posible para hacer que el audio funcione fuera de la caja, pero no se puede decir lo mismo sobre Arch Linux, Gentoo, y otras distribuciones minimalistas que esperan que los usuarios configuren todo desde cero.
Este artículo no te convertirá en un experto en audio de Linux, pero con suerte explicará las tecnologías básicas responsables de hacer que el sonido salga de tus altavoces cuando abras un video en YouTube o juegas un juego en Steam.
Arquitectura de sonido de Linux Advanced (ALSA)
Comencemos con la capa más importante del audio de Linux, ALSA. Creado en 1998 por el desarrollador de software checo Jaroslav Kysela, ALSA es responsable de dar voz a todas las distribuciones modernas de Linux. En realidad, es parte del kernel de Linux, proporcionando funcionalidad de audio al resto del sistema a través de una interfaz de programación de aplicaciones (API) para controladores de dispositivos de tarjeta de sonido.
El diseño original de ALSA se inspiró en gran medida en el controlador de dispositivos Linux para la tarjeta de sonido de ultrasonido de Gravis, que fue realizada por la tecnología informática de Gravis Advanced con sede en Canadá y se hizo muy popular en la escena de demostración durante la década de 1990.
Soporte ALSA para todo tipo de interfaces de audio gracias a los controladores de sonido totalmente modularizados, puede administrar hasta ocho dispositivos de audio al mismo tiempo, acceder a la funcionalidad MIDI de hardware, realizar la mezcla de hardware de múltiples canales y más.
Los usuarios generalmente interactúan con ALSA usando Alsamixer, un programa de mezcladores gráficos que se puede utilizar para configurar la configuración de sonido y ajustar el volumen de canales individuales. Alsamixer se ejecuta en la terminal, y puede invocarlo simplemente escribiendo su nombre. Un comando de teclado particularmente útil se activa al presionar la tecla M. Este comando alterna el canal de canal, y es una solución bastante común a muchas preguntas publicadas en los tableros de discusión de Linux.
Sistema de sonido abierto (OSS)
El sitio web oficial de ALSA menciona soporte para el sistema de sonido abierto o OSS para breve. Hasta Linux 2.5, OSS era en realidad el sistema de sonido principal y único para Linux. ALSA fue diseñado para superar sus diversas deficiencias, como el hecho de que no permitió que más de una aplicación accediera al hardware a la vez. En Linux 2.6 ALSA reemplazó a OSS como el sistema de sonido predeterminado.
Cuando los desarrolladores de OSS anunciaron que la versión OSS tendría una licencia de propiedad, los desarrolladores de Linux tomaron rápidamente una decisión para reemplazarla con ALSA. Vale la pena señalar que OSS volvió a convertirse nuevamente en software libre con el lanzamiento de la versión 4 en 2007. Hoy, OSS se distribuye bajo cuatro licencias diferentes (BSD, CDDL, GPL, Propietario).
La mayoría de las distribuciones de Linux en estos días ni siquiera se molestan en activar la capa de emulación OSS presente en ALSA porque casi nadie la necesita, lo que hace una reliquia de OSS del pasado.
Pulseaudio
Si no recuerda la última vez que interactuó con ALSA al cambiar su configuración de audio, probablemente se deba a que la capa orientada al usuario del sistema de audio de Linux en la mayoría de las distribuciones modernas se llama PulseAudio.
PulseAudio se lanzó inicialmente en 2004, y ahora está incluido y habilitado de forma predeterminada en Ubuntu, Linux Mint, OpenSuse y otras distribuciones importantes. El trabajo de PulseAudio es aprobar datos sólidos entre sus aplicaciones y su hardware, dirigiendo los sonidos de ALSA a varios destinos de salida, como los altavoces o auriculares de la computadora. Es por eso que se conoce comúnmente como un servidor de sonido.
A primera vista, puede parecer que Pulseaudio realmente no agrega nada de importancia crítica al audio de Linux, y muchos de sus críticos comparten la misma opinión. En realidad, en realidad hay muchas cosas que serían imposibles o difíciles de lograr sin él, incluida la mezcla de varios sonidos en uno, transfiriendo audio a una máquina diferente o cambiando el formato de muestra o el recuento de canales.
PulseAudio también trae compatibilidad multiplataforma (FreeBSD, NetBSD, OpenBSD, Linux, Illumos, Solaris, MacOS y, de manera limitada, Microsoft Windows). Si desea controlar PulseAudio directamente, en lugar de interactuar con él a través de un widget de control de volumen o panel de algunos tipos, puede instalar el control de volumen Pulseaudio (llamado Pavucontrol en la mayoría de los repositorios de paquetes).
Si cree que no tiene uso para las características proporcionadas por PulseAudio, puede usar ALSA pura o reemplazarlo con un servidor de sonido diferente.
Pulseaudio vs. JACOBO
PulseAudio no es el único servidor de sonido para Linux. También está Jack, que es un acrónimo recursivo para Jack Audio Connection Kit. Mientras que PulseAudio se desarrolló con las necesidades de los usuarios generales de Linux en mente, Jack está destinado a DJ y profesionales de audio, proporcionando conexiones en tiempo real y de baja latencia para los datos de audio y MIDI.
Debido a que Jack le permite conectar las entradas y salidas de audio de cada una de sus aplicaciones juntas, puede hacer algunas cosas geniales con él, como monitorear su propia voz, agregarle efectos en tiempo real y más. De hecho, el nombre de este sistema de sonido se inspiró en los cables utilizados en estudios de grabación reales para construir conexiones intrincadas entre instrumentos, sintetizadores, controladores MIDI y multitrackers.
Podría decirse que el mayor inconveniente de Jack es que generalmente funciona perfectamente o horriblemente, poseer el hecho de que su objetivo principal es proporcionar audio de baja latencia. También requiere considerablemente más potencia de CPU en comparación con PulseAudio, por lo que la encontrará principalmente en estaciones de trabajo profesionales dedicadas a la edición de audio.
Verificación de audio de pulso y alsa
Quizás se pregunte, ¿cómo digo qué software de audio está utilizando mi computadora?? Para verificar si tanto Pulse Audio como ALSA están presentes en su sistema, use los siguientes dos comandos:
Comprobando por PulseAudio:
Lista de $ Pactl
Comprobación de ALSA:
$ aplay -l
Conclusión
El audio en Linux parece complicado porque realmente es. Descansar la red de tecnologías y capas de abstracción heredadas puede ser un verdadero desafío incluso para los usuarios experimentados de Linux que conocen los entresijos del sistema operativo de corazón. Con suerte, nuestro artículo lo ayudó a comprender mejor los componentes más importantes del sistema de audio de Linux, incluidos ALSA, OSS y PULSEAUDIO.