Configurando sua máquina para tocar vários sons ao mesmo tempo

Muita gente (inclusive eu) já teve ou tem problemas em executar várias aplicações de som ao mesmo tempo. Se você não consegue ouvir mais nada quando está com o XMMS aberto ou vive se deparando com mensagens de erro do Arts ou de programas vários, este artigo é pra você. O que vamos fazer é configurar o ALSA para mixar tudo, sem utilizar do ESD (Esound) ou Arts.

[ Hits: 49.315 ]

Por: Wainer Chiari em 30/09/2005


O Dmix



O Dmix propriamente dito seria um plugin para o ALSA que "mixaria" tudo utilizando-se do software ao invés do hardware (lembrando que se sua placa tem suporte a "hardware mixing", então você não precisa ler este artigo :P).

O plugin


Crie um arquivo "/etc/asound.conf" (sem aspas é obvio) e adicione as seguintes linhas:

# INICIO
# Definindo o script
   pcm.ossdmix {
   type dmix
   ipc_key 2106      # Um número único
   slave {
      pcm "hw:0,0"
      period_time 0
      period_size 4096  
      buffer_size 8192 # se começar a ter "travadinhas" em aplicções
                       # muito pesadas utilize um número maior,
                       # ex: 65536 ou 16384

      # rate 48000
      # descomente a linha acima para utilizar 48000Khz como saída padrão  
   }

  # bindings servem apara acelerar o dmix, utilizando apenas 2 canais,
  # o que serve para a maioria das pessoas
  bindings {
    0 0
    1 1
   }
  }

  ctl.ossdmix {
     type hw
     card 0
  }

  # Habilita o uso do microfone ou Line-In
  pcm.dsnoop {
     type dsnoop
     ipc_key 0507

     # Compatibilidade com o Full Duplex do KDE
     slave {
        period_time 0
        period_size 4096
        buffer_size 65536
     }

     bindings {
        0 0
        1 1
     }
  }

  ctl.dsnoop {
     type hw
     card 0
  }

  pcm.duplex {
     type asym
     playback.pcm "ossdmix"
     capture.pcm "dsnoop"
  }

  # Utilizar o Dmix por padrão do ALSA
  pcm.!default {
     type plug
     slave.pcm "duplex"
  }

  # Compatibilidade OSS
  pcm.dsp0 {
     type plug
     slave.pcm "duplex"
  }

# FIM

OBS: Este método vai configurar o sistema todo, se desejar que as configurações afetem somente o seu usuário ou se não tiver permissões, ao invés de utilizar o arquivo /etc/asound.conf, utilize o ~/.asoundrc.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. O Dmix
   3. As aplicações
   4. Testando / Finalizando
Outros artigos deste autor

Fontes True Type no Slackware (sem xfstt e ttmkfdir)

Modens PCTEL/LG/VIA sem complicação (talvez um pouquinho)

Captive-NTFS com kernel 2.6

Gerando pacotes no Slack com o checkinstall

Gtk-Qt Engine: temas Qt em aplicações GTK

Leitura recomendada

Impressora Lexmark Z600series e 1200series

Impressoras 3D Nacionais... A VERDADE!

Instalando placa wireless no OpenSUSE 11.0 (método genérico para qualquer placa)

Sucata - Dicas de compra

Utilizando o celular Nokia 5200 Xpressmusic como pendrive no Mandriva Linux 2009.0

  
Comentários
[1] Comentário enviado por jwendell em 30/09/2005 - 09:59h

Alguma configuração especial ou macete pra fazer isso usando o GNOME?

[2] Comentário enviado por Tango em 30/09/2005 - 13:44h

Uma nota importante que eu deixo por experiência própria. Algumas placas de som (AC97 mais notavelmente) ficarão com o som dirtorcido se o buffer_size não for uma potência de 2.

[3] Comentário enviado por flipe em 30/09/2005 - 15:28h

aqui ele retorna o seguinte erro!

Directory: /mnt/hd1/flipe/mule/completos/Dub_Syndicate-Pure_Thrill_Seekers-CD-2005-/
Playing MPEG stream from 11-dub_syndicate-yes_it_is_bless-yard.mp3 ...
MPEG 1.0 layer III, 128 kbit/s, 44100 Hz joint-stereo
ALSA lib conf.c:1165:(parse_def) dsnoop is not a compound
ALSA lib conf.c:1578:(snd_config_load1) _toplevel_:32:14:Invalid argument
ALSA lib conf.c:2823:(snd_config_hook_load) /etc/asound.conf may be old or corrupted: consider to remove or fix it
ALSA lib conf.c:2686:(snd_config_hooks_call) function snd_config_hook_load returned error: Invalid argument
ALSA lib conf.c:3052:(snd_config_update_r) hooks failed, removing configuration
ALSA snd_pcm_open error: Invalid argument

