Home > Posts > Condividere una sorgente di riproduzione audio con il plugin dmix di ALSA ed EsounD

Condividere una sorgente di riproduzione audio con il plugin dmix di ALSA ed EsounD

12 Novembre 2007

Uno dei problemi che affligge l’utenza GNU/Linux è l’impossibilità di far utilizzare i propri dispositivi audio (specie in riproduzione) a più di un software per volta in maniera semplice. Per questo motivo, orde di server sonori, diversi per scopi e complessità, pullulano negli svariati meandri della rete. L’ultimo arrivato nel campo dei server sonori “per le masse” è PulseAudio, e rappresenta (forse) il futuro del genere: sinceramente, non fa per me. Troppo complicato da mettere su.

Esiste un metodo più semplice e (credo) poco sfruttato, che permette di rimanere soddisfatti di se stessi usando il caro, vecchio EsounD - per cui ho un debole :-)  .

Se vi serve solo far funzionare a dovere, che so io, Skype senza bisogno di dover uccidere il processo del vostro server sonoro, l’uso del plugin dmix può essere determinante. Ricordate che io non uso GNOME, e quindi ho installato EsounD in modalità stand-alone a caricamento automatico all’avvio del sistema: ciò non dovrebbe costituire un grosso problema, ma è sempre meglio avvisare :-) .

Attenzione: dmix funziona solo con gli stream di riproduzione.
Inoltre, si suppone che tutti i comandi che seguono vengano eseguiti dall’utente root.

Se la vostra distribuzione non è (basata su) Debian, assicuratevi di utilizzare i comandi appropriati della vostra distribuzione per installare il software richiesto.

  1. Uccidiamo il processo di EsounD, e sostituiamo la sua libreria fondamentale con una versione che passa direttamente attraverso ALSA: killall esd; apt-get install libesd-alsa0 alsa-oss
  2. Creiamo il file /etc/asound.conf con il contenuto che segue:
    # Mixaggio software per tutte le applicazioni.
    #
    # Fonti:
    #
    # -  http://alsa.opensrc.org/index.php?page=AlsaSharing
    # -  http://alsa.opensrc.org/index.php?page=DmixPlugin
    pcm.dmix0 {
                  type dmix
                   # Qualunque valore distinto va bene
                  ipc_key 219345
                  slave {
                          pcm "hw:0,0"
                          period_time 0
                          buffer_time 0
                          # jm: molto più reattivo di 1024/8192!
                          period_size 2048
                          buffer_size 32768
                          rate 48000
                  }
                  bindings {
                          0 0 # da 0 => a 0
                          1 1 # da 1 => a 1
                  }
       }pcm.dsp0 {
                  type plug
                  slave.pcm "dmix0"
          }
    
    # Questa sezione indica alle applicazioni native ALSA di usare
       # dmix per impostazione predefinita.
         pcm.!default {
                  type plug
                  slave.pcm "dmix0"
          }
    
    ctl.dsp0 {
                  type hw
                  card 0
          }
    
    ctl.!default {
                  type hw
                  card 0
          }
          
  3. Creiamo il file /etc/libao.conf scrivendovi la sola riga default_driver=alsa
  4. Ricarichiamo la nostra sessione per vedere gli effetti.

Enjoy.

[via El (Otro) Trastero de Mazi]

  1. macro182
    12 Novembre 2007 alle 18:40 | #1

    In attesa che la “rivoluzione” PulseAudio possa essere installata e configurata senza perderci 2 giorni sopra, ti ringrazio perchè ora finalmente mi funziona l’audio a dovere!

    ;)

I commenti sono chiusi.