Historique: jack_alsa_io
Aperçu de cette version: 43
alsa_in et alsa_out sont 2 petits outils en ligne de commande très pratiques fournis avec JACK (dans le paquet de JACK, souvent appelé
jackd ou jack-audio-connection-kit ou bien encore jackdmp).page en cours de ré-écriture (pianoliv octobre 2012)
À quoi servent-ils ?
Ils permettent de greffer une deuxième carte son sur la celle utilisée par votre jackd.
- alsa_in greffe les entrées,
- alsa_out greffe les sorties.
Exemple
Nous allons prendre un exemple pratique : nous voulons ressortir le son d'une application compatible JACK sur 2 paires d'enceintes différentes, par exemple, pour écouter le même son dans 2 pièces différentes et nous allons utiliser pour cela 2 cartes-son différentes.
Les étapes
C'est parti !
Préparation
Nous allons chercher l'emplacement de vos cartes son :Copy to clipboard
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 speedDans 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
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 ducat /proc/asound/cards.|
Dans un terminal, tapez : Copy to clipboard
Puis, jetez un œil dans qJackCtl, vous verrez apparaître 2 nouvelles sorties s'appelant alsa_out : |
|
|
Cosmétique
Si vous voulez donner un nom autre que alsa_out à votre greffe, vous pouvez utiliser l'option -j comme ceci :Copy to clipboard
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 :
Copy to clipboard
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é 😉 |
|
|
Problèmes rencontrés (par Musclor13)
Si comme moi vous allez au plus simple avec le param^etrage en tapant:alsa_out -d hw:1
Vous risquez de vous retrouver avec un message d'ereur genre:
Rate doesn't match (requested 48000Hz, get 32000Hz)
Setting of hwparams failed: Invalid argument
Dans ce cas faites
alsa_out -h
pour savoir la ou les commandes à ajouter.
Chez moi j'ai du faire:
alsa_out -d hw:1 -r 32000
Et tout est rentré dans l'ordre.
Conclusion
Utilisations possibles :Ce truc peut être très utile comme pour :
- du monitoring,
- balancer du son sur 2 enceintes dans 2 pièces, bien utile par exemple lors d'un enregistrement-maquettage,
- pour les utilisateurs de Mixxx qui veulent utiliser JACK comme sortie audio,
- ... et dans des tas d'autres configurations.
Notes :
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_outdans un terminal. 😉 - Voir la page de documentation officielle : http://trac.jackaudio.org/wiki/WalkThrough/User/AlsaInOut.
- http://jackaudio.org/multiple_devices
[+]
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)
Copy to clipboard
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 :
Copy to clipboard
alsa_in -j FTP -d hw:Pro &
Et si je veux en plus sortir le son sur ma carte interne :
Copy to clipboard
alsa_out -j INT -d hw:0 &
Ce qui me donne le script suivant :
Copy to clipboard
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