A situação é relativamente boa quando se trata de distros convencionais como Ubuntu, Debian ou Fedora porque seus desenvolvedores se esforçaram muito para fazer o áudio funcionar imediatamente, mas o mesmo não pode ser dito sobre Arch Linux, Gentoo, e outras distribuições minimalistas que esperam que os usuários configurem tudo do zero.
Este artigo não o tornará um especialista em áudio do Linux, mas, com sorte, explicará as tecnologias básicas responsáveis por fazer o som sair dos alto-falantes quando você abre um vídeo no YouTube ou joga um jogo no Steam.
Arquitetura de som avançada do Linux (ALSA)
Vamos começar com a camada mais importante do áudio do Linux, ALSA. Criado em 1998 pelo desenvolvedor de software Tcheco Jaroslav Kysela, o ALSA é responsável por dar voz a todas as distribuições Linux modernas. Na verdade, é parte do próprio kernel do Linux, fornecendo funcionalidade de áudio para o resto do sistema por meio de uma interface de programação de aplicativo (API) para drivers de dispositivo de placa de som.
O design original do ALSA foi amplamente inspirado no driver de dispositivo Linux para a placa de som Gravis Ultrasound, que foi feita pela Advanced Gravis Computer Technology com sede no Canadá e se tornou muito popular no cenário de demonstração durante os anos 1990.
Suporte ALSA para todos os tipos de interfaces de áudio graças a drivers de som totalmente modularizados, pode gerenciar até oito dispositivos de áudio ao mesmo tempo, acessar a funcionalidade MIDI de hardware, realizar mixagem de hardware de vários canais e muito mais.
Os usuários normalmente interagem com o ALSA usando alsamixer, um programa de mixer gráfico que pode ser usado para definir as configurações de som e ajustar o volume de canais individuais. O Alsamixer é executado no terminal e você pode invocá-lo apenas digitando seu nome. Um comando de teclado particularmente útil é ativado pressionando a tecla M. Este comando alterna o silenciamento do canal e é uma correção bastante comum para muitas perguntas postadas nos fóruns de discussão do Linux.
Open Sound System (OSS)
O site oficial da ALSA menciona suporte para Open Sound System, ou OSS para breve. Até Linux 2.5, OSS era na verdade o principal e único sistema de som para Linux. ALSA foi projetado para superar suas várias deficiências, como o fato de não permitir que mais de um aplicativo acessasse o hardware ao mesmo tempo. Em Linux 2.6 ALSA substituiu o OSS como sistema de som padrão.
Quando os desenvolvedores do OSS anunciaram que a versão do OSS teria uma licença proprietária, uma decisão foi rapidamente tomada pelos desenvolvedores do Linux para substituí-la por ALSA. É importante notar que o OSS tornou-se software livre novamente com o lançamento da versão 4 em 2007. Hoje, o OSS é distribuído sob quatro licenças diferentes (BSD, CDDL, GPL, Proprietary).
A maioria das distribuições Linux hoje em dia nem se preocupam em ativar a camada de emulação OSS presente no ALSA porque quase ninguém precisa mais dela, tornando o OSS uma relíquia do passado.
PulseAudio
Se você não se lembra da última vez que interagiu com o ALSA ao alterar as configurações de áudio, é provável que a camada voltada para o usuário do sistema de áudio Linux na maioria das distribuições modernas seja chamada de PulseAudio.
O PulseAudio foi lançado inicialmente em 2004 e agora está incluído e habilitado por padrão no Ubuntu, Linux Mint, openSUSE e outras distribuições principais. O trabalho do PulseAudio é passar dados de som entre seus aplicativos e seu hardware, direcionando os sons vindos do ALSA para vários destinos de saída, como alto-falantes ou fones de ouvido do computador. É por isso que é comumente referido como um servidor de som.
À primeira vista, pode parecer que o PulseAudio realmente não adiciona nada de criticamente importante ao áudio do Linux, e muitos de seus críticos compartilham a mesma opinião. Na realidade, existem muitas coisas que seriam impossíveis ou difíceis de realizar sem ele, incluindo misturar vários sons em um, transferir áudio para uma máquina diferente ou alterar o formato de amostra ou a contagem de canais.
O PulseAudio também traz compatibilidade multiplataforma (FreeBSD, NetBSD, OpenBSD, Linux, Illumos, Solaris, macOS e, de forma limitada, Microsoft Windows). Se você deseja controlar o PulseAudio diretamente, em vez de interagir com ele por meio de um widget de controle de volume ou painel de alguns tipos, você pode instalar o Controle de Volume do PulseAudio (chamado pavucontrol na maioria dos repositórios de pacotes).
Se você acha que não precisa usar os recursos fornecidos pelo PulseAudio, você pode usar ALSA puro ou substituí-lo por um servidor de som diferente.
PulseAudio vs. JACK
PulseAudio não é o único servidor de som para Linux. Há também JACK, que é um acrônimo recursivo para JACK Audio Connection Kit. Considerando que o PulseAudio foi desenvolvido com as necessidades dos usuários Linux em geral em mente, o JACK é destinado a DJs e profissionais de áudio, fornecendo conexões em tempo real e de baixa latência para dados de áudio e MIDI.
Como o JACK permite conectar as entradas e saídas de áudio de cada um de seus aplicativos, você pode fazer coisas muito legais com ele, como monitorar sua própria voz, adicionar efeitos em tempo real e muito mais. Na verdade, o nome deste sistema de som foi inspirado nos cabos usados em estúdios de gravação reais para construir conexões intrincadas entre instrumentos, sintetizadores, controladores MIDI e multitrackers.
Provavelmente, a maior desvantagem do JACK é que ele geralmente funciona perfeitamente ou de forma horrível, devido ao fato de que seu objetivo principal é fornecer áudio de baixa latência. Também requer consideravelmente mais potência da CPU em comparação com o PulseAudio, razão pela qual você o encontrará principalmente em estações de trabalho profissionais dedicadas à edição de áudio.
Verificando Pulse Audio e ALSA
Você pode estar se perguntando como posso saber qual software de áudio meu computador está usando? Para verificar se o Pulse Audio e o ALSA estão presentes em seu sistema, use os dois comandos a seguir:
Verificando o PulseAudio:
Verificando ALSA:
Conclusão
Áudio no Linux parece complicado porque realmente é. Desembaraçar a teia de tecnologias legadas e camadas de abstração pode ser um verdadeiro desafio, mesmo para usuários experientes do Linux que conhecem de cor os meandros do sistema operacional. Esperançosamente, nosso artigo ajudou você a entender melhor os componentes mais importantes do sistema de áudio Linux, incluindo ALSA, OSS e PulseAudio.