# [ALSA] plusieurs sons en même temps (resolu)

## chrissou

Petite question arrivez vous a jouer plusieurs sons en même temps avec alsa ??

chez moi quand j'écoute de la musique sur xmms et que quelqu'un m'envoie un message sur gaim par exemple je n'entends pas la notification de gaim mais dès que je ferme xmms les sons de gaim arrivent tous les uns a la suite des autres !

Mon controlleur audio :

```

 lspci | grep audio

0000:00:1e.2 Multimedia audio controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (rev 03)

```

Merci @ vous  :Wink: Last edited by chrissou on Mon Aug 22, 2005 3:55 pm; edited 2 times in total

----------

## bob1977

Salut chrissou,

  Si ta carte ne gère pas le hardware mixing tu peux utiliser le "plugin" dmixer pour alsa. Pour cela, il faut modifier /etc/asound.conf. Ex:

```

pcm.dmixer {

    type dmix

    ipc_key 1024

    slave {

        pcm "hw:0"

        period_time 0

        period_size 1024

        buffer_size 8192

        format "S16_LE"

        channels 6

        rate 48000

    }

    bindings {

        0 0

        1 1

    }

}

pcm.dsp0 {

    type plug

    slave.pcm "dmixer"

}

ctl.mixer0 {

    type hw

    card 0

}

pcm.!default {

    type plug

    slave.pcm "dmixer"

    #slave.pcm surround51

   slave.channels 6

    route_policy default

   ttable.0.0 1

   ttable.1.1 1

   ttable.0.2 1

   ttable.1.3 1

   ttable.0.4 1

   ttable.1.5 1

}

```

 En principe ça devrait marcher mais je ne l'ai pas utilisé depuis un an parce que depuis j'ai une sound blaster live qui gère le hardware mixing...

----------

## kernelsensei

il faut utiliser dmix ... regarde ici : http://fr.gentoo-wiki.com/HOWTO_ALSA_sound_mixer_aka_dmix_fr  :Wink: 

----------

## chrissou

comment puis-je savoir si ma carte gère le hard mixing ? 

comment puis-je activer cette fonction pour voir si ma carte le gère ? 

merci  :Wink: 

----------

## _droop_

Bonjour,

pour savoir si ta carte gère le hard mixing : va voir sur http://www.alsa-project.org/ (site mort pour le moment ca devrai revenir). Ou plus simplement, teste le : lance deux aplay en meme temps (sur des wavs). Si aucun des deux ne rale pour dire "device busy", alors c'est que le mix est fait materiellement.

A+

----------

## bob1977

Apparemment, elle ne gere pas le hardware mixing ( plusieur sons en meme temps) donc tu dois copier modifier /etc/asound.conf pour utiliser dmixer, redémarrer alsa et configurer tes applications pour qu'elles utilisent alsa.

 si l'exemple que je t'ai donné ne marche pas, regarde le lien de kernel-sensei qui sera plus explicatif.

----------

## chrissou

j'ai suivi vos 2 procédures j'ai testé ceci :

```

$ alsaplayer -o alsa -d plug:dmix un.mp3 &

$ aplay -D plug:dmix some.wav &

$ alsaplayer -o alsa -d plug:dmix un.mp3 &

```

et j'entends bien les 3 sons en même temps  :Wink: 

malheureusement dès que je met xmms en route impossible d'entendre un autre son quand celui ci est lancé  :Sad: 

j'utilise le pilote OSS de xmms car le greffon de sortie alsa ne fonctionne pas chez moi  :Sad: 

----------

## krinn

Tu dois utiliser alsa dans xmms pour ça.

Sous OSS dmix marche pas, enfin y'a un moyen, mais je ne pense pas que ça le fasse avec xmms, essayes quand meme, mais bon, vaut mieux avoir le plugin alsa.

aoss xmms

----------

## chrissou

alors sous xmms quand j'utilise le greffon de sortie ALSA 1.2.10 [libALSA.so] (je n'avais pas configuré correctement d'ailleurs)

donc xmms en alsa fonctionne bien mais toujours le même soucis 

donc je lance une musique sur xmms

en même temps je lance :

```

zobi@I9300 ~ $ aplay -D plug:dmix /usr/share/sounds/k3b_success1.wav 

```

mais le wav ne se lance que lorsque mon xmms a fini de jouer le mp3 ...

