Outro que eu amoooo é o PulseAudio

Atualizado: mais uma declaração de amor. Nessa, o povo queria escutar o mesmo stream em 2 canais ao mesmo tempo, e isso foi possível usando um módulo de combinação do PulseAudio.

Apesar dele me dar uma dorzinha de cabeça de vez em quando, principalmente com coisas proprietárias mal-feitas como o plugin de Flash, ele acaba melhorando minha vida um bocado com as outras coisas. Poder definir os volumes de cada coisa independentemente em um único lugar, por exemplo, é algo muito interessante para mim, que costumo ficar ouvindo música e quero ouvir outros áudios (como os de um jogo) ao mesmo tempo.

Mas se você acha que isso é o mais legal do PulseAudio, se enganou =P. Uma coisa que eu sempre fazia quando estava na casa da minha mãe era tocar músicas que eu tenho no meu computador no computador dela, que tem as melhores caixinhas de som que eu já vi num computador. Isso envolvia uso muito criterioso do esound e o sacrifício de uma ou duas cabras, para funcionar. O processo é mais ou menos o seguinte: no computador dela, eu abria um shell com um usuário que tinha permissão de tocar sons, matava o esd, se estivesse rodando, e o executava de novo, assim: esd -tcp -promiscuous -public. Ah, se você não gostar do barulinho de início dele, coloque também -nobeeps =P.

O que isso faz é rodar o esd com acesso público (de fora do mesmo computador), e permitir conexões sem exigir autorização. Depois disso, você vai no computador que vai tocar a música, e configura com gconf a chave /system/gstreamer/0.10/default/musicaudiosink para esdsink host=seuhost.local. Depois disso, é só iniciar seu player e tocar; se os planetas estiverem alinhados corretamente, vai dar certinho.

Hoje a gente quis fazer a mesma coisa aqui em casa. O DJ em geral sou eu, já que estou sempre com meu player tocando músicas =P, mas nos últimos tempos meu computador deixou de ser o com melhor capacidade de emitir áudio. Eu estou com um Lenovo x200s da Collabora, e deixei meu hp pavilion (que tem as melhores caixinhas em notebook que eu já vi) com a Lu. Com pulseaudio, fazer isso ficou bem mais são de fazer. Pra começar nós dois instalamos o pacote padevchooser, e rodamos o dito-cujo. A Lu clicou o íconezinho na área de notificação, e escolheu “Configure Local Sound Server…”.


Pulse Audio preferences

Feito isso, o pulseaudio inicia com essas configurações, e já apareceu para mim, no meu chooser:


Pulse Audio preferences 2.0

Pronto, todo meu audio agora está sendo roteado para o PA da Lu, e a gente pode ouvir minhas lindas músicas na caixinha bacana do notebook dela, ao invés de na xiadeira que sai das caixinhas que ficam _embaixo_ do x200s. Mas ainda tem uma coisa ruim nesse setup. Eu não quero todo o meu som sendo roteado, só a música… hmm… Fácil! Volto o servidor padrão do Dev Chooser para o Default e configuro o meu servidor para tratar dispositivos descobertos na rede como se fossem dispositivos locais:


Pulse Audio preferences 2.0

Agora, se eu for no padevchooser e escolher ‘Volume Control…’ eu tenho como fazer o seguinte, com o stream do Rhythmbox:


Pulse Audio output

Na aba ‘Output devices’ eu vejo o servidor PA da Lu como se fosse uma placa de som normal, e posso definir o volume do que vai pra ela como um todo lá, se não quiser definir de stream por stream que eu decidir mandar.

O PA ainda não está perfeito, tem muitos corner cases pra resolver, e mesmo isso que nós fizemos aqui em casa pode sofrer dependendo da sua instalação, por ser um recurso razoavelmente pouco testado, mas eu já acho sensacional poder fazer tanto com tão pouco trabalho. Tá certo que boa parte disso também se deve ao Zeroconf, que o PA usa para anunciar e localizar os servidores, mas isso é assunto pra um outro post =).

6 Replies to “Outro que eu amoooo é o PulseAudio”

  1. É… PulseAudio realmente é muito bacana… eu já tinha “tentado” essa façanha ha uns 2 meses mais ou menos… mas só tocava 30 segundos e o player travava… bom q vc me lembrou… vou testar denovo! :]

  2. @DU: o tema chama ‘Shiki-Wise’; eu acho que ele tem alguns problemas de usabilidade (eu fico com vontade de clicar na barra de menu pra arrastar a janela, por exemplo), mas tá combinando bem com meu GNOME Shell =)

Leave a Reply

Your email address will not be published. Required fields are marked *