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 Florent Bayle (site web personnel) . Évalué à 1.
[^] # Re: Plusieurs sons en même temps avec alsa
Posté par -=[ silmaril ]=- (site web personnel) . Évalué à 1.
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 vincent L . Évalué à 1.
est ce que artsd va aussi avoir son output via plug et dmix ?
je suppose que oui ...
# Pour xmms...
Posté par dawar (site web personnel) . Évalué à 2.
# Niveau système
Posté par LupusMic (site web personnel, Mastodon) . Évalué à 1.
# Plusieurs sons en même temps avec alsa sous KDE
Posté par KnuX . Évalué à 1.
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 Tonton Benoit . Évalué à 1.
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 Aurélien BEGEL . Évalué à 1.
# 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.
[^] # Re: Pour l'émulation OSS, ça peut aussi marcher !
Posté par Aurélien BEGEL . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.