Chargement...
 
Skip to main content

Historique: Fusionner des cartes son ALSA

Aperçu de cette version: 17







Carte son multicanal virtuelle

Traduction libre de ↓Virtual multi channel devices.

Si vous souhaitez lier deux cartes son (ou plus) supportées par ALSA pour obtenir une carte son multicanal virtuelle, c'est possible ! Cependant cela ne créera pas la superbe carte son multicanal professionnelle faite de récup' dont vous réviez : Le son va se décaller d'une carte à l'autre au fur du temps.
Certaines cartes son permette néanmoins une synchronisation externe (via wordclock, à compléter...), voir les ↓liens plus bas.
Dans tout les cas cette manipulation peut être bien pratique, en particulier avec un logiciel comme Jack, qui n'utilise (en duplex) qu'une carte son à la fois.

Copiez et collez le code suivant dans votre fichier asoundrc.


Copy to clipboard
# Créé une carte son virtuelle de quatre canaux avec deux # cartes son réelles. # Il s'agit en fait de deux flux stéréo entrelaçés dans # différentes adresses mémoire, donc Jack devrai se plaindre # qu'il n'a pas un accès mmap. Voir plus bas. pcm.multi { type multi; slaves.a.pcm "hw:0,0"; slaves.a.channels 2; slaves.b.pcm "hw:1,0"; 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; } # Jack ne sera pas content s'il n'a pas de mixeur logiciel à # qui parler, donc nous utiliserons celui de la carte son # numéro 0. Il pourrai s'agir de n'importe quelle carte. ctl.multi { type hw; card 0; } # Ceci créé un flux pcm entrelacé de 4 canaux basé sur # la carte 'multi'. Jack fonctionnera avec celui-ci. pcm.ttable { type route; slave.pcm "multi"; slave.channels 4; ttable.0.0 1; ttable.1.1 1; ttable.2.2 1; ttable.3.3 1; } # Voir plus haut ctl.ttable { type hw; card 0; }


Ceci produira des xruns, mais ça convient pour des essais. Pour tester on peut enregistrer puis lire un signal audio :

Copy to clipboard
arecord -f S16_LE -r 44100 -c 4 -D multi | aplay -f S16_LE -r 44100 -c 4 -D multi


Pour démarrer Jack avec la nouvelle carte son virtuelle :

Copy to clipboard
jackd -d alsa -d ttable


pcm_multi, ttable, mmap

pianolivier : j'écris ce paragraphe d'après ce que j'ai pu comprendre sur cette page, mais n'ayant pas essayé ces manipulations moi-même il se peut qu'il soit biaisé. Dans ce cas merci de corriger (et d'effacer cette phrase).

Comme on peut le voir dans le fichier de configuration, le programme qui permet de lier/fusionner plusieurs cartes son est donc pcm_multi, il fait partie d'ALSA.

Le programme de routage pcm_ttable permet de relier les blocs ou canaux pour faire fonctionner Jack sans qu'il soit nécessaire que celui-ci ai le support MMAP_COMPLEX. Cependant les ressources supplémentaires nécessitées par ce plugin augmenteraient le temps de latence (en fait cela comprimerait complètement toute opération de basse latence) et les versions de Jack actuelles supportent maintenant MMAP_COMPLEX par défaut.

Le fichier de configuration pourrai donc être simplifié ainsi, à tester :

Copy to clipboard
# Créé une carte son virtuelle de quatre canaux avec deux # cartes son réelles. pcm.multi { type multi; slaves.a.pcm "hw:0,0"; slaves.a.channels 2; slaves.b.pcm "hw:1,0"; 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; } # Jack ne sera pas content s'il n'a pas de mixeur logiciel à # qui parler, donc nous utiliserons celui de la carte son # numéro 0. Il pourrai s'agir de n'importe quelle carte. ctl.multi { type hw; card 0; }


Puis démarrer Jack avec :

Copy to clipboard
jackd -d alsa -d multi


Liens

Le document aillant servi de base à cette page + exemple de configuration avec deux RME Hammerfalls + des explications sur la syntaxe :
Virtual multi channel devices sur alsa-project.org (anglais)

Le document aillant servit de base au document précedent (je pense) :
http://alsa.opensrc.org/TwoCardsAsOne (anglais)

Description technique de la bibliothèque de programmation derrière pcm_multi :
http://alsa-project.org/alsa-doc/alsa-lib/pcm_plugins.html (anglais, si on peut dire ça)

Un tuto d'un type dingue pour synchroniser ses deux cartes son à coup de fer à souder dans le cas ou ça n'est pas prévu :
http://quicktoots.linux-audio.com/toots/el-cheapo/ (anglais)

Un tuto sur linuxmao pour fusionner et synchroniser les cartes son pro basée sur la puce ICE1712, en particulier deux m-audio delta 1010 :
exemple de configuration avec deux m-audio delta 1010



Historique

Avancé
Information Version
Vendredi 06 novembre 2015 14:29 olinuxx Recherche et remplacement en masse 27
Afficher
Mercredi 12 février 2014 21:43 romain_bar Dossier JACK 26
Afficher
Mercredi 03 juillet 2013 12:45 pianolivier structure par défaut 25
Afficher
Mercredi 10 octobre 2012 18:08 pianolivier typo 24
Afficher
Mercredi 10 octobre 2012 18:08 pianolivier re (la même) :) 23
Afficher
Mercredi 10 octobre 2012 18:07 pianolivier typo 22
Afficher
Mercredi 10 octobre 2012 17:57 pianolivier fusion avec la page ((ALSA_2_cartes_en_une)) 21
Afficher
Vendredi 05 octobre 2012 19:50 pianolivier 20
Afficher
Vendredi 05 octobre 2012 19:20 pianolivier 19
Afficher
Vendredi 05 octobre 2012 18:50 pianolivier 18
Afficher
Vendredi 05 octobre 2012 18:47 pianolivier +des liens 17
Afficher
Vendredi 05 octobre 2012 18:27 pianolivier 16
Afficher
Vendredi 05 octobre 2012 18:26 pianolivier ajout d'infos du tuto fusionner 2 delta 1010 15
Afficher
Vendredi 05 octobre 2012 18:06 pianolivier +box 14
Afficher
Jeudi 04 octobre 2012 21:48 pianolivier 13
Afficher
Jeudi 04 octobre 2012 21:44 pianolivier 12
Afficher
Jeudi 04 octobre 2012 21:43 pianolivier 11
Afficher
Jeudi 04 octobre 2012 21:42 pianolivier 10
Afficher
Jeudi 04 octobre 2012 21:40 pianolivier 9
Afficher
Jeudi 04 octobre 2012 21:40 pianolivier 8
Afficher
Jeudi 04 octobre 2012 21:38 pianolivier 7
Afficher
Jeudi 04 octobre 2012 21:38 pianolivier 6
Afficher
Jeudi 04 octobre 2012 21:37 pianolivier 5
Afficher
Jeudi 04 octobre 2012 21:36 pianolivier 4
Afficher
Jeudi 04 octobre 2012 21:36 pianolivier 3
Afficher
Jeudi 04 octobre 2012 21:34 pianolivier 2
Afficher
Jeudi 04 octobre 2012 21:30 pianolivier création de la page 1
Afficher