----------

## bob1977

Dans xmms, utilises-tu le plugin dmix pour alsa comme tu l'as fait pour aplay?

Sinon, As-tu compilé ton noyau avec le support alsa en natif avec oss en emulation mais en désactivant le support oss en natif?

----------

## chrissou

J'ai donc viré totalement le support OSS pour voir et compilé le support Alsa en dur dans mon kernel 

résultat toujours la même chose  :Sad: 

concernant xmms je ne sais pas comment activer le plugin dmix pour celui ci .....

----------

## ALK13

Et il y a encore un gros con qui s'est eclaté a modifier certaines lignes du wiki (http://fr.gentoo-wiki.com/HOWTO_ALSA_sound_mixer_aka_dmix_fr)

----------

## Apsforps

 *ALK13 wrote:*   

> Et il y a encore un gros con qui s'est eclaté a modifier certaines lignes du wiki (http://fr.gentoo-wiki.com/HOWTO_ALSA_sound_mixer_aka_dmix_fr)

 

Ben non, ya plus eu de modifs depuis le 24 mars sur cette page, je viens de vérifier dans l'historique...

----------

## ALK13

Alors les modifications sont antérieures à cette date... regarde il y a plein d'endroit où il est écrit "j  jjjj" à la place d'un morceau de code ou autre....

```
Sans dmix

On va juste tester si OSS fonctionne correctement.

    * Configuration de .asoundrc pour tester aoss : 

j  jjjj

    * Testez aoss grâce à mpg321 en mode OSS : 

# aoss mpg321 some.mp3 

Cette commande joue le fichier, mais le flux ne transite pas encore par dmix.

Nous entrons dans la phase difficile : redéfinir dsp0 pour qu'il se comporte comme dmix

[modifier]

The simple approach

j  jjjj

Testez ces paramètres avec mpg321 comme dans l'exemple ci-dessus. Avec ces paramètres, OSS devrait jouer au travers de dmix. Cependant, ceci ne fonctionnera pas sur certaines cartes, comme la M-Audio, l'Audiophile, ou d'autres cartes de marque Delta. Ces cartes nécessitent que le format audio passé à l'interface hw:0 réponde à certaines conditions. La solution est abordée plus bas. 

```

----------

## chrissou

effectivement pour les j jjjj j'ai suivi la doc english personelement

----------

## Gentoo_Lover

