Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 01/10/2016, à 11:40

Baltazard

Changer de matériel son en ligne de commande

Salut, je voudrai savoirs si c'est possible de switcher de matériel son avec des lignes de commande
histoire de se faire un petit script pour automatiser la chose smile
Voila mon problème, j'ai un problème d'ampli du coup en se moment j'utilise ma carte graphique pour
envoyer le son par l'hdmi pour utiliser les haut parleur de mon écran mais quand j'ai besoin
d'une bonne qualité audio je change manuellement de matériel dans les "préférence du son"
pour repasser sur mon dac où je peu brancher mon casque en directe en me passant de mon ampli
Et faire le changement a chaque fois éteindre/allumer les périphérique c'est bien chiant lol

Dernière modification par Baltazard (Le 01/10/2016, à 11:43)

Hors ligne

#2 Le 01/10/2016, à 13:13

J5012

Re : Changer de matériel son en ligne de commande

les utilitaires de pulseaudio (paquet pulseaudio-utils) :
/usr/bin/pacat
/usr/bin/pacmd
/usr/bin/pactl
/usr/bin/padsp
/usr/bin/pamon
/usr/bin/paplay
/usr/bin/parec
/usr/bin/parecord
/usr/bin/pasuspender
/usr/bin/pax11publish

ex pour pacat : https://linux.die.net/man/1/pacat
→ option --device

Hors ligne

#3 Le 01/10/2016, à 16:02

Baltazard

Re : Changer de matériel son en ligne de commande

J'ai regarder pour tousse le seule truc que j'ai remarqué c'est ça

-d | --device=SINKORSOURCE
    Specify the symbolic name of the sink/source to play/record this stream on/from.

pour pacat mais je n'ai pas l'impression que ça soit ça hmm

Hors ligne

#4 Le 02/10/2016, à 21:16

J5012

Re : Changer de matériel son en ligne de commande

Hors ligne

#5 Le 02/10/2016, à 21:50

Baltazard

Re : Changer de matériel son en ligne de commande

Je viens d'essayer mais apparemment ça n'a pas l'air de marcher non plus sad

$ pactl set-sink-port alsa_output.pci-0000_04_00.1.hdmi-stereo-extra1 hdmi-output-1
Échec : Aucune entité de ce type

$ pactl set-sink-port 1 hdmi-output-1
Échec : Aucune entité de ce type

$ pactl list sinks
Sink #18
	State: SUSPENDED
	Name: alsa_output.pci-0000_04_00.1.hdmi-stereo-extra1
	Description: GK110 HDMI Audio Digital Stereo (HDMI 2)
	Driver: module-alsa-card.c
	Sample Specification: s16le 2ch 48000Hz
	Channel Map: front-left,front-right
	Owner Module: 6
	Mute: no
	Volume: front-left: 41944 /  64% / -11,63 dB,   front-right: 41944 /  64% / -11,63 dB
	        balance 0,00
	Base Volume: 65536 / 100% / 0,00 dB
	Monitor Source: alsa_output.pci-0000_04_00.1.hdmi-stereo-extra1.monitor
	Latency: 0 usec, configured 0 usec
	Flags: HARDWARE DECIBEL_VOLUME LATENCY SET_FORMATS 
	Properties:
		alsa.resolution_bits = "16"
		device.api = "alsa"
		device.class = "sound"
		alsa.class = "generic"
		alsa.subclass = "generic-mix"
		alsa.name = "HDMI 1"
		alsa.id = "HDMI 1"
		alsa.subdevice = "0"
		alsa.subdevice_name = "subdevice #0"
		alsa.device = "7"
		alsa.card = "1"
		alsa.card_name = "HDA NVidia"
		alsa.long_card_name = "HDA NVidia at 0xf2ffc000 irq 17"
		alsa.driver_name = "snd_hda_intel"
		device.bus_path = "pci-0000:04:00.1"
		sysfs.path = "/devices/pci0000:00/0000:00:03.0/0000:02:00.0/0000:03:00.0/0000:04:00.1/sound/card1"
		device.bus = "pci"
		device.vendor.id = "10de"
		device.vendor.name = "NVIDIA Corporation"
		device.product.id = "0e1a"
		device.product.name = "GK110 HDMI Audio"
		device.string = "hdmi:1,1"
		device.buffering.buffer_size = "65536"
		device.buffering.fragment_size = "32768"
		device.access_mode = "mmap+timer"
		device.profile.name = "hdmi-stereo-extra1"
		device.profile.description = "Digital Stereo (HDMI 2)"
		device.description = "GK110 HDMI Audio Digital Stereo (HDMI 2)"
		alsa.mixer_name = "Nvidia GPU 44 HDMI/DP"
		alsa.components = "HDA:10de0044,19da314c,00100100"
		module-udev-detect.discovered = "1"
		device.icon_name = "audio-card-pci"
	Ports :
		hdmi-output-1: HDMI / DisplayPort 2 (priority: 5800, available)
	Port actif : hdmi-output-1
	Formats :
		pcm

