#1 Le 25/10/2020, à 18:16
- 0livier
[Résolu] Attribuer une carte son à une appli avec Pulseaudio en CLI
Bonsjours,
Je souhaiterai pouvoir attribuer une carte son spécifique au lancement d'une application, en ligne de commande, avec Pulseaudio.
Je sais que la chose est graphiquement possible avec Pulseaudio Volume Control. Pour cela je lance l'application et je choisis la carte dans l'onglet "lecture".
Mais je voudrais pouvoir faire cela en ligne de commande afin de pouvoir automatiser ces attributions dans un fichier bash (j'ai plus d'une dizaine de cartes son).
Il y a bien la commande :
pactl set-default-sink 1
qui permet de changer la carte par défaut, mais elle change la carte pour toutes les applications déjà lancées.
Ce n'est donc pas ce que je cherche.
J'ai regardé dans
man pulse-cli-syntax
mais je n'ai pas trouvé.
Auriez-vous une idée ?
Merci.
Dernière modification par 0livier (Le 03/11/2020, à 15:14)
Envie de tisser ?
http://yamatierea.org/papatchs/
Hors ligne
#2 Le 25/10/2020, à 21:45
- inbox
Re : [Résolu] Attribuer une carte son à une appli avec Pulseaudio en CLI
Salut,
Je n'ai rien trouvé en français.
Il y a donc ce sujet de 2014 ou il est question d'utiliser les variables d'environnement ALSA_CARD ou ALSA_PCM_CARD. Dans cet autre sujet datant de 2009 (!), il est aussi question de ces variables. Ce dernier sujet précise un peu comment lancer un programme avec une carte son spécifique.
Il te faudra aussi, trouver le nom de tes différentes cartes son. Après avoir parcouru le dernier sujet, on voit que cela est expliqué. Un des commentaires de 2015 indique que ça fonctionnait toujours à cette date.
A+
Dernière modification par inbox (Le 25/10/2020, à 21:48)
Un problème résolu ? Indiquez le en modifiant le titre du sujet.
Hors ligne
#3 Le 03/11/2020, à 15:13
- 0livier
Re : [Résolu] Attribuer une carte son à une appli avec Pulseaudio en CLI
Merci inbox,
Ces solutions ne semblent pas fonctionner (mais j'ai appris plein de choses... )
J'ai fini par poser la question sur la mailing liste de Pulseaudio et ils m'ont dirigé vers la variable d'environnement PULSE_SINK
Que l'on peut renseigner avec le nom de la carte choisie ; nom que l'on peut récupérer avec cette commande
pactl list sinks | grep Nom
Nom : alsa_output.pci-0000_00_1f.3.analog-stereo
Nom : alsa_output.usb-C-Media_Electronics_Inc._USB_PnP_Sound_Device-00.analog-stereo
Nom : alsa_output.usb-C-Media_Electronics_Inc._USB_PnP_Sound_Device-00.analog-stereo.2
Dans ce cas, la commande que je cherchais serait, si l'on souhaite par exemple lancer Ibniz :
PULSE_SINK=alsa_output.usb-C-Media_Electronics_Inc._USB_PnP_Sound_Device-00.analog-stereo.2 ibniz
Or, la partie " analog-stereo.2" du nom de la carte dépend du nombre de carte identiques qui sont branchées, pas de la carte elle-même.
Si j'en branche dix, puis que je retire la première, toutes les cartes vont changer de nom.
J'utilise donc l'index des cartes que l'on récupère avec :
pacmd list-sinks | egrep 'index|name:'
index: 2
name: <alsa_output.pci-0000_00_1f.3.analog-stereo>
index: 6
name: <alsa_output.usb-C-Media_Electronics_Inc._USB_PnP_Sound_Device-00.analog-stereo>
* index: 7
name: <alsa_output.usb-C-Media_Electronics_Inc._USB_PnP_Sound_Device-00.analog-stereo.2>
Commande que j'ai trouvée dans tes liens, inbox.
Voilà, c'est résolu pour moi.
Dernière modification par 0livier (Le 03/11/2020, à 15:16)
Envie de tisser ?
http://yamatierea.org/papatchs/
Hors ligne