moi même utilisant dmix ainsi que d'autre , lorsque j'utilise dmix par xmms il marche bien mais des que je met pause et que je reprend il plante  :Shocked:  , si j'utilise default c'est pareil alors que si j'utilise hdw0,0 (nforce) là il ne plante plus mais le full deplex n'est plus géré (par exemple si je mets xmms ainsi avec amsn je n'est pas les sons à amsn....) alors que je suis bien en dmix ..

j'ai prix le asoundrc de fush sur ce forum :

```
# Set default sound card

# Useful so that all settings can be changed to a different card here.

pcm.snd_card {

     type hw

     card 0

}

# Allow mixing of multiple output streams to this device

pcm.dmixer {

     type dmix

     ipc_key 1024

     slave.pcm "snd_card"

     slave {

          # This stuff provides some fixes for latency issues.

          # buffer_size should be set for your audio chipset.

          period_time 0

          period_size 1024

          buffer_size 4096

          rate 22000

}

     bindings {

          0 0

          1 1

     }

}

# Allow reading from the default device.

# Also known as record or capture.

pcm.dsnooper {

     type dsnoop

     ipc_key 2048

     slave.pcm "snd_card"

## Possible artsd full duplex fix:

#     slave {

#          period_time 0

#          period_size 1024

#          buffer_size 8192

#     }

     bindings {

          0 0

          1 1

     }

}

# This is what we want as our default device

# a fully duplex (read/write) audio device.

pcm.duplex {

     type asym

     playback.pcm "dmixer"

     capture.pcm "dsnooper"

}

###################

# CONVERSION PLUG #

###################

# Setting the default pcm device allows the conversion

# rate to be selected on the fly.

# duplex mode allows any alsa enabled app to read/write

# to the dmix plug (Fixes a problem with wine).

pcm.!default {

     type plug

     slave.pcm "duplex"

}

ctl.duplex {

type hw

card 0

} 

# Apparently this is wrong (breaks mplayer for me opening the device)

#ctl.!default {

#     type plug

#     slave.pcm "snd_card"

#}

########

# AOSS #

########

# OSS dsp0 device (OSS needs only output support, duplex will break some stuff)

pcm.dsp0 {

     type plug

     slave.pcm "dmixer"

}

# OSS control for dsp0 (needed?...this might not be useful)

ctl.dsp0 {

     type plug

     slave.pcm "snd_card"

}

# OSS control for dsp0 (default old OSS is mixer0)

ctl.mixer0 {

     type plug

     slave.pcm "snd_card"

}

```

tout à l'air normal donc je ne voix pas ou est le problême...

----------

## Jimmy Jazz

hello,

essayez ca dans /etc/asound.rc et donnez moi des nouvelles  :Wink: 

(sur une nforce2)

```

# Set default sound card

# Useful so that all settings can be changed to a different card here.

pcm.intel8x0 {

     type hw

     card 0

}

# Allow mixing of multiple output streams to this device

pcm.dmixer {

     type dmix

     ipc_key 1024

     slave.pcm "intel8x0"

     slave {

          # This stuff provides some fixes for latency issues.

          # buffer_size should be set for your audio chipset.

          period_time 0

          period_size 1024

          buffer_size 32768

          rate 48000

     }

     bindings {

          0 0

          1 1

     }

}

# Allow reading from the default device.

# Also known as record or capture.

pcm.dsnooper {

     type dsnoop

     ipc_key 2048

     slave.pcm "intel8x0"

## Possible artsd full duplex fix:

#     slave {

#          period_time 0

#          period_size 1024

#          buffer_size 8192

#     }

     bindings {

          0 0

          1 1

     }

}

# This is what we want as our default device

# a fully duplex (read/write) audio device.

pcm.duplex {

     type asym

     playback.pcm "dmixer"

     capture.pcm "dsnooper"

}

###################

# CONVERSION PLUG #

###################

# Setting the default pcm device allows the conversion

# rate to be selected on the fly.

# duplex mode allows any alsa enabled app to read/write

# to the dmix plug (Fixes a problem with wine).

pcm.!default {

     type plug

     slave.pcm "duplex"

}

# Apparently this is wrong (breaks mplayer for me opening the device)

#ctl.!default {

#     type plug

#     slave.pcm "intel8x0"

#}

########

# AOSS #

########

# OSS dsp0 device (OSS needs only output support, duplex will break some stuff)

pcm.dsp0 {

     type plug

     slave.pcm "dmixer"

}

# OSS control for dsp0 (needed?...this might not be useful)

ctl.dsp0 {

     type plug

     slave.pcm "intel8x0"

}

# OSS control for dsp0 (default old OSS is mixer0)

ctl.mixer0 {

     type plug

     slave.pcm "intel8x0"

}

```

Jj

----------

## nuts

dans le tuto wiki j ai trouver un asoundrc pour nforce2 du feu de dieu  :Very Happy: 

enfin pour le coup de xmms qui ne marche pas avec le reste, bien verifier d avoir regler les soft comme il se doit:

xmms:

aller dans preferences-> E/S audio -> greffon de sortie = alsa[libALSA.so] -> configurer -> reglage du peripherique -> laisser sur default et cocher "utiliser le controle du volume logiciel" -> reglage avancé -> taille tampon = 750 et duree de la periode = 75 et decocher mode mmap

gaim:

aller dans preferences -> sons -> sortie sonore: choisir commande et mettre aplay -D plug:dmix %s

----------

## vicodin's

heu, pour tester si le hardware mixing est présent sur ma carte, j'ai lancé 2 aplay sur 2 wavs différents comme dit dans un des posts plus hauts. Il me sort aucune erreur mais ne joue pas les 2 en meme temp mais l'un à la suite de l'autre.

Ca veut dire que j'ai le hardware mixing ou pas alors?

Merci

----------

## nuts

bon il faut savoir.

il est possible que ta carte face du hardware mixing, cependant, il est fort possible que le module alsa pour ta carte ne peut l exploiter (ce qui est le cas du nforce2 par exemple).

en clair, tu veux jouer 2 sons en meme temps, si le hardware mixing peut etre gerer comme c est le cas avec une sblive, ca va jouer les 2 sons quelque soit le reglage.

apparament pour toi ca ne marche pas,c  est pour ca qu il existe en secours le software mixing, ca necessite de passer par des petit reglage bien expliquer sur le site wiki-gentoo, dans lequel tu cherche dmix. le tuto t'explique quel asoundrc avoir, et avec un peu de pot tu en trouvera un tout fait pour ta carte, et on t explique aussi comment parametrer les soft pour que ca joue plusieurs sons en meme temps (mplayer + xmms +gaim par exemple).

alors je dirait simplement c est tres simpe lis et suis le tuto

----------

## Zanton

Chez moi, avec la config donnée par Jimmy Jazz, ça fonctionne. Par contre avec ALSA et xmms, j'ai toujours le même problème : si je déplace une fenêtre pendant 1s, ça stope la chanson en cours dans xmms.

----------

## nuts

meme probleme que toi ou avec les video sous mplayer, quand je joue trop d une fenetre ou que j ouvre plusieurs onglets sous firefox, le multimedia se bloque, j ai remarquer a ce moment la une grosse monopolisation du cpu par X

----------

## Fuchs

 *Gentoo_Lover wrote:*   

> moi même utilisant dmix ainsi que d'autre , lorsque j'utilise dmix par xmms il marche bien mais des que je met pause et que je reprend il plante  , si j'utilise default c'est pareil alors que si j'utilise hdw0,0 (nforce) là il ne plante plus mais le full deplex n'est plus géré (par exemple si je mets xmms ainsi avec amsn je n'est pas les sons à amsn....) alors que je suis bien en dmix ..
> 
> j'ai prix le asoundrc de fush sur ce forum :
> 
> [..]
> ...

 

Cette configuration est pour les nforce intel8x0, et quand il 

a une autre carte je recommande d'utiliser une autre configuration. 

Et quand il n'a pas le problem avec play et pause dans xmms 

je recommande qu'on n'utilise pas la ligne

rate 22000

parce-que la qualite est mauvis comme ça et

q'on change la " buffer_size" parce que

la musique a autrement peut-être un délais...

PS: Le nom est Fuchs, c'est (suisse-)allemand

pour renard  :Smile: 

----------

## blorent

 *Fuchs wrote:*   

> PS: Le nom est Fuchs, c'est (suisse-)allemand 
> 
> pour renard

 

Ca veut pas plutot dire "je viens de rentrer dans une confrérie d'étudiants suisse"  par hasard... ?

Bon d'accord ça n'a rien à voir je m'en vais    :Arrow: 

----------

## Fuchs

 *blorent wrote:*   

>  *Fuchs wrote:*   PS: Le nom est Fuchs, c'est (suisse-)allemand 
> 
> pour renard 
> 
> Ca veut pas plutot dire "je viens de rentrer dans une confrérie d'étudiants suisse"  par hasard... ?
> ...

 

Ca veut dire que je suis suisse et ma langue maternelle est suisse-allemand  :Smile: 

Je comprends un peut le français et je peut le parler si il faut  :Wink: 

(mais j'ai surtout des problèmes avec la grammaire, alors quand je 

doit ecrire quelquechose...)

----------

## chrissou

j'ai trouvé bien mieux pour utiliser plusieurs sons en même temps  :Smile: 

il suffit d'utiliser esound  :Wink:  et le tuto que voici :

http://fr.gentoo-wiki.com/HOWTO_Configuration_du_serveur_de_son_esound

j'ai testé et ca fonctionne nickel :p

----------

## El_Goretto

Tu te trompes "de combat". Ici il est question de se passer de serveur de son comme esound ou arts.

----------

## chrissou

 *El_Goretto wrote:*   

> Tu te trompes "de combat". Ici il est question de se passer de serveur de son comme esound ou arts.

 

Lol c'est moi qui suis a l'origine de ce topic  :Wink: 

----------

## El_Goretto

Ben alors t'as mal positionné le problème dès le début (voilà le drame des titres mal formulés). Tout le monde ici à compris que tu tenais aboslument à suivre la tendance actuelle de faire propre en utilisant uniquement ALSA (voire dmix).

----------

## chrissou

ha ok effectivement en relisant et effectivement aussi avec la tendance, mon post portait vraiment a confusion !

heureusement totalement par hasard d'ailleurs, j'ai trouvé ce esound  :Wink: 

Merci encore @ tous  :Wink: 

----------

