Áudio

Guia do Noob para Linux Audio ALSA, OSS e Pulse Audio explicado

Guia do Noob para Linux Audio ALSA, OSS e Pulse Audio explicado
Há uma coisa em que usuários Linux novos e experientes podem concordar: o áudio do Linux é confuso. Não apenas várias tecnologias estão realizando trabalhos semelhantes, mas a maioria delas pode ser completamente omitida por distribuições Linux e seus usuários.

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:

lista $ pactl


Verificando ALSA:

$ aplay -l

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.

Tutorial de Battle for Wesnoth
The Battle for Wesnoth é um dos jogos de estratégia de código aberto mais populares que você pode jogar no momento. Este jogo não está apenas em desen...
0 A.D. Tutorial
Dos muitos jogos de estratégia que existem, 0 A.D. consegue se destacar como um título abrangente e um jogo muito profundo e tático, apesar de ser de ...
Tutorial Unity3D
Introdução ao Unity 3D Unity 3D é um poderoso motor de desenvolvimento de jogos. É uma plataforma cruzada que permite criar jogos para celular, web, d...