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

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]

Un commento

  1. macro182
    Inviato 12 Novembre 2007 alle 18:40 | Permalink

    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!

    ;)

Pubblica un Commento

La tua email non verrà mai pubblicata o diffusa. I campi obbligatori sono contrassegnati con *

*
*