Forum Astuces.divers [Debian] Plusieurs sons en même temps avec alsa

Posté par  (site web personnel) .
Étiquettes : aucune
0
20
mar.
2004
Alsa permet de créer des périphériques virtuels, qui ne correspondent à aucun matériel, mais qui permettent de faire tout un tas de manipulations sur les flux sonores. Si rien de particulier n'est configuré, il existe un seul périphérique, appelé "default" (logique), et qui se contente d'envoyer le son au vrai périphérique, appelé "hardware" (la carte son, en gros). En tout cas, c'était comme ça chez moi :-).

L'idée, c'est de paramétrer un module appelé "dmix", qui est capable de recevoir plusieurs flux (envoyés par les applications), de les fusionner, et d'envoyer le résultat au hardware. Super, c'est juste ce qu'il nous faut. Sauf que, ce "dmix" ne sais pas gérer les fréquences d'échantillonnages multiples : il faut forcément que tous les flux qu'il reçoit soient de même fréquence que le flux final envoyé au hardware. Pour avoir une qualité de son normale, le flux dmix -> hardware sera à 44100 ou 48000 Hz. Concrêtement, si vous lisez une vidéo ou un fichier son avec un taux d'échantillonage plus faible, le fichier sera lu trop rapidement (avec un son trop aigu).
Pour éviter ça, il y a le module "plug". Son rôle est de recevoir les flux envoyés par les applications, de tous les convertir en 44100 ou 48000, et de les envoyer à "dmix", qui lui, va les fusionner et les envoyer au hardware.

Enfin, pour éviter de devoir reconfigurer toutes les applications, il faut faire en sorte que le "plug" soit le périphérique par défaut, pour que les applications y envoient leur flux sonore.

Donc au final, on a : application -> plug -> dmix -> carte son.

Pour régler tout ça, ça se passe dans le ~/.asoundrc. Le mien est ici :

http://www.macolu.org/.asoundrc

Voilà, c'est ce que j'ai fait chez moi, et ça permet d'avoir plusieurs sons en même temps sur toutes les cartes sons, même les plus basiques.

Avec cette méthode, j'arrive à avoir plusieurs sons dans toutes les applis que j'utilise : mplayer, xmms, toutes les applis SDL, et j'en oublie sûrement.

Pour les cartes plus évoluées, et qui gèrent le mixage en hard, je ne pense pas qu'il soit nécessaire de faire tout ça.
  • # Re: Plusieurs sons en même temps avec alsa

    Posté par  (site web personnel) . Évalué à 1.

    Il est aussi possible d'utiliser un demon tel que artsd, mais là je sait pas trop comment ça marche...
    • [^] # Re: Plusieurs sons en même temps avec alsa

      Posté par  (site web personnel) . Évalué à 1.

      la difference est que l'application necessite de supporte artsd ou esound pour pouvoir utiliser leurs capacité de mixage.
      La il suffit d'un support alsa.

      /!\ Cela ne marchera pas avec l'emulation alsa-oss (le travail est fait par la librairie libasound qui n'est pas utilisée dans ce cas).
  • # alsa + artsd

    Posté par  . Évalué à 1.

    Si je comprends bien on peut quand même utiliser artsd pour les appli kde et l astuce alsa pour les applications qui utilisent directement les peripheriques son ?
    est ce que artsd va aussi avoir son output via plug et dmix ?
    je suppose que oui ...

  • # Pour xmms...

    Posté par  (site web personnel) . Évalué à 2.

    Si ca marche pas et que xmms dis que la carte son est déjà utilisé, c'est que vous n'avez pas décoché dans les options du plugin alsa, onglet "avancé", "Mode Mmap". Et j'utilise aussi "mixer logiciel", sinon le controle de volume de xmms est inopérant.
  • # Niveau système

    Posté par  (site web personnel, Mastodon) . Évalué à 1.

    Est-il possible de faire celà au niveau du système ? Afin qu'un utilisateur ne bloque pas les autres.
  • # Plusieurs sons en même temps avec alsa sous KDE

    Posté par  . Évalué à 1.

    Je ne comprend pas trop comment mettre en place tout ceci...

    J'ai été heureux de découvrir arts sous KDE, mais effectivement toutes les applications ne s'y font pas et ça reste laborieux.

    Pourrais-je avoir un peu plus de détail sur ce que je peux faire pour les éventuelles modifications du .acsoundrc et sa mise en place ?

    Je suis sous KDE, Debian unstable :)

    Merci d'avance !
  • # emu10k1

    Posté par  . Évalué à 1.

    La meilleure solution reste d'acheter des cartes son de marque Creative, mixeur et synthétiseur MIDI hardware, plus besoin de dmix/arts et autres pompeurs de CPU.

    Reste le problème des portables, on peut pas changer la carte son, pour ça dmix est bien utile.
  • # Pour l'émulation OSS, ça peut aussi marcher !

    Posté par  . Évalué à 1.

    Après avoir lu ton mot, j'ai regardé la documentation de libasound (située dans /usr/share/doc/libasound2/ sur ma Debian Etch) et j'ai trouvé ceci dans le fichier d'exemple :

    # Make OSS apps default to using dmix plugin too
    pcm.dsp0 {
    type plug
    slave.pcm "dmix"
    }

    Je suis en train de tester tout ça...

    Ah aussi, on peut appeler ce fichier /etc/asound.conf pour qu'il s'applique à tous les utilisateurs.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.