Modération : merci à l'avenir d'utiliser les balises code (explications ici).

Dernière modification par cqfd93 (Le 02/10/2016, à 21:55)

Hors ligne

#6 Le 04/10/2016, à 12:25

J5012

Re : Changer de matériel son en ligne de commande

l'exemple de askubuntu dit d'utiliser la commande set-default-sink ...

Hors ligne

#7 Le 04/10/2016, à 12:47

Baltazard

Re : Changer de matériel son en ligne de commande

Malheureusement ça ne marche pas non plus (javais suivi le lien donné dans ton lien)

$ set-default-sink alsa_output.pci-0000_04_00.1.hdmi-stereo-extra1
set-default-sink : commande introuvable

Hors ligne

#8 Le 04/10/2016, à 13:19

J5012

Re : Changer de matériel son en ligne de commande

il semble que dans ta version ubuntu , la commande set-default-sink soit dependante d'une autre commande pacmd
http://askubuntu.com/questions/71863/ho … back#72076

Hors ligne

#9 Le 04/10/2016, à 14:47

Baltazard

Re : Changer de matériel son en ligne de commande

Avec la sorti HDMI activé

$ pacmd list-sinks
1 sink(s) available.
  * index: 0
	name: <alsa_output.pci-0000_04_00.1.hdmi-stereo-extra1>
	driver: <module-alsa-card.c>
	flags: HARDWARE DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
	state: SUSPENDED
	suspend cause: IDLE 
	priority: 9050
	volume: front-left: 65536 / 100% / 0,00 dB,   front-right: 65536 / 100% / 0,00 dB
	        balance 0,00
	base volume: 65536 / 100% / 0,00 dB
	volume steps: 65537
	muted: no
	current latency: 0,00 ms
	max request: 0 KiB
	max rewind: 0 KiB
	monitor source: 0
	sample spec: s16le 2ch 48000Hz
	channel map: front-left,front-right
	             Stéréo
	used by: 0
	linked by: 1
	configured latency: 0,00 ms; range is 0,50 .. 341,33 ms
	card: 0 <alsa_card.pci-0000_04_00.1>
	module: 6
	properties:
		alsa.resolution_bits = "16"
		device.api = "alsa"
		device.class = "sound"
		alsa.class = "generic"
		alsa.subclass = "generic-mix"
		alsa.name = "HDMI 1"
		alsa.id = "HDMI 1"
		alsa.subdevice = "0"
		alsa.subdevice_name = "subdevice #0"
		alsa.device = "7"
		alsa.card = "1"
		alsa.card_name = "HDA NVidia"
		alsa.long_card_name = "HDA NVidia at 0xf2ffc000 irq 17"
		alsa.driver_name = "snd_hda_intel"
		device.bus_path = "pci-0000:04:00.1"
		sysfs.path = "/devices/pci0000:00/0000:00:03.0/0000:02:00.0/0000:03:00.0/0000:04:00.1/sound/card1"
		device.bus = "pci"
		device.vendor.id = "10de"
		device.vendor.name = "NVIDIA Corporation"
		device.product.id = "0e1a"
		device.product.name = "GK110 HDMI Audio"
		device.string = "hdmi:1,1"
		device.buffering.buffer_size = "65536"
		device.buffering.fragment_size = "32768"
		device.access_mode = "mmap+timer"
		device.profile.name = "hdmi-stereo-extra1"
		device.profile.description = "Digital Stereo (HDMI 2)"
		device.description = "GK110 HDMI Audio Digital Stereo (HDMI 2)"
		alsa.mixer_name = "Nvidia GPU 44 HDMI/DP"
		alsa.components = "HDA:10de0044,19da314c,00100100"
		module-udev-detect.discovered = "1"
		device.icon_name = "audio-card-pci"
	ports:
		hdmi-output-1: HDMI / DisplayPort 2 (priority 5800, latency offset 0 usec, available: yes)
			properties:
				device.icon_name = "video-display"
				device.product.name = "PLB2712HDS"
	active port: <hdmi-output-1>

Avec le DAC activé

