Índice das dicas

Áudio no Linux: PulseAudio e os servidores de som

Por Carlos E. Morimoto em 11 de abril de 2009 às 07h46

20

Os sistemas de áudio são um velho problema no Linux. O primeiro conjunto de drivers de áudio para a plataforma foi o conjunto OSS (Open Sound System), que apesar do nome, era na verdade uma suíte comercial, cujos desenvolvedores ofereciam uma versão open-source (com algumas limitações sobre a versão comercial) que era incluída no Kernel.

O OSS era um sistema simples e que funcionava bem, mas com o tempo o desenvolvimento desacelerou e ele começou a se tornar cada vez mais defasado, com mais e mais modelos de placas de som ficando sem suporte ou sendo suportadas de forma limitada.

Surgiu então o Alsa, que trouxe uma interface muito mais complexa, porém mais elaborada. O projeto conseguiu atrair um bom volume de desenvolvedores e acabou se tornando o sistema de áudio default, substituindo o OSS. O Alsa inclui também um sistema de compatibilidade com o sistema antigo, que permite que aplicativos antigos, com suporte apenas ao OSS, continuem funcionando.

No modelo tradicional, os aplicativos que usam o som enviam o fluxo de áudio diretamente ao driver de som (que por sua vez faz parte do Alsa ou do OSS) que, por sua vez, se encarrega de fazer as operações necessárias e o enviá-lo à placa de som. O grande problema é que a maioria dos chipsets de som atuais (que, assim como os softmodems, regrediram em relação a placas offboard como as SB Live, usadas a uma década atrás, passando a executar cada vez mais funções via software) não suportam a reprodução de mais de um fluxo de áudio simultaneamente, de forma que quando a placa é acessada diretamente, você não consegue usar dois aplicativos que usam o som (o Amarok e o Skype, por exemplo) simultaneamente.

Surgiram então os "servidores de som", que atuam como intermediários entre a placa de som e os aplicativos, combinando diversos fluxos de áudio (de forma que vários aplicativos possam usar o som simultaneamente) e executando outras funções. Eles podem ser usados também para adicionar funções extras, como a possibilidade de usar som através da rede (um recurso usado por aplicativos de acesso remoto ou sistemas de terminais leves, como no caso do LTSP).

O grande problema com os servidores de som no Linux é que existem diversas opções e nenhum é usado por todos os aplicativos, dando origem a diversos tipos de problemas, um exemplo de falta de padronização que atrapalha a evolução do sistema.

Um dos exemplos mais conhecidos é o Arts, o servidor de som do KDE 3. Ele é usado ao marcar a opção "Habilitar o sistema de som" dentro do Kcontrol:

som_html_m7264c5ed

Embora tenha sido usado durante toda a fase 3.x do KDE, o Arts possuía diversas deficiências e acabou sendo descontinuado em 2004, o que levou os desenvolvedores do KDE a adotarem outro servidor de som, o Phonon, a partir do KDE 4.

Do lado do Gnome, o servidor mais tradicional é o ESD, usado desde as primeiras versões do desktop. Assim como o Arts, o ESD possui diversas limitações, o que levou ao aparecimento do PulseAudio, que passou a ser o servidor de som usado por padrão no Mandriva (a partir do 2008.1), no Ubuntu (a partir do 8.04) e também no Fedora, a partir da versão 8.

O PulseAudio inclui diversos recursos avançados, incluindo controles de volume independentes para cada aplicativo, o que abre as portas para algumas funções interessantes. Um programa de VoIP como o Skype poderia ser configurado para baixar automaticamente o volume do MP3 tocando no player de áudio quando você recebesse uma chamada, por exemplo.

Ele possui também uma boa arquitetura de streaming de áudio via rede, que se bem usada pelos aplicativos, pode dar origem a recursos interessantes. Um player de áudio rodando no seu notebook poderia ser configurado para usar as caixas de som do seu PC principal quando você estivesse dentro da área de cobertura da rede wireless (ou, seja, quando estivesse em casa), em vez de usar as caixinhas do próprio notebook, por exemplo.

Você pode encontrar dicas de como configurar diversos aplicativos para trabalhar em conjunto com o PulseAudio no: http://pulseaudio.org/wiki/PerfectSetup

O grande problema é que o PulseAudio sofre do mesmo problema que todos os outros servidores de áudio no Linux, que é o fato de nem todos os aplicativos estarem preparados para lidar com ele. As primeiras versões possuíam também alguns problemas de performance e de estabilidade, o que fez com que muitos ficassem com uma imagem negativa do novo sistema, depois de ter problemas relacionado a ele no Ubuntu 8.04 ou no Fedora 9, por exemplo.

Apesar dos pesares, o PulseAudio veio para ficar, o que, depois de resolvidos os problemas de transição, pode ser uma boa coisa, já que ele pode marcar, finalmente, o surgimento de um servidor de som padrão para o Linux, que seja adotado por todas (ou pelo menos quase todas) as distribuições e possa ser usado por todos (ou quase todos... :) os aplicativos.

O Phonon (do KDE 4.2), por exemplo, utiliza o PulseAudio como backend quando disponível, assim como o GStreamer, que é utilizado pelos aplicativos do Gnome, um raro caso de consenso entre os desenvolvedores dos dois ambientes.

Apesar disso, nenhuma solução é livre de problemas. Uma solução temporária, para casos em que o PulseAudio trava a placa de som, impedindo que outros aplicativos a utilizem é simplesmente matar o processo, usando o:

# pulseaudio -k

