Guia de Noob para Linux Audio ALSA, OSS e Pulse Audio explicou

Guia de Noob para Linux Audio ALSA, OSS e Pulse Audio explicou
Há uma coisa que os usuários de Linux novos e experientes podem concordar: o Linux Audio é confuso. Não são apenas várias tecnologias que realizam trabalhos semelhantes, mas a maioria deles pode ser completamente omitida por distribuições Linux e seus usuários.

A situação é relativamente boa quando se trata de distritos convencionais como Ubuntu, Debian ou Fedora, porque seus desenvolvedores fizeram um grande esforço para fazer com que o áudio funcione 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 fará de você um especialista no Linux Audio, mas, esperançosamente, explicará as tecnologias básicas responsáveis ​​por fazer o som sair de seus alto -falantes ao abrir um vídeo no YouTube ou jogar um jogo no Steam.

Arquitetura de som Linux avançada (ALSA)

Vamos começar com a camada mais importante do Linux Audio, ALSA. Criado em 1998 pelo desenvolvedor de software tcheco Jaroslav Kysela, a ALSA é responsável por dar uma voz a todas as distribuições modernas do Linux. Na verdade, faz parte do próprio kernel do Linux, fornecendo funcionalidade de áudio para o restante do sistema por meio de uma interface de programação de aplicativos (API) para drivers de dispositivo de cartão de som.

O design original da ALSA foi amplamente inspirado no driver de dispositivo Linux para a placa de som de Ultrassom de Gravis, que foi fabricada pela tecnologia avançada de computadores de Grave Advanced, com sede no Canadá, e tornou-se muito popular na cena da demonstração durante os anos 90.

O suporte da 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, executar a mistura de hardware de vários canais e mais.

Os usuários normalmente interagem com o ALSA usando o Alsamixer, um programa gráfico que pode ser usado para definir configurações de som e ajustar o volume de canais individuais. Alsamixer é executado no terminal, e você pode invocar apenas digitando seu nome. Um comando de teclado particularmente útil é ativado atingindo a tecla M. Este comando alterna o canal silencia.

Sistema de som aberto (OSS)

O site oficial da ALSA menciona suporte para sistema de som aberto, ou OSS para abreviar. Até Linux 2.5, OSS era na verdade o principal e único sistema de som para Linux. A ALSA foi projetada para superar suas várias deficiências, como o fato de não permitir que mais de um aplicativo acesse o hardware por vez. No Linux 2.6 ALSA substituiu OSS como o sistema de som padrão.

Quando os desenvolvedores da OSS anunciaram que a versão OSS teria uma licença proprietária, uma decisão foi rapidamente tomada pelos desenvolvedores do Linux para substituí -la por ALSA. Vale a pena notar que o OSS se tornou um 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, proprietário).

A maioria das distribuições Linux nos dias de hoje nem se incomoda em ativar a camada de emulação OSS presente na ALSA, porque quase ninguém precisa mais, tornando a OSS uma relíquia do passado.

Pulseaudio

Se você não se lembra da última vez que interagiu com o ALSA ao alterar suas configurações de áudio, provavelmente porque a camada voltada para o usuário do sistema de áudio Linux na maioria das distribuições modernas é chamada de pulseaudio.

Pulseaudio foi lançado inicialmente em 2004 e agora está incluído e ativado por padrão no Ubuntu, Linux Mint, OpenSuse e outras distribuições importantes. O trabalho de Pulseaudio é transmitir dados sonoros entre seus aplicativos e seu hardware, direcionando sons vindo do ALSA para vários destinos de saída, como alto -falantes ou fones de ouvido. É por isso que é comumente referido como um servidor de som.

À primeira vista, pode parecer que o Pulseaudio não adiciona nada extremamente importante ao Linux Audio, e muitos de seus críticos compartilham a mesma opinião. Na realidade, há realmente muitas coisas que seriam impossíveis ou difíceis de realizar sem ele, incluindo misturando vários sons em um, transferindo áudio para uma máquina diferente ou alterando o formato da amostra ou a contagem de canais.

O Pulseaudio também traz compatibilidade entre plataformas (FreeBSD, NetBSD, OpenBSD, Linux, Illumos, Solaris, MacOS e, de maneira limitada, Microsoft Windows). Se você deseja controlar diretamente o pulseaudio, em vez de interagir com ele através de um widget de controle de volume ou painel de algum tipo, você pode instalar o controle de volume PULSEAUDIO (chamado PavuControl na maioria dos repositórios de pacotes).

Se você acha que não tem utilidade para os recursos fornecidos pelo PulseAudio, pode usar o 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 o kit de conexão de áudio Jack. Enquanto Pulseaudio foi desenvolvido com as necessidades dos usuários do Linux em mente, 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 Jack permite conectar as entradas e saídas de áudio de todos e de todos os seus aplicativos, você pode fazer algumas coisas bem legais com ele, como monitorar sua própria voz, adicionar efeitos a ela em tempo real e mais. De fato, o nome desse 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.

Indiscutivelmente, a maior desvantagem de Jack é que geralmente funciona perfeitamente ou horrivelmente, possuindo o fato de que seu principal objetivo é fornecer áudio de baixa latência. Ele também requer consideravelmente mais energia da CPU em comparação com o pulseaudio, e é por isso que você o encontrará principalmente em estações de trabalho profissionais dedicadas à edição de áudio.

Verificação do Pulse Audio e ALSA

Você pode estar se perguntando, como eu digo qual software de áudio meu computador está usando? Para verificar se o Pulse Audio e o ALSA estão presentes no seu sistema, use os dois comandos a seguir:
Verificando o pulseaudio:

Lista $ PACTL


Verificando a ALSA:

$ APLAY -L

Conclusão

O áudio no Linux parece complicado porque realmente é. Desenvolver a rede de tecnologias e camadas de abstração legadas pode ser um verdadeiro desafio, mesmo para usuários de Linux experientes que conhecem os meandros do sistema operacional. Felizmente, nosso artigo ajudou você a entender melhor os componentes mais importantes do sistema de áudio Linux, incluindo ALSA, OSS e Pulseaudio.