[son] utiliser deux cartes et flux multiples (résolu)

Applications multimedia / jeux
norihiori
Hankyu
Messages : 30
Inscription : mar. 09 avr. 2013, 21:18

[son] utiliser deux cartes et flux multiples (résolu)

Message par norihiori »

coolgeek a écrit :tu peux creer le fichier ~/.asoundrc
...
tu crée ton fichier ~/.asoundrc comme suit :

Code : Tout sélectionner

pcm.!default {
type hw
card 0
}
ctl.!default {
type hw
card 0
}
avec en face du parametre "card" ton numéro de carte précédement trouvé.
Bonjour a tous,
cette solution fonctionne merveilleusement bien, j'avais cependant un question.
J'utilise deux carte son sur la 0 un chaine sur la 2 un casque, avec cette méthode il apparait qu'une seul des deux carte peut étre utilisé, avez vous une solution pour utiliser les deux en même temps ?

Merci.

EDIT Modo: scindé depuis http://forums.archlinux.fr/topic6367.html
Dernière modification par norihiori le dim. 16 mars 2014, 20:16, modifié 2 fois.
norihiori
Hankyu
Messages : 30
Inscription : mar. 09 avr. 2013, 21:18

Re: [son] utiliser deux cartes

Message par norihiori »

J'ai finalement utilisé la méthode du man alsa,

Code : Tout sélectionner

pcm.both {
    type route;
    slave.pcm {
        type multi;
        slaves.a.pcm "plughw:0,0"
        slaves.b.pcm "plughw:2,0"
        slaves.a.channels 2;
        slaves.b.channels 2;

        bindings.0.slave a;
        bindings.0.channel 0;
        bindings.1.slave a;
        bindings.1.channel 1;

        bindings.2.slave b;
        bindings.2.channel 0;
        bindings.3.slave b;
        bindings.3.channel 1;
    }

    ttable.0.0 1;
    ttable.1.1 1;

    ttable.0.2 1;
    ttable.1.3 1;
}

pcm.!default {
        type plug
        slave.pcm "both"
}

ctl.!default {
        type hw
        card SB
}
Mais je me demandais comment avoir plusieurs flux audio, ex: smplayer+youtube.
Utilisant uniquement Alsa, j'ai consulté les man de dmix et pulseaudio, mais ne parviens jamais à avoir mes deux "cartes" son ... :s
Pourriez vous m'aider s'il vous plait ? :|

Merci.

PS : vlc ne sort que sur ma carte N°2 sans prendre alsa en compte.
viperpaulo
Chu Ko Nu
Messages : 389
Inscription : lun. 06 déc. 2010, 13:58

Re: [son] utiliser deux cartes et flux multiples

Message par viperpaulo »

Pour vlc, dans Audio/Périphériques audio, lequel est coché ?
Sinon, pour être sûr d'avoir bien compris, la solution que tu proposes, pcm.both, permet de diffuser le même flux sur les deux cartes en même temps, c'est ça ?
Perso pour diffuser deux flux sur les cartes, je lance le premier flux, je switch le .asoudrc avec un raccourcis clavier puis je lance le deuxième.
norihiori
Hankyu
Messages : 30
Inscription : mar. 09 avr. 2013, 21:18

Re: [son] utiliser deux cartes et flux multiples

Message par norihiori »

Pour VLC, la seul solution qui marche est de spécifier quel sortie alsa utiliser ... c'est dommage.

pcm.both est une "sortie virtuel" qui contient les deux carte et permet d'y diffuser le flux en simultané effectivement :)
Ta solution est "un peu" bricolage, je préfèrerais éviter temps que c'est possible. :lol:
norihiori
Hankyu
Messages : 30
Inscription : mar. 09 avr. 2013, 21:18

Re: [son] utiliser deux cartes et flux multiples

Message par norihiori »

Apres 3relectures du man de alsa et dmix ...
Alsa peut gérer plusieurs cartes en même temps avec un "type multi", mais dmix ne peux le mixage d'un multi. Solution ? Il semblerait que définir les cartes avec un mixage puis les "multi" par la suite fonctionne. Voici mon script tout frais, confirmez moi que la méthode est bonne, j'ajoute au wiki !

Utilisation de la carte 0 et 2 avec dmix :

Code : Tout sélectionner

pcm.carteInterne {
    type hw
    card 0
    device 0
}

ctl.carteInterne {
    type hw
    card 0
    device 0
}

pcm.carteUsb {
    type hw
    card 2
    device 0
}

ctl.carteUsb {
    type hw
    card 2
    device 0
}

pcm.interneMix {
    type dmix
    ipc_key 1024
    ipc_key_add_uid false
    ipc_perm 0666
    slave {
        pcm "carteInterne"
        period_time 0
        period_size 2048
        channels 2
    }
    bindings {
        0 0
        1 1
    }
}

pcm.usbMix {
    type dmix
    ipc_key 2048
    ipc_key_add_uid false
    ipc_perm 0666
    slave {
        pcm "carteUsb"
        period_time 0
        period_size 2048
        channels 2
    }
    bindings {
        0 0
        1 1
    }
}

pcm.both {
    type route;
    slave.pcm {
        type multi;
        slaves.a.pcm "interneMix";
        slaves.b.pcm "usbMix";
        slaves.a.channels 2;
        slaves.b.channels 2;
        
        bindings.0.slave a;
        bindings.0.channel 0;
        bindings.1.slave a;
        bindings.1.channel 1;
      
        bindings.2.slave b;
        bindings.2.channel 0;
        bindings.3.slave b;
        bindings.3.channel 1;
    }
  
    ttable.0.0 1;
    ttable.1.1 1;
  
    ttable.0.2 1;
    ttable.1.3 1;
}

pcm.!default {
        type plug
        slave {
                pcm both
        }
}

ctl.!default {
        type hw
        card 2
}
PS : ajouté au wiki, si mal fait prévenez c'est mon 1er ajout.
Répondre