... ou, se você quiser ser mais enfático, usando o "killall pulseaudio".

Em muitos aplicativos, o default é utilizar o Arts ou o ESD sempre que possível, mas caso você esteja tendo problemas com o som em algum aplicativo em particular, experimente dar uma olhada na configuração e ver se não existe uma opção para mudar o servidor de som usado, passando a utilizar o PulseAudio:

som_html_25a1b2a0

RelacionadosÁudio

20 comentáriosPor Carlos E. Morimoto. Revisado 21 de março de 2011 às 16h46

Comentários

 
por Waldemar (anônimo) em 15 de setembro de 2010 às 02h19
Que o suporte a multimídia acaba sendo prejudicado eu concordo, devido a essa falta de padronização, e uso de diversos subsistemas/servidores de som, mas a comunidade tem trabalhado duro em diversos problemas e o suporte/qualidade/estabilidade dos subsistemas de som no Linux tem melhorado.
Nesse ponto o Windows acaba se saindo melhor, justamente como o Morimoto disse, devido a padronização no desenvolvimento de um único subsistema de áudio que o Windows utiliza.
Quando se compara Linux e Windows é necessário observar atentamente qual contexto se fala, Desktop,Ferramentas de Desenvolvimento, Servidores, Jogos, Segurança, Praticidade, Flexibilidade, enfim cada sistema de destaca positivamente ou negativamente em determinados contextos.
 
por hagahood (anônimo) em 18 de julho de 2009 às 18h13
@jose fransisco
tenho esse mesmo problema no kde3 tive que instalar o kde4/pulse para resolver o problema.
caso ache como resolver me manda uma mensagem privada no forum do gdh
 
por Douglas (anônimo) em 30 de abril de 2009 às 21h52
é engraçado esse pessoal que usa linux, ora é melhor que o Windows, ora é um sistema com problemas e que ainda tem que melhorar. O que eles ainda não notaram que 90% dos usuários continuam no Windows e isso deve ter uma razão muito maior do que só comodismo, afinal o Linux é de graça e a pirataria nos diz que o que é de graça é querido sempre a todo custo (exceto financeiro) tão era de esperar que se jogassem no Linux.... :)

Antes que pensem ao contrário: Uso Linux, mas as vezes tenho que rir. Tá cheio de gente ai falando M$ Ruindows, mas sempre falando do Windows ou precisando dele ou sentindo falta dele...
 
por José Francisco (anônimo) em 29 de abril de 2009 às 22h01
Excelente!
Estava tendo problemas com isso hoje e agora mesmo hehe! Como não sou muito familiarizado com sistemas Linux, esse artigo foi uma mãe na roda hehe
Vou tentar me aprofundar nesse assunto para ver se resolvo o problema do Flash Player no YouTube xD

Obrigado, e continue com os maravilhosos artigos Morimoto!
 
por Schultex (anônimo) em 14 de abril de 2009 às 01h16
João Paulo,

Para o problema do volume tenta usar o alsamixer
#alsamixer
 
por Schultex (anônimo) em 14 de abril de 2009 às 01h13
Olá pessoal,

Faltou informação sobre o jack (jack audio connection kit) que é um servidor de som mais power, para usar com áudio realtime. Softwares de gravação multipista, edição de áudio, bateria eletrônica, DJ, mixagem, masterização....

Ele permite o roteamento do sinal de áudio entre vários programas. Usa drivers alsa, oss, firewire, coreaudio (mac)...

Lista de aplicativos que usam o jack em
http://jackaudio.org/applications

Dá pra instalar no apt direto, mas geralmente ele precisa de um kernel com os patchs de realtime, então é mais fácil baixar uma distro liveCD mais direcionada para áudio e vídeo, como o musix
http://www.musix.org.ar/download.html

Se estiver no ubuntu dá prá baixar o kernel patchado dos repositórios do ubuntustudio.

Abraços
 
por João Paulo (anônimo) em 13 de abril de 2009 às 21h04
Morimoto,

Não tenho problema com o som do Linux, apenas um inconveniente: Ele é muito baixo! (Uso um laptop)

Para o dia-a-dia, até que é bom, mas para escutar uma música ou assistir um filme é baixo mesmo colocando no máximo.

Alguma dica em relação a isso?
 
por Carlão (anônimo) em 13 de abril de 2009 às 20h49
Instalei o Mandriva 2009 e o Alsa vivia travando. O VMWare e o VirtualPC não conseguiam acessar o áudio também. Chagava a parar o pc totalmente depois que eu usava o youtube, no firefox, junto com amarok.
Quando será que a multimídia no Linux vai ser pelo menos igual à do windows, onde um programa não iterrompe o outro?
 
por Roney (anônimo) em 13 de abril de 2009 às 20h13
Se o Arts(para KDE), o ESD(para Gnome)são "servidores de som mais antigos", o Phonon(KDE),GStreamer(Gnome)seriam os servidores de som mais atuais do KDE e Gnome respectivamente? Sinceramente não entendi aonde entra os PulseAudio. Seria um servidor de som mais atual ainda?

Abraços,
 
por raptor.x (anônimo) em 13 de abril de 2009 às 09h25
Uso o pulseaudio com o gnome, nunca tive problemas... porém, como uso uma placa de som off-board creative, sinto muita falta dos recursos de mixagens (inclusive com eco) que podem ser obtidos no ambiente windows.

Acho que levará um tempo para que o pulseaudio consiga extrair todos os recursos de qualidade de som que se tem com uma placa off-board.

Abraços!