Por que você precisa do PulseAudio?

13

Estou lendo e tentando entender por que alguém iria querer usar o Pulse Audio e não estou conseguindo entender. Eu li este https://www.linux.com/news/hardware/drivers/8100-why-you-should-care-about-pulseaudio-and-how-to-start-doing-it , e ainda estou não obtendo uma resposta convincente. Eu tenho uma configuração, com uma placa de som. (Não preciso multiplexar sons de ou para várias placas de som). Eu sei que todos os aplicativos são escritos com diferentes APIs, ALSA, OSS, JACK etc. Portanto, se eu configurar todas essas estruturas para rotear o som por meio de áudio de pulso, qual o benefício que eu ganho versus permitir que todas essas estruturas conversem diretamente com a placa de som motorista? Além disso, não vejo que a Pulse Audio tenha sua própria API de aplicativo. Então, eu preciso escolher uma estrutura de qualquer maneira (como a ALSA). obrigado

Michael P
fonte
5
Por um lado, eu sei que costumava ter um problema em que, se o programa A usava a placa de som, o programa B não podia usá-lo até o programa A ser fechado. Mesmo que o programa A não estivesse mais usando-o. No meu caso, esse tipo de coisa desapareceu assim que o pulseaudio surgiu. Talvez eu pudesse ter configurado o ALSA ou o OSS para também permitir o acesso de vários programas à placa de som, mas nunca havia descoberto como.
terdon
2
Eles (pulseaudio) pensaram que a solução para os muitos sistemas de áudio no linux era criar outro sistema de áudio.
ctrl-d
Se esse era um sistema capaz de emular os outros ou se tivesse uma interface mais simples, era a solução. Parece que isso não foi alcançado.
schily

Respostas:

17

É tudo sobre multiplexação.

Não preciso multiplexar sons de ou para várias placas de som

Ah, mas você faz! Se você quiser reproduzir áudio de duas fontes ao mesmo tempo, por qualquer motivo, precisará de multiplexação.

OSX e Windows lidam com a multiplexação no kernel (mas ainda no software), e é por isso que isso nunca / raramente ocorre nessas plataformas.

No entanto, no Linux, com software como o ALSA, a multiplexação é deixada para a placa de som / implementação / driver específico.

Infelizmente, nem todos os cartões e todos os drivers realmente suportam isso imediatamente.

É aí que entra o PulseAudio, fazendo a multiplexação em software, independentemente da situação da sua placa de som / driver.

Sem essa funcionalidade, por assim dizer, usando o ALSA diretamente sans-PulseAudio, com uma placa de som com pouco suporte à multiplexação de PCM no Linux, você só conseguiria ouvir som de um aplicativo por vez.

Por exemplo, se você tivesse um vídeo sendo reproduzido no seu navegador da Web e recebesse uma notificação no Pidgin, não ouviria o som da notificação porque o seu navegador já teria o controle da sua placa de som.

Ao rotear todo o som pelo PulseAudio primeiro, esse problema é evitado.

Fonte: Uma longa conversa no IRC que tive com o mantenedor do Ubuntu da ALSA, onde perguntei exatamente a mesma pergunta que você está fazendo agora.

Zee Alexander
fonte
5
Obrigado @Zee! Essa é uma boa resposta! No entanto, li este alsa-project.org/main/index.php/Asoundrc e vejo que consigo exatamente o mesmo com as configurações do ALSA, usando "plugins". Eu testei e consegui reproduzir várias instâncias de aplay ao mesmo tempo. Portanto, minha pergunta ainda permanece: por que preciso do Pulse Audio, se posso fazer tudo isso com o ALSA :)?
Michael P
5
Hey @MichaelP, prazer em ajudar. O motivo pelo qual o PulseAudio ainda é útil é porque você pode ter vários servidores de áudio em execução, não apenas o ALSA. Por exemplo, se alguém está realizando um trabalho de edição de áudio, geralmente usa o servidor de áudio JACK para isso, que é mais adequado para o trabalho de áudio de baixa latência, mas ainda usa o ALSA para o áudio geral. Isso pode não se aplicar a você, mas o PulseAudio significa que você não precisa se preocupar com como tudo funciona. Se você o configurar apenas para o ALSA, precisará configurar cada caso de uso separadamente. O PulseAudio funciona com o Alsa e com qualquer outra fonte de áudio que você possa usar.
Zee Alexander
2
Dito isto, o PulseAudio pode não ser especialmente útil para você especificamente, mas geralmente as distros que não são de barebones o configuram para você imediatamente, portanto não há motivo real para substituí-lo por um plug-in ALSA. Se você estiver executando uma distro como o Arch, na qual você deve configurar tudo do zero, use o plug-in ALSA.
Zee Alexander
1
Obrigado @Zee Alexander, isso resolve toda a minha confusão. Obrigado pela resposta. Eu gostaria que o PulseAudio explicasse isso muito bem no site deles.
Michael P
2

Desde a introdução do Dmix no alsa, o pulseaudio se tornou inútil. Alsa nua com o Dmix de alguma forma ativada no fundo (não preciso definir nada) funciona muito melhor para mim. Por exemplo, não há atrasos enquanto um nível de som está sendo alterado.

Basta desinstalar o pulseaudio se você estiver usando o alsa recente e se sentir bem.

user4674453
fonte
1
Só tive esse problema de popping, desinstalou o pulseaudio e agora tudo soa bem (a reprodução de várias fontes também funciona muito bem). Alsa driver 4.4.0-104, utils 1.1.0
klogd
1
WTaF. Então, por que as distribuições ainda ativam o daemon de multiplexação do pulseaudio? É um AF lento e lento e tem sido o culpado por muitos problemas de som! Desabilito o daemon em vez de desinstalar o pacote inteiro, pois existem dependências na configuração do ALSA, que o pacote parece fazer bem.
Dominic Cerisano