Outils pour utilisateurs

Outils du site


debian:dmix

Utiliser dmix au lieu d'un serveur de son comme esd ou arts

:!: Depuis alsa version 1.0.9rc2, dmix est activé par défaut (dans /usr/share/alsa/alsa.conf) pour les cartes son sans multiplexage hardware et on n'a plus besoin de configurer dmix. Cette config ~/.asoundrc discutée ici est obsolète depuis la debian etch.

  • Information hardware carte son : voici un exemple
    $ cat /proc/asound/cards
     0 [Snapper        ]: PMac Snapper - PowerMac Snapper
                          PowerMac Snapper (Dev 38) Sub-frame 0
    
    $ cat /proc/asound/devices
     16: [0- 0]: digital audio playback
     24: [0- 0]: digital audio capture
      0: [0- 0]: ctl
     33:       : timer
    • audio playback : sortie son
    • [0- 0] : le premier 0 signifie la carte son numéro 0 (j'en ai une seule), le deuxième 0 signifie canal 0 (ma carte son n'a qu'un seul canal de sortie).
    • A priori, une seule application peut accéder directement à la carte son.
      • application → default (carte son (hw:0,0))
  • Pour permettre à plusieurs applications de jouer le son simultanément, une méthode est d'utiliser un serveur de son (par exemple esd, arts ou jackd) comme intermédiaire entre les applications et la carte son.
    • Un serveur de son est un serveur, donc il faut que l'application-son soit capable de l'utiliser, c'est-à-dire un client de son intégré dans l'application-son.
      • applications → serveur de son → carte son (hw:0,0)
      • Si on veut lancer deux applications de son en même temps et si l'une supporte seulement esd et l'autre supporte seulement arts, c'est impossible.
  • Alsa possède un plugin dmix qui est plus simple et plus efficace (il me semble), toutes les applications qui sont capables d'utiliser alsa peuvent l'utiliser. Il suffit de configurer un fichier ~/.asoundrc (ou /etc/asound.conf pour tous les utilisateurs) pour utiliser deux plugins plug et dmix. Voici un exemple :
    pcm.!default {
      type plug
      slave.pcm "dmixer"
    }
    
    pcm.dmixer {
      type dmix
      ipc_key 1024
      slave { 
        pcm "hw:0,0" 
        period_time 0
        period_size 1024
        buffer_size 8192
        rate 44100  # ou 48000
      }
      bindings {
        0 0
        1 1
      }
    }
    
    ctl.dmixer {
      type hw
      card 0
    }
    • applications → plug (default) → dmix (dmixer) → carte son (hw:0,0)
    • Explications :
      • plug (il redéfinit/remplace le plugin default, le default c'était directement à la carte son) : ce plugin convert canaux, rate et format sur demande.
      • dmix (on le nomme dmixer ici) : ce plugin fournit mixage direct de multiples streams (flux audio).
    • Pour tester :
      $ aplay test.wav & alsaplayer test1.mp3 & xmms test2.mp3 & mplayer test3.mp3
debian/dmix.txt · Dernière modification: 2017/08/21 12:43 (modification externe)