[0:02] Decoding of 11-dub_syndicate-yes_it_is_bless-yard.mp3 finished.

quando tiro o alsa09 do "/etc/libao.conf" não da o erro, e também não funciona!

e agora, estou tendo que retirar o microfone do computador para poder escutar, senão da microfonia, mesmo depois que retirei todas as suas configurações!

valeu!

[4] Comentário enviado por pop_lamen em 30/09/2005 - 15:53h

flipe,
Tente comentar as linhas :
# Habilita o uso do microfone ou Line-In
pcm.dsnoop {
type dsnoop
ipc_key 0507

Deve funcionar :P

[5] Comentário enviado por flipe em 01/10/2005 - 13:30h

o problema, que mesmo depois de ter retirado toda a configuração o problema continua!

0000:00:0c.0 Multimedia audio controller: Creative Labs SB Live! EMU10k1 (rev 04)
Subsystem: Creative Labs CT4850 SBLive! Value
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 32 (500ns min, 5000ns max)
Interrupt: pin A routed to IRQ 10
Region 0: I/O ports at dc00 [size=32]
Capabilities: [dc] Power Management version 1
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-


alias, como uso "hardware mixing" na minha "sb live", tu sabe informar?

valeu!

[6] Comentário enviado por removido em 01/10/2005 - 19:03h

Cara mto bom o artigo!! Funcionou perfeitamente aqui! Dá até gosto de ver as barrinhas do XMMS mexendo no mesmo ritmo da música (eh, com o ESD isso não acontecia :-P)
Valeeeeeu!!!

[7] Comentário enviado por Century_Child em 08/10/2005 - 18:14h

Excelente!

Aqui eu sempre tinha um "delay" na música, irritante demais (ainda mais pq aplico um monte de efeitos LADSPA na música, pra reduzir chiado, melhorar volume, essas coisas) com o ESD.

Sem falar que ele DEVORAVA CPU (de 0 a 100% em 20 minutos).

[8] Comentário enviado por diesel em 26/12/2005 - 16:43h

Muito bem.. há muito tempo eu estava me matando pra tentar fazer funcionas a mixagem com o jackd, mas esta dica é barbada, valeu!

[9] Comentário enviado por soro em 18/01/2007 - 00:45h

como vou saber se minha placa tem suporte a hardware mixing?

[10] Comentário enviado por magnus em 23/01/2007 - 20:31h

Eu recebi o mesmo erro que o flipe, exceto pelo microfone. O mpg321 funcionou mas quanto tentei junto com o Amarok não deu. Ou um ou outro. O xmms também deu erro, mas como eu não uso muito o xmms eu não sei se foi por causa das mudanças.

[11] Comentário enviado por magnus em 23/01/2007 - 20:51h

[voltando]
Não consegui com esse artigo mas consegui com outro (http://linux.gustavobarbieri.com.br/alsa-dmix-howto.txt). Só gostaria de saber porque alguns conseguiram e outros não.

[12] Comentário enviado por crashvk em 21/03/2007 - 11:39h

Envio aqui um site mais atualizado do assunto.

<http://www.knoppix.net/forum/viewtopic.php?p=111703>

T+

[13] Comentário enviado por M4iir1c10 em 23/06/2007 - 08:14h

Excelente! Agora me diz uma coisa, quando eu comecei com o Linux o kde estava na versao 3.0 e quando eu posicionava o mouse sobre um icone de um arquivo de audio ele tocava sem eu abrir ele, tipo um preview do arquivo, so que isso nao acontece mais, mesmo com a opcao de preview de audio no konqueror estar selecionado nao ouco nada, vc sabe como resolver? ou esse artigo ja da conta desse recado? (ainda nao fiz o teste)

[14] Comentário enviado por removido em 13/02/2010 - 20:04h

bom que funciona com a maioria, mas pra mim só o esd funciona blza aqui...
alsa faz travar o som quando toco midi, também deixa o som dos jogos em sdl chiando e travando até o vídeo...

como o artigo é antigo, o esd nao devia ser bom, já que usava até 100% de cpu, mas aqui no meu tá de boa, tá melhor que o pulse, o alsa...


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts