alsa_in et alsa_out sont deux petits outils en ligne de commande très pratiques fournis avec JACK, comme leur nom ne l'indique pas
Ils permettent d'ajouter et de nommer les entrées et sorties de plusieurs cartes puisque par défaut une seule apparaît dans la liste des connexions :
- alsa_in greffe les entrées,
- alsa_out greffe les sorties.
Exemples d'utilisation :
- faire sortir le son d'une application compatible JACK sur 2 paires d'enceintes, chaque paire étant branchée sur une carte son différente.
- balancer du son sur 2 enceintes dans 2 pièces, bien utile par exemple lors d'un enregistrement-maquettage,
- faire sortir des sons différents sur chaque paire grâce aux possibilités de connexions de JACK.
- du monitoring,
- pour les utilisateurs de Mixxx qui veulent utiliser JACK comme sortie audio,
- ...
Table des matières
Installation
Sous Fedora (au moins à partir de la version 20, mais peut être avant...) ces utilitaires sont fournis par le paquet
jack-audio-connection-kit-example-clients et s'installent donc avec la commande
yum install jack-audio-connection-kit-example-clients
Sous Debian (Jessie) ils sont dans les paquets jack1 et jack2
Préparation
Nous allons chercher l'emplacement de vos cartes son :
cat /proc/asound/cards
Ce qui devrait vous retourner un truc comme ça :
olinuxx@olinuxx-desktop:~$ cat /proc/asound/cards 0 [M5461 ]: HDA-Intel - HDA ULI M5461 HDA ULI M5461 at 0xff6f8000 irq 22 1 [USX2Y ]: USB US-X2Y - TASCAM US-X2Y TASCAM US-X2Y (1604:8005 if 0 at 002/002) 2 [U0x71040x2202 ]: USB-Audio - USB Device 0x7104:0x2202 USB Device 0x7104:0x2202 at usb-0000:00:1c.2-2, full speed
Dans cet exemple :
- la carte O, c'est ma carte intégrée,
- la carte 1, c'est ma carte USB TASCAM US-224,
- la carte 2, c'est mon clavier midi MIDITECH MidiStart-2, celui-ci ne nous intéresse pas pour ce tutoriel.
Lancement de JACK sur la première carte
Je vais lancer jackd sur ma carte son interne, celle qui s'appelle 0, par l'intermédiaire de QjackCtl par exemple (ça devrait fonctionner avec la ligne de commande ou LADISH également).
Ajout de la 2ème carte son sur le graphe de jackd
Maintenant, je vais dire à JACK de greffer les sorties de ma carte son USB TASCAM US-224 sur son graphe interne. Je vais donc pour cela utiliser alsa_out et le régler sur la carte 1 en accord avec le résultat du
cat /proc/asound/cards
.Dans un terminal, tapez :
alsa_out -dhw:1
Puis, jetez un œil dans qJackCtl, vous verrez apparaître 2 nouvelles sorties s'appelant alsa_out :
Entrée ou sortie nommée
Si vous voulez donner un nom autre que alsa_out à votre greffe, vous pouvez utiliser l'option -j comme ceci :
alsa_out -dhw:1 -jgreffe
ce qui aura pour conséquence de faire apparaitre votre greffe sous le nom de greffe.
Note : si vous voulez mettre un nom comportant un espace, il vous faudra utiliser des apostrophes :
alsa_out -dhw:1 -j'deuxième sortie'
Lancer ça automatiquement
Si vous voulez lancer ça automatiquement, vous pouvez utiliser la fonctionnalité de lancement de script de QjackCtl : dans
qjackctl -> réglage -> options ->
activer "Exécuter un script au démarrage" et y mettre votre ligne "alsa_out -dhw:1 -j'deuxième écoute'". Il ne vous reste qu'à redémarrer qJackCtl, et le tour est joué Erreur au lancement
Si en tapant :
alsa_out -d hw:1
Vous obtenez un message du genre:
Rate doesn't match (requested 48000Hz, get 32000Hz) Setting of hwparams failed: Invalid argument
Dans ce cas il faut spécifier la fréquence d'échantillonage :
alsa_out -d hw:1 -r 32000
Liens et commentaires
Olivier-olinuxx : alsa_out fonctionne très bien pour ce que j'ai pu en tester, alsa_in fonctionne sur le même principe, il est censé, par exemple, pouvoir "prendre" les entrées de plusieurs cartes-son. Ceci dit, je n'ai pas essayé et des rumeurs qui disent "le problème, c'est qu'il va y avoir des soucis de synchronisation" courent. Le mieux est encore d'essayer et de venir nous raconter votre expérience ici ou dans le forum "Les serveurs son : Jack, PulseAudio et autres".
Pour aller plus loin :
- Il y a plusieurs autres options que vous pouvez ajouter, pour plusse d'informations :
man alsa_out
dans un terminal. - Voir la page de documentation officielle : https://github.com/jackaudio/jackaudio.github.com/wiki/WalkThrough_User_AlsaInOut
- http://jackaudio.org/faq/multiple_devices.html
- Bruit de douche superposé avec la carte en ALSA_IN [RESOLU !!]
- [résolu] Ardour jack avec le ZOOM H2N
Exemple d'utilisation de la méthode :
[+]
notes de travail
à intégrer dans cette page (en provenance de Jack Tuto Associer deux cartes son)Solution 2
La deuxième solution est d'utiliser alsa_in
J'ai eu quelques problèmes pour la faire fonctionner mais voici le script que j'utilise sur ma distribution (Debian Wheezy)
jackd -P 70 -p 512 -d alsa -P hw:Pro -r 44100 -p 256 -n 2 & jackd_ID=$! alsa_in -j VYNIL -d hw:CODEC qjackctl kill -s KILL ${jackd_ID} rm ~/.jackdrc&
Cette solution est intéressante car on peut associer d'autres cartes son (mais là on sort un peu du sujet).
Par exemple si je veux brancher ma guitare ou un micro sur ma carte son, je peux ajouter la commande suivante :
alsa_in -j FTP -d hw:Pro &
Et si je veux en plus sortir le son sur ma carte interne :
alsa_out -j INT -d hw:0 &
Ce qui me donne le script suivant :
jackd -P 70 -p 512 -d alsa -P hw:Pro -r 44100 -p 256 -n 2 & jackd_ID=$! alsa_in -j VYNIL -d hw:CODEC & alsa_in -j FTP -d hw:Pro & alsa_out -j INT -d hw:0 & qjackctl kill -s KILL ${jackd_ID} rm ~/.jackdrc