Visite também: Currículo ·  Efetividade BR-Mac

O que é LinuxDownload LinuxApostila LinuxEnviar notícia


Áudio no Linux: explicando e tentando entender

Para ser absolutamente sincero com vocês, preciso confessar que eu parei de tentar entender já há muitos anos. Os subsistemas se sucedem, entrelaçam, retornam das trevas e muitas vezes expõem suas bordas afiadas a quem tenta instalar um aplicativo que quer emitir som mas não veio pré-configurado para os subsistemas ungidos pela distribuição em uso.

Mas sempre há quem queira entender, e certamente haverá quem consiga, assim como há quem nunca tropeçou nas escolhas entre ALSA, OSS, PulseAudio, JACK, Gstreamer, Phonon e outros serviços que, cada um no seu escopo, são empregados para no final das contas fazer vibrar as caixinhas ligadas à placa de som.

Para eles, e também para quem ainda não desistiu completamente, este artigo do TechRadar vem bem a calhar, pois descreve os componentes e os relacionamentos entre eles. (via lwn.net)


• Publicado por Augusto Campos em 2010-04-29

Comentários dos leitores

Os comentários são responsabilidade de seus autores, e não são analisados ou aprovados pelo BR-Linux. Leia os Termos de uso do BR-Linux.

    Não li a materia ainda, mas já opino sobre audio no Linux: É uma terrível zona. Primeiro o povo não sabe a diferença entre pulseaudio e alsa (E sequer sabem que debaixo dos panos o trabalho é do alsa), e sequer sabem que o OSS4 é muito menos tosco que o ALSA que é menos tosco que o OSS original (Lembrem que a opensound abriu o código do OSS em 3 licenças e o desenvolvimento anda muito bom – Inclusive com latencias menores do que o ALSA, com vmix nativo no kernel (Ou seja, pode tocar com até 32 aplicações simultaneamente gerenciado pelo módulo no kernel), um mixer muito melhor que o alsamixer e incrivel qualidade de audio (Isso comprovei com minha Audigy2).

    Ai depois vem a confusão sobre o que é Phonon, Jack, GST, e cia ltda, que até em quem é mais velho se confunde as vezes. Eu uso OSS + Pulseaudio pro skype (E só).

    Lucas Timm (usuário não registrado) em 29/04/2010 às 4:36 pm

    OSS é o que há.

    zer0c00l (usuário não registrado) em 29/04/2010 às 4:40 pm

    Um dos motivos gostar do meu Mac.

    Tony Stark (usuário não registrado) em 29/04/2010 às 4:47 pm

    Um dos motivos gostar do meu Mac.
    ==========================================================

    Olhe mamãe.
    Um troll!!

    rgc (usuário não registrado) em 29/04/2010 às 4:55 pm

    Incrível que o autor desse artigo do TechRadar nem sabe da existência do OSSv4, o que se pode comprovar pelos trechos:

    “However, OSS isn’t really dead, thanks to a compatibility layer in ALSA designed to enable older, OSS-only applications to run.”

    “It was designed to tackle many of the shortcomings of OSS (and most other sound drivers at the time), the most notable of which was that only one application could access the hardware at a time.”

    Mas alguém já percebeu e comentou lá:

    “OSSv4 is available under the GPLv2, BSD and CDDL 1.0 licenses.”

    Bremm (usuário não registrado) em 29/04/2010 às 4:59 pm

    Eu desisti do Pulseaudio faz uns dias. Disseram-me que estava maduro “e tal e coisa”, mas com o tempo vi aplicativos “emudecendo” do nada. Quer saber? ‘apt-get remove –purge pulseaudio’ :)

    Usei-o entre o Alpha 2 e o RC do “já sabem quem”.

    Nossa, não esperava que tantos aqui gostassem do OSS4 como eu gosto. Costumo usar o HG para testar o suporte a audigy 2 e no meu note uso a versão estavel. Uma curiosidade é o suporte a dispositivos USB. Tenho uma caixa usb da phillips que sai assim:


    [leleobhz@astra ~]$ ossinfo
    Version info: OSS 4.2 (b 2002/200912150204) (0x00040100) GPL
    Platform: Linux/i686 2.6.33-ARCH #1 SMP PREEMPT Mon Apr 26 20:00:20 CEST 2010 (astra)

    Number of audio devices: 2
    Number of audio engines: 7
    Number of MIDI devices: 0
    Number of mixer devices: 2

    Device objects
    0: osscore0 OSS core services
    1: oss_ich0 Intel ICH6 (266E) interrupts=11602 (11602)
    2: oss_usb0 USB audio core services
    3: usb0d8c0103-0 C-Media USB audio
    4: usb0d8c0103-1 C-Media USB audio

    MIDI devices (/dev/midi*)

    Mixer devices
    0: ICH AC97 Mixer (0x43585430) (Mixer 0 of device object 1)
    1: C-Media USB audio (Mixer 0 of device object 3)

    Audio devices
    Intel ICH6 (266E) /dev/oss/oss_ich0/pcm0 (device index 0)
    C-Media USB audio play /dev/oss/usb0d8c0103-1/pcm0 (device index 1)

    Nodes
    /dev/dsp -> /dev/oss/oss_ich0/pcm0
    /dev/dsp_in -> /dev/oss/oss_ich0/pcm0
    /dev/dsp_out -> /dev/oss/oss_ich0/pcm0
    /dev/dsp_ac3 -> /dev/oss/oss_ich0/pcm0
    /dev/dsp_mmap -> /dev/oss/oss_ich0/pcm0
    /dev/dsp_multich -> /dev/oss/oss_ich0/pcm0
    [leleobhz@astra ~]$ ossmix -d 1
    Selected mixer 1/C-Media USB audio
    Known controls are:
    output.mute ON|OFF (currently OFF)
    output.loud ON|OFF (currently ON)
    output.vol [:] (currently 255:255)
    [leleobhz@astra ~]$

    Fantástico! Ele gosta da minha caixinha USB e de quebra o som é muito mais puro e alto (Sem o loudness pq não gosto) do que o ALSA (Alias, sou somente eu que acho que o OSS toca “mais”?)

    Acho toda essa saroba bem de boa. E me dou muito bem com alsa.

    Lucas Timm (usuário não registrado) em 29/04/2010 às 5:14 pm

    Terminei de ler o artigo e voltei aqui pra comentar, e por surpresa, vi que outros também repararam o “acontecido”. Quando ele disse isso aqui¹, pensei que ele falaria que o OSS continua sendo desenvolvido, tá em versão 4 e tudo e tal. Logo no início percebi que o teor do artigo era sobre o Alsa, então já não esperava que ele dissesse o quanto o OSS é mais maduro que este. Só não esperava ter ficado no vácuo…

    ¹:

    ALSA was designed to replace OSS. However, OSS isn’t really dead, thanks to a compatibility layer in ALSA designed to enable older, OSS-only applications to run. It’s easiest to think of ALSA as the device driver layer of the Linux sound system.

    @Leonardo

    Não, eu também acho o som do OSS mais limpo (bem mais limpo) que o do Alsa. Aliado ao Pulse Audio, o Alsa consegue deixar o Linux tão estável quanto qualquer Windows 95…

    Tony Stark (usuário não registrado) em 29/04/2010 às 5:18 pm

    Por incrível que possa parecer para alguns, dificilmente tive problemas de áudio no Linux (uso desde 2005).
    No Mandriva 2007, vez ou outra, eu tinha que dar um kill artsd, porque ele teimava em bloquear o áudio, mas mesmo assim era bastante raro ocorrer.
    Nas versões posteriores do Mandriva, este problema foi sanado.

    Diogenes (usuário não registrado) em 29/04/2010 às 5:34 pm

    Vou provar…

    Internetenimento

    Igor Cavalcante (usuário não registrado) em 29/04/2010 às 5:45 pm

    Bem, o audio nunca foi o ponto forte do linux, de uns anos pra cá tem melhorado quanto a facilidade com o usuário, mas … a arquitetura é uma gambi mesmo

    viana (usuário não registrado) em 29/04/2010 às 5:48 pm

    Eu também acho o som no Linux complicadíssimo depois do PulseAúdio. Uso Linux há 10 anos e somente há uns 2 anos com o Mandriva 2009, KDE 4 e PulseAudio é que virou uma gororoba que nada resolve. Já li milhoes de páginas e dicas e foruns e nada resolve. Estou aguardando Mandriva 2010 Spring ou Ubuntu 10.04 pra ver se algo muda pra melhor!
    Vez por outra meu PC fica mudo e trnho que reiniciar pra voltar o som … realmente parece Windows 95 … credo !

    Lucas Timm (usuário não registrado) em 29/04/2010 às 5:59 pm

    @viana

    Meu falecido Fedora 9 era assim também. Aí, num surto de raiva, removi o Alsa, Pulse e tudo o que tinha direito e instalei o OSS. Nunca mais me deu problema [de áudio. Afinal era o Fedora...]

    Quando mudei meu desktop pra CentOS, também não tive mais problemas com o som, novamente usando Alsa. Mas aí era uma versão mais antiga, mais estável, num kernel também mais antigo (2.6.18) e não precisei instalar o OSS. Mesmo assim é uma ótima solução.

    Meu som nunca dá problema até… precisar do Skype.
    Cara, é um terror descobrir quando o Skype não funciona o mic.

    DF (usuário não registrado) em 29/04/2010 às 6:15 pm

    Só eu que não tenho praticamente problema nenhum com áudio no linux ? No Mandriva Linux, desde que o pulseaudio foi incorporado, não tenho tido problemas.

    O maior problema que sempre vi nos forums foi com o skype, que é um programa proprietário, ou com hardware de terceira categoria.

    Mesmo antes, desde 1998, no tempo que ainda usava a velha e boa SoundBlaster AWE, o som já funcionava sem problemas.

    O problema é que essas placas antigas faziam a mixagem de som por hardware, mas daí vieram as placas de som vagabundas e onboard que não fazem isso. Por isso essa complicação toda do pulseaudio e outros sistemas de som.

    DF (usuário não registrado) em 29/04/2010 às 6:18 pm

    Esse artigo do Carlos Morimoto explica de forma bem didática essa sopa de letrinhas dos programas de áudio no linux

    http://www.gdhpress.com.br/blog/servidores-de-som/

    DF (usuário não registrado) em 29/04/2010 às 6:24 pm

    Ou seja, o que eu quero dizer é que não tenho problema nenhum com som nos programas livres de áudio e vídeo.

    O problema é sempre relacionado com programas proprietários (ou seja, o desenvolvedor é que não sabe programar em ambiente linux) ou com placas de som cujo driver alsa não está totalmente maduro ou não é suportada (o problema é do fabricante e da pessoa que comprou um hardware não apropriado para usar linux.

    E se o OSS não é o padrão hoje nas distribuições linux é por culpa única e exclusiva da trapalhada da empresa 4Front Technologies, que desenvolve o OSS

    http://en.wikipedia.org/wiki/Open_Sound_System#Free.2C_proprietary.2C_free

    Não sei como está o desenvolvimento do OSS, se a 4Front aceita bem contribuições de desenvolvedores externos, mas pelo menos para Linux, ela já perdeu o bonde. Não vejo motivos para trocar o alsa hoje em dia pelo OSS. Além disso, o pulseaudio + alsa tem recursos a mais que o OSS puro pelo que eu sei e o pulseaudio é multiplataforma.

    Allan Taborda dos Santos (usuário não registrado) em 29/04/2010 às 6:30 pm

    Só tive problemas com o som na época que eu usava o Kurumin 2.13, que vinha com o OSS antigo. Mas era só clicar no “ícone mágico” (que não era ícone, e sim um item do menu) de ativar drivers ALSA e o som passava a funcionar sem problemas.

    O som também não funcionava quando eu instalava o Debian 3.1 e 4.0 apenas o modo texto e depois instalava o X Window System e depois o KDE, mas quando eu instalava na maneira tradicional, selecionando o perfil desktop na instalação, aí o som funcionava sem problemas. Não considero isso como um problema de som, pois devia ser apenas algum pacote faltando. No Debian 5.0, instalei o sistema apenas da maneira tradicional, a não ser uma instalação que fiz numa máquina virtual no KVM/Qemu, onde nem instalei o ambiente gráfico, pois a intenção dessa VM é fazer testes diversos que não envolvem tocar sons.

    DF (usuário não registrado) em 29/04/2010 às 6:34 pm

    o OSS suporta vários sistemas oepracionais, mas com exceção do BeOS, todos são derivados do Unix. O pulseaudio ainda acrescenta windows e MacOS X

    Ah, outro programa que costuma dar problemas com o pulseaudio em certas distribuições é o Flash, que também é proprietário e os desenvolvedores já são conhecidos como incompetentes na programação de modo geral e mais ainda no linux

    http://www.webcitation.org/5kcZukzEL

    rgc (usuário não registrado) em 29/04/2010 às 6:39 pm

    Minha opinião é a seguinte, o Hannu tinha liberdade para contribuir ou não para o kernel, ele era voluntário. Se uma empresa o contratou e o chefe dele quis que ele mantivesse uma versão com alguns recursos a mais em código fechado, infelizmente ele tinha que sustentar a família dele. Naquela época o patrocínio do desenvolvimento do Linux por empresas não era tão forte.

    Nem por isso o pessoal do kernel deveria ter pego aversão total ao OSS como pegou. Eles pegaram aversão a todo o código que o Hannu tinha desenvolvido e jogaram no lixo:

    “Now instead of just rewriting OSS at the core, or using a wrapper (which understandably doesn’t fix the underlying mixer problem), or updating the existing open source OSS at its base, some developers for some absurd reason decided they needed a whole new system and API to go with it.” [1]

    Não lembro onde eu li, mas o ALSA era inicialmente um driver para uma única marca de placa de áudio, e a API era extremamente “tunada” para essa placa. Então muita coisa da API não fazia muito sentido para outras placas.

    Acho que teria evitado muita confusão se o pessoal do Linux tivesse melhorado o código do OSS que estava disponível sob GPL na época, ou mesmo se tivesse reescrito mas mantendo a API, assim como os outros sistemas operacionais de código aberto fizeram.

    Hoje temos OpenSolaris e FreeBSD suportando a API do OSSv4 (a implementação do FreeBSD é própria, a do OpenSolaris é baseada no OSS da 4front), e NetBSD e OpenBSD um pouco atrás usando a API antiga (OSSv3).

    O Linux? A maioria das distribuições desktop usa ALSA + PulseAudio. Não tiro o mérito, muita gente usa e funciona. Eu já tive problemas com essa combinação em 3 máquinas diferentes. Mas mesmo que funcione para você, é inegável a complexidade por baixo do tapete dessa solução.

    [1] http://insanecoding.blogspot.com/2007/05/sorry-state-of-sound-in-linux.html

    rgc (usuário não registrado) em 29/04/2010 às 6:45 pm

    DF, O PulseAudio funciona sob OSS também, não é só sob ALSA, e ele cumpre muito bem seu papel original – áudio sobre rede. Mas aplicações que desejam ser portáveis entre sistemas operacionais diferentes deveriam ser escritas usando bibliotecas feitas para isso, como portaudio, gstreamer, phonon, etc.

    Só não existe OSS para Windows ainda porque ninguém portou ainda. Se eu desenvolvesse para Windows, escreveria. Faria sucesso nos “fóruns de Windows” e entre técnicos que infelizmente precisam lidar com máquinas Windows um driver genérico de pouco mais de 1MB que funcionasse com qualquer placa de áudio.

    Fazem muitos anos que não tenho problema algum com som no Linux inclusive usando Skype. Pelo menos para mim essa é uma das coisas que eu espero que simplesmente funcione e que eu não tenha que fazer nada alem de ajustar o volume.

    mahousenshi (usuário não registrado) em 29/04/2010 às 6:52 pm

    Pulseaudio é em si uma tecnologia muito bacana, mas não faz o básico que é tocar o local, som e linux são coisas que ainda não se misturam bem, só perdia para o X.

    Juro que, por dentro, eu ainda rezo toda a vez que eu atualiza alguns dos dois

    Desde o Mandriva 2009.1 não tenho mais problemas com o som, o Skype era a excessão, mas quando saiu o 2.1 beta acabou o problema tb e os poucos bugs que restaram se foram no 2.1 beta2.
    O Alsa + Pulseaudio no Mandriva 2010 estão redondos… agora eu consigo usar meu headset bluetooth com Skype, Linphone e qualquer outro apenas usando aplicações gráficas para configurar e isso pra mim é priceless(TM).
    Quanto ao Phonom, estou esperando sua evolução ainda!

    ps. Blueman + Pulseaudio Applet rules!

    Marcos Alexandre (usuário não registrado) em 29/04/2010 às 8:59 pm

    Torço pra chegar um dia que essa discussão seja transparente aos usuários de Linux.

    E pra que nunca mais tenha de ler algo como essa pérola:

    “O problema é sempre relacionado com programas proprietários (ou seja, o desenvolvedor é que não sabe programar em ambiente linux) ”

    Em Mac OS e em Windows o desenvolvedor não precisa se preocupar com isso porque o SO consegue abstrair essa tarefa. Mas acredito que chegaremos lá, seja graças ao Phonon, ao pulseaudio ou a qualquer outra tecnologia que ainda vai ser inventada…

    Harry (usuário não registrado) em 29/04/2010 às 9:21 pm

    Sou desenvolvedor. Faço programas livres. E tenho muitos problemas com o som no Linux. :-( É triste, mais é verdade. A existência de tantos servidores de som, bibliotecas e módulos que cuidam disso é muito ruim.

    Nem sempre dá para usar aquela biblioteca super-alto-nível com suporte à todo o tipo de som. Nem todos os programas ficam em repositórios cujas dependências são resolvidas via APT. Às vezes precisa-se criar um programa para uma distro específica, o qual você quer distribuir por meio de um .DEB que instale com dois cliques. Sem que apareça a mensagem “Desculpe, mas este pacote depende de XXXXX”.

    E o que você faz!?!?! Você tem que usar na raça bibliotecas de baixo nível. Lá vai um #include . Depois de muito tempo juntando isso com um um libvorbis da vida… Than-than!! O som funciona! Mas… E se agora tiver que mandar um .DEB para uma distro que só suporta o OSS? FAIL.

    Torço muito para que isso melhore. Facilitaria muito a criar programas mais portáveis sem que tenha-se que usar coisas tão baixo-nível como a biblioteca do ALSA e também sem encher o código com detestáveis #ifdefs da vida.

    Harry (usuário não registrado) em 29/04/2010 às 9:23 pm

    Eu sempre esqueço que a sintaxe HTNL não gosta de coisas como “#include <alsa/asoundlib.h>”. Mais uma mensagem minha em que esqueci disso…

    VinIPSmaker (usuário não registrado) em 29/04/2010 às 11:01 pm

    Uso Linux desde 2007 e só estou tendo problemas com áudio recentemente, depois de ter instalado o Enlightenment (mas eu esperava os problemas de usar essa tecnologia instável). O problema:
    O som sempre inicia mudo e eu tenho que ajustar para 100% toda vez que entro no sistema.

    Mas, voltando para o artigo, achei bem interessante. Eu tinha um pouco de repulsa pelo sistema de áudio Jack, mas depois de ler o artigo minha opinião está começando a mudar e talvez eu passe a acompanhar o seu desenvolvimento.

    arthas_dk (usuário não registrado) em 30/04/2010 às 12:08 am

    Bem eu sinto falta de uns ‘controlezinhos’ que eu tinha até mesmo no gnome-volume-manager antigamente e o Skype, que na realidade não dá problemas, simplesmente ele joga o volume do microfone no mínimo quando abre:

    Pelo menos aqui, basta abrir tanto o controlador do pulse quanto o Skype (quando abrir o skype o volume vai para o mínimo) e colocar o volume no lugar de volta.

    De fato, está faltando um conector ou algo mais ‘padrão’ para que os desenvolvedores possam a começar a trabalhar em aplicações mais independentes dessa ou daquela tecnologia.

    Harry (usuário não registrado) em 30/04/2010 às 8:58 am

    Até que para o usuário padrão que usa gerenciador de pacotes para nstalar as coisas, o problema com som não é tão grave. Ele só aparece em alguns programas proprietários ou em alguns tipos de programas instáveis ou não-oficiais. E também na necessidade de ter no sistema um monte de bibliotecas redundantes.

    A dificuldade maior de tudo isso fica com o desenvolvedor, que precisa se perguntar quel o sistema de som que está instalado no computador do usuário. Quando impor dependências não é um problema (no caso de programas oficiais suportados pela distro, que terão dependências instaladas automaticamente), também não tem problema. Mas existem casos específicos que nos quais surgem dificuldades para nos assombrar.

    Lucas Bocchi (usuário não registrado) em 30/04/2010 às 10:06 am

    Padronização…

    O pecado ou a virtude?

    Isso que me pergunto quando vejo esse tipo de coisa…
    É uma dúvida que eu tenho e me martela a cabeça de vez em quando…

    Marcos Alexandre (usuário não registrado) em 30/04/2010 às 9:46 pm

    Pro KDE a proposta do Phonon é deixar isso transparente, mesmo que internamente ele tenha de fazer um gambiarra. Espero que um dia ele consiga chegar nesse nível.

    Davi Antunes (usuário não registrado) em 4/05/2010 às 8:45 am

    Deveriam fazer como o X, colocar apenas 1 servidor de audio (OSS4 é meu voto).
    Tantos serviços de audio atrapalham o usuario, especialmente o usuario final.

    []´s

Este post é antigo (2010-04-29) e foi arquivado. O envio de novos comentários a este post já expirou.