$ pacmd list-sinks
1 sink(s) available.
  * index: 2
	name: <alsa_output.usb-E-MU_Systems__Inc._E-MU_0202___USB_E-MU-8A-3F02-07D90A14-02E75-8740T2A-00.iec958-stereo>
	driver: <module-alsa-card.c>
	flags: HARDWARE DECIBEL_VOLUME LATENCY 
	state: IDLE
	suspend cause: 
	priority: 9048
	volume: front-left: 49808 /  76% / -7,15 dB,   front-right: 49808 /  76% / -7,15 dB
	        balance 0,00
	base volume: 65536 / 100% / 0,00 dB
	volume steps: 65537
	muted: no
	current latency: 102,27 ms
	max request: 28 KiB
	max rewind: 28 KiB
	monitor source: 2
	sample spec: s24le 2ch 48000Hz
	channel map: front-left,front-right
	             Stéréo
	used by: 0
	linked by: 0
	fixed latency: 100,00 ms
	card: 2 <alsa_card.usb-E-MU_Systems__Inc._E-MU_0202___USB_E-MU-8A-3F02-07D90A14-02E75-8740T2A-00>
	module: 26
	properties:
		alsa.resolution_bits = "24"
		device.api = "alsa"
		device.class = "sound"
		alsa.class = "generic"
		alsa.subclass = "generic-mix"
		alsa.name = "USB Audio"
		alsa.id = "USB Audio"
		alsa.subdevice = "0"
		alsa.subdevice_name = "subdevice #0"
		alsa.device = "0"
		alsa.card = "2"
		alsa.card_name = "E-MU 0202 | USB"
		alsa.long_card_name = "E-MU Systems, Inc. E-MU 0202 | USB at usb-0000:00:1a.1-2, full speed"
		alsa.driver_name = "snd_usb_audio"
		device.bus_path = "pci-0000:00:1a.1-usb-0:2:1.0"
		sysfs.path = "/devices/pci0000:00/0000:00:1a.1/usb4/4-2/4-2:1.0/sound/card2"
		udev.id = "usb-E-MU_Systems__Inc._E-MU_0202___USB_E-MU-8A-3F02-07D90A14-02E75-8740T2A-00"
		device.bus = "usb"
		device.vendor.id = "041e"
		device.vendor.name = "Creative Technology, Ltd"
		device.product.id = "3f02"
		device.product.name = "E-Mu 0202"
		device.serial = "E-MU_Systems__Inc._E-MU_0202___USB_E-MU-8A-3F02-07D90A14-02E75-8740T2A"
		device.string = "iec958:2"
		device.buffering.buffer_size = "28800"
		device.buffering.fragment_size = "7200"
		device.access_mode = "mmap"
		device.profile.name = "iec958-stereo"
		device.profile.description = "Stéréo numérique (IEC958)"
		device.description = "E-Mu 0202 Stéréo numérique (IEC958)"
		alsa.mixer_name = "USB Mixer"
		alsa.components = "USB041e:3f02"
		module-udev-detect.discovered = "1"
		device.icon_name = "audio-card-usb"
	ports:
		iec958-stereo-output: Sortie numérique (S/PDIF) (priority 0, latency offset 0 usec, available: unknown)
			properties:
				
	active port: <iec958-stereo-output>

hdmi -> index 0 -> alsa_output.pci-0000_04_00.1.hdmi-stereo-extra1
dac -> index 2 -> alsa_output.usb-E-MU_Systems__Inc._E-MU_0202___USB_E-MU-8A-3F02-07D90A14-02E75-8740T2A-00.iec958-stereo

J'ai édité /etc/pulse/default.pa et rajouté "restore_device=false" a la ligne "load-module module-stream-restore"
mais j’obtiens

$ pacmd set-default-sink 2
Sink 2 does not exist.

Hors ligne

#10 Le 05/10/2016, à 23:33

J5012

Re : Changer de matériel son en ligne de commande

si tu modifies default.pa à la main
la commande est inutile ...

pacmd est utile si tu l'utilises pour activer l'un ou l'autre sortie en la mettant en sortie primaire quand les deux sorties sont activées (le but de cette commande etant de ne pas toucher à chaque fois aux reglages materiels)

Hors ligne

#11 Le 06/10/2016, à 14:45

Baltazard

Re : Changer de matériel son en ligne de commande

J'ai essayer sans modifier le fichier, avec les 2 sorties activés mais ça ne marche pas non plus
Laisse tomber c'est pas grave, c’était intéressent si il y avais une commende pour passer une sortie
sur éteint dans Préférences du son et une commande pour activé la sortie dont javais besoin
Dans mon cas je n'est pas de modification "matériel" a réaliser tout est déjà brancher au PC
je change juste de périphérique dans l'onglet "matériel" de "Préférences du son"
Merci d'avoir essayer de trouver une solution wink

Hors ligne